/*
Theme Name: Grandingroup
Theme URI: https://www.grandingroup.it
Author: Grandin Group S.r.l.
Author URI: https://www.grandingroup.it
Template: storefront
Description: Tema personalizzato Grandin Group per elettrodomestici ed elettronica
Version: 3.0
*/

/* ===== VARIABILI ===== */
:root {
    --shop-primary: #003399;
    --shop-primary-dark: #002266;
    --shop-primary-light: #0055cc;
    --shop-accent: #ff6600;
    --shop-accent-dark: #e55b00;
    --shop-accent-light: #ffcbbc;
    --shop-red: #cc0000;
    --shop-red-dark: #aa0000;
    --shop-green: #27ae60;
    --shop-bg: #f2f2f2;
    --shop-white: #ffffff;
    --shop-dark: #003399;
    --shop-dark-light: #002266;
    --shop-gray-900: #222;
    --shop-gray-700: #555;
    --shop-gray-500: #888;
    --shop-gray-300: #ccc;
    --shop-gray-200: #e0e0e0;
    --shop-gray-100: #f5f5f5;
    --shop-radius: 6px;
    --shop-radius-sm: 4px;
    --shop-shadow: 0 1px 4px rgba(0,0,0,0.08);
    --shop-shadow-md: 0 4px 12px rgba(0,0,0,0.1);
    --shop-shadow-lg: 0 8px 24px rgba(0,0,0,0.15);
    --shop-transition: 0.2s ease;
    --shop-max-width: 1500px;
    --shop-font: 'Segoe UI', -apple-system, BlinkMacSystemFont, Arial, sans-serif;
}

/* ===== RESET ===== */
* { box-sizing: border-box; }

body {
    font-family: var(--shop-font);
    background: var(--shop-bg);
    color: #333;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--shop-primary); text-decoration: none; }
a:hover { color: var(--shop-primary-dark); }

.col-full {
    max-width: var(--shop-max-width);
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
}

/* ===== TOP BAR ===== */
.shop-topbar {
    background: var(--shop-dark);
    color: var(--shop-gray-300);
    font-size: 12px;
    line-height: 1;
}

.shop-topbar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 36px;
}

.shop-topbar-left,
.shop-topbar-right {
    display: flex;
    align-items: center;
    gap: 0;
}

.shop-topbar-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--shop-gray-300);
    padding: 0 14px;
    height: 36px;
    transition: color var(--shop-transition);
    white-space: nowrap;
}

.shop-topbar-item:hover {
    color: #fff;
}

.shop-topbar-item svg {
    flex-shrink: 0;
    opacity: 0.7;
}

.shop-topbar-item strong {
    color: #fff;
}

.shop-topbar-sep {
    border-left: 1px solid rgba(255,255,255,0.15);
}

/* ===== HEADER PRINCIPALE ===== */
.site-header {
    background: var(--shop-white) !important;
    border-bottom: none !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
    box-shadow: none !important;
}

.shop-header-main {
    background: var(--shop-white);
    padding: 16px 0;
}

.shop-header-main-inner {
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: 64px;
}

/* Logo */
.shop-logo {
    transform: translateY(-30px);
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    align-self: center;
}

.shop-logo-slogan {
    font-size: 14px;
    font-weight: 600;
    color: #000;
    margin-top: -21px;
    line-height: 1.2;
    width: auto;
    margin-left: 0;
    box-sizing: border-box;
    text-align: left;
    white-space: nowrap;
    position: relative;
    z-index: 2;
    transform: none;
}

.shop-logo img {
    height: 104px !important;
    max-height: 104px !important;
    width: auto !important;
    max-width: 416px !important;
    object-fit: contain;
    object-position: center;
}

.shop-logo .site-title,
.shop-logo .beta {
    font-size: 26px;
    font-weight: 800;
    margin: 0;
    letter-spacing: -0.5px;
}

.shop-logo .site-title a,
.shop-logo .beta a {
    color: var(--shop-primary) !important;
    text-decoration: none;
}

.shop-logo .site-description {
    font-size: 11px;
    color: var(--shop-gray-500);
    margin: 2px 0 0;
    font-weight: 400;
}

.shop-logo .custom-logo,
.shop-logo .shop-logo-img {
    max-height: 48px;
    width: auto;
    height: 48px;
    object-fit: contain;
}

.shop-logo a {
    display: flex;
    align-items: center;
}

.shop-logo img {
    max-height: 104px !important;
    height: 104px !important;
    width: auto !important;
    max-width: 416px !important;
    object-fit: contain;
}

/* Search */
.shop-search {
    flex: 0 1 663px;
    max-width: 663px;
    margin: 0 auto;
}

.shop-search-form {
    display: flex;
    align-items: center;
    position: relative;
    border: 2px solid var(--shop-primary);
    border-radius: 999px;
    overflow: hidden;
    min-height: 60px;
    box-sizing: border-box;
    transition: all var(--shop-transition);
    background: #fff;
}

.shop-search-form:hover,
.shop-search-form:focus-within {
    border-color: var(--shop-accent);
    box-shadow: 0 0 0 3px rgba(255,102,0,0.15);
}

.shop-search-form input[type="search"] {
    flex: 1;
    border: none !important;
    padding: 18px 22px;
    font-size: 18px;          /* testo digitato più grande */
    font-weight: 700;         /* grassetto */
    outline: none !important;
    background: transparent !important;
    color: var(--shop-primary);  /* blu mentre si scrive */
    min-width: 0;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    -webkit-box-shadow: none !important;
}
.shop-search-form input[type="search"]::-webkit-search-decoration,
.shop-search-form input[type="search"]::-webkit-search-cancel-button,
.shop-search-form input[type="search"]::-webkit-search-results-button,
.shop-search-form input[type="search"]::-webkit-search-results-decoration {
    -webkit-appearance: none;
    appearance: none;
}

.shop-search-form input[type="search"]::placeholder {
    color: var(--shop-gray-500);
    font-size: 13px;
    font-weight: 400;
    font-style: normal;
}
/* Sulla pagina dei RISULTATI: stesso corpo/grassetto ma arancio e corsivo */
body.search .shop-search-form input[type="search"] {
    color: var(--shop-accent);
    font-style: italic;
}

.shop-search-form button {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--shop-primary);
    border: none !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    outline: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    padding: 0 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color var(--shop-transition);
}

.shop-search-form button:hover {
    color: var(--shop-primary-dark);
    background: transparent;
}

.shop-search-form button svg {
    display: block;
}

/* Header icons (account, carrello) */
.shop-header-icons {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 4px;
    transform: translateY(-12px);
    margin-left: auto;
    background: var(--shop-primary);
    border: 2px solid var(--shop-primary);
    border-radius: 999px;
    padding: 14px 17px 3px 17px;
    min-height: 60px;
    box-sizing: border-box;
}

.shop-header-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    color: #fff;
    padding: 1px 17px;
    line-height: 1;
    border-radius: 999px;
    transition: color var(--shop-transition);
    position: relative;
    text-decoration: none;
    transform: translateY(-5px);
}

.shop-header-icon:hover {
    color: var(--shop-accent) !important;
    background: transparent;
}
.shop-header-icon:hover svg { color: var(--shop-accent) !important; }

.shop-header-icon svg {
    display: block;
}

.shop-header-icon span {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.2px;
    line-height: 1;
    margin-top: -2px;
}

.shop-cart-badge {
    position: absolute;
    top: 0;
    right: 2px;
    background: var(--shop-accent);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    min-width: 27px;
    height: 27px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 0 6px;
}

/* Utente loggato: icona Account + nome in giallo pieno dentro la pill */
.shop-header-icon-logged,
.shop-header-icon-logged svg {
    color: #ffdd00;
}

/* Pagina indirizzi (My Account): link "Modifica" con matita + etichetta, rosso */
body.woocommerce-account .woocommerce-Address-title .edit.gg-edit-address {
    color: #e00000 !important;
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px !important;   /* annulla eventuale font-size:0 che nasconde il testo */
    text-indent: 0 !important;
    width: auto !important;
    overflow: visible !important;
    line-height: 1.2 !important;
}
/* Rimuove la matita "fantasma" ereditata (pseudo-elemento) che creava il doppione */
body.woocommerce-account .woocommerce-Address-title .edit.gg-edit-address::before,
body.woocommerce-account .woocommerce-Address-title .edit.gg-edit-address::after {
    content: none !important;
    display: none !important;
}
body.woocommerce-account .woocommerce-Address-title .edit.gg-edit-address .gg-edit-ico {
    fill: currentColor;
    flex: 0 0 auto;
}
body.woocommerce-account .woocommerce-Address-title .edit.gg-edit-address .gg-edit-label {
    font-size: 14px !important;
    color: #e00000 !important;
    text-indent: 0 !important;
}
body.woocommerce-account .woocommerce-Address-title .edit.gg-edit-address:hover {
    color: #b30000 !important;
    text-decoration: underline;
}
.shop-header-icon-logged span {
    max-width: 90px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Nascondi header originale Storefront */
.storefront-primary-navigation,
.site-header .col-full > .site-branding,
.site-header .col-full > .site-search,
.site-header .col-full > .site-header-cart,
.secondary-navigation,
.storefront-handheld-footer-bar,
.site-header-cart,
.woocommerce-active .site-header .site-header-cart {
    display: none !important;
}

/* ===== NAVIGAZIONE BLU ===== */
.shop-nav-bar {
    background: var(--shop-primary);
    position: relative;
    z-index: 100;
}

.shop-nav-bar.is-sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    box-shadow: var(--shop-shadow-md);
    z-index: 9999;
}

.shop-nav-inner {
    display: flex;
    align-items: center;
}

.shop-menu-toggle {
    display: none;
    background: transparent;
    border: none;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    padding: 14px 0;
    cursor: pointer;
    align-items: center;
    gap: 10px;
}

.shop-hamburger {
    display: inline-block;
    width: 20px;
    height: 2px;
    background: #fff;
    position: relative;
    transition: all var(--shop-transition);
}

.shop-hamburger::before,
.shop-hamburger::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 2px;
    background: #fff;
    left: 0;
    transition: all var(--shop-transition);
}

.shop-hamburger::before { top: -6px; }
.shop-hamburger::after { top: 6px; }

.shop-menu-toggle.is-active .shop-hamburger { background: transparent; }
.shop-menu-toggle.is-active .shop-hamburger::before { transform: rotate(15deg); top: 0; }
.shop-menu-toggle.is-active .shop-hamburger::after { transform: rotate(-15deg); top: 0; }

.shop-main-nav {
    flex: 1;
}

.shop-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
}

.shop-menu > li {
    position: relative;
}

.shop-menu > li > a {
    display: flex;
    align-items: center;
    color: #fff;
    padding: 14px 16px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    transition: background var(--shop-transition);
    white-space: normal;
    line-height: 1.25;
    max-width: 180px;
}

.shop-menu > li > a:hover,
.shop-menu > li.current-menu-item > a,
.shop-menu > li.current-menu-ancestor > a {
    background: rgba(0,0,0,0.2);
    color: #fff;
}

/* Dropdown */
.shop-menu .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--shop-white);
    min-width: 260px;
    box-shadow: var(--shop-shadow-lg);
    border-top: 3px solid var(--shop-accent);
    z-index: 200;
    list-style: none;
    margin: 0;
    padding: 6px 0;
    border-radius: 0 0 var(--shop-radius) var(--shop-radius);
}

.shop-menu > li:hover > .sub-menu {
    display: block;
    animation: shopFadeDown 0.2s ease;
}

@keyframes shopFadeDown {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.shop-menu .sub-menu li { position: relative; }

.shop-menu .sub-menu li a {
    display: block;
    padding: 9px 20px;
    color: #333;
    font-size: 13px;
    font-weight: 500;
    border-left: 3px solid transparent;
    transition: all 0.15s;
}

.shop-menu .sub-menu li a:hover {
    background: var(--shop-gray-100);
    color: var(--shop-primary);
    border-left-color: var(--shop-accent);
    padding-left: 23px;
}

.shop-menu .sub-menu .sub-menu {
    top: 0;
    left: 100%;
    border-top: none;
    border-left: 3px solid var(--shop-accent);
    border-radius: 0 var(--shop-radius) var(--shop-radius) 0;
}

.shop-submenu-toggle {
    display: none;
}

/* ===== CATEGORIE HOMEPAGE ===== */
.shop-categories-bar {
    padding: 20px 0 0;
}

.shop-categories-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 14px;
}

.shop-cat-item {
    background: var(--shop-white);
    border: 1px solid var(--shop-gray-200);
    border-radius: 22px;
    padding: 18px 8px;
    text-align: center;
    transition: all var(--shop-transition);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: #333;
}

.shop-cat-item:hover {
    border-color: var(--shop-accent);
    box-shadow: 0 0 0 3px rgba(255,102,0,0.15);
    color: var(--shop-primary);
}

.shop-cat-icon {
    width: 100%;
    flex: 0 0 55%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: transparent;
    color: var(--shop-primary);
}

.shop-cat-icon svg {
    width: 60px;
    height: 60px;
}

.shop-cat-icon img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    border-radius: 50%;
}

.shop-cat-name {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 1.25;
    flex: 0 0 45%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    text-align: center;
    padding-top: 8px;
    width: 100%;
}

.shop-cat-count {
    font-size: 11px;
    color: var(--shop-gray-500);
}

/* Bottone macrocategoria: quadrato, stesse dimensioni per tutti, ~30% più piccolo */
button.shop-cat-item {
    background: var(--shop-white);
    border: 1px solid var(--shop-gray-200);
    border-radius: 22px;
    padding: 14px 8px;
    text-align: center;
    transition: all var(--shop-transition);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: stretch;
    gap: 0;
    color: #333;
    width: 100%;
    max-width: 230px;
    margin: 0 auto;
    aspect-ratio: 1 / 1;
    cursor: pointer;
    font-family: inherit;
}
button.shop-cat-item:hover,
button.shop-cat-item.is-open {
    border-color: var(--shop-accent);
    box-shadow: 0 0 0 3px rgba(255,102,0,0.15);
    color: var(--shop-primary);
}
button.shop-cat-item.is-open {
    background: var(--shop-primary);
    color: #fff;
}
button.shop-cat-item.is-open .shop-cat-icon { background: rgba(255,255,255,0.2); color: #fff; }
button.shop-cat-item.is-open .shop-cat-count { color: rgba(255,255,255,0.85); }

.shop-cat-block { position: static; }

/* Area megamenu: contenitore relative ma senza altezza propria,
   le megamenu sono assolute e sovrappongono la griglia sottostante */
.shop-megamenu-area {
    position: relative;
    height: 0;
}

.shop-megamenu {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: #fff;
    border: 1px solid var(--shop-gray-200);
    border-radius: var(--shop-radius);
    box-shadow: var(--shop-shadow-lg);
    padding: 18px 22px;
    animation: shopFadeUp 0.18s ease;
}

.shop-megamenu-close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--shop-accent, #ea580c);
    color: #fff;
    border: none;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background 0.15s ease, transform 0.15s ease;
}
.shop-megamenu-close:hover {
    background: #c2410c;
    transform: scale(1.08);
}
@keyframes shopFadeUp {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}
.shop-megamenu a,
.shop-megamenu a:link,
.shop-megamenu a:visited,
.shop-megamenu a:hover,
.shop-megamenu a:active {
    text-decoration: none;
}
.shop-megamenu-title {
    border-bottom: 1px solid var(--shop-gray-200);
    padding-bottom: 8px;
    margin-bottom: 12px;
}
.shop-megamenu-title a {
    color: var(--shop-primary);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 0.4px;
}
.shop-megamenu-title a:hover { opacity: 0.8; }
.shop-megamenu-cols {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 18px 24px;
}
.shop-megamenu-col {
    min-width: 0;
}
.shop-megamenu-l2 {
    display: block;
    color: var(--shop-accent, #ea580c);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.3px;
    margin-bottom: 6px;
}
.shop-megamenu-l2:hover { opacity: 0.8; }
.shop-megamenu-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.shop-megamenu-col li a {
    display: block;
    color: #333;
    font-size: 13px;
    padding: 3px 0;
}
.shop-megamenu-col li a:hover {
    color: var(--shop-primary);
}

/* ===== PROMO BANNER ===== */
.shop-promo-banner {
    padding: 16px 0 8px;
}

.shop-promo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 12px;
    min-height: 320px;
}

.shop-promo-card {
    border-radius: var(--shop-radius);
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: flex-end;
    transition: transform var(--shop-transition);
}

.shop-promo-card:hover {
    transform: scale(1.01);
}

.shop-promo-main {
    grid-row: 1 / 3;
    background: linear-gradient(160deg, #003399 0%, #001a4d 100%);
}

.shop-promo-dark {
    background: linear-gradient(160deg, #2c2c3e 0%, #1a1a2e 100%);
}

.shop-promo-orange {
    background: linear-gradient(160deg, #ff6600 0%, #cc3300 100%);
}

.shop-promo-content {
    padding: 28px;
    color: #fff;
    position: relative;
    z-index: 2;
}

.shop-promo-label {
    display: inline-block;
    background: rgba(255,255,255,0.2);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 4px 12px;
    border-radius: 20px;
    margin-bottom: 12px;
}

.shop-promo-content h2 {
    font-size: 28px;
    margin: 0 0 8px;
    font-weight: 800;
    color: #fff !important;
}

.shop-promo-content h3 {
    font-size: 20px;
    margin: 0 0 6px;
    font-weight: 700;
    color: #fff !important;
}

.shop-promo-content p {
    margin: 0 0 16px;
    opacity: 0.85;
    font-size: 14px;
    line-height: 1.5;
}

.shop-promo-btn {
    display: inline-block;
    background: var(--shop-accent);
    color: #fff !important;
    padding: 11px 28px;
    border-radius: var(--shop-radius-sm);
    font-weight: 700;
    font-size: 14px;
    transition: all var(--shop-transition);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.shop-promo-btn:hover {
    background: var(--shop-accent-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255,102,0,0.3);
}

.shop-promo-link {
    color: #fff !important;
    font-weight: 600;
    font-size: 13px;
    opacity: 0.9;
    transition: opacity var(--shop-transition);
}

.shop-promo-link:hover {
    opacity: 1;
    color: #fff !important;
}

/* ===== BREADCRUMB ===== */
.woocommerce-breadcrumb {
    background: var(--shop-white);
    padding: 10px 0;
    font-size: 12px;
    color: var(--shop-gray-500);
    margin: 0 0 12px;
    border-radius: var(--shop-radius-sm);
}

/* ===== RISULTATI + ORDINAMENTO ===== */
.woocommerce .woocommerce-result-count {
    font-size: 13px;
    color: var(--shop-gray-700);
}

.woocommerce .woocommerce-ordering select {
    border: 1px solid var(--shop-gray-200);
    border-radius: var(--shop-radius-sm);
    padding: 9px 14px;
    font-size: 13px;
    background: #fff;
}

/* ===== GRIGLIA PRODOTTI ===== */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
@media (max-width: 900px)  { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 640px)  { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 420px)  { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; } }

.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none;
}

.woocommerce ul.products li.product {
    background: var(--shop-white);
    border: 1px solid var(--shop-gray-200);
    border-radius: 12px;
    padding: 0;
    font-size: 11px;
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    width: 100% !important;
    float: none !important;
    transition: box-shadow var(--shop-transition), transform var(--shop-transition);
    position: relative;
    display: flex;
    flex-direction: column;
}

.woocommerce ul.products li.product:hover {
    box-shadow: var(--shop-shadow-md);
    transform: translateY(-3px);
    border-color: var(--shop-gray-300);
}

/* Immagine prodotto */
.shop-product-image-wrap {
    position: relative;
    overflow: hidden;
    background: #fff;
    padding: 10px;
    aspect-ratio: 1 / 1;
    max-height: 100px;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.shop-product-image-wrap img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center center;
    transition: transform 0.4s ease;
}

.woocommerce ul.products li.product:hover .shop-product-image-wrap img {
    transform: scale(1.08);
}

/* Badges */
.shop-badge {
    position: absolute;
    z-index: 5;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: var(--shop-radius-sm);
    color: #fff;
    line-height: 1.3;
    letter-spacing: 0.3px;
}

.shop-badge-sale {
    top: 8px;
    left: 8px;
    background: var(--shop-red);
}

.shop-badge-new {
    top: 8px;
    right: 8px;
    left: auto;
    background: var(--shop-green);
    border-radius: 999px;
    padding: 4px 6px;
    font-size: 11px;
    letter-spacing: 0.4px;
    line-height: 1.3;
}

.woocommerce ul.products li.product .onsale {
    display: none !important;
}

/* Contenuto card */
.woocommerce ul.products li.product > a {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 0;
    color: #333;
}

/* Brand / categoria */
.shop-product-brand {
    display: block;
    font-size: 11px;
    color: var(--shop-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    padding: 0 14px;
    margin-bottom: 2px;
}

/* Titolo prodotto */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
    font-size: 13px !important;
    font-weight: 600;
    color: #333;
    line-height: 1.4;
    margin: 0 0 6px;
    padding: 0 14px !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 36px;
}

.woocommerce ul.products li.product a:hover h2,
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title {
    color: var(--shop-primary);
}

/* Prezzo */
.woocommerce ul.products li.product .price {
    color: var(--shop-red) !important;
    font-size: 22px !important;
    font-weight: 800 !important;
    margin: 0 0 2px;
    padding: 0 14px;
    line-height: 1.2;
}

.woocommerce ul.products li.product .price del {
    color: var(--shop-gray-500) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    display: block;
    margin-bottom: 0;
    text-decoration: line-through;
    opacity: 0.8;
}

.woocommerce ul.products li.product .price del .woocommerce-Price-amount {
    color: var(--shop-gray-500);
}

.woocommerce ul.products li.product .price ins {
    text-decoration: none;
    color: var(--shop-red);
    font-weight: 800;
}

/* Risparmio */
.shop-savings {
    padding: 0 14px;
    margin-bottom: 4px;
}

.shop-savings-text {
    font-size: 12px;
    color: var(--shop-green);
    font-weight: 600;
}

.shop-savings-text strong {
    color: var(--shop-green);
}

/* Disponibilita' e spedizione */
.shop-delivery {
    padding: 6px 14px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    /* altezza fissa per 2 righe: cosi' il prezzo sotto si allinea su tutte le card */
    min-height: 42px;
    justify-content: center;
}

.shop-stock-status {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
}

.shop-in-stock { color: var(--shop-green); }
.shop-out-of-stock { color: #e74c3c; }

.shop-delivery-info {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: var(--shop-gray-500);
}

/* Classe energetica — badge stile etichetta UE (mini scala A-G + freccia colorata) */
.shop-energy-label {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin: 2px 14px 4px;
}
/* mini scala A-G a sinistra */
.shop-energy-scale {
    display: inline-flex;
    flex-direction: column;
    background: #1a1a1a;
    color: #fff;
    font-size: 7px;
    font-weight: 800;
    line-height: 1;
    padding: 2px 3px;
    border-radius: 2px;
    gap: 2px;
}
/* freccia colorata con la lettera della classe */
.shop-energy-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 19px;
    padding: 0 11px 0 7px;
    font-size: 12px;
    font-weight: 800;
    color: #fff;
    clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%);
}
.shop-energy-arrow.shop-energy-c,
.shop-energy-arrow.shop-energy-d,
.shop-energy-arrow.shop-energy-e { color: #1a1a1a; }

.shop-energy-a { background: #00a651; }
.shop-energy-b { background: #51b848; }
.shop-energy-c { background: #bdd62e; color: #333; }
.shop-energy-d { background: #fff200; color: #333; }
.shop-energy-e { background: #fcb913; }
.shop-energy-f { background: #f26522; }
.shop-energy-g { background: #ed1c24; }

/* Pulsante catalogo: stretto, a pillola, sola icona (carrello / occhio).
   Stessa larghezza per "Acquista" e "Leggi tutto". */
.woocommerce ul.products li.product .button {
    background: var(--shop-accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 10px 0 !important;
    box-sizing: border-box;
    width: 120px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* flex:0 0 auto -> il bottone NON cresce: la regola tema "li.product > a {flex:1}"
       colpisce anche il tag <a> del bottone e lo gonfiava quando la card era stirata. */
    flex: 0 0 auto !important;
    /* margin-left:auto -> bottone allineato a destra nella card */
    margin: auto 12px 12px auto !important;
    transition: background var(--shop-transition) !important;
}
.woocommerce ul.products li.product .button svg {
    display: block;
}

.woocommerce ul.products li.product .button:hover {
    background: var(--shop-accent-dark) !important;
}

/* ===== PAGINAZIONE ===== */
.woocommerce nav.woocommerce-pagination {
    margin-top: 24px;
}

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

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

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    border: 1px solid var(--shop-gray-200);
    border-radius: var(--shop-radius-sm);
    padding: 8px 14px;
    margin: 0 3px;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    background: #fff;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--shop-primary);
    color: #fff;
    border-color: var(--shop-primary);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--shop-primary);
    border-color: var(--shop-primary);
    color: #fff;
}

/* ===== PAGINA SINGOLO PRODOTTO ===== */
.single-product div.product .product_title {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
}

.shop-sku {
    font-size: 12px;
    color: var(--shop-gray-500);
    margin-bottom: 10px;
}

.single-product div.product .price {
    color: var(--shop-red) !important;
    font-size: 63px !important;
    font-weight: 800;
}

.single-product div.product .price del {
    color: var(--shop-gray-500);
    font-size: 18px;
    font-weight: 400;
}

.shop-single-savings {
    background: #fef3e8;
    border: 1px solid #fdd;
    border-radius: var(--shop-radius-sm);
    padding: 8px 14px;
    margin: 8px 0 16px;
    font-size: 14px;
    color: var(--shop-red);
}

.shop-savings-badge {
    display: inline-block;
    background: var(--shop-red);
    color: #fff;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: var(--shop-radius-sm);
    font-size: 13px;
}

.single-product .single_add_to_cart_button {
    background: var(--shop-accent) !important;
    border: none !important;
    border-radius: var(--shop-radius) !important;
    padding: 16px 36px !important;
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.single-product .single_add_to_cart_button:hover {
    background: var(--shop-accent-dark) !important;
}

.single-product .woocommerce-tabs ul.tabs {
    border-bottom: 2px solid var(--shop-gray-200);
}

.single-product .woocommerce-tabs ul.tabs li.active a {
    color: var(--shop-primary);
    border-bottom: 2px solid var(--shop-primary);
}

/* ===== BENEFITS BAR ===== */
.shop-benefits-bar {
    background: var(--shop-white);
    border-top: 3px solid var(--shop-primary);
    padding: 0;
}

.shop-benefits-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
}

.shop-benefit-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 16px;
    border-right: 1px solid var(--shop-gray-200);
}

.shop-benefit-item:last-child {
    border-right: none;
}

.shop-benefit-icon {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef2ff;
    border-radius: 50%;
    color: var(--shop-primary);
}

.shop-benefit-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.shop-benefit-text strong {
    font-size: 14px;
    color: #333;
    font-weight: 700;
}

.shop-benefit-text span {
    font-size: 12px;
    color: var(--shop-gray-500);
}

/* ===== FOOTER PRINCIPALE ===== */
.shop-footer-main {
    background: var(--shop-dark);
    padding: 40px 0 24px;
    color: #aaa;
}

.shop-footer-columns {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    margin-bottom: 32px;
}

.shop-footer-title {
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 700;
    margin: 0 0 16px !important;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--shop-accent);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.shop-footer-widget {
    color: #999;
    font-size: 13px;
    line-height: 1.6;
}

.shop-footer-widget p {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    color: #aaa;
}

.shop-footer-widget p svg {
    flex-shrink: 0;
    opacity: 0.6;
}

.shop-footer-widget p strong {
    color: #fff;
}

.shop-footer-widget a {
    color: #bbb;
    transition: color var(--shop-transition);
}

.shop-footer-widget a:hover {
    color: var(--shop-accent);
}

.shop-footer-widget ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.shop-footer-widget ul li {
    padding: 4px 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

.shop-footer-widget ul li:last-child {
    border-bottom: none;
}

.shop-footer-widget ul li a::before {
    content: '\203A';
    margin-right: 8px;
    color: var(--shop-accent);
    font-weight: 700;
}

.shop-footer-hours {
    color: var(--shop-gray-500) !important;
    font-size: 12px !important;
}

/* Metodi pagamento */
.shop-footer-payments {
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.shop-payment-label {
    font-size: 12px;
    color: var(--shop-gray-500);
}

.shop-payment-icons {
    display: flex;
    gap: 8px;
}

.shop-payment-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: var(--shop-radius-sm);
    padding: 6px 12px;
    font-size: 11px;
    font-weight: 700;
    color: #ccc;
    letter-spacing: 0.3px;
}

/* Footer bottom */
.shop-footer-bottom {
    background: #13132a;
    padding: 14px 0;
}

.shop-footer-bottom-inner {
    text-align: center;
    font-size: 12px;
    color: var(--shop-gray-500);
}

/* Nascondi footer Storefront originale */
.site-footer {
    display: none !important;
}

/* ===== SIDEBAR ===== */
.widget-area .widget {
    background: var(--shop-white);
    padding: 18px;
    border-radius: var(--shop-radius);
    border: 1px solid var(--shop-gray-200);
    margin-bottom: 12px;
}

.widget-area .widget-title {
    font-size: 14px;
    font-weight: 700;
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--shop-primary);
    color: #333;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.widget_product_categories ul li {
    padding: 6px 0;
    border-bottom: 1px solid var(--shop-gray-100);
    font-size: 13px;
}

.widget_price_filter .price_slider_wrapper .ui-widget-header {
    background: var(--shop-primary);
}

/* ===== CART & CHECKOUT ===== */
.woocommerce table.shop_table {
    border-radius: var(--shop-radius);
    border-collapse: collapse;
}

.woocommerce .checkout #payment .place-order .button,
.woocommerce .cart .button,
.woocommerce #respond input#submit {
    background: var(--shop-accent);
    border: none;
    border-radius: var(--shop-radius);
    font-weight: 700;
    text-transform: uppercase;
}

.woocommerce .checkout #payment .place-order .button:hover,
.woocommerce .cart .button:hover,
.woocommerce #respond input#submit:hover {
    background: var(--shop-accent-dark);
}

/* ===== SEZIONE TITOLO ===== */
.storefront-product-section .section-title,
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2 {
    font-size: 20px;
    font-weight: 700;
    text-transform: uppercase;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--shop-primary);
    margin-bottom: 20px;
    letter-spacing: 0.3px;
}

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

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

    .shop-categories-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .shop-benefits-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .shop-benefit-item:nth-child(2) {
        border-right: none;
    }

    .shop-footer-columns {
        grid-template-columns: repeat(2, 1fr);
    }

    .shop-promo-grid {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .shop-promo-main {
        grid-row: auto;
    }
}

@media (max-width: 768px), (max-height: 480px) {
    /* ===== MIGLIORA MOBILE (giu 2026) ===== */
    /* NB: le regole .gg-topbar mobile stanno DOPO la base .gg-topbar (~riga 5070),
       altrimenti l'ordine-sorgente farebbe vincere la base (stessa specificita'). */

    /* --- header: meno spazio verticale, logo piu' in alto --- */
    .shop-header-main { padding: 8px 0 6px; }
    .shop-header-main-inner { min-height: 0; }

    /* --- 2) Logo adattivo: si restringe lasciando spazio a dx alla pill; alto come la pill --- */
    .shop-logo { flex: 1 1 auto; min-width: 0; transform: none; align-self: center; }
    .shop-logo a { max-width: 100%; }
    .shop-logo img {
        height: auto !important;
        max-height: 46px !important;
        width: auto !important;
        max-width: 100% !important;
    }
    .shop-logo-slogan { white-space: normal; font-size: 10.5px; margin-top: 1px; line-height: 1.15; }
    /* pill account/carrello: molto meno padding e piu' in basso */
    .shop-header-icons {
        flex: 0 0 auto;
        align-self: flex-end;
        transform: none;
        min-height: 0;
        padding: 5px 14px;
        gap: 8px;
    }

    /* --- meno spazio bianco tra ricerca e sezione grigia/card --- */
    .shop-categories-bar { padding: 10px 0 0; }

    /* --- 4) Card categorie: 4 per riga, SEMPRE quadrate (aspect sul blocco, bottone riempie) --- */
    .shop-categories-grid { grid-template-columns: repeat(4, 1fr); gap: 8px; align-items: start; }
    .shop-cat-block {
        width: 100%;
        aspect-ratio: 1 / 1;   /* il quadrato e' garantito dal blocco-cella */
    }
    button.shop-cat-item, .shop-cat-item {
        height: 100%;
        width: 100%;
        aspect-ratio: auto;
        min-height: 0;
        padding: 5px 3px;
        border-radius: 14px;
        max-width: none;
        gap: 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        overflow: hidden;
    }
    /* riga 1 (50%): icona, allineata uguale in tutte le card */
    .shop-cat-icon {
        width: 100%;
        flex: 0 0 50%;
        min-height: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .shop-cat-icon svg { width: 37px; height: 37px; }
    .shop-cat-icon img { width: 37px; height: 37px; }
    /* riga 2 (50%): testo (si riduce per stare nel quadrato) */
    .shop-cat-name {
        width: 100%;
        flex: 0 0 50%;
        min-height: 0;
        display: flex;
        align-items: flex-start;
        justify-content: center;
        text-align: center;
        font-size: 8px;
        letter-spacing: 0;
        line-height: 1.1;
        padding-top: 2px;
        overflow: hidden;
    }
    /* (regole striscia volantino spostate dopo la base .shop-banner-strip ~riga 2712) */
    /* (Ultimi arrivi: hide frecce + 2 card -> regole DOPO la base, vicino al blocco arrivals) */
    /* ===== /MIGLIORA MOBILE ===== */

    .shop-topbar-left { display: none; }
    .shop-topbar-inner { justify-content: flex-end; }

    .shop-header-main-inner {
        flex-wrap: wrap;
        gap: 10px;
    }

    .shop-logo { flex: 1; min-width: auto; }
    .shop-search {
        order: 3;
        flex: 1 1 100%;
        max-width: none;
    }
    .shop-header-icons { order: 2; }

    /* nascondo solo le scritte Account/Carrello (span figli diretti), NON il badge carrello
       (.shop-cart-badge-wrap, anch'esso uno span) altrimenti sparisce il pallino conteggio */
    .shop-header-icon > span:not(.shop-cart-badge-wrap) { display: none; }
    .shop-header-icon { padding: 8px; }
    /* ...ma se loggato mostro il NOME UTENTE sotto l'icona account (come desktop) */
    .shop-header-icon-logged > span:not(.shop-cart-badge-wrap) {
        display: block !important;
        font-size: 10px !important;
        max-width: 62px;
        margin-top: 1px;
    }
    /* NON loggato: mostro "Accedi" sotto l'icona account anche su mobile (NON il "Carrello") */
    .shop-header-icon:not(.shop-header-icon-logged):not(.shop-header-cart-icon) > span:not(.shop-cart-badge-wrap) {
        display: block !important;
        font-size: 10px !important;
        margin-top: 1px;
    }

    /* Menu mobile */
    .shop-menu-toggle { display: flex; }

    .shop-main-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--shop-primary);
        z-index: 300;
        box-shadow: var(--shop-shadow-lg);
    }

    .shop-main-nav.is-open { display: block; }

    .shop-menu { flex-direction: column; }

    .shop-menu > li > a {
        border-bottom: 1px solid rgba(255,255,255,0.1);
        padding: 14px 20px;
    }

    .shop-menu .sub-menu {
        position: static;
        display: none;
        background: var(--shop-primary-dark);
        border-top: none;
        box-shadow: none;
        min-width: auto;
        border-radius: 0;
        animation: none;
    }

    .shop-menu .sub-menu.is-open { display: block; }

    .shop-menu .sub-menu li a {
        color: rgba(255,255,255,0.85);
        padding-left: 36px;
        border-left: none;
        border-bottom: 1px solid rgba(255,255,255,0.05);
    }

    .shop-menu .sub-menu li a:hover {
        background: rgba(255,255,255,0.1);
        color: #fff;
        border-left: none;
    }

    .shop-submenu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        right: 12px;
        top: 10px;
        background: rgba(255,255,255,0.12);
        color: #fff;
        border: none;
        width: 32px;
        height: 32px;
        cursor: pointer;
        border-radius: var(--shop-radius-sm);
        z-index: 5;
        transition: all var(--shop-transition);
    }

    .shop-submenu-toggle.is-rotated {
        transform: rotate(180deg);
    }

    .shop-menu > li { position: relative; }

    /* Griglia mobile */
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px;
    }

    .shop-product-image-wrap { padding: 8px; }

    .woocommerce ul.products li.product .price {
        font-size: 20px !important;
    }

    .shop-product-brand { padding: 0 10px; }

    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2 {
        padding: 0 10px !important;
        font-size: 12px !important;
        min-height: 32px;
    }

    .woocommerce ul.products li.product .price { padding: 0 10px; }
    .shop-savings { padding: 0 10px; }
    .shop-delivery { padding: 4px 10px; }

    /* griglia categorie: vedi blocco MIGLIORA MOBILE in cima (4 colonne) */

    .shop-benefits-grid {
        grid-template-columns: 1fr;
    }

    .shop-benefit-item { border-right: none; border-bottom: 1px solid var(--shop-gray-200); }
    .shop-benefit-item:last-child { border-bottom: none; }

    .shop-footer-columns {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .shop-footer-payments { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
    .woocommerce ul.products li.product .button {
        font-size: 11px !important;
        padding: 10px !important;
    }

    /* card categorie restano 4 per riga anche su telefoni piccoli, solo piu' compatte */
    .shop-categories-grid { grid-template-columns: repeat(4, 1fr); gap: 6px; }
    button.shop-cat-item, .shop-cat-item { padding: 5px 2px; border-radius: 12px; }
    .shop-cat-icon svg, .shop-cat-icon img { width: 35px; height: 35px; }
    .shop-cat-name { font-size: 7.5px; line-height: 1.08; }

    .shop-promo-content h2 { font-size: 22px; }
    .shop-promo-content { padding: 20px; }
}

/* ===== EXTRA STOREFRONT OVERRIDES ===== */
.storefront-product-section,
.storefront-recent-products,
.storefront-popular-products,
.storefront-on-sale-products,
.storefront-best-selling-products {
    margin-bottom: 0 !important;
}

.page-template-template-homepage .site-main > .storefront-product-section:nth-child(even) {
    background: transparent;
}

.site-content {
    padding-top: 0;
}

.content-area {
    padding-top: 12px;
}

/* ===== SERVICES STRIP (stile shop) ===== */
.shop-services-strip {
    padding: 0 0 12px;
}

.shop-services-grid {
    display: flex;
    gap: 0;
    background: var(--shop-white);
    border: 1px solid var(--shop-gray-200);
    border-radius: var(--shop-radius);
    overflow: hidden;
}

.shop-service-item {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 12px;
    color: var(--shop-gray-700);
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    border-right: 1px solid var(--shop-gray-200);
    transition: all var(--shop-transition);
    white-space: nowrap;
}

.shop-service-item:last-child {
    border-right: none;
}

.shop-service-item:hover {
    background: #f0f4ff;
    color: var(--shop-primary);
}

.shop-service-item svg {
    flex-shrink: 0;
    color: var(--shop-primary);
}

/* ===== FOOTER COMPANY INFO + SOCIAL ===== */
.shop-footer-company {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 24px;
    margin-bottom: 24px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.shop-footer-company-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.shop-footer-company-info strong {
    color: #fff;
    font-size: 16px;
    letter-spacing: 0.3px;
}

.shop-footer-company-info span {
    font-size: 12px;
    color: var(--shop-gray-500);
}

.shop-footer-social {
    display: flex;
    gap: 10px;
}

.shop-social-icon {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 50%;
    color: #ccc;
    transition: all var(--shop-transition);
}

.shop-social-icon:hover {
    background: var(--shop-accent);
    border-color: var(--shop-accent);
    color: #fff;
    transform: translateY(-2px);
}

/* ===== STORES SECTION ===== */
.shop-stores-hours {
    font-size: 13px;
    color: var(--shop-gray-500);
    margin: -12px 0 16px;
}

/* ===== SEARCH: "Vedi tutti" link ===== */
.shop-search-all {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px 16px;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    color: var(--shop-primary);
    background: transparent;
    border-top: 1px solid var(--shop-gray-200);
    transition: all var(--shop-transition);
}

.shop-search-all:hover {
    color: var(--shop-primary-dark);
}

/* Chevron arancio verso destra, dimensione come quello del banner */
.shop-search-all-chev {
    width: 30px;
    height: 30px;
    color: var(--shop-accent);
    flex-shrink: 0;
}

/* ===== SINGLE PRODUCT EXTRAS ===== */
.shop-single-extras {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 16px 0;
}

.shop-single-extra {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 18px;
    font-weight: 700;
    color: #18873f;
}

.shop-single-extra svg {
    flex-shrink: 0;
    color: #18873f;
    width: 30px !important;
    height: 30px !important;
    stroke-width: 2.4;
}

/* ===== SEARCH AUTOCOMPLETE ===== */
.shop-search-form {
    position: relative;
}

.shop-search-results {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    background: var(--shop-white);
    border: 2px solid var(--shop-accent);   /* bordino arancio, come la barra di ricerca */
    border-radius: 24px;                     /* angoli molto rounded -> sembra una card */
    box-shadow: var(--shop-shadow-lg);
    z-index: 500;
    max-height: 400px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 6px 0;                          /* così il primo/ultimo item non toccano gli angoli */
}

.shop-search-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--shop-gray-100);
    color: #333;
    transition: background var(--shop-transition);
}

.shop-search-item:last-child {
    border-bottom: none;
}

.shop-search-item:hover {
    background: #f8f9ff;
}

.shop-search-item img {
    width: 48px;
    height: 48px;
    object-fit: contain;
    border-radius: var(--shop-radius-sm);
    background: var(--shop-gray-100);
    flex-shrink: 0;
}

.shop-search-item-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.shop-search-item-title {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shop-search-item-price {
    font-size: 14px;
    font-weight: 700;
    color: var(--shop-red);
}

.shop-search-item-price del {
    color: var(--shop-gray-500);
    font-size: 12px;
    font-weight: 400;
}

.shop-search-item-price ins {
    text-decoration: none;
}

.shop-search-empty {
    padding: 16px;
    text-align: center;
    color: var(--shop-gray-500);
    font-size: 13px;
}

/* Stati ricerca: loading / errore / nota "prodotti simili" */
.shop-search-loading,
.shop-search-error {
    padding: 16px;
    text-align: center;
    font-size: 13px;
    color: var(--shop-gray-500);
}
.shop-search-error { color: var(--shop-red); }
.shop-search-note {
    padding: 10px 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--shop-gray-500);
    background: var(--shop-gray-100);
    border-bottom: 1px solid var(--shop-gray-200);
}
/* Riga evidenziata da tastiera (frecce) */
.shop-search-item.is-active {
    background: #f8f9ff;
}
/* Placeholder quando manca l'immagine */
.shop-search-noimg {
    width: 48px;
    height: 48px;
    border-radius: var(--shop-radius-sm);
    background: var(--shop-gray-100);
    flex-shrink: 0;
}
/* Etichetta "non disponibile" accanto al prezzo */
.shop-search-nd {
    font-size: 11px;
    font-weight: 600;
    font-style: normal;
    color: var(--shop-gray-500);
}

/* ===== OUTLET BADGE ===== */
.shop-badge-outlet {
    bottom: 8px;
    left: 8px;
    top: auto;
    background: var(--shop-accent);
    font-size: 10px;
    letter-spacing: 1px;
}

/* ===== NEGOZI SECTION ===== */
.shop-stores-section {
    background: var(--shop-white);
    padding: 30px 0;
    border-top: 1px solid var(--shop-gray-200);
}

.shop-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 20px !important;
    font-weight: 700;
    color: #333 !important;
    text-transform: uppercase;
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--shop-primary);
}

.shop-section-title svg {
    color: var(--shop-primary);
}

.shop-stores-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.shop-store-card {
    background: var(--shop-gray-100);
    border: 1px solid var(--shop-gray-200);
    border-radius: var(--shop-radius);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: all var(--shop-transition);
}

.shop-store-card:hover {
    border-color: var(--shop-primary);
    box-shadow: var(--shop-shadow);
}

.shop-store-card strong {
    font-size: 14px;
    color: #333;
}

.shop-store-card span {
    font-size: 12px;
    color: var(--shop-gray-700);
}

.shop-store-card small {
    font-size: 11px;
    color: var(--shop-gray-500);
}

.shop-store-outlet {
    border-color: var(--shop-accent);
    background: #fff8f3;
    position: relative;
}

.shop-outlet-tag {
    position: absolute;
    top: 8px;
    right: 8px;
    background: var(--shop-accent);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 3px;
    letter-spacing: 1px;
}

/* ===== NEWSLETTER ===== */
.shop-newsletter {
    background: var(--shop-primary);
    padding: 28px 0;
}

.shop-newsletter-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.shop-newsletter-text {
    display: flex;
    align-items: center;
    gap: 16px;
    color: #fff;
}

.shop-newsletter-text svg {
    flex-shrink: 0;
    opacity: 0.7;
}

.shop-newsletter-text strong {
    display: block;
    font-size: 16px;
    margin-bottom: 2px;
}

.shop-newsletter-text span {
    font-size: 13px;
    opacity: 0.8;
}

.shop-newsletter-form {
    display: flex;
    flex-shrink: 0;
}

.shop-newsletter-form input[type="email"] {
    border: none;
    padding: 12px 18px;
    font-size: 14px;
    border-radius: var(--shop-radius) 0 0 var(--shop-radius);
    width: 280px;
    outline: none;
}

.shop-newsletter-form input[type="email"]::placeholder {
    color: var(--shop-gray-500);
}

.shop-newsletter-form button {
    background: var(--shop-accent);
    color: #fff;
    border: none;
    padding: 12px 24px;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 0 var(--shop-radius) var(--shop-radius) 0;
    cursor: pointer;
    transition: background var(--shop-transition);
    white-space: nowrap;
}

.shop-newsletter-form button:hover {
    background: var(--shop-accent-dark);
}

/* ===== COOKIE BANNER ===== */
.shop-cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--shop-dark);
    z-index: 99999;
    padding: 18px 0;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.3);
}

.shop-cookie-inner {
    max-width: var(--shop-max-width);
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.shop-cookie-text {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: #ccc;
    font-size: 13px;
    line-height: 1.5;
    flex: 1;
}

.shop-cookie-text svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--shop-accent);
}

.shop-cookie-text p {
    margin: 0;
}

.shop-cookie-text a {
    color: var(--shop-accent);
    text-decoration: underline;
}

.shop-cookie-actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.shop-cookie-btn {
    border: none;
    padding: 10px 24px;
    font-size: 13px;
    font-weight: 700;
    border-radius: 999px;          /* pill, come gli altri tasti del sito */
    cursor: pointer;
    transition: all var(--shop-transition);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    text-align: center;
}

.shop-cookie-reject {
    background: #d4001a;           /* Rifiuta = rosso */
    border: none;
    color: #fff;
}

.shop-cookie-reject:hover {
    background: #b00016;
    color: #fff;
}

.shop-cookie-accept {
    background: #18873f;           /* Accetta = verde */
    color: #fff;
}

.shop-cookie-accept:hover {
    background: #146d33;
}

/* ===== BACK TO TOP ===== */
.shop-back-to-top {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: auto;
    height: auto;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--shop-accent);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s ease;
    z-index: 9990;
}
.shop-back-to-top svg {
    width: 86px !important;
    height: 86px !important;
}

.shop-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.shop-back-to-top:hover {
    background: transparent;
    color: var(--shop-accent-dark);
    transform: translateY(-2px);
    box-shadow: none;
}

/* ===== RESPONSIVE NUOVI ELEMENTI ===== */
@media (max-width: 1024px) {
    .shop-stores-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .shop-services-grid {
        flex-wrap: wrap;
    }

    .shop-service-item {
        flex: 1 1 calc(33% - 1px);
        border-bottom: 1px solid var(--shop-gray-200);
    }

    .shop-footer-company {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }
}

@media (max-width: 768px), (max-height: 480px) {
    .shop-newsletter-inner {
        flex-direction: column;
        text-align: center;
    }

    .shop-newsletter-text {
        flex-direction: column;
        align-items: center;
    }

    .shop-newsletter-form {
        width: 100%;
    }

    .shop-newsletter-form input[type="email"] {
        flex: 1;
        width: auto;
        min-width: 0;
    }

    .shop-stores-grid {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .shop-services-grid {
        flex-direction: column;
    }

    .shop-service-item {
        flex: none;
        border-right: none;
        border-bottom: 1px solid var(--shop-gray-200);
        justify-content: flex-start;
        padding: 12px 16px;
    }

    .shop-service-item:last-child {
        border-bottom: none;
    }

    .shop-cookie-inner {
        flex-direction: column;
        text-align: center;
    }

    .shop-cookie-text {
        flex-direction: column;
        align-items: center;
    }

    .shop-back-to-top {
        bottom: 80px;
        right: 16px;
        width: auto;
        height: auto;
    }
    .shop-back-to-top svg {
        width: 74px !important;
        height: 74px !important;
    }

    .shop-search-results {
        left: -20px;
        right: -20px;
    }

    .shop-header-phone {
        display: none;
    }
}

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

/* ============================================================
   Catalogo stile leso: griglia full-width + card con scheda web
   affiancata alla foto
   ============================================================ */

/* Pagine archivio prodotti a tutta larghezza */
.woocommerce-shop .col-full,
.tax-product_cat .col-full,
.tax-product_tag .col-full,
.post-type-archive-product .col-full {
    max-width: 100%;
    padding-left: 22px;
    padding-right: 22px;
}

/* Layout UNIFORME per tutte le card: titolo sempre in alto, foto ad altezza
   costante, prezzo sempre alla stessa altezza. Card con scheda web: foto a sx +
   specifiche a dx. Card senza scheda web: foto centrata.
   Selettori prefissati .woocommerce ul.products per vincere sulla cascata del tema. */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    /* prima riga in alto, ultima riga (prezzo) forzata in basso */
    align-content: space-between;
}
/* Titolo prodotto: completo, una sola riga, troncato con ellissi */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    order: 1;
    width: 100%;
    text-align: center;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-line-clamp: unset;
    min-height: 0;
}
.woocommerce ul.products li.product .shop-product-image-wrap {
    order: 2;
    width: 42%;
    aspect-ratio: 1;
    padding: 3px;
    margin: 0 auto;            /* foto centrata nelle card senza scheda web */
}
.woocommerce ul.products li.product.has-scheda-web .shop-product-image-wrap {
    margin: 0;                 /* con scheda web: foto a sinistra */
}
.woocommerce ul.products li.product ul.shop-scheda-web {
    order: 3;
    width: 58%;
    margin: 0;
    padding: 2px 12px 2px 8px;
}
/* Riga consegna: badge classe energetica a sx, tempi di consegna a dx */
.woocommerce ul.products li.product .shop-savings  { order: 4; width: 100%; }
.woocommerce ul.products li.product .shop-energy-label {
    order: 5;
    width: auto;
    margin-right: auto;        /* spinge la consegna a destra */
}
.woocommerce ul.products li.product .shop-delivery {
    order: 6;
    width: auto;
    align-items: flex-end;     /* testo consegna allineato a destra */
}

/* Logo marchio centrato in cima alla card */
.woocommerce ul.products li.product .shop-cardtop {
    order: 0;
    width: 100%;
    padding: 6px 14px 2px;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* tutti i loghi forzati alla stessa dimensione (box fisso, proporzioni mantenute) */
.shop-brand-logo {
    height: auto;
    max-height: 100%;
    width: auto;
    max-width: 60%;
    object-fit: contain;
    object-position: left center;
    display: block;
}
.shop-brand-name {
    font-size: 13px;
    font-weight: 700;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* Barra in fondo: prezzo a sx + bottone a dx, stessa riga */
.shop-buybar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 4px 12px 10px;
}
.shop-buybar .price { margin: 0; text-align: left; }
.woocommerce ul.products li.product .shop-buybar .button { margin: 0 !important; }

/* Overlay etichetta energetica (click sul badge classe) */
.shop-energy-label[data-energy-label] { cursor: pointer; }
.shop-energy-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.82);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    cursor: zoom-out;
}
.shop-energy-overlay img {
    max-width: 92vw;
    max-height: 92vh;
    background: #fff;
    border-radius: 4px;
}

/* Etichetta energetica nella pagina prodotto */
.shop-energy-label-box {
    margin: 12px 0;
}
.shop-energy-label-box img {
    max-height: 150px;
    width: auto;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    display: block;
}

/* === Banner homepage (sotto card categorie) === */
.shop-banner-row {
    padding: 16px 0 0;
}
.shop-banner-card {
    background: var(--shop-white);
    border: 1px solid var(--shop-gray-200);
    border-radius: 22px;
    padding: 14px;
    box-sizing: border-box;
    display: flex;
    gap: 14px;
    align-items: stretch;
    position: relative;
}

.shop-banner-strip {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 14px;
    height: 30px;
    display: flex;
    gap: 14px;
    z-index: 3;
    pointer-events: none;
}
.shop-banner-strip-cell {
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #000;
    font-weight: 600;
    font-size: 22px;
    border-radius: 0 0 10px 10px;
    padding: 0 10px;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.shop-banner-strip-banner {
    flex: 0 0 calc(75% - 7px);
}
.shop-banner-strip-thumb {
    flex: 0 0 calc(25% - 7px);
    font-size: 18px;
}
.shop-chevron-up {
    width: 30px;
    height: 30px;
    color: var(--shop-accent);
    flex-shrink: 0;
}

/* MIGLIORA MOBILE — striscia volantino: testo molto piu' piccolo, ogni scritta nei limiti
   della propria cella (banner 75% / anteprima 25%) come desktop. Dopo la base per ordine-sorgente. */
@media (max-width: 768px), (max-height: 480px) {
    .shop-banner-strip { height: 24px; bottom: 8px; left: 8px; right: 8px; gap: 8px; }
    /* testo card volantino +40% (8->11.2, 7.5->10.5) */
    .shop-banner-strip-cell { font-size: 11.2px; padding: 0 5px; gap: 3px; }
    .shop-banner-strip-thumb { font-size: 10.5px; }
    .shop-chevron-up { width: 13px; height: 13px; }
}
.shop-banner-link {
    display: block;
    flex: 0 0 calc(75% - 7px);
    border-radius: 12px;
    overflow: hidden;
    transition: all var(--shop-transition);
    border: 1px solid transparent;
}
.shop-banner-link:hover {
    border-color: var(--shop-accent);
    outline: 3px solid rgba(255,102,0,0.18);
    outline-offset: 0;
}
.shop-banner-link img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 10px;
}
.shop-volantino-thumb {
    flex: 0 0 calc(25% - 7px);
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--shop-gray-200);
    transition: all var(--shop-transition);
    background: var(--shop-white);
    display: block;
    position: relative;
}
.shop-volantino-thumb:hover {
    border-color: var(--shop-accent);
    outline: 3px solid rgba(255,102,0,0.18);
    outline-offset: 0;
}
.shop-volantino-thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    border-radius: 10px;
}


/* === Badge "In Volantino" === */
.shop-volantino-badge {
    display: inline-block;
    background: var(--shop-accent);
    color: #fff;
    font-weight: 700;
    font-size: 11px;
    padding: 4px 6px;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    line-height: 1.3;
}
.shop-volantino-badge::before { content: ""; }
.shop-product-image-wrap { position: relative; }
li.product .shop-volantino-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 999;
    pointer-events: none;
}
ul.products li.product { position: relative; }


/* === Ultimi arrivi: card + slider 4 visibili / 12 totali === */
.shop-arrivals-row {
    padding: 24px 0 0;
}
.shop-arrivals-card {
    background: var(--shop-white);
    border: 1px solid var(--shop-gray-200);
    border-radius: 22px;
    padding: 18px 18px 22px;
    box-sizing: border-box;
}
.shop-arrivals-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: #000;
    font-weight: 600;
    font-size: 22px;
    margin-bottom: 14px;
    white-space: nowrap;
}
.shop-arrivals-title-text {
    flex: 1;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.shop-arrivals-nav-btn {
    background: transparent;
    border: 0;
    color: var(--shop-accent);
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 50%;
    transition: all var(--shop-transition);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.shop-arrivals-nav-btn svg {
    width: 30px;
    height: 30px;
}
.shop-arrivals-nav-btn:hover,
.shop-arrivals-nav-btn:focus,
.shop-arrivals-nav-btn:active {
    background: transparent !important;
    outline: none !important;
    box-shadow: none !important;
}
.shop-arrivals-nav { display: flex; gap: 8px; }
.shop-arrivals-btn {
    width: 36px; height: 36px;
    border-radius: 50%;
    border: 1px solid var(--shop-gray-200);
    background: var(--shop-white);
    color: var(--shop-primary);
    font-size: 20px;
    cursor: pointer;
    transition: all var(--shop-transition);
    line-height: 1;
    display: flex; align-items: center; justify-content: center;
}
.shop-arrivals-btn:hover {
    border-color: var(--shop-accent);
    color: var(--shop-accent);
    box-shadow: 0 0 0 3px rgba(255,102,0,0.15);
}
.shop-arrivals-track {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding-bottom: 6px;
    scrollbar-width: thin;
}
.shop-arrivals-track::-webkit-scrollbar { height: 8px; }
.shop-arrivals-track::-webkit-scrollbar-thumb { background: var(--shop-gray-200); border-radius: 4px; }
.shop-arrival-item {
    flex: 0 0 calc(25% - 11px);
    scroll-snap-align: start;
    background: var(--shop-white);
    border: 1px solid var(--shop-gray-200);
    border-radius: 14px;
    padding: 10px;
    text-decoration: none;
    color: inherit;
    transition: all var(--shop-transition);
    display: flex;
    flex-direction: column;
}
.shop-arrival-item:hover {
    border-color: var(--shop-accent);
    box-shadow: 0 0 0 3px rgba(255,102,0,0.15);
}
.shop-arrival-img {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: #fafafa;
    margin-bottom: 10px;
}
.shop-arrival-img img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}
.shop-arrival-noimg {
    width: 100%; height: 100%;
    background: linear-gradient(135deg, #f0f0f0 25%, #fafafa 25%, #fafafa 50%, #f0f0f0 50%, #f0f0f0 75%, #fafafa 75%);
    background-size: 12px 12px;
}
.shop-arrival-title {
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: 6px;
    color: #333;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 32px;
}
.shop-arrival-price {
    font-size: 15px;
    font-weight: 800;
    color: var(--shop-primary);
    margin-top: auto;
}
.shop-arrival-price .woocommerce-Price-amount { font-size: inherit; }
.shop-arrival-price del { color: var(--shop-gray-500); font-weight: 400; font-size: 12px; margin-right: 6px; }
@media (max-width: 900px) {
    .shop-arrival-item { flex: 0 0 calc(50% - 7px); }
}
@media (max-width: 540px) {
    /* Migliora Mobile: 2 card per volta anche su telefoni piccoli (era 80% = ~1 card) */
    .shop-arrival-item { flex: 0 0 calc(50% - 7px); }
}
/* Migliora Mobile: su mobile nascondo le frecce nav arancio (si scorre con swipe).
   DOPO la base .shop-arrivals-nav-btn (~2853) per vincere l'ordine-sorgente. */
@media (max-width: 768px), (max-height: 480px) {
    .shop-arrivals-nav-btn { display: none; }
}


/* === Ultimi arrivi: slider con card WC standard === */
.shop-arrivals-viewport { overflow: hidden; width: 100%; padding: 4px 0; }
.woocommerce ul.products.shop-arrivals-products,
ul.products.shop-arrivals-products {
    display: flex !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    will-change: transform;
    width: max-content !important;
    overflow: visible !important;
}
.woocommerce ul.products.shop-arrivals-products > li.product,
ul.products.shop-arrivals-products > li.product {
    flex: 0 0 calc((100vw - 80px) / 4) !important;
    width: calc((100vw - 80px) / 4) !important;
    max-width: 320px !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
}
@media (max-width: 1100px) {
    .shop-arrivals-products > li.product { flex: 0 0 calc(33.333% - 7px) !important; }
}
@media (max-width: 768px), (max-height: 480px) {
    /* Migliora Mobile: SOLO 2 card per volta. Il container e' width:max-content, quindi il
       flex-basis % NON si applica (vinceva la width della base = 1/4 viewport -> 4 card):
       dimensiono la WIDTH in vw (1/2) e tolgo aspect-ratio 1/1 cosi' le card diventano piu'
       alte (altezza = contenuto) e il contenitore Ultimi arrivi si alza, come richiesto. */
    /* NB: stesso selettore (specificita') della base, altrimenti tra due !important vince
       la base piu' specifica e restano 4 card piccole (1/4 viewport). */
    .woocommerce ul.products.shop-arrivals-products > li.product,
    ul.products.shop-arrivals-products > li.product {
        flex: 0 0 calc((100vw - 56px) / 2) !important;
        width: calc((100vw - 56px) / 2) !important;
        aspect-ratio: auto !important;
    }
    /* "Ultimi arrivi" SENZA box su mobile: niente sfondo/bordo/raggio/padding -> restano
       solo titolo+chevron e le 2 card a filo, come un listato categoria. (100vw-56px)/2
       tiene conto del solo padding .col-full (40px) + gap (10px), il box ora non occupa. */
    .shop-arrivals-card { background: transparent; border: none; border-radius: 0; padding: 0; }
    .shop-arrivals-row { padding-top: 8px; }
}


/* === Ultimi arrivi: strip titolo con chevron down (stile banner strip) === */
.shop-arrivals-card { position: relative; }
.shop-arrivals-strip {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 14px;
    height: 30px;
    display: flex;
    z-index: 3;
    pointer-events: none;
}
.shop-arrivals-strip-cell {
    flex: 1;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #000;
    font-weight: 600;
    font-size: 22px;
    border-radius: 0 0 10px 10px;
    padding: 0 10px;
    text-align: center;
}
.shop-chevron-down {
    width: 30px;
    height: 30px;
    color: var(--shop-accent);
    flex-shrink: 0;
}

/* === Nasconde shop archive content sulla home (NON la card Ultimi arrivi) === */
body.home .woocommerce-result-count,
body.home .woocommerce-ordering,
body.home .woocommerce ul.products.columns-4,
body.home .woocommerce-pagination,
body.home .woocommerce-products-header,
body.home .page-title,
body.home .entry-title {
    display: none !important;
}


/* =================================================================
   Card prodotto WC — Layout 5 fasce orizzontali (regola canonica)
   Fascia 1 (15%): logo marchio sx + badge Nuovo (sopra) / Volantino (sotto) dx
   Fascia 2 (5%):  titolo prodotto
   Fascia 3 (50%): foto sx 40% + scheda web dx 60%
   Fascia 4 (10%): etichetta energetica sx + delivery dx
   Fascia 5 (20%): prezzo sx + bottone dx (buybar, fuori dal link)
   ================================================================= */

/* Card: flex column, fascia 5 (buybar) prende l'ultimo 20% */
.woocommerce ul.products li.product {
    display: flex !important;
    flex-direction: column !important;
}

/* Link prodotto: occupa 80% verticale, grid 2 colonne x 4 righe */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
    flex: 1 1 80% !important;
    height: 80% !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-rows: 15fr 10fr 45fr 10fr !important;
    grid-template-columns: 40% 60% !important;
    column-gap: 8px !important;
    padding: 6px 10px !important;
    overflow: hidden !important;
}

/* Fascia 1: logo marchio (riga intera, logo allineato sx) */
.woocommerce ul.products li.product .shop-cardtop {
    grid-row: 1 !important;
    grid-column: 1 / -1 !important;
    width: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
}
.woocommerce ul.products li.product .shop-cardtop .shop-brand-logo {
    width: auto !important;
    height: auto !important;
    max-width: 60% !important;
    max-height: 70% !important;
    object-fit: contain !important;
    display: block !important;
    margin-right: auto !important;
}

/* Fascia 2: titolo prodotto centrato */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
    grid-row: 2 !important;
    grid-column: 1 / -1 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    text-align: left !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
    white-space: nowrap !important;
    align-self: center !important;
    min-width: 0 !important;
}

/* Fascia 3 sx: foto */
.woocommerce ul.products li.product .shop-product-image-wrap {
    grid-row: 3 !important;
    grid-column: 1 !important;
    width: auto !important;
    aspect-ratio: auto !important;
    max-height: 100% !important;
    padding: 4px !important;
    margin: 0 !important;
    order: unset !important;
}

/* Fascia 3 dx: scheda web */
.woocommerce ul.products li.product ul.shop-scheda-web {
    grid-row: 3 !important;
    grid-column: 2 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    align-self: stretch !important;
    order: unset !important;
}

/* Fascia 4 sx: etichetta energetica */
.woocommerce ul.products li.product .shop-energy-label {
    grid-row: 4 !important;
    grid-column: 1 !important;
    width: auto !important;
    margin: 0 !important;
    align-self: center !important;
    justify-self: start !important;
    order: unset !important;
}

/* Fascia 4 dx: delivery */
.woocommerce ul.products li.product .shop-delivery {
    grid-row: 4 !important;
    grid-column: 2 !important;
    width: auto !important;
    margin: 0 !important;
    align-self: center !important;
    justify-self: end !important;
    align-items: flex-end !important;
    order: unset !important;
}

/* Fascia 5: buybar (prezzo + bottone), figlio diretto della card, 20% finale */
.woocommerce ul.products li.product .shop-buybar {
    flex: 0 0 20% !important;
    height: 20% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 12px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* Elementi non previsti dalle 5 fasce: nascondo */
.shop-badge-sale,
.shop-badge-outlet,
.shop-savings { display: none !important; }


/* === Card 5 fasce — aggiustamenti v2 === */

/* Logo marchio: max altezza = band 1, allineato sx, mai sborda */
.woocommerce ul.products li.product .shop-cardtop {
    overflow: hidden !important;
}
.woocommerce ul.products li.product .shop-cardtop .shop-brand-logo {
    /* moved to height-based scaling rule above */
}
.woocommerce ul.products li.product .shop-cardtop .shop-brand-name {
    font-size: 13px !important;
    line-height: 1 !important;
    max-height: 100% !important;
    overflow: hidden !important;
}

/* Tolgo "Ricevi a domicilio in 24-48h" (testo + icona camion) */
.shop-delivery-info { display: none !important; }

/* Fascia 5 — Prezzo molto piu' grande */
.woocommerce ul.products li.product .shop-buybar .price,
.woocommerce ul.products li.product .shop-buybar .price ins,
.woocommerce ul.products li.product .shop-buybar .price ins .woocommerce-Price-amount,
.woocommerce ul.products li.product .shop-buybar .price > .woocommerce-Price-amount {
    font-size: 54px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    color: #d11919 !important;
    margin: 0 !important;
}
.woocommerce ul.products li.product .shop-buybar .price del,
.woocommerce ul.products li.product .shop-buybar .price del .woocommerce-Price-amount {
    font-size: 13px !important;
    color: #888 !important;
}


/* === Logo marchio: confinamento rigoroso alla fascia 1 (15% card) === */
.woocommerce ul.products li.product .shop-cardtop {
    overflow: hidden !important;
    min-height: 0 !important;
    max-height: 100% !important;
}
/* Forzo min-height:0 anche sul grid container per onorare strettamente 15fr 10fr 45fr 10fr */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > * {
    min-height: 0 !important;
}


/* === Logo marchio: margine bianco dentro la fascia 1 === */
.woocommerce ul.products li.product .shop-cardtop {
    padding: 5px 4px 5px 6px !important;
    box-sizing: border-box !important;
}


/* === FORCE Logo marchio: dimensioni px fisse, mai sborda dalla fascia === */
img.shop-brand-logo,
div.shop-cardtop img.shop-brand-logo,
.woocommerce ul.products li.product div.shop-cardtop img.shop-brand-logo,
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link div.shop-cardtop img.shop-brand-logo {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 110px !important;
    max-height: 28px !important;
    object-fit: contain !important;
    object-position: left center !important;
    margin: 0 auto 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
}


/* === Fascia 5: prezzo +50% / bottoni -30% === */
.woocommerce ul.products li.product .shop-buybar .price,
.woocommerce ul.products li.product .shop-buybar .price ins,
.woocommerce ul.products li.product .shop-buybar .price ins .woocommerce-Price-amount,
.woocommerce ul.products li.product .shop-buybar .price > .woocommerce-Price-amount {
    font-size: 54px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    color: #d11919 !important;
}

.woocommerce ul.products li.product .shop-buybar .button {
    width: 59px !important;
    min-width: 59px !important;
    padding: 7px 0 !important;
    font-size: 12px !important;
}
.woocommerce ul.products li.product .shop-buybar .button svg {
    width: 14px !important;
    height: 14px !important;
}


/* === Megamenu categorie: angoli rounded === */
.shop-megamenu {
    border-radius: 16px !important;
    overflow: hidden;
}


/* === Megamenu close: sfondo blu Grandin + X bianca === */
.shop-megamenu-close,
button.shop-megamenu-close {
    background: var(--shop-accent) !important;
    color: #fff !important;
}
.shop-megamenu-close:hover {
    background: #003399 !important;
}


/* === No flash blu focus su card volantino (mouse click) === */
.shop-volantino-thumb:focus,
.shop-banner-link:focus,
.shop-banner-card:focus,
.shop-banner-card *:focus {
    outline: none !important;
}
.shop-volantino-thumb:focus-visible,
.shop-banner-link:focus-visible {
    outline: 3px solid rgba(255,102,0,0.35) !important;
    outline-offset: 2px;
}


/* === Hover: solo bordo arancio (niente outline ring) su tutte le card === */
.shop-volantino-thumb:hover,
.shop-banner-link:hover,
.shop-banner-card:hover {
    outline: none !important;
    border-color: var(--shop-accent) !important;
}

/* Card prodotto: bordo arancio su hover */
.woocommerce ul.products li.product {
    border: 1px solid var(--shop-gray-200) !important;
    transition: border-color var(--shop-transition), box-shadow var(--shop-transition), transform var(--shop-transition) !important;
}
.woocommerce ul.products li.product:hover {
    border-color: var(--shop-accent) !important;
}


/* =================================================================
   === CARD ANTEPRIMA PRODOTTO - FROZEN 2026-05-25 ===
   Tutte le regole CSS sopra che riguardano:
     li.product, .shop-cardtop, .shop-brand-logo, .shop-product-image-wrap,
     .shop-scheda-web, .shop-delivery, .shop-energy-label, .shop-buybar,
     .shop-badge-*, .shop-volantino-badge, .woocommerce-loop-product__title,
     .woocommerce-LoopProduct-link grid layout
   sono state validate dall'utente e devono restare COSI'.
   NON modificare senza richiesta esplicita.
   Vedi memory: feedback-card-anteprima-frozen.md
   ================================================================= */


/* === Benefits bar: card rettangolari cliccabili, icone senza pill === */
.shop-benefits-grid {
    gap: 14px !important;
    padding: 18px 0 !important;
}
a.shop-benefit-item {
    background: var(--shop-white);
    border: 1px solid var(--shop-gray-200) !important;
    border-radius: 14px !important;
    padding: 18px 16px !important;
    text-decoration: none !important;
    color: inherit !important;
    transition: border-color var(--shop-transition), box-shadow var(--shop-transition), transform var(--shop-transition);
    cursor: pointer;
}
a.shop-benefit-item:hover {
    border-color: var(--shop-accent) !important;
    box-shadow: var(--shop-shadow-md);
}
.shop-benefits-bar .shop-benefit-icon {
    background: transparent !important;
}


/* === Footer redesign: bianco con scritte blu, righe arancio mantenute === */

/* Tolgo riga blu sopra alla benefits bar */
.shop-benefits-bar {
    border-top: none !important;
}

/* Footer main: bianco invece di blu scuro */
.shop-footer-main {
    background: #fff !important;
    color: #003399 !important;
    border-top: 1px solid var(--shop-gray-200);
}

/* Titoli colonne: blu (riga arancio mantenuta da .shop-footer-title border-bottom) */
.shop-footer-main .shop-footer-title {
    color: #003399 !important;
}

/* Testo widget e link: blu, hover arancio */
.shop-footer-main .shop-footer-widget,
.shop-footer-main .shop-footer-widget p,
.shop-footer-main .shop-footer-widget p strong {
    color: #003399 !important;
}
.shop-footer-main .shop-footer-widget a {
    color: #003399 !important;
}
.shop-footer-main .shop-footer-widget a:hover {
    color: var(--shop-accent) !important;
}

/* Separatori liste: blu chiaro invece di bianco trasparente */
.shop-footer-main .shop-footer-widget ul li {
    border-bottom: 1px solid rgba(0,51,153,0.08) !important;
}

/* Icone SVG nel testo: blu */
.shop-footer-main .shop-footer-widget p svg {
    opacity: 1;
    color: #003399;
}


/* Benefit icons grandi come icone categorie */
.shop-benefit-icon {
    width: auto !important;
    height: auto !important;
}
.shop-benefit-icon svg {
    width: 60px !important;
    height: 60px !important;
}
/* MIGLIORA MOBILE: icone 4 card benefit -30% (60->42px). DOPO la base per vincere l'ordine. */
@media (max-width: 768px), (max-height: 480px) {
    .shop-benefit-icon svg { width: 40px !important; height: 40px !important; }
}


/* === Footer columns: tipografia & chevron === */

/* Intestazioni colonne extrabold */
.shop-footer-main .shop-footer-title {
    font-weight: 800 !important;
    letter-spacing: 0.6px;
}

/* Testo link/paragrafi in nero */
.shop-footer-main .shop-footer-widget,
.shop-footer-main .shop-footer-widget p,
.shop-footer-main .shop-footer-widget p strong,
.shop-footer-main .shop-footer-widget a {
    color: #111 !important;
}
.shop-footer-main .shop-footer-widget a:hover {
    color: var(--shop-accent) !important;
}

/* Chevron arancione doppio */
.shop-footer-main .shop-footer-widget ul li a::before {
    content: '\203A' !important;
    color: var(--shop-accent) !important;
    font-weight: 800 !important;
    font-size: 2.6em !important;
    line-height: 1 !important;
    margin-right: 8px !important;
    vertical-align: -2px;
}

/* Icone SVG nel Contattaci: arancione, leggermente piu' grandi */
.shop-footer-main .shop-footer-widget p svg {
    color: var(--shop-accent) !important;
    width: 32px !important;
    height: 32px !important;
    opacity: 1 !important;
}


/* Indirizzo multiriga nel Contattaci: SVG allineato in alto */
.shop-footer-main .shop-footer-widget p:has(.shop-footer-address) {
    align-items: flex-start !important;
}
.shop-footer-main .shop-footer-widget p:has(.shop-footer-address) svg {
    margin-top: 4px;
}
.shop-footer-address {
    line-height: 1.55;
    display: block;
}


/* Footer columns: meno spazio fra le righe */
.shop-footer-main .shop-footer-widget {
    line-height: 1.2 !important;
}
.shop-footer-main .shop-footer-widget ul li {
    padding: 1px 0 !important;
}
.shop-footer-main .shop-footer-widget ul li a {
    padding: 2px 0;
    display: inline-block;
}


/* Footer columns: interlinea ancora piu' stretta + chevron senza inflate del line-box */
.shop-footer-main .shop-footer-widget {
    line-height: 1 !important;
}
.shop-footer-main .shop-footer-widget ul li {
    padding: 0 !important;
}
.shop-footer-main .shop-footer-widget ul li a {
    padding: 3px 0 !important;
    display: inline-flex !important;
    align-items: center;
    line-height: 1 !important;
}
.shop-footer-main .shop-footer-widget ul li a::before {
    line-height: 0 !important;
    display: inline-block;
    vertical-align: middle;
}


/* === Hover: +1px arancio visivo via inset shadow (non sposta il layout) === */
.shop-search-form:hover,
.shop-search-form:focus-within,
.shop-cat-item:hover,
.shop-banner-link:hover,
.shop-banner-card:hover,
.shop-volantino-thumb:hover,
.shop-benefit-item:hover,
.shop-arrivals-card:hover,
.woocommerce ul.products li.product:hover {
    box-shadow: inset 0 0 0 1px var(--shop-accent), 0 4px 14px rgba(0,0,0,0.06) !important;
}


/* Footer bottom bar: arancio */
.shop-footer-bottom {
    background: var(--shop-accent) !important;
}
.shop-footer-bottom-inner,
.shop-footer-bottom-inner span,
.shop-footer-bottom-inner a {
    color: #fff !important;
}


/* === Spazi home + benefits bar (versione pulita) === */
.shop-benefits-bar {
    background: #f0f0f0 !important;
    padding: 30px 0 30px !important;
    margin: 0 !important;
}
.shop-banner-row {
    padding: 36px 0 0 !important;
    margin: 0 !important;
}
.shop-arrivals-row {
    padding: 0 !important;
    margin: 0 0 30px !important;
}


/* === Home: nascondo il blocco #content vuoto di Storefront (header WC vuoto) === */
/* NB: escludo la ricerca (.search): lì #content contiene i risultati e deve restare visibile. */
body.home #content,
body.home.page #content,
body.archive.post-type-archive-product:not(.search) #content {
    display: none !important;
}

/* In RICERCA nascondo banner volantino, "Ultimi arrivi" e le 8 card categoria fisse:
   al loro posto compaiono i chip-filtro delle categorie presenti nei risultati. */
body.search .shop-banner-row,
body.search .shop-arrivals-row,
body.search .shop-categories-bar {
    display: none !important;
}

/* Chip-filtro categorie in ricerca: riusano .gg-subcat-card del tema.
   Qui solo la spaziatura della barra e lo stato ATTIVO (arancio, come l'allegato). */
.gg-search-cats {
    margin-top: 14px !important;
}
.gg-subcat-card.is-active {
    border-color: var(--shop-accent) !important;
    color: var(--shop-accent) !important;
    box-shadow: inset 0 0 0 1px var(--shop-accent);
}


/* === Pagina Servizio di Consegna: tabelle listino === */
table.gg-delivery-table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0 24px;
    font-size: 14px;
}
table.gg-delivery-table thead th {
    background: var(--shop-accent);
    color: #fff;
    text-align: left;
    padding: 10px 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
table.gg-delivery-table thead th:last-child {
    text-align: right;
    width: 30%;
}
table.gg-delivery-table tbody td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--shop-gray-200);
}
table.gg-delivery-table tbody td:last-child {
    text-align: right;
    font-weight: 700;
    color: #d11919;
    white-space: nowrap;
}
table.gg-delivery-table tbody tr:hover {
    background: rgba(255,102,0,0.04);
}

/* Hero box pagina consegna */
.gg-delivery-hero-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin: 18px 0 30px;
}
.gg-delivery-card {
    background: #fff;
    border: 1px solid var(--shop-gray-200);
    border-radius: 12px;
    padding: 18px;
    text-align: center;
}
.gg-delivery-card h3 {
    color: var(--shop-accent);
    margin: 0 0 8px;
    font-size: 18px;
}
@media (max-width: 700px) {
    .gg-delivery-hero-grid { grid-template-columns: 1fr; }
}


/* === Pagina Servizio di Consegna: titoli === */
/* Titolo pagina centrato */
body.page-id-47205 .entry-title,
body.page-id-47205 .page-title,
body.page-id-47205 h1.entry-title {
    text-align: center !important;
}

/* H2 sezioni in extra bold per separare i blocchi */
body.page-id-47205 h2.gg-delivery-section,
.gg-delivery-section {
    font-weight: 900 !important;
    color: #003399;
    margin-top: 32px;
    padding-bottom: 6px;
    border-bottom: 3px solid var(--shop-accent);
}


/* === Tabelle pagina Consegna: angoli arrotondati === */
table.gg-delivery-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    border: 1px solid var(--shop-gray-200) !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
table.gg-delivery-table tbody tr:last-child td {
    border-bottom: none !important;
}


/* === #content top padding ridotto su tutte le pagine (era ~70px di Storefront) === */
#content.site-content {
    padding-top: 16px !important;
}
/* Su single product e archive (categorie) ulteriormente compatto */
body.single-product #content.site-content,
body.archive #content.site-content,
body.page #content.site-content {
    padding-top: 16px !important;
    margin-top: 0 !important;
}


/* === Reduce ulteriore spazio sopra contenuto pagine === */
#content.site-content {
    padding-top: 0 !important;
}
body.page #content.site-content,
body.single-product #content.site-content,
body.archive #content.site-content {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
/* breadcrumb compatto + niente margin-top sul titolo */
.woocommerce-breadcrumb,
.storefront-breadcrumb {
    margin: 0 0 8px !important;
    padding: 8px 0 !important;
}
.entry-header,
.page .entry-header,
.single-product .entry-header {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.entry-title,
h1.entry-title {
    margin-top: 0 !important;
    padding-top: 8px !important;
}


/* === Breadcrumb: pill bianca, no underline, testo piu' marcato === */
.woocommerce-breadcrumb,
.storefront-breadcrumb {
    background: #fff !important;
    border-radius: 999px !important;
    padding: 10px 18px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #333 !important;
    border: 1px solid var(--shop-gray-200);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 8px 0 12px !important;
}
.woocommerce-breadcrumb a,
.storefront-breadcrumb a {
    text-decoration: none !important;
    color: #003399 !important;
    font-weight: 600 !important;
}
.woocommerce-breadcrumb a:hover,
.storefront-breadcrumb a:hover {
    color: var(--shop-accent) !important;
    text-decoration: none !important;
}


/* === Breadcrumb: solo pill interna senza bordo === */
.storefront-breadcrumb {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 8px 0 !important;
    display: block !important;
}
.woocommerce-breadcrumb {
    border: none !important;
}


/* === Breadcrumb spostato nel header (plain, no pill) === */
.storefront-breadcrumb {
    display: none !important;
}
.shop-header-breadcrumb {
    background: var(--shop-white);
    padding: 0;
    border-bottom: 1px solid var(--shop-gray-200);
}
.shop-header-breadcrumb .col-full {
    padding: 10px 20px;
}
.shop-header-breadcrumb .woocommerce-breadcrumb {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #333 !important;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.shop-header-breadcrumb .woocommerce-breadcrumb a {
    color: #003399 !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}
.shop-header-breadcrumb .woocommerce-breadcrumb a:hover {
    color: var(--shop-accent) !important;
}
.shop-header-breadcrumb .shop-bc-home {
    display: inline-flex;
    align-items: center;
}


/* === No focus blu su tutte le card: solo arancio hover/active === */
.shop-benefit-item:focus,
.shop-benefit-item:focus-visible,
.shop-benefit-item:active,
.shop-cat-item:focus,
.shop-cat-item:focus-visible,
.shop-cat-item:active,
.shop-volantino-thumb:focus,
.shop-volantino-thumb:focus-visible,
.shop-banner-link:focus,
.shop-banner-link:focus-visible,
.shop-banner-card:focus,
.shop-banner-card:focus-visible,
.woocommerce ul.products li.product:focus,
.woocommerce ul.products li.product:focus-visible,
.woocommerce ul.products li.product > a:focus,
.woocommerce ul.products li.product > a:focus-visible,
.shop-arrivals-card:focus,
.shop-arrivals-card:focus-visible,
.shop-benefit-item a:focus,
a.shop-benefit-item:focus {
    outline: none !important;
    box-shadow: inset 0 0 0 1px var(--shop-accent), 0 4px 14px rgba(0,0,0,0.06) !important;
    border-color: var(--shop-accent) !important;
}


/* === Breadcrumb: testo doppio + nascondi titolo archivio === */
.woocommerce-breadcrumb {
    font-size: 20px !important;
    font-weight: 700 !important;
    padding: 14px 0 !important;
}
.woocommerce-breadcrumb a,
.woocommerce-breadcrumb .breadcrumb-separator {
    font-size: 20px !important;
}
.woocommerce-breadcrumb svg {
    width: 22px !important;
    height: 22px !important;
}

/* Titolo pagina archivio WC: visually hidden ma accessibile (SEO + screen reader) */
.woocommerce-products-header__title,
h1.woocommerce-products-header__title,
.page-title,
body.archive h1.entry-title,
body.tax-product_tag h1.entry-title,
body.tax-product_cat h1.entry-title {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}


/* Forza stessa dimensione su tutti i nodi del breadcrumb */
.woocommerce-breadcrumb,
.woocommerce-breadcrumb *,
.woocommerce-breadcrumb a,
.woocommerce-breadcrumb span {
    font-size: 20px !important;
    font-weight: 600 !important;
}
.woocommerce-breadcrumb svg {
    width: 22px !important;
    height: 22px !important;
}


/* Last item del breadcrumb nero esplicito (text node eredita da .woocommerce-breadcrumb) */
.shop-header-breadcrumb .woocommerce-breadcrumb {
    color: #111 !important;
}


/* === Archive: spazio prima del loop ridotto === */
body.archive #content.site-content {
    padding-top: 0 !important;
}
body.archive .site-main {
    padding-top: 12px !important;
}

/* === Filtri archive (brand + prezzo) === */
.gg-archive-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--shop-gray-200);
    border-radius: 12px;
    padding: 12px 16px;
    margin: 0 0 16px;
}
.gg-archive-filters .gg-filter {
    display: flex;
    align-items: center;
    gap: 8px;
}
.gg-archive-filters label {
    font-weight: 700;
    color: #003399;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.gg-archive-filters select,
.gg-archive-filters input[type="number"] {
    padding: 7px 10px;
    border: 1px solid var(--shop-gray-200);
    border-radius: 8px;
    font-size: 14px;
    width: 130px;
}
.gg-archive-filters input[type="number"] { width: 90px; }
.gg-filter-apply {
    background: var(--shop-accent) !important;
    color: #fff !important;
    border: none !important;
    padding: 8px 16px !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    cursor: pointer;
    font-size: 13px !important;
}
.gg-filter-apply:hover { background: var(--shop-accent-dark) !important; }
.gg-filter-reset {
    color: #d11919 !important;
    text-decoration: none !important;
    font-weight: 700;
    font-size: 13px;
    margin-left: auto;
}

/* === Paginazione: pallini blu, numero bianco === */
.woocommerce-pagination ul.page-numbers {
    border: none !important;
    display: flex !important;
    justify-content: center !important;
    gap: 6px !important;
    list-style: none;
    padding: 0;
    margin: 24px 0;
}
.woocommerce-pagination ul.page-numbers li {
    border: none !important;
    margin: 0 !important;
    display: inline-block !important;
}
.woocommerce-pagination ul.page-numbers li .page-numbers {
    background: #003399 !important;
    color: #fff !important;
    border-radius: 999px !important;
    width: 38px !important;
    height: 38px !important;
    line-height: 38px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    transition: all 0.2s;
}
.woocommerce-pagination ul.page-numbers li .page-numbers.current {
    background: var(--shop-accent) !important;
    color: #fff !important;
}
.woocommerce-pagination ul.page-numbers li .page-numbers:hover:not(.current) {
    background: #002270 !important;
}
.woocommerce-pagination ul.page-numbers li .page-numbers.dots {
    background: transparent !important;
    color: #003399 !important;
    font-size: 20px !important;
}


/* === Paginazione: niente bordi su pallini, chevron prev/next senza bg === */
.woocommerce-pagination ul.page-numbers li .page-numbers,
.woocommerce-pagination ul.page-numbers li .page-numbers:hover,
.woocommerce-pagination ul.page-numbers li .page-numbers:focus,
.woocommerce-pagination ul.page-numbers li .page-numbers:focus-visible,
.woocommerce-pagination ul.page-numbers li .page-numbers.current {
    box-shadow: none !important;
    border: none !important;
    outline: none !important;
}
/* Prev/Next: solo chevron, niente cerchio blu */
.woocommerce-pagination ul.page-numbers li .page-numbers.prev,
.woocommerce-pagination ul.page-numbers li .page-numbers.next,
.woocommerce-pagination ul.page-numbers li a.prev,
.woocommerce-pagination ul.page-numbers li a.next {
    background: transparent !important;
    color: var(--shop-accent) !important;
    width: 38px !important;
    height: 38px !important;
}
.woocommerce-pagination ul.page-numbers li .page-numbers.prev:hover,
.woocommerce-pagination ul.page-numbers li .page-numbers.next:hover,
.woocommerce-pagination ul.page-numbers li a.prev:hover,
.woocommerce-pagination ul.page-numbers li a.next:hover {
    background: transparent !important;
    color: #003399 !important;
}
.woocommerce-pagination ul.page-numbers li .page-numbers svg {
    display: block;
}


/* Chevron pagination: char Unicode ‹ › stessa estetica dei link footer */
.woocommerce-pagination .shop-chevron-pag {
    color: var(--shop-accent) !important;
    font-size: 2.6em !important;
    font-weight: 600 !important;
    line-height: 0 !important;
    display: inline-block;
    vertical-align: middle;
}


/* === Neutralizza FontAwesome icon Storefront su pagination prev/next === */
.woocommerce-pagination .next,
.woocommerce-pagination .prev,
.woocommerce-pagination .page-numbers.next,
.woocommerce-pagination .page-numbers.prev {
    text-indent: 0 !important;
    overflow: visible !important;
}
.woocommerce-pagination .next::after,
.woocommerce-pagination .prev::after,
.woocommerce-pagination .page-numbers.next::after,
.woocommerce-pagination .page-numbers.prev::after {
    content: none !important;
    display: none !important;
}


/* === Pagination prev/next: ZERO box, solo chevron === */
.woocommerce-pagination ul.page-numbers li .page-numbers.next,
.woocommerce-pagination ul.page-numbers li .page-numbers.prev,
.woocommerce-pagination ul.page-numbers li a.next,
.woocommerce-pagination ul.page-numbers li a.prev,
.woocommerce-pagination ul.page-numbers li .next,
.woocommerce-pagination ul.page-numbers li .prev,
.woocommerce-pagination .page-numbers.next,
.woocommerce-pagination .page-numbers.prev {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    outline: none !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    padding: 0 8px !important;
    line-height: 1 !important;
}


/* === Pulisco anche <li> e <a> wrapper di next/prev: zero bg/border === */
.woocommerce-pagination ul.page-numbers li:has(.next),
.woocommerce-pagination ul.page-numbers li:has(.prev),
.woocommerce-pagination ul.page-numbers li:has(a.next),
.woocommerce-pagination ul.page-numbers li:has(a.prev) {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.woocommerce-pagination a.next,
.woocommerce-pagination a.prev {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
}
/* Storefront base: forza override anche su :not(.current) */
.woocommerce-pagination ul.page-numbers li .page-numbers.next:not(.current),
.woocommerce-pagination ul.page-numbers li .page-numbers.prev:not(.current),
.woocommerce-pagination ul.page-numbers li .next:not(.current),
.woocommerce-pagination ul.page-numbers li .prev:not(.current) {
    background: transparent !important;
    background-color: transparent !important;
}


/* === Chevron pagination uguale a shop-arrivals-nav-btn (slider Ultimi arrivi) === */
.woocommerce-pagination svg.shop-chevron-pag {
    width: 30px !important;
    height: 30px !important;
    display: block !important;
    color: var(--shop-accent) !important;
    background: transparent !important;
}
/* NUKE definitivo riquadro sotto chevron */
.woocommerce-pagination li:last-child,
.woocommerce-pagination li:first-child,
.woocommerce-pagination ul.page-numbers > li > a.next,
.woocommerce-pagination ul.page-numbers > li > a.prev,
.woocommerce-pagination ul.page-numbers > li > .next,
.woocommerce-pagination ul.page-numbers > li > .prev {
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    border: 0 none transparent !important;
    border-radius: 0 !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    padding: 4px !important;
    line-height: 0 !important;
}


/* === Archive top bar: filtri + pagination su stessa riga === */
.gg-archive-filters {
    flex: 1 1 auto;
    margin: 0 !important;
}
.gg-top-pagination {
    flex: 0 0 auto;
}
.gg-top-pagination .woocommerce-pagination {
    margin: 0 !important;
}
.gg-top-pagination .woocommerce-pagination ul.page-numbers {
    margin: 0 !important;
}

/* Container che racchiude entrambe le sezioni (filtri + pagination) */
.woocommerce-products-header,
nav.woocommerce-shop-loop {
    /* placeholder */
}

/* Wrappo via flex il blocco prima del loop */
.woocommerce-shop-loop-topbar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin: 0 0 18px;
}

/* Tolgo l'ordering ovunque appaia */
.woocommerce-ordering,
form.woocommerce-ordering { display: none !important; }

/* Allineo pallini paginazione - centrati verticalmente, flex baseline pulita */
.woocommerce-pagination ul.page-numbers {
    align-items: center !important;
}
.woocommerce-pagination ul.page-numbers li {
    display: inline-flex !important;
    align-items: center !important;
}


/* === Topbar archive: filtri + pagination affiancati === */
.gg-shop-topbar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin: 0 0 18px;
}
.gg-shop-topbar .gg-archive-filters {
    flex: 1 1 auto;
}
.gg-shop-topbar .gg-top-pagination {
    flex: 0 0 auto;
    margin-left: auto;
}


/* === Price range slider === */
.gg-filter-price {
    flex-wrap: wrap;
    gap: 10px;
}
.gg-price-range {
    position: relative;
    width: 200px;
    height: 24px;
    flex: 0 0 auto;
}
.gg-price-track {
    position: absolute;
    top: 10px;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--shop-gray-200);
    border-radius: 2px;
}
.gg-price-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    background: var(--shop-accent);
    border-radius: 2px;
}
.gg-price-range input[type="range"] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 24px;
    background: transparent;
    pointer-events: none;
    -webkit-appearance: none;
    appearance: none;
    margin: 0;
    padding: 0;
}
.gg-price-range input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #003399;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    cursor: pointer;
    pointer-events: auto;
}
.gg-price-range input[type="range"]::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #003399;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    cursor: pointer;
    pointer-events: auto;
}
.gg-price-range input[type="range"]::-webkit-slider-runnable-track {
    background: transparent;
}
.gg-price-values {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    color: #003399;
    font-size: 13px;
}
.gg-price-values span { white-space: nowrap; }

/* Result count nella topbar */
.gg-result-count {
    flex: 0 0 auto;
    font-size: 13px;
    color: #555;
    font-weight: 600;
}
.gg-result-count .woocommerce-result-count {
    margin: 0 !important;
    padding: 0 !important;
}


/* === Topbar archive: unifica TUTTO nel box bianco === */
.gg-shop-topbar {
    background: #fff !important;
    border: 1px solid var(--shop-gray-200) !important;
    border-radius: 12px !important;
    padding: 12px 16px !important;
    margin: 0 0 18px !important;
}
.gg-shop-topbar .gg-archive-filters {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Dropdown marchio: blu con testo bianco */
.gg-archive-filters .gg-filter-brand select {
    background: #003399 !important;
    color: #fff !important;
    border: 1px solid #003399 !important;
    font-weight: 700 !important;
}
.gg-archive-filters .gg-filter-brand select option {
    background: #fff !important;
    color: #003399 !important;
}

/* Result count + paginazione: senza bg extra */
.gg-shop-topbar .gg-result-count,
.gg-shop-topbar .gg-top-pagination {
    background: transparent !important;
}


/* === Topbar: "Filtra" label + overlay brand con switch === */
.gg-filtra-label {
    font-weight: 800;
    color: #003399;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 14px;
    margin-right: 4px;
}

/* Brand trigger: pill blu con scritta bianca */
.gg-brand-trigger {
    background: #003399 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 8px 16px !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.gg-brand-trigger:hover {
    background: #002270 !important;
}
.gg-brand-trigger svg {
    color: #fff;
}

/* Overlay brand */
.gg-filter-brand { position: relative; }
.gg-brand-overlay {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: 320px;
    max-height: 420px;
    background: #fff;
    border: 1px solid var(--shop-gray-200);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    z-index: 100;
    display: none;
    flex-direction: column;
}
.gg-brand-overlay.open { display: flex; }
.gg-brand-overlay-header {
    padding: 12px 16px;
    border-bottom: 1px solid var(--shop-gray-200);
    font-weight: 800;
    color: #003399;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.gg-brand-close {
    background: var(--shop-accent);
    color: #fff;
    border: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    line-height: 1;
    font-size: 18px;
}
.gg-brand-list {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0;
}
.gg-brand-row {
    display: flex;
    align-items: center;
    padding: 8px 16px;
    cursor: pointer;
}
.gg-brand-row:hover { background: rgba(255,102,0,0.06); }
.gg-brand-name {
    flex: 1;
    font-size: 14px;
    color: #333;
}
.gg-brand-row input.gg-brand-cb { display: none; }
.gg-brand-switch {
    width: 36px;
    height: 20px;
    background: #ccc;
    border-radius: 999px;
    position: relative;
    transition: background 0.2s;
    flex-shrink: 0;
}
.gg-brand-switch::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.2s;
}
.gg-brand-row input:checked ~ .gg-brand-switch {
    background: #43a047;
}
.gg-brand-row input:checked ~ .gg-brand-switch::after {
    transform: translateX(16px);
}
.gg-brand-overlay-footer {
    padding: 12px 16px;
    border-top: 1px solid var(--shop-gray-200);
    text-align: right;
}
.gg-brand-overlay-footer .gg-filter-apply {
    width: 100%;
}


/* === Filter polish: switch arancio + titolo cliccabile + main button === */
.gg-brand-row input:checked ~ .gg-brand-switch {
    background: var(--shop-accent) !important;
}
.gg-brand-overlay-title.clear {
    color: var(--shop-accent);
    cursor: pointer;
    text-decoration: underline;
}
.gg-brand-overlay-title.clear:hover {
    color: var(--shop-accent-dark);
}
.gg-filter-main {
    margin-left: 0;   /* sta subito dopo l'ultimo slider (prima era dentro il box prezzo) */
}


/* === Tasto Filtra: stesso pill del brand trigger === */
.gg-filter-apply,
.gg-filter-main {
    border-radius: 999px !important;
    padding: 8px 22px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}


/* === Brand overlay: z-index alto + titolo centrato senza underline === */
.gg-brand-overlay {
    z-index: 9999 !important;
}
.gg-brand-overlay-header {
    text-align: center !important;
    justify-content: center !important;
}
.gg-brand-overlay-title,
.gg-brand-overlay-title.clear {
    text-decoration: none !important;
    text-align: center;
    width: 100%;
}


/* === Subcategory cards (solo testo) === */
.gg-subcat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
    margin: 0 0 18px;
}
.gg-subcat-card {
    background: #fff;
    border: 1px solid var(--shop-gray-200);
    border-radius: 12px;
    padding: 18px 14px;
    text-align: center;
    text-decoration: none !important;
    color: #003399 !important;
    font-weight: 700;
    font-size: 14px;
    line-height: 1.3;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 78px;
    transition: border-color var(--shop-transition), box-shadow var(--shop-transition);
}
.gg-subcat-card:hover {
    border-color: var(--shop-accent) !important;
    box-shadow: inset 0 0 0 1px var(--shop-accent), 0 4px 14px rgba(0,0,0,0.06);
    color: var(--shop-accent) !important;
}
@media (max-width: 720px) {
    .gg-subcat-grid { grid-template-columns: repeat(2, 1fr); }
}


/* === Subcategory cards: piccole, nero, centrate, attaccate sotto header === */
.gg-subcat-grid {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center !important;
    gap: 10px;
    margin: 0 0 12px !important;
    grid-template-columns: unset !important;
}
.gg-subcat-card {
    color: #111 !important;
    font-size: 12px !important;
    font-weight: 700;
    padding: 10px 14px !important;
    min-height: 0 !important;
    min-width: 110px;
    max-width: 180px;
    flex: 0 0 auto;
    line-height: 1.2;
}
.gg-subcat-card:hover {
    color: var(--shop-accent) !important;
}

/* Pull-up: niente spazio grigio sopra alla grid */
body.archive .site-main {
    padding-top: 6px !important;
}


/* === NUKE gap sopra contenuto su archive: tutto a 0 === */
body.archive #content,
body.archive #content.site-content,
body.archive #content > .col-full,
body.archive .site-main,
body.archive #primary {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
body.archive .shop-header-breadcrumb {
    margin-bottom: 0 !important;
    padding-bottom: 4px !important;
}
body.archive .gg-subcat-grid {
    margin-top: 15px !important;
    margin-bottom: 15px !important;
}


/* Subcat cards: meno bold + zero gap header */
.gg-subcat-card {
    font-weight: 500 !important;
}
.gg-subcat-grid {
    margin: 0 0 12px !important;
}
body.archive .shop-header-breadcrumb {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
body.archive .shop-header-main {
    margin-bottom: 0 !important;
}


/* Subcat: testo bold + zero gap header (super aggressivo) */
.gg-subcat-card {
    font-weight: 700 !important;
}
body.archive .shop-header-area,
body.archive .shop-header-breadcrumb,
body.archive #content,
body.archive #content > .col-full,
body.archive .site-main,
body.archive #primary {
    padding: 0 !important;
    margin: 0 !important;
}
body.archive .shop-header-breadcrumb {
    padding: 6px 0 !important;
}
body.archive .gg-subcat-grid {
    margin-top: 15px !important;
    margin-bottom: 15px !important;
    margin: 0 !important;
    padding-top: 0 !important;
}


/* === WC products header (wrapper vuoto): nasconde tutto il header === */
body.archive .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header,
header.woocommerce-products-header {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* Subcat: piu' aria sopra/sotto; topbar piu' vicino alle card prodotti */
body.archive .gg-subcat-grid {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
}
.gg-shop-topbar {
    margin-bottom: 0 !important;
}


/* Etichette prezzo slider: extrabold + colore rosso card prodotto */
.gg-price-cur-min,
.gg-price-cur-max {
    font-weight: 600 !important;
    font-size: 16px !important;
    color: #d11919 !important;
}

/* No focus ring blu sui bottoni Filtra/Applica */
.gg-filter-apply:focus,
.gg-filter-apply:focus-visible,
.gg-filter-apply:active,
.gg-filter-main:focus,
.gg-filter-main:focus-visible,
.gg-filter-main:active,
.gg-brand-trigger:focus,
.gg-brand-trigger:focus-visible,
.gg-brand-trigger:active {
    outline: none !important;
    box-shadow: none !important;
}


/* Pallino rosso reset filtri (subito dopo tasto Filtra) */
.gg-filter-reset-dot {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: #d11919 !important;
    color: #fff !important;
    border-radius: 50% !important;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    margin-left: -8px;
    transition: background 0.15s;
}
.gg-filter-reset-dot:hover {
    background: #a01313 !important;
}


/* Reset dot: ridotto del 30% (38->27, svg 18->13) */
.gg-filter-reset-dot {
    width: 27px !important;
    height: 27px !important;
    padding: 0 !important;
}
.gg-filter-reset-dot svg {
    width: 13px;
    height: 13px;
    display: block;
}

/* Slider prezzo: importi e pallini piu' grandi */
.gg-price-cur-min,
.gg-price-cur-max {
    font-size: 20px !important;
}
.gg-price-range {
    height: 30px;
}
.gg-price-range input[type="range"] {
    height: 30px;
}
.gg-price-range input[type="range"]::-webkit-slider-thumb {
    width: 24px;
    height: 24px;
}
.gg-price-range input[type="range"]::-moz-range-thumb {
    width: 24px;
    height: 24px;
}
.gg-price-track {
    top: 13px;
}


/* === Result count come link ordinamento, centrato tra filtri e pagination === */
.gg-shop-topbar a.gg-result-count {
    flex: 1 1 auto;
    text-align: center;
    color: #003399 !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 0 auto;
}
.gg-shop-topbar a.gg-result-count:hover {
    color: var(--shop-accent) !important;
}
.gg-sort-chevron svg {
    width: 16px;
    height: 16px;
    color: var(--shop-accent);
}


/* === Sort bar (centro topbar) === */
.gg-sort-bar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1 1 auto;
    justify-content: center;
}
.gg-sort-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #003399 !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    text-decoration: none !important;
}
.gg-sort-link:hover {
    color: var(--shop-accent) !important;
}
.gg-sort-link .shop-chevron-pag {
    color: var(--shop-accent) !important;
    width: 22px !important;
    height: 22px !important;
}
.gg-result-count-text {
    color: #555;
    font-size: 13px;
    font-weight: 600;
}


/* Sort bar leggermente a sx, count attaccato a pagination */
.gg-sort-bar {
    justify-content: flex-start !important;
    flex: 0 1 auto !important;
    margin-left: auto !important;
    
}
.gg-result-count-text {
    margin-left: auto;
    margin-right: 12px;
}

/* No focus blu su subcat card + altri elementi cliccabili topbar */
.gg-subcat-card:focus,
.gg-subcat-card:focus-visible,
.gg-subcat-card:active,
.gg-sort-link:focus,
.gg-sort-link:focus-visible,
.gg-filter-reset-dot:focus,
.gg-filter-reset-dot:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}
.gg-subcat-card:active,
.gg-subcat-card:focus-visible {
    border-color: var(--shop-accent) !important;
    box-shadow: inset 0 0 0 1px var(--shop-accent) !important;
}

/* === Rimuovo focus ring viola/blu su elementi interattivi globalmente === */
a:focus,
a:focus-visible,
button:focus,
button:focus-visible,
input:focus,
input:focus-visible,
select:focus,
select:focus-visible,
[role="button"]:focus,
[role="button"]:focus-visible,
.shop-logo a:focus,
.shop-logo a:focus-visible,
.gg-price-range input[type="range"]:focus,
.gg-price-range input[type="range"]:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Aria sui lati per il grid prodotti su archive */
body.archive .site-main,
body.archive ul.products {
    padding-left: 10px !important;
    padding-right: 10px !important;
}


/* === Sort dropdown: come testo cliccabile === */
.gg-sort-dropdown {
    position: relative;
    display: inline-block;
}
button.gg-sort-trigger {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    color: #003399 !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
button.gg-sort-trigger:hover {
    color: var(--shop-accent) !important;
}
button.gg-sort-trigger .shop-chevron-pag {
    color: var(--shop-accent) !important;
    width: 22px !important;
    height: 22px !important;
}
.gg-sort-menu {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    border: 1px solid var(--shop-gray-200);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    z-index: 100;
    min-width: 260px;
    overflow: hidden;
}
.gg-sort-menu.open {
    display: block;
}
.gg-sort-option {
    display: block;
    padding: 10px 16px;
    color: #003399 !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 13px;
    transition: background 0.15s;
}
.gg-sort-option:hover {
    background: rgba(255,102,0,0.08);
    color: var(--shop-accent) !important;
}
.gg-sort-option.gg-sort-active {
    background: rgba(255,102,0,0.12);
    color: var(--shop-accent) !important;
    font-weight: 800;
}


/* Buybar: bottone sempre a destra anche se prezzo nascosto */
.shop-buybar .button,
.woocommerce ul.products li.product .shop-buybar .button {
    margin-left: auto !important;
}

/* Slider prezzo: 30% piu' largo + niente bordo bianco sui thumbs */
.gg-price-range {
    width: 260px !important;
}
.gg-price-range input[type="range"]::-webkit-slider-thumb {
    border: none !important;
}
.gg-price-range input[type="range"]::-moz-range-thumb {
    border: none !important;
}


/* Search dropdown: parent .shop-search relative per ancorare il dropdown fuori dal form */
.shop-search {
    position: relative;
}


/* === Single product: nascondi qualsiasi titolo/header duplicato fuori dal .summary === */
body.single-product .entry-header,
body.single-product header.entry-header,
body.single-product .page-title,
body.single-product .woocommerce-products-header,
body.single-product main > .entry-title,
body.single-product main > h1.entry-title,
body.single-product #primary > .entry-title,
body.single-product .content-area > .entry-title,
body.single-product .site-main > .entry-title {
    display: none !important;
}


/* === Pagine statiche (Consegne, Chi siamo, Note legali, Privacy Policy) === */
/* Applicano stesso stile della pagina Servizio di Consegna */
body.page-id-47205,
body.page-id-19689,
body.page-id-19686,
body.page-id-19692 {
}

/* Titolo pagina centrato */
body.page-id-47205 .entry-title,
body.page-id-19689 .entry-title,
body.page-id-19686 .entry-title,
body.page-id-19692 .entry-title,
body.page-id-47556 .entry-title,
body.page-id-47205 h1.entry-title,
body.page-id-19689 h1.entry-title,
body.page-id-19686 h1.entry-title,
body.page-id-19692 h1.entry-title,
body.page-id-47556 h1.entry-title {
    text-align: center !important;
    color: #003399;
    font-weight: 800;
}

/* H2 sezioni: extrabold blu con riga arancio sotto */
body.page-id-47205 h2,
body.page-id-19689 h2,
body.page-id-19686 h2,
body.page-id-19692 h2,
body.page-id-47556 h2 {
    font-weight: 900 !important;
    color: #003399;
    margin-top: 32px;
    padding-bottom: 6px;
    border-bottom: 3px solid var(--shop-accent);
}

/* H3 sotto-sezioni */
body.page-id-47205 h3,
body.page-id-19689 h3,
body.page-id-19686 h3,
body.page-id-19692 h3,
body.page-id-47556 h3 {
    color: #003399;
    font-weight: 800;
    margin-top: 20px;
}

/* Liste */
body.page-id-19689 ul li,
body.page-id-19686 ul li,
body.page-id-19692 ul li,
body.page-id-47556 ul li {
    line-height: 1.6;
    margin: 4px 0;
}

/* Tabelle */
body.page-id-19689 table,
body.page-id-19686 table,
body.page-id-19692 table,
body.page-id-47556 table {
    width: 100%;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    border: 1px solid var(--shop-gray-200) !important;
    margin: 14px 0 24px;
}
body.page-id-19689 table th,
body.page-id-19686 table th,
body.page-id-19692 table th,
body.page-id-47556 table th {
    background: var(--shop-accent);
    color: #fff;
    padding: 10px 14px;
    text-align: left;
    font-weight: 800;
}
body.page-id-19689 table td,
body.page-id-19686 table td,
body.page-id-19692 table td,
body.page-id-47556 table td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--shop-gray-200);
}
body.page-id-19689 table tr:last-child td,
body.page-id-19686 table tr:last-child td,
body.page-id-19692 table tr:last-child td,
body.page-id-47556 table tr:last-child td {
    border-bottom: none;
}

/* Blockquote come box info */
body.page-id-47205 blockquote,
body.page-id-19689 blockquote,
body.page-id-19686 blockquote,
body.page-id-19692 blockquote,
body.page-id-47556 blockquote {
    background: #fff;
    border-left: none;
    padding: 14px 18px;
    margin: 14px 0;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

/* Foto inline arrotondate (es. negozio in Chi siamo) */
body.page-id-19689 .entry-content img,
body.page-id-19686 .entry-content img,
body.page-id-19692 .entry-content img,
body.page-id-47556 .entry-content img,
body.page-id-47205 .entry-content img {
    border-radius: 12px;
    max-width: 100%;
    height: auto;
}

/* Tolgo focus inset arancio dal link <a> della card prodotto (causava riga orizzontale al click) */
.woocommerce ul.products li.product > a:focus,
.woocommerce ul.products li.product > a:focus-visible,
.woocommerce ul.products li.product > a:active {
    box-shadow: none !important;
    border-color: transparent !important;
    outline: none !important;
}


/* === Orari negozio table === */
.gg-orari-table {
    width: 100%;
    max-width: 520px;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--shop-gray-200);
    margin: 14px 0 24px;
}
.gg-orari-table thead th {
    background: var(--shop-accent);
    color: #fff;
    padding: 10px 14px;
    text-align: left;
    font-weight: 800;
}
.gg-orari-table tbody td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--shop-gray-200);
}
.gg-orari-table tbody tr:last-child td {
    border-bottom: none;
}
.gg-orari-table tbody em {
    color: #d11919;
    font-style: italic;
    font-weight: 600;
}


/* Orari: CHIUSO + note chiusure */
.gg-orari-table .gg-chiuso {
    color: #d11919;
    font-weight: 900;
    letter-spacing: 0.5px;
}
.gg-chiusure {
    font-size: 14px;
    color: #003399;
    margin: 8px 0 24px;
}
.gg-chiusure strong {
    color: #d11919;
}

/* Pagine Nuovi prodotti / Più venduti: full-width come archive */
body.page-id-47509 .col-full,
body.page-id-47450 .col-full {
    max-width: 100% !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
}
body.page-id-47509 .entry-content,
body.page-id-47450 .entry-content {
    max-width: 100% !important;
}

/* Pagine statiche: col-full largo come header/footer, contenuto con margini interni */
body.page-id-47205 .col-full,
body.page-id-19689 .col-full,
body.page-id-19686 .col-full,
body.page-id-19692 .col-full,
body.page-id-47556 .col-full,
body.page-id-47559 .col-full,
body.page-id-47560 .col-full {
    max-width: 100% !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
}
body.page-id-47205 .entry-content,
body.page-id-19689 .entry-content,
body.page-id-19686 .entry-content,
body.page-id-19692 .entry-content,
body.page-id-47556 .entry-content,
body.page-id-47559 .entry-content,
body.page-id-47560 .entry-content,
body.page-id-47205 .entry-header,
body.page-id-19689 .entry-header,
body.page-id-19686 .entry-header,
body.page-id-19692 .entry-header,
body.page-id-47556 .entry-header,
body.page-id-47559 .entry-header,
body.page-id-47560 .entry-header {
    max-width: 1100px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}


/* === Barra superiore announcement === */
.gg-topbar {
    width: 100%;
    height: 35px;
    display: flex;
    box-sizing: border-box;
    font-size: 14px;
    letter-spacing: 0.3px;
    background: var(--shop-accent); /* base arancio: la parte dx mostra questo */
}
.gg-topbar-sx, .gg-topbar-dx {
    height: 35px;
    line-height: 35px;
    color: #fff;
    text-align: center;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    box-sizing: border-box;
    font-weight: 500;
}
/* Parte blu: 75% + punta che entra di 18px nell'arancio */
.gg-topbar-sx {
    flex: 0 0 calc(75% + 18px);
    max-width: calc(75% + 18px);
    background: #003399;
    clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%);
    padding: 0 30px 0 12px; /* spazio a dx per non toccare la punta */
}
/* Parte arancio: riempie il resto (lo sfondo della .gg-topbar) */
.gg-topbar-dx {
    flex: 1 1 auto;
    background: transparent;
    font-weight: 500;
    padding: 0 12px 0 22px; /* spazio a sx per stare oltre la punta */
}
.gg-topbar b, .gg-topbar strong { font-weight: 800; }
/* Blocco topbar versione mobile: nascosto a desktop (mostrato solo <=768px) */
.gg-topbar-mobile { display: none; }

/* MIGLIORA MOBILE — topbar: su mobile barra blu unica con testo bianco su 2 righe.
   Posizionato DOPO la base .gg-topbar per vincere l'ordine-sorgente (stessa specificita'). */
@media (max-width: 768px), (max-height: 480px) {
    .gg-topbar { height: auto; display: block; background: transparent; padding: 0; }
    .gg-topbar-sx { display: none; }
    /* fascia BLU: 2 righe (titolo extrabold + orari) */
    .gg-topbar-mobile {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        color: #fff;
        line-height: 1.3;
        gap: 1px;
        background: #003399;
        padding: 6px 12px;
    }
    /* font-size 12px = stessa di .gg-topbar-dx, cosi' "Gratuito" e "Finanziamenti" pari */
    .gg-topbar-m-title { font-weight: 500; font-size: 12px; }
    .gg-topbar-m-title b { font-weight: 900; -webkit-text-stroke: 0.6px currentColor; }
    .gg-topbar-m-hours { font-weight: 400; font-size: 12px; }
    /* fascia ARANCIO sotto: Finanziamenti (la parola e' <b>=extrabold) */
    .gg-topbar-dx {
        display: block;
        flex: none;
        max-width: none;
        background: var(--shop-accent);
        color: #fff;
        text-align: center;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        height: auto;
        line-height: 1.3;
        padding: 5px 12px;
        font-size: 12px;
    }
    .gg-topbar-dx b, .gg-topbar-dx strong { font-weight: 900; -webkit-text-stroke: 0.6px currentColor; }
}

/* Tabelle pagine statiche: prima colonna (Domanda/Tipologia) più larga */
table.gg-delivery-table {
    table-layout: fixed;
    width: 100%;
}
table.gg-delivery-table th:first-child,
table.gg-delivery-table td:first-child {
    width: 45% !important;
}
table.gg-delivery-table th:last-child,
table.gg-delivery-table td:last-child {
    width: 55% !important;
}

/* Tabelle: testo celle va a capo (no troncamento) */
table.gg-delivery-table td,
table.gg-delivery-table th {
    white-space: normal !important;
    word-wrap: break-word;
    overflow-wrap: break-word;
    vertical-align: top;
}

/* Tabelle pagine: tutte le celle allineate a sinistra (anche la 2a colonna) */
table.gg-delivery-table th,
table.gg-delivery-table td,
table.gg-delivery-table thead th:last-child,
table.gg-delivery-table tbody td:last-child {
    text-align: left !important;
}

/* Tabella passi (Passo | Cosa fare): prima colonna stretta */
table.gg-table-steps th:first-child,
table.gg-table-steps td:first-child {
    width: 9% !important;
    text-align: center !important;
}
table.gg-table-steps th:last-child,
table.gg-table-steps td:last-child {
    width: 91% !important;
}

/* CGV (19690) + Termini (19687): stesso stile pagine statiche */
body.page-id-19690 .col-full,
body.page-id-19687 .col-full {
    max-width: 100% !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
}
body.page-id-19690 .entry-content,
body.page-id-19687 .entry-content,
body.page-id-19690 .entry-header,
body.page-id-19687 .entry-header {
    max-width: 1100px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.page-id-19690 .entry-title,
body.page-id-19687 .entry-title,
body.page-id-19690 h1.entry-title,
body.page-id-19687 h1.entry-title {
    text-align: center !important;
    color: #003399;
    font-weight: 800;
}
body.page-id-19690 h2,
body.page-id-19687 h2 {
    font-weight: 900 !important;
    color: #003399;
    margin-top: 32px;
    padding-bottom: 6px;
    border-bottom: 3px solid var(--shop-accent);
}
body.page-id-19690 blockquote,
body.page-id-19687 blockquote {
    background: #fff;
    border-left: none;
    padding: 14px 18px;
    margin: 14px 0;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
body.page-id-19690 a,
body.page-id-19687 a { color: #003399; font-weight: 600; }
body.page-id-19690 a:hover,
body.page-id-19687 a:hover { color: var(--shop-accent); }

/* === Single product: riquadro riepilogo in card bianca + immagini rounded === */
.single-product div.product .summary.entry-summary {
    background: #fff;
    border-radius: 14px;
    padding: 26px 30px;
    box-shadow: 0 1px 6px rgba(0,0,0,0.07);
    border: 1px solid #eee;
    box-sizing: border-box;
}
.single-product div.product .woocommerce-product-gallery__image {
    border-radius: 14px;
    overflow: hidden;
}
.single-product div.product .woocommerce-product-gallery__image img,
.single-product div.product .woocommerce-product-gallery img {
    border-radius: 14px;
}
.single-product div.product .flex-control-thumbs li img,
.single-product div.product ol.flex-control-thumbs li img {
    border-radius: 8px;
}

/* === Single product: bottone Aggiungi al carrello arancio + arrotondato + icona carrello === */
.single-product .single_add_to_cart_button {
    background: var(--shop-accent) !important;
    border: none !important;
    border-radius: 18px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center !important;
    gap: 10px;
    width: 100%;
    max-width: 380px;
    height: 50px;
    padding: 0 22px !important;
    box-sizing: border-box;
}

/* PayPal: stessa larghezza/arrotondamento del tasto arancio */
.single-product .ppc-button-wrapper,
.single-product div.product .ppc-button-wrapper {
    width: 100% !important;
    max-width: 380px !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-sizing: border-box;
}
.single-product .single_add_to_cart_button::before {
    content: "";
    order: 2;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    background-color: #fff;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z%27/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z%27/%3E%3C/svg%3E") center / contain no-repeat;
}

/* === Single product: icona zoom = lente del campo cerca con + interno === */
.single-product div.product .woocommerce-product-gallery__trigger::before {
    content: "" !important;
    border: none !important;
    border-radius: 0 !important;
    width: 100% !important;
    height: 100% !important;
    left: 0 !important;
    top: 0 !important;
    background: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23003399%27 stroke-width=%273%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2711%27 cy=%2711%27 r=%278%27/%3E%3Cline x1=%2721%27 y1=%2721%27 x2=%2716.65%27 y2=%2716.65%27/%3E%3Cline x1=%278%27 y1=%2711%27 x2=%2714%27 y2=%2711%27/%3E%3Cline x1=%2711%27 y1=%278%27 x2=%2711%27 y2=%2714%27/%3E%3C/svg%3E") center / 34px 34px no-repeat !important;
}
.single-product div.product .woocommerce-product-gallery__trigger::after {
    display: none !important;
}

/* === Single product: disponibilità più grande + badge energetico === */
.single-product div.product .gg-disp,
.single-product div.product p.stock {
    font-size: 18px !important;
    font-weight: 700 !important;
}
.single-product .shop-single-energy {
    margin: 12px 0 4px;
}
.single-product .shop-single-energy .shop-energy-label {
    margin: 0;
}

/* === Single product: blocco foto in card bianca + lente più grande === */
.single-product div.product .woocommerce-product-gallery {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 14px;
    box-shadow: 0 1px 6px rgba(0,0,0,0.07);
    padding: 18px;
    box-sizing: border-box;
}
.single-product div.product .woocommerce-product-gallery__trigger,
.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger:hover {
    width: 48px !important;
    height: 48px !important;
    top: 14px !important;
    right: 14px !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
}


/* === Single product: scheda web fallback (manca descrizione Gemini) === */
.single-product .shop-scheda-web-single {
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: #333 !important;
    margin: 16px 0 !important;
}
.single-product .shop-scheda-web-single li {
    padding-left: 18px !important;
}
.single-product .shop-scheda-web-single li:before {
    top: 10px !important;
    width: 6px !important;
    height: 6px !important;
}

/* === Single product: anteprima etichetta energetica (immagine) rounded === */
.single-product .shop-energy-thumb {
    display: block;
    height: 100px;
    width: auto;
    max-width: 100%;
    border-radius: 10px;
    border: 1px solid #ccc;
    cursor: pointer;
    background: #fff;
}
[data-energy-label] { cursor: pointer; }

/* === Single product: Scheda tecnica a comparsa dentro il riquadro bianco === */
.shop-scheda-toggle {
    margin-top: 10px;
}
.shop-scheda-toggle > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 18px;
    font-weight: 700;
    color: #003399;
    padding: 4px 24px;
    user-select: none;
    background: transparent;
    border-radius: 10px;
    transition: background-color 0.15s ease;
}
.shop-scheda-toggle > summary:hover {
    background: transparent;
}
.shop-scheda-toggle > summary::-webkit-details-marker { display: none; }
.shop-scheda-toggle > summary::marker { content: ""; }
.shop-scheda-chevron {
    width: 44px;
    height: 44px;
    color: var(--shop-accent);
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.shop-scheda-toggle[open] > summary .shop-scheda-chevron {
    transform: rotate(180deg);
}
.shop-scheda-content {
    padding: 12px 0 4px;
    font-size: 13.5px;
    line-height: 1.55;
    color: #333;
}
.shop-scheda-content table {
    width: 100%;
    margin: 0 0 10px;
    border-collapse: collapse;
    font-size: 13px;
    border: none !important;
}
.shop-scheda-content table td,
.shop-scheda-content table th {
    padding: 6px 8px;
    border: none !important;
    border-bottom: 1px solid #eee !important;
    text-align: left;
    vertical-align: top;
    word-break: normal;
    overflow-wrap: break-word;
}
/* tabella interna label/valore: prima colonna piu' larga, niente schiacciamento */
.shop-scheda-content .tableprodmacro {
    table-layout: fixed;
    width: 100%;
}
.shop-scheda-content .tableprodmacro td:first-child {
    width: 42%;
}
.shop-scheda-content table tr:nth-child(even) td {
    background: #fafafa;
}

/* === Single product: SKU in alto a destra, stessa riga del logo marchio === */
.single-product div.product .summary.entry-summary { position: relative; }
.single-product .storefront-wc-brands-single-product { margin: 0 0 6px; line-height: 0; }
.single-product .storefront-wc-brands-single-product img {
    max-height: 50px;
    width: auto;
    display: inline-block;
}
.single-product .summary.entry-summary:has(.storefront-wc-brands-single-product) .shop-sku {
    position: absolute;
    top: 26px;
    right: 30px;
    height: 50px;
    margin: 0;
    display: flex;
    align-items: center;
}

/* === Single product: layout 2 colonne sotto il titolo (55% sx / 45% dx) === */
.single-product .gg-prod-cols {
    display: flex;
    gap: 28px;
    align-items: flex-start;
    margin-top: 16px;
}
.single-product .gg-col-left { flex: 55 1 0; min-width: 0; display: flex; flex-direction: column; }
.single-product .gg-col-right {
    flex: 45 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
/* Colonna destra: prezzo -> tasti -> disponibilità */
.single-product .gg-col-right > .price            { order: 1; margin: 0 0 4px !important; text-align: right; }
.single-product .gg-col-right > .shop-single-savings { order: 3; }
.single-product .gg-col-right > form.cart         { order: 4; margin: 0 0 8px !important; }
.single-product .gg-col-right > .ppc-button-wrapper { order: 5; margin-top: 0 !important; }
/* Tasti a piena larghezza della colonna */
.single-product .gg-col-right .single_add_to_cart_button,
.single-product .gg-col-right .ppc-button-wrapper {
    max-width: none;
}
/* Colonna sinistra: garanzia staccata dalla descrizione */
.single-product .gg-col-left .woocommerce-product-details__short-description { margin-top: 0; }

/* Mobile: colonne impilate */
@media (max-width: 768px), (max-height: 480px) {
    .single-product .gg-prod-cols { flex-direction: column; gap: 8px; }
    .single-product .gg-col-left, .single-product .gg-col-right { flex: 1 1 auto; width: 100%; }
}

/* === Single product: decimali del prezzo piu' piccoli === */
.single-product .price .price-decimals,
.single-product .price .woocommerce-Price-currencySymbol {
    font-size: 0.68em;
    font-weight: 700;
    vertical-align: baseline;
}

/* === Single product: barra in basso (Garanzia sx + disponibilità dx) === */
.single-product .gg-prod-bottom {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-top: 16px;
}
.single-product .gg-prod-bottom .shop-single-extras { margin: 0; }
.single-product .gg-prod-bottom p.stock { margin: 0; }

/* === Single product: nascondi selettore quantità (si aggiunge sempre 1; qty nel carrello) === */
.single-product form.cart .quantity {
    display: none !important;
}

/* === Single product: 'In pronta consegna' stesso verde della garanzia === */
.single-product .gg-prod-bottom .gg-disp-pronta-consegna {
    color: #18873f !important;
}

/* === Card anteprima: decimali + simbolo € più piccoli (come pagina prodotto) === */
.shop-buybar .price .price-decimals,
.shop-buybar .price .woocommerce-Price-currencySymbol {
    font-size: 0.68em;
    vertical-align: baseline;
}

/* === Single product: descrizione tempi di consegna sotto la disponibilità === */
.single-product .gg-avail-block {
    text-align: right;
}
.single-product .gg-avail-block p.stock { margin: 0; }
.single-product .gg-avail-desc {
    margin: 4px 0 0;
    font-size: 12px;
    font-weight: 400;
    color: #000;
    line-height: 1.4;
    max-width: 340px;
    margin-left: auto;
}

/* === Single product: badge Volantino in alto a destra === */
.single-product .entry-summary > .shop-volantino-badge {
    position: absolute;
    top: 16px;
    right: 30px;
    z-index: 6;
    box-shadow: none;
}

/* === Single product: nota "Prezzo IVA inclusa" sotto il prezzo === */
.single-product .gg-col-right > .gg-iva {
    order: 2;
    margin: -10px 0 14px;
    font-size: 12px;
    color: #000;
    text-align: right;
}

/* === Nascondi il link nero "Visualizza carrello" + popup custom === */
.woocommerce a.added_to_cart,
li.product a.added_to_cart {
    display: none !important;
}
.gg-cart-pop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 100000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.gg-cart-pop.is-open { display: flex; }
.gg-cart-pop-box {
    background: #fff;
    border: 2px solid var(--shop-accent);
    border-radius: 16px;
    padding: 20px 22px;
    max-width: 700px;
    width: 100%;
    box-shadow: 0 12px 44px rgba(0,0,0,0.28);
    box-sizing: border-box;
}
.gg-cart-pop-title {
    color: #18873f;
    font-weight: 800;
    font-size: 18px;
    margin-bottom: 14px;
    text-align: center;
}
.gg-cart-pop-body {
    display: grid;
    grid-template-columns: 30% 70%;
    align-items: center;
    gap: 18px;
    margin-bottom: 18px;
}
.gg-cart-pop-img {
    width: 100%;
    max-width: 240px;
    height: auto;
    object-fit: contain;
    justify-self: center;
}
.gg-cart-pop-info { min-width: 0; text-align: center; padding-right: 0; padding-left: 0; margin-left: 0; }
.gg-cart-pop-name {
    font-size: 12.5px;
    color: var(--shop-primary);
    font-weight: 700;
    line-height: 1.25;
    margin: 0 auto 2px;
    max-width: 200px;        /* spazio del SOLO titolo piu' stretto: niente sbordo sull'immagine */
    overflow-wrap: break-word;
    word-break: break-word;
}
/* Desktop: titolo prodotto nell'overlay carrello piu' grande e LARGO (riempie la colonna info,
   niente cap stretto -> meno righe). Mobile invariato. */
@media (min-width: 769px) {
    .gg-cart-pop-name { font-size: 16.25px; max-width: none; }
}
.gg-cart-pop-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
    font-size: 24px;
    font-weight: 800;
    color: var(--shop-red);
}
.gg-cart-pop-qty {
    font-size: 44px;
    font-weight: 700;
    color: #333;
    line-height: 1;
    margin: 0;
}
.gg-cart-pop-amount {
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
}
.gg-cart-pop-amount,
.gg-cart-pop-amount .amount,
.gg-cart-pop-amount .woocommerce-Price-amount { color: var(--shop-red); }
.gg-cart-pop-amount .price-decimals,
.gg-cart-pop-amount .woocommerce-Price-currencySymbol { font-size: 0.68em; }
.gg-cart-pop-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.gg-cart-pop-continue {
    background: #16a34a;
    color: #fff !important;
    border: none;
    border-radius: 18px;
    padding: 11px 18px;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.gg-cart-pop-continue:hover { background: #138a3e; color: #fff !important; }
.gg-cart-pop-ic { font-size: 16px; line-height: 1; }
.gg-cart-pop-gocart {
    background: var(--shop-accent);
    color: #fff !important;
    border-radius: 18px;
    padding: 11px 18px;
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}
.gg-cart-pop-gocart:hover { background: var(--shop-accent-dark); }

/* Icona carrello sul tasto "Vai al carrello" del popup */
.gg-cart-pop-gocart::after {
    content: "";
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    margin-left: 8px;
    background-color: #fff;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z%27/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z%27/%3E%3C/svg%3E") center / contain no-repeat;
}

/* === Overlay errore aggiunta al carrello === */
.gg-cart-err {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 100001;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.gg-cart-err.is-open { display: flex; }
.gg-cart-err-box {
    background: #fff;
    border: 2px solid var(--shop-red);
    border-radius: 16px;
    padding: 22px 24px;
    max-width: 520px;
    width: 100%;
    box-shadow: 0 12px 44px rgba(0,0,0,0.28);
    box-sizing: border-box;
    text-align: center;
}
.gg-cart-err-title {
    color: var(--shop-red);
    font-weight: 700;
    font-size: 18px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.gg-cart-err-ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--shop-red);
    color: #fff;
    font-weight: 800;
    font-size: 16px;
}
.gg-cart-err-msg {
    background: var(--shop-red);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0 -24px 18px;
    padding: 12px 24px;
    text-align: center;
}
.gg-cart-err-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.gg-cart-err-continue {
    background: #16a34a;
    color: #fff !important;
    border: none;
    border-radius: 18px;
    padding: 11px 18px;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
}
.gg-cart-err-continue:hover { background: #138a3e; color: #fff !important; }
.gg-cart-err-gocart {
    background: var(--shop-accent);
    color: #fff !important;
    border-radius: 18px;
    padding: 11px 18px;
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}
.gg-cart-err-gocart:hover { background: var(--shop-accent-dark); }

/* Icona carrello pieno anche sul tasto "Vai al carrello" dell'overlay errore */
.gg-cart-err-gocart::after {
    content: "";
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    margin-left: 8px;
    background-color: #fff;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z%27/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z%27/%3E%3C/svg%3E") center / contain no-repeat;
}
.gg-cart-err-gocart { display: inline-flex; align-items: center; }

/* === Pagina carrello vuoto: carrello outline rovesciato + riquadro bianco === */
/* nascondi il titolo pagina "Cart" e il suo spazio */
body.woocommerce-cart .entry-header,
body.woocommerce-cart header.entry-header,
body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title {
    display: none !important;
}
body.woocommerce-cart #content.site-content { padding-top: 0 !important; }

.wc-block-cart__empty-cart__title {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 16px;
    box-shadow: 0 1px 8px rgba(0,0,0,0.07);
    padding: 40px 24px;
    max-width: none;
    color: #333;
    font-size: 30px !important;
    font-weight: 700 !important;
}
/* carrello (outline) rovesciato al posto della faccina */
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
    background-color: var(--shop-red) !important;
    height: 165px !important;
    margin: 0 auto 22px !important;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 -960 960 960%27%3E%3Cpath fill=%27black%27 d=%27M280-80q-33 0-56.5-23.5T200-160q0-33 23.5-56.5T280-240q33 0 56.5 23.5T360-160q0 33-23.5 56.5T280-80Zm400 0q-33 0-56.5-23.5T600-160q0-33 23.5-56.5T680-240q33 0 56.5 23.5T760-160q0 33-23.5 56.5T680-80ZM246-720l96 200h280l110-200H246Zm-38-80h590q23 0 35 20.5t1 41.5L692-482q-11 20-29.5 31T622-440H324l-44 80h480v80H280q-45 0-68-39.5t-2-78.5l54-98-144-304H40v-80h130l38 80Zm134 280h280-280Z%27/%3E%3C/svg%3E") !important;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 -960 960 960%27%3E%3Cpath fill=%27black%27 d=%27M280-80q-33 0-56.5-23.5T200-160q0-33 23.5-56.5T280-240q33 0 56.5 23.5T360-160q0 33-23.5 56.5T280-80Zm400 0q-33 0-56.5-23.5T600-160q0-33 23.5-56.5T680-240q33 0 56.5 23.5T760-160q0 33-23.5 56.5T680-80ZM246-720l96 200h280l110-200H246Zm-38-80h590q23 0 35 20.5t1 41.5L692-482q-11 20-29.5 31T622-440H324l-44 80h480v80H280q-45 0-68-39.5t-2-78.5l54-98-144-304H40v-80h130l38 80Zm134 280h280-280Z%27/%3E%3C/svg%3E") !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    transform: rotate(180deg);
    transform-origin: center;
    animation: gg-cart-shake 2s ease-in-out 1;
}
@keyframes gg-cart-shake {
    0%, 100% { transform: rotate(180deg) translateX(0); }
    20%  { transform: rotate(173deg) translateX(-4px); }
    40%  { transform: rotate(187deg) translateX(4px); }
    60%  { transform: rotate(175deg) translateX(-3px); }
    80%  { transform: rotate(185deg) translateX(3px); }
}

/* Carrello vuoto: niente separator (3 puntini) */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block hr.wp-block-separator {
    display: none !important;
}

/* === Carrello vuoto: link Home centrato sotto il riquadro (3x) === */
.gg-cart-home-wrap {
    text-align: center;
    margin: 20px 0 4px;
}
.gg-cart-home {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    line-height: 1;
    color: var(--shop-primary);
    text-decoration: none;
}
.gg-cart-home-label {
    font-size: 16px;
    font-weight: 700;
}
.gg-cart-home:hover { color: var(--shop-accent); }
.gg-cart-home svg {
    width: 120px;
    height: 120px;
}

/* Carrello vuoto: avvicina le 4 card al riquadro */
body.woocommerce-cart .shop-benefits-bar { padding-top: 10px !important; }
body.woocommerce-cart #content.site-content { padding-bottom: 0 !important; }
body.woocommerce-cart .wp-block-woocommerce-cart { margin-bottom: 0 !important; }
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block { margin-bottom: 0 !important; padding-bottom: 0 !important; }
body.woocommerce-cart .wc-block-cart__empty-cart__title { margin-bottom: 0 !important; }
body.woocommerce-cart .site-main { margin-bottom: 0 !important; padding-bottom: 0 !important; }

/* ===== PAGINA CARRELLO (blocco WC) — grafica Grandin ===== */
/* Riquadro bianco attorno ai prodotti */
body.woocommerce-cart .wp-block-woocommerce-cart-items-block {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 16px;
    padding: 6px 22px;
    box-shadow: 0 1px 6px rgba(0,0,0,0.06);
}
/* Via header PRODOTTO / TOTALE */
body.woocommerce-cart .wc-block-cart-items__header {
    display: none !important;
}
/* Titolo prodotto: blu, senza sottolineatura */
body.woocommerce-cart .wc-block-components-product-name {
    color: #003399 !important;
    text-decoration: none !important;
    font-weight: 700 !important;
}
body.woocommerce-cart .wc-block-components-product-name:hover {
    color: var(--shop-accent) !important;
    text-decoration: none !important;
}
/* Prezzi prodotto rossi */
body.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price__value,
body.woocommerce-cart .wc-block-components-product-price__value,
body.woocommerce-cart .wc-block-cart-item__total .wc-block-formatted-money-amount {
    color: var(--shop-red) !important;
    font-weight: 700 !important;
}

/* Riquadro bianco attorno al totale carrello */
body.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 16px;
    padding: 20px 22px;
    box-shadow: 0 1px 6px rgba(0,0,0,0.06);
}
/* Via titolo TOTALE CARRELLO */
body.woocommerce-cart .wc-block-cart__totals-title {
    display: none !important;
}
/* Prezzi totali rossi */
body.woocommerce-cart .wc-block-components-totals-item__value,
body.woocommerce-cart .wc-block-components-totals-item__value .wc-block-formatted-money-amount {
    color: var(--shop-red) !important;
}
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    color: var(--shop-red) !important;
    font-weight: 600 !important;
}

/* Campo codice promo + tasto Applica arrotondati */
body.woocommerce-cart .wc-block-components-totals-coupon__input .wc-block-components-text-input input,
body.woocommerce-cart .wc-block-components-totals-coupon__input input {
    border-radius: 10px !important;
}
body.woocommerce-cart .wc-block-components-totals-coupon__button {
    border-radius: 10px !important;
}

/* Tasto "Procedi al pagamento": rounded, rosso (come Acquista) */
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block a,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block button {
    background: var(--shop-red) !important;
    border-color: var(--shop-red) !important;
    color: #fff !important;
    border-radius: 18px !important;
}
/* PayPal nel carrello: arrotondato come in pagina prodotto */
body.woocommerce-cart .ppc-button-wrapper {
    border-radius: 18px !important;
    overflow: hidden !important;
}

/* ===== Carrello: rifiniture ===== */
/* Immagini prodotto -50% */
body.woocommerce-cart .wc-block-cart-item__image img {
    width: 50% !important;
    height: auto !important;
}
/* Prezzi: decimali e simbolo € piccoli (come card anteprima) */
body.woocommerce-cart .gg-dec,
body.woocommerce-cart .gg-cur {
    font-size: 0.68em;
}
/* Tasto Procedi al pagamento: grassetto, niente sottolineatura */
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block a,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block button {
    font-weight: 700 !important;
    text-decoration: none !important;
}
/* Chevron "Aggiungi codici promozionali" arancio */
body.woocommerce-cart .wc-block-components-panel__button svg,
body.woocommerce-cart .wc-block-components-panel__button .wc-block-components-panel__button-icon {
    fill: var(--shop-accent) !important;
    color: var(--shop-accent) !important;
}
/* Totale stimato in rosso e grassetto (label + valore) */
body.woocommerce-cart .wc-block-components-totals-footer-item,
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    color: var(--shop-red) !important;
    font-weight: 800 !important;
}
/* PayPal arrotondato (carrello) */
body.woocommerce-cart .ppc-button-wrapper,
body.woocommerce-cart .wc-block-components-express-payment,
body.woocommerce-cart .wc-block-components-express-payment .ppc-button-wrapper {
    border-radius: 18px !important;
    overflow: hidden !important;
}
/* Separazione tra riquadro prodotti e riquadro totale */
body.woocommerce-cart .wc-block-cart__sidebar {
    margin-left: 22px !important;
}

/* ===== Carrello: layout affiancato + immagini compatte + fix paypal/chevron ===== */
body.woocommerce-cart .wp-block-woocommerce-filled-cart-block {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 30px !important;
}
body.woocommerce-cart .wc-block-cart__main {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
}
body.woocommerce-cart .wc-block-cart__sidebar {
    flex: 0 0 360px !important;
    max-width: 360px !important;
    margin-left: 0 !important;
}
/* immagine compatta, titolo vicino */
body.woocommerce-cart .wc-block-cart-item__image {
    width: 110px !important;
    max-width: 110px !important;
    padding-right: 10px !important;
}
body.woocommerce-cart .wc-block-cart-item__image img {
    width: 100% !important;
}
/* chevron "Aggiungi codici promozionali" piu' grosso */
body.woocommerce-cart .wc-block-components-panel__button svg,
body.woocommerce-cart .wc-block-components-panel__button .wc-block-components-panel__button-icon {
    width: 52px !important;
    height: 52px !important;
}
/* PayPal: evita il taglio in basso */
body.woocommerce-cart .wc-block-components-express-payment {
    overflow: visible !important;
    border-radius: 0 !important;
}
body.woocommerce-cart .ppc-button-wrapper {
    border-radius: 18px !important;
    overflow: hidden !important;
    height: auto !important;
}

/* ===== Carrello: via linee grigie + PayPal rounded ===== */
body.woocommerce-cart .wc-block-cart-items__row,
body.woocommerce-cart .wc-block-cart-item__row,
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart table.wc-block-cart-items,
body.woocommerce-cart .wc-block-components-totals-item,
body.woocommerce-cart .wc-block-components-totals-footer-item,
body.woocommerce-cart .wc-block-components-totals-coupon,
body.woocommerce-cart .wc-block-components-panel,
body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block > *,
body.woocommerce-cart hr.wc-block-components-totals-item__separator {
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}
/* PayPal: rounded senza taglio (display block toglie il gap che causava il taglio) */
body.woocommerce-cart .ppc-button-wrapper {
    border-radius: 18px !important;
    overflow: hidden !important;
    height: auto !important;
}
body.woocommerce-cart .ppc-button-wrapper iframe,
body.woocommerce-cart .ppc-button-wrapper > div {
    display: block !important;
}

/* ===== Carrello: forza PayPal rounded + altre linee ===== */
body.woocommerce-cart .ppc-button-wrapper,
body.woocommerce-cart .ppc-button-wrapper > div,
body.woocommerce-cart [id^="ppc-button"],
body.woocommerce-cart .ppc-button-wrapper iframe,
body.woocommerce-cart .wc-block-components-express-payment iframe {
    border-radius: 18px !important;
    overflow: hidden !important;
}
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block > *,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-coupon-form-block,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-subtotal-block,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-shipping-block,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-taxes-block,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-totals-block,
body.woocommerce-cart .wc-block-components-totals-item,
body.woocommerce-cart .wc-block-components-panel__button,
body.woocommerce-cart .wc-block-cart-item__total,
body.woocommerce-cart .wc-block-cart-item__quantity {
    border: none !important;
    box-shadow: none !important;
}
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block > *::after,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block > *::before,
body.woocommerce-cart .wc-block-cart-items__row::after,
body.woocommerce-cart .wc-block-components-totals-item::after,
body.woocommerce-cart .wc-block-components-panel::after {
    display: none !important;
    border: none !important;
}

/* ===== Carrello: via separatori righe prodotto + separatore OPPURE ===== */
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row,
body.woocommerce-cart .wc-block-cart table.wc-block-cart-items:not(:last-child) .wc-block-cart-items__row,
body.woocommerce-cart .is-medium table.wc-block-cart-items .wc-block-cart-items__row,
body.woocommerce-cart .is-small table.wc-block-cart-items .wc-block-cart-items__row,
body.woocommerce-cart .is-mobile table.wc-block-cart-items .wc-block-cart-items__row,
body.woocommerce-cart .is-large table.wc-block-cart-items .wc-block-cart-items__row {
    border-bottom: 0 !important;
    border-top: 0 !important;
}
body.woocommerce-cart .wc-block-components-express-payment-continue-rule,
body.woocommerce-cart .wc-block-components-express-payment-continue-rule--cart {
    border: 0 !important;
}
body.woocommerce-cart .wc-block-components-express-payment-continue-rule::before,
body.woocommerce-cart .wc-block-components-express-payment-continue-rule::after {
    display: none !important;
    border: 0 !important;
    background: transparent !important;
}

/* ===== Carrello: tutti i prezzi +60% ===== */
body.woocommerce-cart .wc-block-cart-item__total,
body.woocommerce-cart .wc-block-cart-item__prices,
body.woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-price,
body.woocommerce-cart .wc-block-components-totals-item__value {
    font-size: 1.6em !important;
    line-height: 1.2 !important;
}

/* Carrello: nascondi la descrizione sotto il titolo prodotto */
body.woocommerce-cart .wc-block-components-product-metadata__description {
    display: none !important;
}

/* ===== Carrello: rifiniture finali ===== */
/* OPPURE centrato + grassetto */
body.woocommerce-cart .wc-block-components-express-payment-continue-rule {
    display: flex !important;
    justify-content: center !important;
    text-align: center !important;
    font-weight: 700 !important;
}
/* Prezzo unitario subito sotto il titolo */
body.woocommerce-cart .wc-block-cart-item__prices { margin-top: 2px !important; }
body.woocommerce-cart .wc-block-components-product-name { margin-bottom: 2px !important; }
/* Prezzi tutti uguali (22px) tranne il Totale (32px) */
body.woocommerce-cart .wc-block-cart-item__total,
body.woocommerce-cart .wc-block-cart-item__prices,
body.woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-price,
body.woocommerce-cart .wc-block-components-totals-item__value {
    font-size: 22px !important;
}
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 32px !important;
}
/* Subtotale e Spedizione: stesso peso del Prezzo unitario (bold) */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-subtotal-block .wc-block-components-totals-item__value,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-shipping-block .wc-block-components-totals-item__value {
    font-weight: 700 !important;
}
/* Cestino -> pallino rosso con X bianca (come reset filtri) */
body.woocommerce-cart .wc-block-cart-item__remove-link {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 50% !important;
    background: #d11919 url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27white%27 stroke-width=%273%27 stroke-linecap=%27round%27%3E%3Cline x1=%276%27 y1=%276%27 x2=%2718%27 y2=%2718%27/%3E%3Cline x1=%2718%27 y1=%276%27 x2=%276%27 y2=%2718%27/%3E%3C/svg%3E") center / 14px 14px no-repeat !important;
    font-size: 0 !important;
    position: relative !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    text-decoration: none !important;
}
body.woocommerce-cart .wc-block-cart-item__remove-link:hover { background: #a01313 !important; }
body.woocommerce-cart .wc-block-cart-item__remove-link svg { display: none !important; }
body.woocommerce-cart .wc-block-cart-item__remove-link::before { content: "" !important; }
body.woocommerce-cart .wc-block-cart-item__remove-link::after {
    display: none !important;
    content: none !important;
    position: absolute;
    inset: 0;
    background-color: #fff;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%273%27 stroke-linecap=%27round%27%3E%3Cline x1=%276%27 y1=%276%27 x2=%2718%27 y2=%2718%27/%3E%3Cline x1=%2718%27 y1=%276%27 x2=%276%27 y2=%2718%27/%3E%3C/svg%3E") center / 14px 14px no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%273%27 stroke-linecap=%27round%27%3E%3Cline x1=%276%27 y1=%276%27 x2=%2718%27 y2=%2718%27/%3E%3Cline x1=%2718%27 y1=%276%27 x2=%276%27 y2=%2718%27/%3E%3C/svg%3E") center / 14px 14px no-repeat;
}

/* ===== Carrello: via linee row (tutte le fonti) + tasse a destra ===== */
body.woocommerce-cart table.wc-block-cart-items,
body.woocommerce-cart table.wc-block-cart-items tr,
body.woocommerce-cart table.wc-block-cart-items td,
body.woocommerce-cart .wc-block-cart-items__row,
body.woocommerce-cart .wc-block-cart-items__row td,
body.woocommerce-cart .wc-block-cart-item__wrap,
body.woocommerce-cart .wc-block-cart-item__image,
body.woocommerce-cart .wc-block-cart-item__product,
body.woocommerce-cart .wc-block-cart-item__total {
    border: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
}
body.woocommerce-cart .wc-block-components-totals-footer-item-tax {
    text-align: right !important;
    justify-content: flex-end !important;
    display: block !important;
}

/* ===== Carrello: riga prezzo unitario + qty + pallino ===== */
/* nome su riga propria */
body.woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-name {
    display: block !important;
}
/* prezzo unitario, qty e pallino sulla stessa riga */
body.woocommerce-cart .wc-block-cart-item__prices,
body.woocommerce-cart .wc-block-cart-item__quantity {
    display: inline-flex !important;
    align-items: center !important;
    vertical-align: middle !important;
    margin-top: 6px !important;
}
body.woocommerce-cart .wc-block-cart-item__prices { margin-right: 16px !important; }
/* etichetta "Prezzo unitario" prima del prezzo */
body.woocommerce-cart .wc-block-cart-item__prices::before {
    content: "Prezzo unitario ";
    font-size: 13px;
    font-weight: 400;
    color: #333;
    margin-right: 6px;
    white-space: nowrap;
}
/* selettore quantità senza bordo */
body.woocommerce-cart .wc-block-components-quantity-selector {
    border: none !important;
    box-shadow: none !important;
}
/* pallino rosso (rimuovi) piu' piccolo */
body.woocommerce-cart .wc-block-cart-item__remove-link {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    background-size: 11px 11px !important;
    margin-left: 8px !important;
}
body.woocommerce-cart .wc-block-cart-item__product { display: block !important; }

/* ===== Carrello: qty + totale riga ===== */
/* campo numero qty: grande, extrabold, rounded, focus verdino */
body.woocommerce-cart .wc-block-components-quantity-selector__input {
    font-size: 18px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    color: #003399 !important;
}
body.woocommerce-cart .wc-block-components-quantity-selector__input:focus,
body.woocommerce-cart .wc-block-components-quantity-selector__input:active {
    background-color: #e3f6e6 !important;
    outline: none !important;
}
/* tasti - e + piu' grandi ed extrabold */
body.woocommerce-cart .wc-block-components-quantity-selector__button {
    font-size: 24px !important;
    font-weight: 800 !important;
}
/* totale riga: grande come il Totale + in alto (riga del prezzo unitario) */
body.woocommerce-cart .wc-block-cart-item__total {
    font-size: 32px !important;
    vertical-align: top !important;
}

/* ===== Carrello: tasti qty piu' grandi + totale riga in alto ===== */
body.woocommerce-cart .wc-block-components-quantity-selector__button {
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    padding: 0 !important;
    min-width: 28px !important;
    opacity: 1 !important;
    cursor: pointer !important;
}
body.woocommerce-cart .wc-block-components-quantity-selector__button:hover { color: var(--shop-accent) !important; }
body.woocommerce-cart .wc-block-components-quantity-selector__button:disabled { opacity: 0.35 !important; cursor: not-allowed !important; }
body.woocommerce-cart .wc-block-components-quantity-selector__input {
    font-size: 16px !important;
    padding: 2px 4px !important;
    width: 32px !important;
    min-width: 32px !important;
}
/* totale riga allineato in alto (table-cell e flex) */
body.woocommerce-cart td.wc-block-cart-item__total,
body.woocommerce-cart .wc-block-cart-item__total {
    vertical-align: top !important;
    align-self: flex-start !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
    margin-top: 0 !important;
}
body.woocommerce-cart .wc-block-cart-item__total .wc-block-cart-item__total-price-and-sale-badge-wrapper {
    margin-top: 0 !important;
    align-self: flex-start !important;
}

/* Carrello: totale riga in alto (grid item) */
body.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__total,
body.woocommerce-cart .wc-block-cart-item__total {
    align-self: start !important;
    vertical-align: top !important;
}

/* Carrello: etichetta "Totale prodotti" sotto il totale riga */
body.woocommerce-cart .wc-block-cart-item__total::after {
    content: "Totale prodotto";
    display: block;
    text-align: right;
    font-size: 13px;
    font-weight: 400;
    color: #333;
    margin-top: 2px;
    line-height: 1.2;
}

/* Carrello: forza il totale riga in alto nella sua colonna */
body.woocommerce-cart .wc-block-cart .wc-block-cart-items__row .wc-block-cart-item__total,
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total {
    align-self: start !important;
    justify-self: end !important;
    display: block !important;
    text-align: right !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}
body.woocommerce-cart .wc-block-cart-item__total > *,
body.woocommerce-cart .wc-block-cart-item__total .wc-block-cart-item__total-price-and-sale-badge-wrapper {
    margin: 0 !important;
    align-self: flex-start !important;
}

/* Carrello: totale prodotto sulla stessa riga del titolo (absolute top-right) */
body.woocommerce-cart .wc-block-cart-items__row {
    position: relative !important;
}
body.woocommerce-cart td.wc-block-cart-item__total,
body.woocommerce-cart .wc-block-cart-item__total {
    position: absolute !important;
    top: 14px !important;
    right: 18px !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    pointer-events: none !important;
    text-align: right !important;
    display: block !important;
}
body.woocommerce-cart .wc-block-cart-item__total > *,
body.woocommerce-cart .wc-block-cart-item__total .wc-block-cart-item__total-price-and-sale-badge-wrapper {
    margin: 0 !important;
    height: auto !important;
    flex: 0 0 auto !important;
    align-items: flex-end !important;
}
body.woocommerce-cart .wc-block-cart-item__total::after {
    pointer-events: none !important;
}

/* Carrello: riga prodotto meno alta */
body.woocommerce-cart .wc-block-cart-items__row {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    align-items: start !important;
}
body.woocommerce-cart .wc-block-cart-item__image,
body.woocommerce-cart .wc-block-cart-item__product {
    align-self: start !important;
}

/* ===== Toast eliminazione prodotto dal carrello ===== */
.gg-cart-toast {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) scale(0.95);
    background: #6cc187;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 20px;
    border-radius: 999px;
    box-shadow: 0 4px 14px rgba(0,0,0,0.18);
    z-index: 99999;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
    white-space: nowrap;
}
.gg-cart-toast--show {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

/* ===== Carrello: più spazio tra le righe prodotto + niente bordini blu spuri ===== */
body.woocommerce-cart table.wc-block-cart-items {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    margin-top: 0 !important;
}
/* spazio SOTTO ogni riga tranne l'ultima: il totale absolute resta ancorato al top del row del prodotto */
body.woocommerce-cart .wc-block-cart-items__row > td {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
body.woocommerce-cart .wc-block-cart-items__row:not(:last-of-type) > td {
    padding-bottom: 80px !important;
}
/* azzera bordini visibili sui td/tr quando border-collapse: separate */
body.woocommerce-cart table.wc-block-cart-items tr,
body.woocommerce-cart table.wc-block-cart-items td,
body.woocommerce-cart .wc-block-cart-items__row,
body.woocommerce-cart .wc-block-cart-item__image,
body.woocommerce-cart .wc-block-cart-item__product,
body.woocommerce-cart .wc-block-cart-item__total {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}
/* riduci il padding alto della card prodotti */
body.woocommerce-cart .wp-block-woocommerce-cart-items-block {
    padding-top: 8px !important;
}

/* ===== Carrello: pillola qty+elimina (bordo grigio chiaro, sfondo bianco) ===== */
body.woocommerce-cart .wc-block-cart-item__quantity {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    background: #fff !important;
    border: 1px solid #c8c8c8 !important;
    border-radius: 8px !important;
    padding: 2px 6px !important;
    width: auto !important;
}
/* qty senza bordo proprio dentro la pill */
body.woocommerce-cart .wc-block-cart-item__quantity .wc-block-components-quantity-selector {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
/* pallino rosso un filo più piccolo + niente margin extra a sx (è dentro la pill) */
body.woocommerce-cart .wc-block-cart-item__quantity .wc-block-cart-item__remove-link {
    margin-left: 4px !important;
}

/* ===== Carrello: nascondi blocco cross-sells "You may be interested in" nella card prodotti ===== */
body.woocommerce-cart .wp-block-woocommerce-cart-items-block .wp-block-woocommerce-product-collection,
body.woocommerce-cart .wp-block-woocommerce-cart-line-items-block + .wp-block-woocommerce-product-collection {
    display: none !important;
}

/* ===== Tooltip custom (rosso chiaro, immediato) su tasto + disabilitato ===== */
body.woocommerce-cart .wc-block-components-quantity-selector__button { position: relative; }
body.woocommerce-cart .gg-tooltip::before {
    content: attr(data-gg-tooltip);
    position: absolute;
    top: 50%;
    left: calc(100% + 60px);
    transform: translateY(-50%);
    background: #d11919;
    color: #fff;
    border: none;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    padding: 6px 10px;
    border-radius: 6px;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.18);
    z-index: 50;
    transition: opacity 0.05s linear;
}
body.woocommerce-cart .gg-tooltip:hover::before,
body.woocommerce-cart .gg-tooltip:focus::before {
    opacity: 1;
}
/* Tasto + disabilitato: cursore di divieto, leggermente sbiadito (ma il tooltip glielo dice) */
body.woocommerce-cart .wc-block-components-quantity-selector__button--plus.gg-tooltip {
    cursor: not-allowed !important;
    opacity: 0.45 !important;
}

/* =========================================================
   PAGINA CHECKOUT (blocco WC) — grafica Grandin
   Mirror del carrello: card bianche, 2 colonne, prezzi rossi,
   PayPal/PlaceOrder rounded, "Totale" e "Spedizione", coupon ok
   ========================================================= */

/* Layout 2 colonne: form a sx (60%), riepilogo a dx (40%) */
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-checkout .wc-block-checkout {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 50px !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block,
body.woocommerce-checkout .wc-block-checkout__main {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block,
body.woocommerce-checkout .wc-block-checkout__sidebar {
    flex: 0 0 360px !important;
    max-width: 360px !important;
    margin-left: 0 !important;
}

/* Card bianca attorno al form sx */
body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 16px;
    padding: 22px 26px;
    box-shadow: 0 1px 6px rgba(0,0,0,0.06);
}
/* Card bianca attorno al riepilogo dx */
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 16px;
    padding: 22px 24px;
    box-shadow: 0 1px 6px rgba(0,0,0,0.06);
}

/* Order summary items: titolo blu/grassetto, prezzo rosso, no linee */
body.woocommerce-checkout .wc-block-components-order-summary-item {
    border: 0 !important;
    box-shadow: none !important;
    padding: 10px 0 !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-product-name {
    color: var(--shop-primary) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
body.woocommerce-checkout .wc-block-components-order-summary-item .wc-block-components-formatted-money-amount {
    color: var(--shop-red) !important;
    font-weight: 700 !important;
    font-size: 18px !important;
}

/* Totali: prezzi rossi (subtotale, spedizione) e Totale finale grande */
body.woocommerce-checkout .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-item__value .wc-block-formatted-money-amount {
    color: var(--shop-red) !important;
    font-weight: 700 !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block .wc-block-components-totals-item__value,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block .wc-block-components-totals-item__value {
    font-weight: 700 !important;
    font-size: 22px !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    color: var(--shop-red) !important;
    font-weight: 800 !important;
    font-size: 32px !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    color: var(--shop-red) !important;
    font-weight: 800 !important;
}

/* Decimali e simbolo € piccoli (wrappati via JS .gg-dec / .gg-cur) */
body.woocommerce-checkout .gg-dec,
body.woocommerce-checkout .gg-cur {
    font-size: 0.68em;
    vertical-align: baseline;
}

/* Via tutte le linee/separatori orizzontali */
body.woocommerce-checkout .wc-block-components-totals-item,
body.woocommerce-checkout .wc-block-components-totals-footer-item,
body.woocommerce-checkout .wc-block-components-panel,
body.woocommerce-checkout .wc-block-components-panel__button,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block > *,
body.woocommerce-checkout hr.wc-block-components-totals-item__separator,
body.woocommerce-checkout .wc-block-components-totals-item::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block > *::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block > *::before {
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}
body.woocommerce-checkout .wc-block-components-totals-item::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block > *::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block > *::before {
    display: none !important;
}

/* Coupon: pannello apribile come nel carrello */
body.woocommerce-checkout .wc-block-components-panel__button {
    color: var(--shop-primary) !important;
    font-weight: 600 !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__input input {
    border-radius: 999px !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__button {
    border-radius: 999px !important;
    background: var(--shop-accent) !important;
    color: #fff !important;
    font-weight: 700 !important;
}
/* Chevron arancio sui pannelli a comparsa */
body.woocommerce-checkout .wc-block-components-panel__button-icon,
body.woocommerce-checkout .wc-block-components-panel__button svg {
    color: var(--shop-accent) !important;
    width: 52px !important;
    height: 52px !important;
}

/* "Place order" rosso rounded, grassetto, no underline */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .wp-block-woocommerce-checkout-actions-block button {
    background: var(--shop-red) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    padding: 14px 22px !important;
    width: 100% !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
    background: #a01313 !important;
}

/* PayPal / express payment iframe rounded */
body.woocommerce-checkout .ppc-button-wrapper,
body.woocommerce-checkout .ppc-button-wrapper > div,
body.woocommerce-checkout [id^="ppc-button"],
body.woocommerce-checkout .ppc-button-wrapper iframe,
body.woocommerce-checkout .wc-block-components-express-payment iframe {
    border-radius: 18px !important;
    overflow: hidden !important;
}
body.woocommerce-checkout .ppc-button-wrapper iframe,
body.woocommerce-checkout .ppc-button-wrapper > div {
    display: block !important;
}

/* Separatore "OPPURE" centrato e grassetto */
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule {
    display: flex !important;
    justify-content: center !important;
    text-align: center !important;
    font-weight: 700 !important;
}

/* Bottoni input nei form: rounded coerenti */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-textarea,
body.woocommerce-checkout .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-combobox input {
    border-radius: 8px !important;
}

/* ===== Checkout: aggiustamenti finali ===== */
/* 1. Nascondi titolo pagina "Checkout" */
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout .page-title,
body.woocommerce-checkout header.entry-header {
    display: none !important;
}
/* 2. Bordi campi input: grigio chiaro */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-textarea,
body.woocommerce-checkout .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-combobox input,
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout select,
body.woocommerce-checkout textarea {
    border: 1px solid #c8c8c8 !important;
    box-shadow: none !important;
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-textarea:focus,
body.woocommerce-checkout .wc-block-components-select select:focus,
body.woocommerce-checkout input:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout textarea:focus {
    border-color: #cfcfcf !important;
    box-shadow: 0 0 0 2px #f0f0f0 !important;
    outline: none !important;
}
/* 3. Spazio maggiore tra le 2 card + stringi un po' la sx */
body.woocommerce-checkout .wp-block-woocommerce-checkout {
    gap: 50px !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block {
    flex: 0 1 calc(100% - 380px - 50px) !important;
    max-width: calc(100% - 380px - 50px) !important;
    padding: 22px 22px !important;
}
/* 4. PayPal + Effettua ordine: stesso border-radius del carrello (18px) e stesse dimensioni */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .wp-block-woocommerce-checkout-actions-block button,
body.woocommerce-checkout .wc-block-cart__submit-button {
    background: var(--shop-red) !important;
    border-color: var(--shop-red) !important;
    color: #fff !important;
    border-radius: 18px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    padding: 14px 22px !important;
    width: 100% !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout .wp-block-woocommerce-checkout-actions-block button:hover {
    background: #a01313 !important;
}
body.woocommerce-checkout .ppc-button-wrapper,
body.woocommerce-checkout .ppc-button-wrapper > div,
body.woocommerce-checkout [id^="ppc-button"],
body.woocommerce-checkout .ppc-button-wrapper iframe,
body.woocommerce-checkout .wc-block-components-express-payment iframe {
    border-radius: 18px !important;
    overflow: hidden !important;
}

/* ===== Carrello: selettore metodo spedizione (switch a thumb scorrevole) ===== */
.gg-ship-select {
    margin: 0 0 16px;
    --idx: 0;
}
.gg-ship-title {
    font-size: 13px;
    font-weight: 700;
    color: #003399;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
/* wrapper unico: la card */
.gg-ship-select {
    background: #f3faf5;
    border: 1px solid #18873f;
    border-radius: 12px;
    padding: 6px 10px;
    overflow: hidden;
}
.gg-ship-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.gg-ship-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 6px;
    background: transparent;
    border: none;
    border-top: 1px solid #f0f0f0;
    border-radius: 0;
    cursor: pointer;
    color: #888;
    transition: color 0.15s ease, background 0.15s ease;
}
.gg-ship-row:first-child { border-top: none; }
.gg-ship-row:hover { background: #f9f9f9; }
.gg-ship-row.is-on {
    color: var(--shop-primary);
    background: #f9fdfa;
    border-radius: 8px;
}
.gg-ship-row.is-on + .gg-ship-row { border-top-color: transparent; }
.gg-ship-row .gg-ship-name {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gg-ship-row .gg-ship-price {
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 800;
    color: var(--shop-red);
    white-space: nowrap;
    opacity: 0.5;
    transition: opacity 0.15s ease;
}
.gg-ship-row.is-on .gg-ship-price { opacity: 1; }
/* Toggle switch iOS-style */
.gg-ship-switch {
    flex: 0 0 auto;
    position: relative;
    display: inline-block;
    width: 42px;
    height: 24px;
    background: #c8c8c8;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.2s ease;
    outline: none;
}
.gg-ship-switch:focus-visible { box-shadow: 0 0 0 3px rgba(24,135,63,0.25); }
.gg-ship-knob {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}
.gg-ship-row.is-on .gg-ship-switch { background: #18873f; }
.gg-ship-row.is-on .gg-ship-knob { transform: translateX(18px); }

/* Mobile: testo opzioni spedizione un po' più piccolo + nomi a capo (così si leggono tutti) */
@media (max-width: 768px), (max-height: 480px) {
    .gg-ship-title { font-size: 12px !important; }
    .gg-ship-row { padding: 8px 4px !important; gap: 8px !important; }
    .gg-ship-row .gg-ship-name {
        font-size: 12.5px !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
        line-height: 1.15 !important;
    }
    .gg-ship-row .gg-ship-price { font-size: 12.5px !important; }
    .gg-ship-note { font-size: 12px !important; padding-left: 46px !important; }
}

/* Nota "per Caorle e zone limitrofe" sotto la riga Consegna e installazione */
.gg-ship-note {
    font-size: 14px;
    color: #777;
    line-height: 1.3;
    padding: 0 6px 8px 52px;   /* allineata sotto al nome (dopo lo switch) */
    margin-top: -4px;
}
.gg-ship-note .gg-ship-zone {
    color: var(--shop-red, #d4001a);
    font-weight: 800;
    text-decoration: none !important;
    cursor: pointer;
}
.gg-ship-note .gg-ship-zone:hover { text-decoration: none !important; }

/* "zone" nella disponibilita' pagina prodotto (prodotti non spedibili con corriere): rosso + extra
   bold come nel carrello, cliccabile. Vale mobile + desktop. */
.gg-avail-desc .gg-ship-zone-pp {
    color: var(--shop-red, #d4001a) !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    cursor: pointer;
}
.gg-avail-desc .gg-ship-zone-pp:hover { text-decoration: none !important; }

/* "ritiro del vecchio elettrodomestico": nero. Carrello = extra bold accentuato (900);
   pagina prodotto = grassetto normale (700). */
.gg-ship-note .gg-ritiro-vecchio {
    color: #000 !important;
    font-weight: 900 !important;
}
.gg-avail-desc .gg-ritiro-vecchio {
    color: #000 !important;
    font-weight: 700 !important;
}

/* Overlay zone di consegna */
.gg-zone-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 100000;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.gg-zone-card {
    background: #fff;
    border-radius: 16px;
    max-width: 520px;
    width: 100%;
    max-height: 85vh;
    overflow: auto;
    padding: 26px 28px 28px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.25);
    position: relative;
}
.gg-zone-close {
    position: absolute;
    top: 14px;
    right: 16px;
    width: 30px;
    height: 30px;
    min-width: 30px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #d11919 url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27white%27 stroke-width=%273%27 stroke-linecap=%27round%27%3E%3Cline x1=%276%27 y1=%276%27 x2=%2718%27 y2=%2718%27/%3E%3Cline x1=%2718%27 y1=%276%27 x2=%276%27 y2=%2718%27/%3E%3C/svg%3E") center / 15px 15px no-repeat;
    font-size: 0;
    color: transparent;
    cursor: pointer;
}
.gg-zone-close:hover { background-color: #a01313; }
.gg-zone-title {
    text-align: center;
    font-size: 23px;
    font-weight: 800;
    color: var(--shop-primary);
    margin-bottom: 6px;
}
.gg-zone-sub {
    text-align: center;
    font-size: 15px;
    color: #666;
    margin-bottom: 20px;
}
.gg-zone-comune {
    padding: 10px 0;
    border-top: 1px solid #eee;
    font-size: 15px;
}
.gg-zone-comune:first-child { border-top: none; }
.gg-zone-comune strong {
    display: block;
    color: #333;
    font-size: 16px;
    margin-bottom: 3px;
}
.gg-zone-comune span { color: #666; }

/* ===== UI Consegna in zona (località + extra opzionali) ===== */
.gg-caorle-box {
    background: #f3faf5;
    border: 1px solid #18873f;
    border-radius: 12px;
    padding: 14px 16px;
    margin: 0 0 14px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
/* Header card: titolo + "Ritiro usato gratis" sulla stessa riga */
.gg-caorle-head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin-bottom: 6px;
}
.gg-caorle-title {
    font-size: 18px;
    font-weight: 600;
    color: #333;
    line-height: 1.4;
    margin: 0 0 12px 0;
    letter-spacing: normal;
    text-transform: none;
}
.gg-caorle-head .gg-caorle-title { margin: 0; }
.gg-caorle-included {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 4px 0;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 700;
    color: #18873f;
}
.gg-caorle-head .gg-caorle-included { margin: 0; padding: 0; }
.gg-caorle-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    background: #18873f;
    color: #fff;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 800;
    flex-shrink: 0;
}
.gg-caorle-free { font-weight: 700; margin-left: auto; }
.gg-caorle-label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #333;
    margin: 6px 0 4px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.gg-caorle-req { color: var(--shop-red); }
.gg-caorle-select {
    width: 100%;
    padding: 6px 32px 6px 0 !important;
    border: none !important;
    border-radius: 0 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    background: transparent !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f16710' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 4px center !important;
    background-size: 18px 18px !important;
    font-family: inherit;
    color: var(--shop-primary);
    margin-bottom: 12px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
}
.gg-caorle-select:focus {
    outline: none !important;
    box-shadow: none !important;
}
.gg-caorle-select option {
    font-weight: 600;
    color: #333;
}
.gg-caorle-checkbox-row {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    align-items: start;
    gap: 8px;
    padding: 8px 0 6px;
    cursor: pointer;
}
.gg-caorle-checkbox-row input[type="checkbox"] {
    margin-top: 2px;
    width: 18px;
    height: 18px;
    accent-color: var(--shop-accent);
    cursor: pointer;
}
.gg-caorle-cbox-label {
    font-size: 13px;
    color: #333;
    line-height: 1.3;
}
.gg-caorle-cbox-label small {
    display: block;
    font-size: 11px;
    color: #777;
    margin-top: 2px;
}
.gg-caorle-cbox-price {
    font-size: 14px;
    font-weight: 800;
    color: var(--shop-red);
    white-space: nowrap;
}
.gg-caorle-nota {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #cfcfcf;
    border-radius: 8px;
    font-size: 13px;
    background: #fafafa;
    box-sizing: border-box;
    margin-top: 6px;
}
/* Descrizione servizi extra (toggle OFF): elenco discreto di cosa sono gli extra */
.gg-caorle-extra-desc {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.35;
    color: #5a6b5e;
    font-style: italic;
}
/* Select "Servizi extra": freccia nativa nascosta + chevron arancio giù (come Scheda tecnica) */
select.gg-caorle-servizio {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer;
    padding-right: 34px;
    background-color: #fafafa;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff6600' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 16px 16px;
}
select.gg-caorle-servizio::-ms-expand { display: none; }

/* ===== Fattura: il controllo "usa altro indirizzo" diventa lo switch "Richiedi fattura" ===== */
.gg-chev-billing::before { display: none !important; }                 /* via il chevron */
.gg-chev-billing::after { content: none !important; }                  /* usiamo una label reale */
.gg-fattura-label { font-size: 14px; color: #333; line-height: 1.3; }
/* switch allineato a SX come i campi, scritta più staccata.
   Nascondo il checkbox WC nativo (occupava spazio e indentava lo switch). */
.gg-chev-billing {
    margin-left: 0 !important;
    padding-left: 0 !important;
    display: flex !important;
    align-items: center;
    gap: 0 !important;
}
/* Il <label for="checkbox-control-0"> (checkbox WC) è il PRIMO figlio flex e indentava
   lo switch: lo nascondo del tutto. Il checkbox resta nel DOM e cliccabile via JS (input.click). */
.gg-chev-billing > label { display: none !important; }
.gg-chev-billing input[type="checkbox"],
.gg-chev-billing .wc-block-components-checkbox__input,
.gg-chev-billing .wc-block-components-checkbox__mark,
.gg-chev-billing svg { display: none !important; }
.gg-fattura-sw { margin: 0 12px 0 0 !important; vertical-align: middle; flex: 0 0 auto; order: -1; }
.gg-chev-billing.gg-fattura-on .gg-fattura-sw { background: #18873f !important; }
.gg-chev-billing.gg-fattura-on .gg-fattura-sw .gg-caorle-knob { transform: translateX(18px); }
/* Override a doppia classe: batte ".gg-chev-toggle{padding-left:26px}" e il chevron ::before,
   così lo switch parte allineato a sinistra (niente spazio lilla del chevron). */
.gg-chev-toggle.gg-chev-billing { padding-left: 0 !important; }
.gg-chev-toggle.gg-chev-billing::before { display: none !important; content: none !important; }

/* Switch Privato/Azienda (stesso stile di Richiedi fattura) a destra.
   Visibile SOLO quando "Richiedi fattura" è attivo (blocco aperto = .gg-fattura-on). */
.gg-fattura-tipo {
    margin-left: auto;
    display: none;            /* nascosto finché fattura non è richiesta */
    align-items: center;
    gap: 8px;
    cursor: pointer;
}
.gg-chev-billing.gg-fattura-on .gg-fattura-tipo { display: inline-flex; }
.gg-fattura-tipo .gg-tipo-lab { font-size: 12px; font-weight: 700; color: #999; }
.gg-fattura-tipo .gg-tipo-lab-priv { color: var(--shop-primary, #003399); }     /* default: Privato attivo */
.gg-fattura-tipo.is-azienda .gg-tipo-lab-priv { color: #999; }
.gg-fattura-tipo.is-azienda .gg-tipo-lab-az { color: var(--shop-primary, #003399); }
.gg-fattura-tipo.is-azienda .gg-tipo-sw { background: var(--shop-primary, #003399) !important; }
.gg-fattura-tipo.is-azienda .gg-tipo-sw .gg-caorle-knob { transform: translateX(18px); }

/* Campi fiscali iniettati nel form indirizzo: stesso aspetto/altezza dei nativi (bianco).
   align-self:flex-start evita lo stretch (i wrapper nativi sono più alti per la label flottante). */
#gg-fat-ragione, #gg-fat-fiscale, #gg-fat-univoco {
    height: 50px;              /* = input nativo WC */
    margin-top: 12px;          /* = margin-top del wrapper nativo (allinea verticalmente) */
    padding: 16px 12px;        /* = input nativo */
    align-self: flex-start !important;
    border: 1px solid #c8c8c8;
    border-radius: 8px;
    background: #fff !important;
    font-size: 16px;           /* = input nativo */
    line-height: 25px;
    box-sizing: border-box;
    display: none; /* mostrati per tipo */
}
/* placeholder scuro come gli altri campi (non più chiaro) */
#gg-fat-ragione::placeholder, #gg-fat-fiscale::placeholder, #gg-fat-univoco::placeholder {
    color: #555;
    opacity: 1;
}
#gg-fat-ragione:focus, #gg-fat-fiscale:focus, #gg-fat-univoco:focus { outline: 1px solid var(--shop-primary, #003399); }

/* === AZIENDA: prima riga = Ragione sociale | Partita IVA | Codice Univoco (Nome/Cognome nascosti) === */
.gg-tipo-azienda .wc-block-components-text-input:has(input[id$="-first_name"]),
.gg-tipo-azienda .wc-block-components-text-input:has(input[id$="-last_name"]) { display: none !important; }
.gg-tipo-azienda #gg-fat-ragione { display: block; order: -3; flex: 1 0 calc(33.333% - 8px); }
.gg-tipo-azienda #gg-fat-fiscale { display: block; order: -2; flex: 1 0 calc(33.333% - 8px); }
.gg-tipo-azienda #gg-fat-univoco { display: block; order: -1; flex: 1 0 calc(33.333% - 8px); }

/* === PRIVATO: prima riga = Nome | Cognome | Codice Fiscale (Ragione/Univoco nascosti) === */
.gg-tipo-privato #gg-fat-ragione,
.gg-tipo-privato #gg-fat-univoco { display: none !important; }
.gg-tipo-privato .wc-block-components-text-input:has(input[id$="-first_name"]) { order: -3; flex: 1 0 calc(33.333% - 8px) !important; }
.gg-tipo-privato .wc-block-components-text-input:has(input[id$="-last_name"])  { order: -2; flex: 1 0 calc(33.333% - 8px) !important; }
.gg-tipo-privato #gg-fat-fiscale { display: block; order: -1; flex: 1 0 calc(33.333% - 8px); }

/* Blocco Fatturazione: Paese/Regione a fianco della Provincia, STESSO stile/altezza */
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-address-form .wc-block-components-state-input { order: 7; }
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-address-form .wc-block-components-country-input {
    order: 8;
    flex: 1 0 calc(50% - 12px) !important;
}
/* Paese/Regione: scende ad allinearsi in basso con la Provincia (è più corto) + angoli arrotondati.
   NB: il select usa la classe wc-blockS-components-select (prefisso diverso). */
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-country-input {
    align-self: flex-end !important;
}
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-country-input .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-state-input .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-country-input select,
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-state-input select {
    border-radius: 10px !important;
    box-sizing: border-box !important;
}

/* "Aggiungi appartamento…": "+" arancio al posto del chevron (entrambi i blocchi).
   Doppia classe per battere .gg-chev-btn::before. */
.wc-block-components-address-form__address_2-toggle.gg-chev-btn::before,
.wc-block-components-address-form__address_2-toggle::before {
    background: none !important;
    content: "+" !important;
    color: #ff6600 !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 18px !important;
    width: 18px !important;
    text-align: center !important;
}

/* === BLOCCO SPEDIZIONE: riordino campi ===
   Riga: Nome | Cognome ; Indirizzo (largo) | Telefono (stretto) ; CAP | Città ; Provincia | Paese/Regione */
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form .wc-block-components-text-input:has(input[id$="-first_name"]) { order: 1; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form .wc-block-components-text-input:has(input[id$="-last_name"])  { order: 2; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form .wc-block-components-text-input:has(input[id$="-address_1"]) {
    order: 3;
    flex: 1 1 calc(66% - 12px) !important;   /* Indirizzo più largo */
}
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form .wc-block-components-text-input:has(input[id$="-phone"]) {
    order: 4;
    flex: 1 1 calc(34% - 12px) !important;   /* Telefono più stretto, a fianco dell'indirizzo */
}
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__address_2-toggle { order: 5; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form .wc-block-components-text-input:has(input[id$="-address_2"]) { order: 5; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form .wc-block-components-text-input:has(input[id$="-postcode"]) { order: 6; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form .wc-block-components-text-input:has(input[id$="-city"]) { order: 7; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-state-input { order: 8; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-country-input {
    order: 9;
    flex: 1 0 calc(50% - 12px) !important;
    align-self: flex-end !important;
}
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-country-input .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-state-input .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-country-input select,
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-state-input select {
    border-radius: 10px !important;
    box-sizing: border-box !important;
}

/* Blocco Fatturazione: nascondi Telefono e "Aggiungi appartamento, suite, ecc." */
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-address-form__address_2-toggle,
.wp-block-woocommerce-checkout-billing-address-block .wc-block-components-text-input:has(input[id$="-phone"]) {
    display: none !important;
}

/* =========================================================
   PAGINA MY ACCOUNT — grafica Grandin (allineata a cart/checkout)
   ========================================================= */
/* Nascondi titolo H1 pagina */
body.woocommerce-account .entry-title,
body.woocommerce-account .page-title,
body.woocommerce-account header.entry-header {
    display: none !important;
}
/* Riquadro bianco principale */
body.woocommerce-account .woocommerce {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    max-width: 980px;
    margin: 0 auto;
}
/* Titoli sezioni: blu Grandin */
body.woocommerce-account .woocommerce h2,
body.woocommerce-account .woocommerce h3 {
    color: var(--shop-primary);
    font-weight: 700;
    margin-top: 0;
}
/* Label form */
body.woocommerce-account .woocommerce label {
    font-weight: 600;
    color: #333;
    font-size: 14px;
    display: block;
    margin-bottom: 6px;
}
/* Input form: rounded, bordo grigio chiaro */
body.woocommerce-account .woocommerce input[type="text"],
body.woocommerce-account .woocommerce input[type="email"],
body.woocommerce-account .woocommerce input[type="password"],
body.woocommerce-account .woocommerce input[type="tel"],
body.woocommerce-account .woocommerce input[type="number"],
body.woocommerce-account .woocommerce select,
body.woocommerce-account .woocommerce textarea {
    border: 1px solid #c8c8c8 !important;
    border-radius: 8px !important;
    padding: 10px 12px !important;
    font-size: 14px !important;
    width: 100% !important;
    max-width: 380px !important;
    background: #fff !important;
    box-shadow: none !important;
    font-family: inherit;
}
body.woocommerce-account .woocommerce input:focus,
body.woocommerce-account .woocommerce select:focus,
body.woocommerce-account .woocommerce textarea:focus {
    outline: none !important;
    border-color: var(--shop-accent) !important;
    box-shadow: 0 0 0 2px rgba(241,103,16,0.15) !important;
}
/* Pulsanti: stile Grandin red rounded */
body.woocommerce-account .woocommerce button[type="submit"],
body.woocommerce-account .woocommerce .button,
body.woocommerce-account .woocommerce input[type="submit"] {
    background: var(--shop-red) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 18px !important;
    padding: 12px 26px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    cursor: pointer;
    text-transform: none;
}
body.woocommerce-account .woocommerce button[type="submit"]:hover,
body.woocommerce-account .woocommerce .button:hover {
    background: #a01313 !important;
}
/* Navigazione laterale account */
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li {
    margin: 0 !important;
    border-bottom: 1px solid #f0f0f0;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border: none; }
body.woocommerce-account .woocommerce-MyAccount-navigation a {
    display: block;
    padding: 12px 14px;
    color: #333;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
    transition: background 0.15s ease, color 0.15s ease;
}
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
    background: #f7f7f7;
    color: var(--shop-primary);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    font-weight: 800 !important;
    background: transparent;
    color: var(--shop-primary);
}
/* Form "Accedi" (login) e "Registrati": titoli più grandi, layout pulito */
body.woocommerce-account .u-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}
body.woocommerce-account .u-column1,
body.woocommerce-account .u-column2 {
    width: 100% !important;
}
@media (max-width: 768px), (max-height: 480px) {
    body.woocommerce-account .u-columns { grid-template-columns: 1fr; }
}


/* ===== Coupon: campo + bottone Applica più compatti, stile Grandin ===== */
body.woocommerce-cart .wc-block-components-totals-coupon,
body.woocommerce-checkout .wc-block-components-totals-coupon {
    padding-top: 8px !important;
}
body.woocommerce-cart .wc-block-components-totals-coupon__form,
body.woocommerce-checkout .wc-block-components-totals-coupon__form {
    display: flex !important;
    gap: 6px !important;
    align-items: stretch !important;
}
body.woocommerce-cart .wc-block-components-totals-coupon__input,
body.woocommerce-checkout .wc-block-components-totals-coupon__input {
    flex: 1 1 auto !important;
    display: flex !important;
    align-items: stretch !important;
    margin: 0 !important;
}
body.woocommerce-cart .wc-block-components-totals-coupon__input input,
body.woocommerce-checkout .wc-block-components-totals-coupon__input input {
    width: 100% !important;
    height: 38px !important;
    box-sizing: border-box !important;
    padding: 0 12px !important;
    font-size: 13px !important;
    line-height: 1 !important;
    border: 1px solid #c8c8c8 !important;
    border-radius: 8px !important;
    background: #fff !important;
    margin: 0 !important;
}
body.woocommerce-cart .wc-block-components-totals-coupon__button,
body.woocommerce-checkout .wc-block-components-totals-coupon__button {
    flex: 0 0 auto !important;
    align-self: stretch !important;
    height: 38px !important;
    box-sizing: border-box !important;
    padding: 0 18px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    border-radius: 8px !important;
    background: #d4d4d4 !important;
    color: #fff !important;
    border: none !important;
    cursor: not-allowed;
    transition: background 0.15s ease;
    margin: 0 !important;
}
/* Quando il campo ha valore: bottone verde + cliccabile */
body.woocommerce-cart .gg-coupon-ready .wc-block-components-totals-coupon__button,
body.woocommerce-checkout .gg-coupon-ready .wc-block-components-totals-coupon__button {
    background: #18873f !important;
    cursor: pointer !important;
}
body.woocommerce-cart .gg-coupon-ready .wc-block-components-totals-coupon__button:hover,
body.woocommerce-checkout .gg-coupon-ready .wc-block-components-totals-coupon__button:hover {
    background: #146d33 !important;
}
/* ===== Nascondi temporaneamente il blocco "Aggiungi codici promozionali" ===== */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-coupon-form-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block,
body.woocommerce-cart .wc-block-components-totals-coupon,
body.woocommerce-checkout .wc-block-components-totals-coupon {
    display: none !important;
}


/* ===== Cart/Checkout/My-account: .entry-content stessa max-width del header ===== */
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .entry-content {
    max-width: var(--shop-max-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}


/* ===== Lavori particolari: switch toggle iOS-style ===== */
.gg-caorle-switch-row {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 0 6px !important;
    cursor: pointer;
}
.gg-caorle-switch-row .gg-caorle-cbox-label { flex: 0 0 auto; }
/* Descrizione servizi IN LINEA dopo "Servizi extra"; il prezzo resta spinto a destra */
.gg-caorle-switch-row .gg-caorle-extra-desc { flex: 0 1 auto; margin: 0; }
.gg-caorle-switch-row .gg-caorle-cbox-price { flex: 0 0 auto; margin-left: auto; }
.gg-caorle-switch {
    flex: 0 0 auto;
    position: relative;
    display: inline-block;
    width: 42px;
    height: 24px;
    background: #c8c8c8;
    border-radius: 999px;
    transition: background 0.2s ease;
}
.gg-caorle-knob {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}
.gg-caorle-switch-row.is-on .gg-caorle-switch { background: #18873f; }
.gg-caorle-switch-row.is-on .gg-caorle-knob { transform: translateX(18px); }


/* ===== Override checkout: dropdown localita' Caorle SENZA bordo (vince sulle rule generiche select) ===== */
body.woocommerce-checkout .gg-caorle-box .gg-caorle-select,
body.woocommerce-cart .gg-caorle-box .gg-caorle-select {
    border: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    /* background-image (chevron arancio) preservato dalla regola .gg-caorle-select */
}
body.woocommerce-checkout .gg-caorle-box .gg-caorle-select:focus,
body.woocommerce-cart .gg-caorle-box .gg-caorle-select:focus {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

/* ===== Riepilogo ordine: layout item (titolo full width sopra, prezzo sotto, no descrizione) ===== */
body.woocommerce-checkout .wc-block-components-order-summary-item,
body.woocommerce-cart .wc-block-components-order-summary-item {
    display: grid !important;
    grid-template-columns: 60px 1fr !important;
    column-gap: 12px !important;
    row-gap: 4px !important;
    align-items: start !important;
    padding: 8px 0 !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__image,
body.woocommerce-cart .wc-block-components-order-summary-item__image {
    grid-column: 1 / 2 !important;
    grid-row: 1 / 4 !important;
}
/* description wrapper visibile (contiene anche il nome) — nascondiamo solo il <p> della descrizione */
body.woocommerce-checkout .wc-block-components-order-summary-item__description,
body.woocommerce-cart .wc-block-components-order-summary-item__description {
    grid-column: 2 / 3 !important;
    grid-row: 1 / 2 !important;
    padding: 0 !important;
    word-break: break-word;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__description p,
body.woocommerce-cart .wc-block-components-order-summary-item__description p {
    display: none !important;
}
body.woocommerce-checkout .wc-block-components-product-name,
body.woocommerce-cart .wc-block-components-order-summary-item .wc-block-components-product-name {
    grid-column: 2 / 3 !important;
    grid-row: 1 / 2 !important;
    max-width: 100% !important;
    width: 100% !important;
    font-weight: 700 !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
body.woocommerce-cart .wc-block-components-order-summary-item__total-price {
    grid-column: 2 / 3 !important;
    grid-row: 2 / 3 !important;
    text-align: left !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    color: var(--shop-red) !important;
    margin: 0 !important;
}

/* ===== Riepilogo ordine: nascondi prezzo unitario (mostra solo il totale per riga) ===== */
body.woocommerce-checkout .wc-block-components-order-summary-item__individual-prices,
body.woocommerce-cart .wc-block-components-order-summary-item__individual-prices {
    display: none !important;
}


/* Riquadro interno riepilogo: angoli piu' arrotondati (WC default 5px) */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
    border-radius: 12px !important;
}

/* ===== Riepilogo ordine: titolo piu' piccolo ===== */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
    padding: 0 0 12px 16px !important;
    margin: 0 !important;
    border: none !important;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    padding-left: 0 !important;
}

/* ===== Rename "Riepilogo dell'ordine" -> "Riepilogo ordine" — pure CSS, bulletproof ===== */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
    font-size: 0 !important;
    color: transparent !important;
    line-height: 0 !important;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text::before {
    content: "Riepilogo ordine";
    display: block;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    color: #333 !important;
}

/* ===== Checkout: radio shipping/payment -> switch toggle iOS-style (switch a SX) ===== */
body.woocommerce-checkout .wc-block-components-radio-control__option,
body.woocommerce-checkout .wc-block-components-radio-control__option:last-child {
    border: none !important;
    box-shadow: none !important;
    position: relative !important;
    padding: 10px 0 10px 56px !important;
}
body.woocommerce-checkout .wc-block-components-radio-control__option::before,
body.woocommerce-checkout .wc-block-components-radio-control__option:last-child::before {
    /* Track grigio default, verde se selezionato — A SINISTRA */
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 14px !important;
    transform: none !important;
    width: 42px !important;
    height: 24px !important;
    background: #c8c8c8 !important;
    border: none !important;
    border-radius: 999px !important;
    transition: background 0.2s ease !important;
    z-index: 2 !important;
    display: block !important;
}
body.woocommerce-checkout .wc-block-components-radio-control__option::after,
body.woocommerce-checkout .wc-block-components-radio-control__option:last-child::after {
    /* Knob bianco — A SINISTRA, scivola a dx quando ON */
    content: "" !important;
    position: absolute !important;
    left: 2px !important;
    top: 16px !important;
    transform: none !important;
    width: 20px !important;
    height: 20px !important;
    background: #fff !important;
    border: none !important;
    border-radius: 50% !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2) !important;
    transition: left 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 3 !important;
    display: block !important;
}
body.woocommerce-checkout .wc-block-components-radio-control__option--checked-option-highlighted::before,
body.woocommerce-checkout .wc-block-components-radio-control__option:has(input:checked)::before {
    background: #18873f !important;
}
body.woocommerce-checkout .wc-block-components-radio-control__option--checked-option-highlighted::after,
body.woocommerce-checkout .wc-block-components-radio-control__option:has(input:checked)::after {
    left: 20px !important;
}
/* Nascondi visivamente il radio nativo MA tienilo cliccabile (WC ne ha bisogno per registrare il click) */
body.woocommerce-checkout .wc-block-components-radio-control__input,
body.woocommerce-checkout .wc-block-components-radio-control__option input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    pointer-events: auto !important;
}
body.woocommerce-checkout .wc-block-components-radio-control__option-layout {
    padding-left: 0 !important;
    border: none !important;
}
/* Rimuovi bordo intorno al payment options accordion (PayPal selezionato con bordo nero) */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked,
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked--first-selected,
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked--last-selected {
    border: none !important;
    box-shadow: none !important;
}

/* ===== Return to Cart -> grande chevron arancio sx + "Torna al carrello" sotto ===== */
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button {
    font-size: 0 !important;
    color: transparent !important;
    text-decoration: none !important;
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 2px !important;
    background: transparent !important;
    padding: 8px 4px !important;
    position: relative;
    transition: transform 0.15s ease;
    width: auto !important;
    height: auto !important;
}
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button:hover {
    transform: translateX(-3px);
}
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button::before,
body.woocommerce-checkout .gg-return-top::before {
    content: "";
    width: 32px;
    height: 32px;
    background: var(--shop-accent);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'/%3E%3C/svg%3E") center / contain no-repeat;
    flex-shrink: 0;
}
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button::after,
body.woocommerce-checkout .gg-return-top::after {
    content: "Torna al carrello";
    font-size: 20px !important;
    font-weight: 700;
    color: var(--shop-primary);
    line-height: 1.2;
    white-space: nowrap;
}

/* ===== Checkout: actions container — PayPal e Procedi grandi e a destra ===== */
body.woocommerce-checkout .wc-block-checkout__actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100% !important;
}
body.woocommerce-checkout .wc-block-checkout__actions_row {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    width: 100% !important;
    position: relative !important;
}
/* Torna al carrello: assoluto a sx, Procedi centrato */
body.woocommerce-checkout .wc-block-checkout__actions_row .wc-block-components-checkout-return-to-cart-button {
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
}
/* Place order (Procedi su PayPal / Procedi al pagamento) - LARGO come nel carrello, a destra */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
    flex: 0 0 380px !important;
    max-width: 380px !important;
    min-height: 52px !important;
    height: auto !important;
    background: var(--shop-red) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 18px !important;
    font-weight: 800 !important;
    font-size: 16px !important;
    padding: 14px 24px !important;
    margin: 0 auto !important;
    text-decoration: none !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
    background: #a01313 !important;
}
/* PayPal button (express checkout in actions row se presente) — stessa dimensione */
body.woocommerce-checkout .wc-block-checkout__actions .ppcp-button-wrapper,
body.woocommerce-checkout .wc-block-checkout__actions [id^="ppcp-button"] {
    flex: 0 0 380px !important;
    max-width: 380px !important;
    margin-left: auto !important;
    border-radius: 18px !important;
    overflow: hidden !important;
}
body.woocommerce-checkout .wc-block-checkout__actions .ppcp-button-wrapper iframe {
    border-radius: 18px !important;
    min-height: 52px !important;
}

/* ===== Checkout: Express Checkout (PayPal in alto) — rounded e allineato a dx ===== */
body.woocommerce-checkout .wc-block-components-express-payment {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}
body.woocommerce-checkout .wc-block-components-express-payment__title-container,
body.woocommerce-checkout .wc-block-components-express-payment__title {
    width: 380px !important;
    max-width: 380px !important;
    text-align: center !important;
    margin: 0 auto !important;
}
body.woocommerce-checkout .wc-block-components-express-payment__content {
    width: 380px !important;
    max-width: 380px !important;
    margin: 0 auto !important;
}
body.woocommerce-checkout .wc-block-components-express-payment__event-buttons {
    width: 100% !important;
}
body.woocommerce-checkout .wc-block-components-express-payment .ppcp-button-wrapper,
body.woocommerce-checkout .wc-block-components-express-payment iframe,
body.woocommerce-checkout .wc-block-components-express-payment [id^="ppcp-button"] {
    width: 100% !important;
    max-width: 380px !important;
    border-radius: 18px !important;
    overflow: hidden !important;
}
body.woocommerce-checkout .wc-block-components-express-payment iframe {
    min-height: 52px !important;
    display: block !important;
}

/* ===== Express Checkout: via titolo + via riquadro/bordo/ombra ===== */
body.woocommerce-checkout .wc-block-components-express-payment__title-container,
body.woocommerce-checkout .wc-block-components-express-payment__title {
    display: none !important;
}
body.woocommerce-checkout .wc-block-components-express-payment,
body.woocommerce-checkout .wc-block-components-express-payment__content,
body.woocommerce-checkout .wp-block-woocommerce-checkout-express-payment-block {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
}
body.woocommerce-checkout .wc-block-components-express-payment .ppcp-button-wrapper,
body.woocommerce-checkout .wc-block-components-express-payment iframe {
    box-shadow: none !important;
    border: none !important;
}

/* ===== Checkout: nascondi "Shipping options" nel form sx (passa nel sidebar dx via gg-ship-select) ===== */
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-method-block,
body.woocommerce-checkout .wc-block-checkout__shipping-method {
    display: none !important;
}

/* ===== Checkout: nascondi "Shipping options" — selettori multipli (struttura React può variare) ===== */
body.woocommerce-checkout [data-block-name="woocommerce/checkout-shipping-method-block"],
body.woocommerce-checkout div[class*="checkout-shipping-method"],
body.woocommerce-checkout #shipping-option,
body.woocommerce-checkout #shipping-options,
body.woocommerce-checkout [id="shipping-option"],
body.woocommerce-checkout [id="shipping-options"] {
    display: none !important;
}

/* ===== Prezzo Lavori particolari (+25) e decimali/€ 0.68em ===== */
body.woocommerce-checkout .gg-caorle-box .gg-caorle-cbox-price,
body.woocommerce-checkout .gg-caorle-switch-row .gg-caorle-cbox-price {
    font-size: 22px !important;
    font-weight: 600 !important;
    color: var(--shop-red) !important;
    line-height: 1.2 !important;
}
body.woocommerce-checkout .gg-caorle-cbox-price .gg-dec,
body.woocommerce-checkout .gg-caorle-cbox-price .gg-cur {
    font-size: 0.68em !important;
    vertical-align: baseline !important;
}
/* Tutti i prezzi checkout: decimali/€ a 0.68em forzati */
body.woocommerce-checkout .gg-dec,
body.woocommerce-checkout .gg-cur {
    font-size: 0.68em !important;
    vertical-align: baseline !important;
    font-weight: inherit !important;
}

/* ===== Totals checkout: stessa dimensione su tutte le righe (Subtotale/Lavori/Consegna) ===== */
body.woocommerce-checkout .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-item__value .wc-block-formatted-money-amount,
body.woocommerce-checkout .wc-block-components-totals-item__value .wc-block-components-formatted-money-amount,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-fee-block .wc-block-components-totals-item__value,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block .wc-block-components-totals-item__value,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block .wc-block-components-totals-item__value {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--shop-red) !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 32px !important;
    font-weight: 800 !important;
}
/* Forza decimali/€ a 0.68em ovunque nei prezzi rossi del checkout */
body.woocommerce-checkout .wc-block-components-totals-item__value .gg-dec,
body.woocommerce-checkout .wc-block-components-totals-item__value .gg-cur,
body.woocommerce-checkout .wc-block-formatted-money-amount .gg-dec,
body.woocommerce-checkout .wc-block-formatted-money-amount .gg-cur,
body.woocommerce-checkout .wc-block-components-formatted-money-amount .gg-dec,
body.woocommerce-checkout .wc-block-components-formatted-money-amount .gg-cur {
    font-size: 0.68em !important;
    vertical-align: baseline !important;
    font-weight: inherit !important;
}

/* ===== Express payment "Or continue below": rimuovi le linee orizzontali ===== */
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule,
body.woocommerce-cart .wc-block-components-express-payment-continue-rule,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule--cart,
body.woocommerce-cart .wc-block-components-express-payment-continue-rule--cart {
    border: none !important;
    background: none !important;
    text-align: center !important;
}
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule::before,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule::after,
body.woocommerce-cart .wc-block-components-express-payment-continue-rule::before,
body.woocommerce-cart .wc-block-components-express-payment-continue-rule::after,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule--cart::before,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule--cart::after,
body.woocommerce-cart .wc-block-components-express-payment-continue-rule--cart::before,
body.woocommerce-cart .wc-block-components-express-payment-continue-rule--cart::after {
    display: none !important;
    content: none !important;
    border: none !important;
    background: none !important;
}

/* ===== Select Citta' (gg-city-select): stesso stile degli altri input WC ===== */
body.woocommerce-checkout .gg-city-select {
    width: 100% !important;
    padding: 14px 32px 14px 16px !important;
    border: 1px solid #c8c8c8 !important;
    border-radius: 8px !important;
    background-color: #fff !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    background-size: 16px !important;
    font-size: 16px !important;
    font-family: inherit;
    color: #333 !important;
    line-height: 1.4 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    cursor: pointer !important;
    min-height: 48px;
    box-sizing: border-box !important;
}
/* Solo quando la select Caorle SOSTITUISCE il campo citta' (gg-caorle-active),
   nascondi la label "Citta'" del wrapper nativo. Nel checkout normale la label resta. */
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-text-input:has(input[autocomplete*="address-level2"]) label,
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block div[class*="city"] label,
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-text-input:has(input[name*="city"]) label,
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-text-input:has(input[id$="-city"]) label {
    display: none !important;
}

/* ===== Quando Consegna e installazione e' attiva: nascondi Paese/Regione (consegna locale) ===== */
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-country-input,
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block div[class*="country"],
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-combobox:has(input[id*="country"]),
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-combobox:has(input[autocomplete*="country"]) {
    display: none !important;
}

/* ===== Caorle attivo: Provincia FISSA su Venezia — togli il chevron giù e rendila non interattiva ===== */
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-state-input,
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-select-input:has([id$="-state"]) {
    pointer-events: none !important;
}
/* Rimuove la freccina del dropdown (svg custom + freccia nativa del select) */
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-state-input svg,
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-select-input:has([id$="-state"]) svg {
    display: none !important;
}
/* Sfondo grigio SOLO sul select (il box col bordo), come il CAP — cosi' non sborda in alto */
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-state-input select,
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-select-input:has([id$="-state"]) select {
    -webkit-appearance: none !important;
    appearance: none !important;
    background-image: none !important;
    background-color: #f4f4f4 !important;
    cursor: not-allowed !important;
}

/* ===== Caorle attivo: CAP NON scrivibile, si imposta SOLO dalla localita' a fianco ===== */
/* pointer-events:none = robusto contro i re-render di React (oltre al readonly via JS) */
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-text-input:has(input[id*="postcode"]) input {
    pointer-events: none !important;
    background-color: #f4f4f4 !important;
    cursor: not-allowed !important;
}
/* Quando vuoto (non .is-active) rietichetta in "CAP in base alla località >" con chevron marcato.
   Testo su ::before, chevron su ::after (isolato per renderlo piu' grande/bold). */
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-text-input:has(input[id*="postcode"]):not(.is-active) label {
    font-size: 0 !important;
    white-space: nowrap;
    overflow: visible;
}
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-text-input:has(input[id*="postcode"]):not(.is-active) label::before {
    content: "CAP in base alla località ";
    font-size: 14px;
    font-weight: 400;
    color: #777;
}
body.woocommerce-checkout.gg-caorle-active .wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-text-input:has(input[id*="postcode"]):not(.is-active) label::after {
    content: "\203A";
    font-size: 22px;
    font-weight: 900;
    color: #444;
    vertical-align: -2px;
    margin-left: 2px;
}

/* ===== Checkout: titoli sezioni (Email/Consegna/Pagamento) centrati e in grassetto ===== */
body.woocommerce-checkout .wp-block-woocommerce-checkout-contact-information-block h2,
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-address-block h2,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block h2,
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-method-block h2,
body.woocommerce-checkout .wp-block-woocommerce-checkout-pickup-options-block h2,
body.woocommerce-checkout .wp-block-woocommerce-checkout-billing-address-block h2,
body.woocommerce-checkout .wc-block-checkout__contact-fields h2,
body.woocommerce-checkout .wc-block-checkout__shipping-fields h2,
body.woocommerce-checkout .wc-block-checkout__payment h2,
body.woocommerce-checkout .wc-block-checkout__billing-fields h2,
body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-checkout-step > h2 {
    text-align: center !important;
    font-weight: 600 !important;
}

/* ===== Forza centratura Consegna (Shipping address) — selettori estesi ===== */
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-address-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-address-block > *,
body.woocommerce-checkout .wc-block-checkout__shipping-fields {
    text-align: initial;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-address-block h2,
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-address-block h3,
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-address-block legend,
body.woocommerce-checkout .wc-block-checkout__shipping-fields h2,
body.woocommerce-checkout .wc-block-checkout__shipping-fields h3,
body.woocommerce-checkout .wc-block-checkout__shipping-fields legend {
    text-align: center !important;
    font-weight: 600 !important;
    width: 100%;
    display: block;
}
/* CAP bloccato (auto-compilato da localita') - stile visivo */
body.woocommerce-checkout input.gg-cap-locked {
    background-color: #f4f4f4 !important;
    cursor: not-allowed !important;
}

/* ===== Payment options: 2 card affiancate (PayPal + Bonifico) con descrizione DENTRO ===== */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
}
/* La CARD e' l'accordion-option (contiene option + description) */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-option,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option {
    background: #fff !important;
    border: 1px solid #c8c8c8 !important;
    border-radius: 12px !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    overflow: hidden;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
    border-color: #18873f !important;
    box-shadow: 0 2px 8px rgba(24,135,63,0.15);
}
/* L'option (header con switch+label): padding interno alla card */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 14px 20px 8px 70px !important;
    border-radius: 0 !important;
    text-align: center !important;
}
/* Description visible dentro la card, allineamento centrato, padding ridotto */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-content,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content {
    padding: 0 20px 14px 20px !important;
    text-align: center !important;
    background: transparent !important;
    border: none !important;
    font-size: 13px;
    color: #555;
    line-height: 1.4;
}
/* Switch ON dentro la card: knob già verde via regola generica */
/* Quando una card è selezionata, mostra eventuali sub-content (es. info bonifico) */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option-content-wrapper,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option-content-wrapper {
    margin-top: 8px;
}

/* ===== Payment options: testo card (PayPal/Bonifico) in grassetto ===== */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__label,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option-layout,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-payment-method-label,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__label,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option-layout,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-payment-method-label {
    font-weight: 700 !important;
}

/* ===== Checkout: nascondi intestazione "Email" (Contact information) ===== */
body.woocommerce-checkout .wp-block-woocommerce-checkout-contact-information-block h2,
body.woocommerce-checkout .wc-block-checkout__contact-fields h2 {
    display: none !important;
}


/* Clone "Torna al carrello" sopra il PayPal Express Checkout (allineato a sx, PayPal centrato) */
body.woocommerce-checkout .wp-block-woocommerce-checkout-express-payment-block,
body.woocommerce-checkout .wc-block-components-express-payment {
    position: relative !important;
}
body.woocommerce-checkout .gg-return-top {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 4px !important;
    background: transparent !important;
    padding: 8px 4px !important;
    text-decoration: none !important;
    cursor: pointer;
    font-size: 0;
    color: transparent;
    width: auto !important;
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 5;
    transition: transform 0.15s ease;
}
body.woocommerce-checkout .gg-return-top:hover { transform: translateY(-50%) translateX(-3px) !important; }


/* ===== Payment options: switch a sx con margine + title centrato ===== */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option::before,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option::before {
    left: 20px !important;
    top: 18px !important;
    transform: none !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option::after,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option::after {
    left: 22px !important;
    top: 20px !important;
    transform: none !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option--checked-option-highlighted::after,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option--checked-option-highlighted::after {
    left: 44px !important;
}


/* PayPal description: testo continuo, no margin extra */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-content p,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content p {
    margin: 0 !important;
    line-height: 1.4;
    font-size: 13px;
    color: #555;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-content br,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content br {
    display: none !important;
}


/* ===== Payment options: NIENTE switch, solo border arancio + bg verde chiaro su selezionata ===== */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option::before,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option::after,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option::before,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option::after {
    display: none !important;
    content: none !important;
}
/* Padding option senza spazio per switch */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option {
    padding: 8px 20px 4px 20px !important;
    cursor: pointer;
    text-align: center !important;
}
/* Forza centratura del label/title PayPal/Bonifico */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__label,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option-layout,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__label,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option-layout {
    text-align: center !important;
    width: 100%;
    display: block !important;
    justify-content: center !important;
}
/* Card selezionata: bordo ARANCIO + sfondo verde chiarissimo */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
    border-color: #18873f !important;
    border-width: 2px !important;
    background: #f3faf5 !important;
    box-shadow: 0 2px 8px rgba(24,135,63,0.15) !important;
}


/* === GG CHEVRON ORANGE v2: tag-based === */
.gg-chev-toggle,
.gg-chev-btn {
    position: relative !important;
    padding-left: 26px !important;
    cursor: pointer !important;
}
.gg-chev-toggle::before,
.gg-chev-btn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff6600' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") center/contain no-repeat;
    pointer-events: none;
    z-index: 1;
}
/* Nascondi checkbox originali quando taggato gg-chev-toggle */
.gg-chev-toggle input[type="checkbox"],
.gg-chev-toggle .wc-block-components-checkbox__input,
.gg-chev-toggle .wc-block-components-checkbox__mark,
.gg-chev-toggle > svg {
    display: none !important;
}
.gg-chev-toggle .wc-block-components-checkbox__label,
.gg-chev-toggle span {
    padding-left: 0 !important;
}


/* === GG TERMS centered === */
.wc-block-checkout__terms,
.wp-block-woocommerce-checkout-terms-block,
.wc-block-checkout__terms-disclaimer,
.wc-block-components-checkout-place-order-button + p,
.wp-block-woocommerce-checkout-actions-block ~ p {
    text-align: center !important;
    width: 100% !important;
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.wc-block-checkout__terms p,
.wp-block-woocommerce-checkout-terms-block p {
    text-align: center !important;
}


/* === GG GUEST NOTICE centered === */
.gg-guest-notice {
    text-align: center !important;
    display: block !important;
    width: 100% !important;
    margin: 0 auto 12px !important;
    color: #444;
    font-size: 14px;
}
.gg-guest-notice b {
    font-weight: 700 !important;
}


/* === GG HIDE Express Checkout button + Oppure (scoped checkout) === */
body.woocommerce-checkout .wc-block-components-express-payment,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule,
body.woocommerce-checkout .wp-block-woocommerce-checkout-express-payment-block > *:not(.gg-return-top) {
    display: none !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-express-payment-block {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}


/* === GG HIDE ALL top express block (incl. Torna al carrello clone) === */
.wp-block-woocommerce-checkout-express-payment-block,
#gg-return-top,
.gg-return-top {
    display: none !important;
}


/* === GG HIDE PayPal SDK button at checkout top (scoped) === */
/* PayPal Express SDK buttons SOLO nel checkout main, fuori dai blocchi form/payment/actions */
body.woocommerce-checkout .wc-block-checkout__main > div:has(.paypal-button-row):not(.wp-block-woocommerce-checkout-fields-block):not(.wp-block-woocommerce-checkout-payment-block):not(.wp-block-woocommerce-checkout-shipping-method-block):not(.wp-block-woocommerce-checkout-actions-block):not(.wp-block-woocommerce-checkout-billing-address-block):not(.wp-block-woocommerce-checkout-shipping-address-block):not(.wp-block-woocommerce-checkout-contact-information-block):not(.wp-block-woocommerce-checkout-order-note-block):not(.wp-block-woocommerce-checkout-terms-block) {
    display: none !important;
}
body.woocommerce-checkout .wc-block-checkout__main > div:has(.paypal-buttons):not(.wp-block-woocommerce-checkout-fields-block):not(.wp-block-woocommerce-checkout-payment-block):not(.wp-block-woocommerce-checkout-shipping-method-block):not(.wp-block-woocommerce-checkout-actions-block):not(.wp-block-woocommerce-checkout-billing-address-block):not(.wp-block-woocommerce-checkout-shipping-address-block):not(.wp-block-woocommerce-checkout-contact-information-block):not(.wp-block-woocommerce-checkout-order-note-block):not(.wp-block-woocommerce-checkout-terms-block) {
    display: none !important;
}
/* Container PayPal Payments noti, SOLO nel checkout */
body.woocommerce-checkout #ppc-button-ppcp-gateway,
body.woocommerce-checkout #ppcp-express-checkout-button,
body.woocommerce-checkout .ppcp-button-checkout,
body.woocommerce-checkout .ppcp-smart-button-checkout {
    display: none !important;
}



/* === GG HIDE PayPal SDK button only (button-only, no wrappers) === */
/* Hide PayPal SDK button rows SOLO dentro checkout main, NON dentro payment-block */
body.woocommerce-checkout .wc-block-checkout__main .paypal-button-row,
body.woocommerce-checkout .wc-block-checkout__main .paypal-buttons {
    display: none !important;
}
body.woocommerce-checkout .wc-block-checkout__main .wp-block-woocommerce-checkout-payment-block .paypal-button-row,
body.woocommerce-checkout .wc-block-checkout__main .wp-block-woocommerce-checkout-payment-block .paypal-buttons {
    display: revert !important;
}


/* === GG PICKUP: 3-col payment grid quando ritiro selezionato === */
/* Quando ritiro in negozio attivo: payment grid a 3 colonne */
body.gg-pickup-active.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control,
body.gg-pickup-active.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control {
    grid-template-columns: 1fr 1fr 1fr !important;
}
/* Quando NON ritiro: nascondi card pagamento al ritiro in negozio */
body.woocommerce-checkout:not(.gg-pickup-active) .gg-cod-card {
    display: none !important;
}


/* === GG remove outer borders around payment block group === */
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control,
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-checkout-step,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-checkout-step__content,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-checkout-step__heading,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control::before,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-checkout-step::before,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-checkout-step::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-checkout-step__heading::before,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-checkout-step__heading::after {
    display: none !important;
    border: none !important;
    background: transparent !important;
    content: none !important;
}


/* === GG TOPROW: Torna al carrello + guest notice === */
.gg-checkout-top-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    margin: 0 0 16px !important;
    width: 100% !important;
}
.gg-top-left { flex: 0 0 auto; }
.gg-top-center { flex: 1 1 auto; text-align: center; }
.gg-top-right { flex: 0 0 160px; }
.gg-checkout-top-row .gg-guest-notice {
    margin: 0 !important;
    text-align: center !important;
}


/* === GG checkout: remove horizontal divider lines in order summary === */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-item,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-footer-item,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-item,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-footer-item,
body.woocommerce-checkout .wc-block-components-totals-wrapper {
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-item::before,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-item::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper::before,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-footer-item::before,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-footer-item::after {
    display: none !important;
    border: none !important;
    background: transparent !important;
    content: none !important;
}


/* === GG: tax line right-aligned + terms divider removed === */
/* Allinea a dx il testo "Including X in taxes" sotto Total */
body.woocommerce-checkout .wc-block-components-totals-footer-item-tax,
body.woocommerce-checkout .wc-block-components-totals-footer-item-tax-value,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-footer-item small,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-footer-item small {
    text-align: right !important;
    display: block !important;
    width: 100% !important;
}
/* Rimuovi linea orizzontale sopra "Proseguendo con l'acquisto..." */
body.woocommerce-checkout .wc-block-checkout__terms,
body.woocommerce-checkout .wp-block-woocommerce-checkout-terms-block,
body.woocommerce-checkout .wc-block-checkout__terms-disclaimer {
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}
body.woocommerce-checkout .wc-block-checkout__terms::before,
body.woocommerce-checkout .wc-block-checkout__terms::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-terms-block::before,
body.woocommerce-checkout .wp-block-woocommerce-checkout-terms-block::after {
    display: none !important;
    border: none !important;
    background: transparent !important;
    content: none !important;
}


/* === GG: IVA inclusa styling (red + nowrap) === */
body.woocommerce-checkout .wc-block-components-totals-footer-item-tax,
body.woocommerce-checkout .wc-block-components-totals-footer-item-tax-value,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-footer-item small,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-footer-item small {
    color: var(--shop-red, #d40000) !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-align: right !important;
    display: block !important;
    width: 100% !important;
}


/* === GG: remove top line between Riepilogo title and Subtotal ===
   NB: il riquadro esterno .wp-block-woocommerce-checkout-order-summary-block NON va incluso,
   altrimenti perde il bordo superiore e non risulta continuo/arrotondato. */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-fee-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-discount-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-taxes-block,
body.woocommerce-checkout .wc-block-components-checkout-order-summary,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content,
body.woocommerce-checkout .wc-block-components-totals-wrapper:first-of-type {
    border-top: none !important;
    box-shadow: none !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block h2,
body.woocommerce-checkout .wc-block-components-checkout-order-summary h2,
body.woocommerce-checkout .wc-block-components-totals-title {
    border-bottom: none !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block h2::after,
body.woocommerce-checkout .wc-block-components-checkout-order-summary h2::after,
body.woocommerce-checkout .wc-block-components-totals-title::after,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block::before {
    display: none !important;
    border: none !important;
    background: transparent !important;
    content: none !important;
}


/* === GG: hide originals (cloned to top-row) === */
body.woocommerce-checkout .gg-guest-notice-orig {
    display: none !important;
}
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button.gg-return-clone-src:not(.gg-return-clone) {
    display: none !important;
}




/* === GG: hide cart-items-block + Oops fallback (final) === */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-cart-items-block,
body.woocommerce-checkout div[data-block-name="woocommerce/checkout-order-summary-cart-items-block"],
body.woocommerce-checkout [class*="checkout-order-summary-cart-items-block"] {
    display: none !important;
}


/* === GG: hide Oops fallback in checkout sidebar (real classes) === */
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-error,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-error,
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block .wc-block-error,
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block .wc-block-components-error,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-error,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-error {
    display: none !important;
}


/* === GG: top-bar safe clone — visually integrated with the card === */
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-return-to-cart-button:not(.gg-top-return) {
    display: none !important;
}
body.woocommerce-checkout .gg-top-bar {
    background: transparent;
    border: none;
    padding: 0 0 16px;
    margin: 0;
    width: 100%;
}
body.woocommerce-checkout .gg-top-bar .gg-top-return {
    display: inline-flex !important;
    align-items: center !important;
}


/* === GG: Modifica link bold + no underline === */
body.woocommerce-checkout .wc-block-components-address-card__edit,
body.woocommerce-checkout .wc-block-checkout__edit-button,
body.woocommerce-checkout button.wc-block-components-button[class*="edit"],
body.woocommerce-checkout .wc-block-components-address-card a[class*="edit"] {
    font-weight: 700 !important;
    text-decoration: none !important;
}
body.woocommerce-checkout .wc-block-components-address-card__edit:hover,
body.woocommerce-checkout .wc-block-checkout__edit-button:hover {
    text-decoration: none !important;
}


/* === GG: guest notice ABOVE email (position:absolute over top of contact step) === */
body.woocommerce-checkout .wp-block-woocommerce-checkout-contact-information-block,
body.woocommerce-checkout .wc-block-components-checkout-step:has(input[type="email"]),
body.woocommerce-checkout .wc-block-components-checkout-step:has(.gg-guest-notice) {
    position: relative !important;
    padding-top: 36px !important;
}
body.woocommerce-checkout .gg-guest-notice {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 0 0 12px !important;
}


/* === GG: clean my-account notices + empty white bars === */
/* Notice "Non risulta alcun metodo..." e simili: niente sfondo azzurro/pill, testo semplice */
body.woocommerce-account .woocommerce-info,
body.woocommerce-account .woocommerce-message,
body.woocommerce-account .woocommerce-notice,
body.woocommerce-account .woocommerce-Message {
    background: transparent !important;
    border: none !important;
    color: #444 !important;
    padding: 12px 0 !important;
    border-radius: 0 !important;
}
/* Notice di errore (es. login/registrazione): angoli arrotondati */
body.woocommerce-account .woocommerce-error {
    border-radius: 10px !important;
}
body.woocommerce-account .woocommerce-info::before,
body.woocommerce-account .woocommerce-message::before {
    color: #888 !important;
    background: none !important;
}
/* Rimuovi le card/bars vuote (wrapper bianchi senza contenuto) */
body.woocommerce-account .entry-header,
body.woocommerce-account .page-header,
body.woocommerce-account header.entry-header,
body.woocommerce-account .woocommerce > .col2-set:empty,
body.woocommerce-account .col-1:empty,
body.woocommerce-account .col-2:empty {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
}
body.woocommerce-account .page-title {
    display: none !important;
}


/* === GG: hide empty .woocommerce wrappers on my-account === */
/* Container .woocommerce vuoti = barra bianca fantasma. Nascondi. */
body.woocommerce-account .woocommerce:empty {
    display: none !important;
}
/* Forza override anche se ha solo whitespace o save_webp attributo.
   IMPORTANTE: NON nascondere il wrapper se contiene una notice (errore/avviso/
   messaggio). WooCommerce stampa le notice di login/registrazione (es.
   "Un account è già registrato con questa email") in un .woocommerce separato
   che NON contiene form -> senza queste esclusioni l'alert spariva. */
body.woocommerce-account .col-full > .woocommerce:not(:has(form)):not(:has(table)):not(:has(.woocommerce-MyAccount-content)):not(:has(.woocommerce-MyAccount-navigation)):not(:has(.woocommerce-error)):not(:has(.woocommerce-message)):not(:has(.woocommerce-info)):not(:has(.woocommerce-notices-wrapper)) {
    display: none !important;
}
/* Notice WC: niente pill azzurro, solo testo */
body.woocommerce-account .woocommerce-info,
body.woocommerce-account .woocommerce-message {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 8px 0 !important;
    color: #444 !important;
}
body.woocommerce-account .woocommerce-info::before,
body.woocommerce-account .woocommerce-message::before {
    display: none !important;
}


/* === GG: hide arrow on .wc-forward button in my-account === */
body.woocommerce-account .wc-forward::after,
body.woocommerce-account a.wc-forward::after,
body.woocommerce-account button.wc-forward::after {
    content: none !important;
    display: none !important;
}


/* === GG: Browse products button su nuova riga === */
body.woocommerce-account .woocommerce-info .woocommerce-Button,
body.woocommerce-account .woocommerce-info .button,
body.woocommerce-account .woocommerce-info a.wc-forward {
    display: block !important;
    width: fit-content !important;
    margin-top: 32px !important;
    margin-left: 0 !important;
    float: none !important;
    clear: both !important;
}
body.woocommerce-account .woocommerce-info {
    display: block !important;
}


/* === GG: Accedi/Registrati come 2 card bianche con label sopra titoli === */
/* 2 colonne come card bianche rounded */
body.woocommerce-account.logged-out .u-column1,
body.woocommerce-account.logged-out .u-column2,
body.woocommerce-account:not(.logged-in) .u-column1,
body.woocommerce-account:not(.logged-in) .u-column2 {
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 16px !important;
    padding: 30px 36px !important;
    box-shadow: 0 1px 6px rgba(0,0,0,0.05) !important;
    box-sizing: border-box !important;
}
body.woocommerce-account .u-columns {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 36px !important;
}
/* Label sopra titoli — SOLO pagina login/registrazione (utente sloggato).
   Limitate a .logged-out / :not(.logged-in) per non comparire sulla pagina
   indirizzi (edit-address), che è sempre da loggati e usa le stesse .u-column. */
body.woocommerce-account.logged-out .u-column1 h2::before,
body.woocommerce-account:not(.logged-in) .u-column1 h2::before {
    content: "Se sei già cliente";
    display: block;
    font-size: 14px;
    font-weight: 400;
    color: #666;
    margin-bottom: 4px;
    letter-spacing: 0.2px;
}
body.woocommerce-account.logged-out .u-column2 h2::before,
body.woocommerce-account:not(.logged-in) .u-column2 h2::before {
    content: "Se sei un nuovo cliente";
    display: block;
    font-size: 14px;
    font-weight: 400;
    color: #666;
    margin-bottom: 4px;
    letter-spacing: 0.2px;
}
@media (max-width: 768px), (max-height: 480px) {
    body.woocommerce-account .u-columns {
        grid-template-columns: 1fr !important;
    }
}


/* === GG: my-account no underline su link blu === */
body.woocommerce-account a,
body.woocommerce-account .woocommerce a,
body.woocommerce-account .woocommerce-LostPassword a,
body.woocommerce-account .woocommerce-privacy-policy-text a {
    text-decoration: none !important;
}
body.woocommerce-account a:hover,
body.woocommerce-account .woocommerce a:hover {
    text-decoration: none !important;
}


/* === GG: Ricordami iOS switch + eye icon orange === */
/* === Ricordami: iOS switch (verde ON, grigio OFF) === */
body.woocommerce-account .woocommerce-form-login__rememberme {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    cursor: pointer !important;
    user-select: none !important;
    position: relative !important;
    padding-left: 0 !important;
    margin-bottom: 16px !important;
}
body.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"] {
    appearance: none !important;
    -webkit-appearance: none !important;
    position: relative !important;
    width: 42px !important;
    height: 24px !important;
    background: #c8c8c8 !important;
    border-radius: 999px !important;
    border: none !important;
    cursor: pointer !important;
    transition: background 0.2s ease !important;
    margin: 0 !important;
    flex: 0 0 42px !important;
}
body.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"]::after {
    content: "" !important;
    position: absolute !important;
    left: 2px !important;
    top: 2px !important;
    width: 20px !important;
    height: 20px !important;
    background: #fff !important;
    border-radius: 50% !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2) !important;
    transition: left 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
body.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"]:checked {
    background: #18873f !important;
}
body.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"]:checked::after {
    left: 20px !important;
}
body.woocommerce-account .woocommerce-form-login__rememberme span {
    color: #333 !important;
    font-size: 14px !important;
}

/* === Show password (occhio) ovunque: arancio, no bg, hover grigio === */
.show-password-input,
.show-password-input::before,
.show-password-input::after,
button.show-password-input,
.woocommerce-password-strength + .show-password-input,
.password-input .show-password-input {
    background: transparent !important;
    border: none !important;
    color: var(--shop-accent, #ff6600) !important;
    box-shadow: none !important;
    padding: 4px 8px !important;
    border-radius: 6px !important;
    transition: background 0.15s ease !important;
}
.show-password-input::before {
    color: var(--shop-accent, #ff6600) !important;
}
.show-password-input:hover {
    background: #f0f0f0 !important;
}
.show-password-input.display-password::before {
    color: var(--shop-accent, #ff6600) !important;
}


/* === GG: Accedi button new line + eye bigger outside === */
/* Ricordami su una riga, Accedi su nuova riga */
body.woocommerce-account .woocommerce-form-login .form-row:has(#rememberme),
body.woocommerce-account .woocommerce-form-login .form-row:has(button.woocommerce-form-login__submit) {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 18px !important;
}
body.woocommerce-account .woocommerce-form-login__submit {
    width: fit-content !important;
    margin-top: 8px !important;
}

/* Occhio: piu' grande e fuori dal campo password */
.password-input {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.password-input > input[type="password"],
.password-input > input[type="text"] {
    flex: 1 1 auto !important;
}
.show-password-input,
button.show-password-input {
    position: static !important;
    flex: 0 0 auto !important;
    width: 44px !important;
    height: 44px !important;
    font-size: 22px !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
    color: var(--shop-accent, #ff6600) !important;
    border-radius: 6px !important;
    padding: 0 !important;
    cursor: pointer !important;
}
.show-password-input::before {
    font-size: 22px !important;
    color: var(--shop-accent, #ff6600) !important;
}
.show-password-input:hover {
    background: #f0f0f0 !important;
}


/* === GG: card bianca attorno al contenuto my-account (loggato) === */
body.woocommerce-account.logged-in .woocommerce:not(:empty) {
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 16px !important;
    padding: 28px 32px !important;
    box-shadow: 0 1px 6px rgba(0,0,0,0.05) !important;
    display: flow-root !important; /* contain floats (nav + content) */
    overflow: hidden !important;
}
/* MyAccount nav (sx) + content (dx): layout flex per evitare float orfani fuori dalla card */
body.woocommerce-account.logged-in .woocommerce:not(:empty) {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 24px !important;
    align-items: flex-start !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
    flex: 0 0 220px !important;
    float: none !important;
    width: auto !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    flex: 1 1 0 !important;
    float: none !important;
    width: auto !important;
    min-width: 0 !important;
}
/* Mobile: menu (nav) sopra, contenuto sotto, entrambi a tutta larghezza
   (su desktop la nav 220px + contenuto a destra restano affiancati) */
@media (max-width: 768px), (max-height: 480px) {
    body.woocommerce-account.logged-in .woocommerce:not(:empty) {
        gap: 16px !important;
    }
    body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
    body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}


/* === GG: Esci (logout) rosso === */
body.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a,
body.woocommerce-account .woocommerce-MyAccount-navigation li.customer-logout a,
body.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a::before,
body.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a::after {
    color: var(--shop-red, #d40000) !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
    color: var(--shop-red, #d40000) !important;
    background: #fdecec !important;
}

/* === GG: Logout link nel saluto dashboard rosso === */
body.woocommerce-account .woocommerce-MyAccount-content a[href*="customer-logout"] {
    color: var(--shop-red, #d40000) !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}

/* === GG: riduci larghezza solo pagina prodotto (header invariato) === */
body.single-product #content.site-content .col-full {
    max-width: 1320px !important;
}


/* (Vecchio blocco gg-chev-billing chevron + CTA rimosso: ora il controllo è lo switch "Richiedi fattura") */


/* === GG ZONE OVERLAY (indirizzo fuori zona Consegna e installazione) === */
#gg-zone-overlay { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; }
#gg-zone-overlay .gg-zone-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.5); }
#gg-zone-overlay .gg-zone-modal { position: relative; background: #fff; border-radius: 14px; padding: 26px 28px; max-width: 520px; width: calc(100% - 40px); box-shadow: 0 10px 40px rgba(0,0,0,0.25); }
#gg-zone-overlay .gg-zone-title { font-size: 20px; font-weight: 700; color: var(--shop-primary, #003399); margin-bottom: 12px; }
#gg-zone-overlay .gg-zone-text { font-size: 15px; line-height: 1.5; color: #333; }
#gg-zone-overlay .gg-zone-tip-wrap { position: relative; display: inline-block; }
#gg-zone-overlay .gg-zone-tip { color: var(--shop-accent, #ff6600); text-decoration: underline; cursor: pointer; }
#gg-zone-overlay .gg-zone-tip-box { display: none; position: absolute; top: 100%; left: 0; background: #fff; border: 1px solid #ddd; border-radius: 8px; padding: 12px 14px; min-width: 320px; max-width: 480px; box-shadow: 0 6px 20px rgba(0,0,0,0.15); z-index: 2; margin-top: 6px; }
#gg-zone-overlay .gg-zone-tip-wrap:hover .gg-zone-tip-box { display: block; }
#gg-zone-overlay .gg-tip-row { margin-bottom: 8px; font-size: 13px; line-height: 1.4; }
#gg-zone-overlay .gg-tip-row:last-child { margin-bottom: 0; }
#gg-zone-overlay .gg-tip-row strong { display: block; color: var(--shop-primary, #003399); margin-bottom: 2px; }
#gg-zone-overlay .gg-tip-row span { color: #444; }
#gg-zone-overlay .gg-zone-actions { display: flex; gap: 12px; margin-top: 20px; flex-wrap: wrap; }
#gg-zone-overlay .gg-zone-btn { padding: 12px 18px; border-radius: 12px; border: none; font-weight: 700; cursor: pointer; font-size: 14px; }
#gg-zone-overlay .gg-zone-btn-primary { background: var(--shop-red, #d40000); color: #fff; }
#gg-zone-overlay .gg-zone-btn-primary:hover { filter: brightness(0.95); }
#gg-zone-overlay .gg-zone-btn-secondary { background: #f0f0f0; color: #333; }
#gg-zone-overlay .gg-zone-btn-secondary:hover { background: #e6e6e6; }


/* === GG ZONE OVERLAY tweaks (title center, tip bold, primary green, split buttons) === */
#gg-zone-overlay .gg-zone-title { text-align: center !important; }
#gg-zone-overlay .gg-zone-tip { text-decoration: none !important; font-weight: 700 !important; }
#gg-zone-overlay .gg-zone-btn-primary { background: #18873f !important; color: #fff !important; }
#gg-zone-overlay .gg-zone-btn-primary:hover { background: #146b32 !important; filter: none !important; }
#gg-zone-overlay .gg-zone-actions { justify-content: space-between !important; }


/* === GG: La nostra storia — impaginazione narrativa === */
body.page-id-47872 .entry-content,
body.page-id-47872 .page-content,
body.page-id-47872 article {
    max-width: 820px !important;
    margin: 0 auto !important;
    font-family: 'Georgia', 'Lora', 'Times New Roman', serif !important;
    color: #2b2b2b !important;
}
body.page-id-47872 .entry-title,
body.page-id-47872 h1 {
    font-family: 'Georgia', 'Lora', serif !important;
    font-size: 38px !important;
    font-weight: 400 !important;
    text-align: center !important;
    margin: 40px 0 8px !important;
    letter-spacing: 0.5px !important;
    color: #1a1a1a !important;
}
body.page-id-47872 .entry-content h2 {
    font-family: 'Georgia', 'Lora', serif !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    font-style: italic !important;
    text-align: center !important;
    color: #777 !important;
    margin: 0 0 48px !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
    border: none !important;
}
body.page-id-47872 .entry-content p {
    font-size: 18px !important;
    line-height: 1.85 !important;
    margin: 0 0 22px !important;
    text-align: justify !important;
    hyphens: auto !important;
    -webkit-hyphens: auto !important;
}
body.page-id-47872 .entry-content p em {
    display: block !important;
    font-style: italic !important;
    font-size: 19px !important;
    line-height: 1.6 !important;
    color: #555 !important;
    padding: 8px 0 8px 28px !important;
    margin: 16px 0 22px !important;
    border-left: none !important;
    text-align: left !important;
    hyphens: manual !important;
}
body.page-id-47872 .entry-content p strong {
    display: block !important;
    font-family: 'Georgia', serif !important;
    font-size: 19px !important;
    font-weight: 400 !important;
    font-style: italic !important;
    text-align: center !important;
    color: #1a1a1a !important;
    margin: 40px auto 20px !important;
    max-width: 580px !important;
    padding: 24px 20px 0 !important;
    border-top: 1px solid #ddd !important;
    line-height: 1.7 !important;
}
/* Drop cap sulla prima lettera del primo paragrafo (dopo il sottotitolo h2) */
body.page-id-47872 .entry-content > h2 + p::first-letter,
body.page-id-47872 .entry-content > p:first-of-type::first-letter {
    float: left !important;
    font-family: 'Georgia', serif !important;
    font-size: 64px !important;
    line-height: 0.9 !important;
    padding: 6px 12px 0 0 !important;
    color: #ff6600 !important;
}
/* No sidebar/widgets su questa pagina */
body.page-id-47872 .secondary,
body.page-id-47872 .sidebar {
    display: none !important;
}
body.page-id-47872 #primary {
    width: 100% !important;
    float: none !important;
}

/* === GG: Chi siamo — galleria negozio thumbnails === */
.gg-shop-gallery {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 8px;
    margin: 16px 0 24px;
}
.gg-shop-thumb {
    display: block !important;
    width: 100% !important;
    height: 0 !important;
    padding-bottom: 100% !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    position: relative !important;
    background: #f0f0f0;
}
.gg-shop-thumb img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    aspect-ratio: auto !important;
    max-width: none !important;
    transition: transform 0.25s ease;
}
.gg-shop-thumb:hover img {
    transform: scale(1.05);
}
@media (max-width: 640px) {
    .gg-shop-gallery {
        grid-template-columns: repeat(3, 1fr);
        gap: 6px;
    }
}


/* === GG: lightbox chi-siamo styling === */
#gg-lightbox { position: fixed; inset: 0; z-index: 99998; display: none; align-items: center; justify-content: center; }
#gg-lightbox .gg-lb-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.85); cursor: pointer; }
#gg-lightbox .gg-lb-stage { position: relative; max-width: 92vw; max-height: 92vh; z-index: 1; }
#gg-lightbox .gg-lb-img { max-width: 92vw; max-height: 80vh; display: block; border-radius: 8px; background: #000; }
#gg-lightbox .gg-lb-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0,0,0,0.6); color: #fff; border: none; font-size: 32px; padding: 10px 18px; cursor: pointer; border-radius: 8px; transition: background 0.15s ease; }
#gg-lightbox .gg-lb-btn:hover { background: rgba(0,0,0,0.85); }
#gg-lightbox .gg-lb-prev { left: -60px; }
#gg-lightbox .gg-lb-next { right: -60px; }
@media (max-width: 768px), (max-height: 480px) {
    #gg-lightbox .gg-lb-prev { left: 6px; font-size: 24px; padding: 8px 12px; }
    #gg-lightbox .gg-lb-next { right: 6px; font-size: 24px; padding: 8px 12px; }
}

/* Slider MISURA in ricerca (pollici/kg/coperti/litri): a fianco del prezzo, nessun separatore */
.gg-filter-misura { margin-left: 18px; }
.gg-filter-misura .gg-price-cur-min,
.gg-filter-misura .gg-price-cur-max {
    min-width: 48px;
    text-align: center;
}

/* === Nessun prodotto trovato: blocco personalizzato (ricerca/archivio) === */
.gg-no-results {
    text-align: center;
    max-width: 620px;
    margin: 30px auto 50px;
    padding: 40px 28px;
    background: #fff;
    border: 2px solid var(--shop-gray-200);
    border-radius: 24px;
    box-shadow: var(--shop-shadow-lg);
}
.gg-no-results-icon {
    margin: 0 auto 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--shop-red);
}
.gg-no-results-icon svg { width: 72px; height: 72px; }
.gg-no-results-title {
    font-size: 22px;
    font-weight: 800;
    color: var(--shop-red) !important;
    margin: 0 0 10px;
}
.gg-no-results-title span { color: var(--shop-red) !important; font-style: italic; }
.gg-no-results-text {
    font-size: 15px;
    color: var(--shop-gray-500);
    line-height: 1.5;
    margin: 0 auto 22px;
    max-width: 460px;
}
.gg-no-results-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.gg-no-results-btn {
    display: inline-block;
    padding: 12px 24px;
    border-radius: 9999px;
    background: var(--shop-accent);
    color: #fff !important;
    font-weight: 700;
    text-decoration: none !important;
    transition: filter var(--shop-transition);
}
.gg-no-results-btn:hover { filter: brightness(0.93); }
.gg-no-results-btn-alt {
    background: #fff;
    color: var(--shop-primary) !important;
    border: 2px solid var(--shop-gray-200);
}
.gg-no-results-btn-alt:hover { border-color: var(--shop-accent); color: var(--shop-accent) !important; filter: none; }

/* Ricerca a campo VUOTO: mostra solo la card, niente filtri/categorie/contatori */
body.gg-ricerca-vuota .gg-archive-filters,
body.gg-ricerca-vuota .shop-categories-bar,
body.gg-ricerca-vuota .shop-banner-row,
body.gg-ricerca-vuota .shop-arrivals-row,
body.gg-ricerca-vuota .gg-subcat-grid,
body.gg-ricerca-vuota .woocommerce-result-count,
body.gg-ricerca-vuota .woocommerce-ordering,
body.gg-ricerca-vuota .gg-sort-menu,
body.gg-ricerca-vuota nav.woocommerce-pagination {
    display: none !important;
}

/* Pagina risultati ricerca: bordo campo e lente arancio (coerenti col testo arancio) */
body.search .shop-search-form {
    border-color: var(--shop-accent);
}
body.search .shop-search-form button {
    color: var(--shop-accent) !important;
}

/* === GG: badge Mono/Dual/Multi (condizionatori) al posto dello slider misura === */
.gg-filter-split { display:flex; align-items:center; gap:8px; }
.gg-split-label { font-size:12px; font-weight:700; color:var(--shop-gray-500); }
.gg-split-badges { display:flex; gap:6px; }
.gg-split-badge {
    display:inline-block; padding:5px 14px; border-radius:9999px;
    border:2px solid var(--shop-gray-200); background:#fff;
    font-size:12px; font-weight:700; color:var(--shop-gray-500);
    text-decoration:none !important; line-height:1; transition:all var(--shop-transition);
    white-space:nowrap; cursor:pointer;
}
.gg-split-badge:hover { border-color:var(--shop-accent); color:var(--shop-accent); }
.gg-split-badge.is-active { background:var(--shop-accent); border-color:var(--shop-accent); color:#fff !important; }

/* badge split come <label> con radio nascosto */
.gg-split-badge input[type="radio"] { position:absolute; opacity:0; width:0; height:0; pointer-events:none; }
.gg-split-badge { user-select:none; }

/* badge split: sfondo grigio fisso; selezionato = solo bordo+testo arancio (sfondo invariato) */
.gg-split-badge { background:#eceff1; border-color:#d4d9de; color:#5a6470; }
.gg-split-badge:hover { background:#eceff1; border-color:var(--shop-accent); color:var(--shop-accent); }
.gg-split-badge.is-active { background:#eceff1 !important; border-color:var(--shop-accent) !important; color:var(--shop-accent) !important; }

/* spaziatura badge split: stacco dallo slider prezzo + gap tra i badge */
.gg-filter-split { margin-left:16px; gap:10px; }

/* prova: sfondo bianco dei badge split (default e selezionato) */
.gg-split-badge { background:#fff; }
.gg-split-badge:hover { background:#fff; }
.gg-split-badge.is-active { background:#fff !important; }

/* badge split selezionato anche senza JS (radio checked) */
.gg-split-badge:has(input[type="radio"]:checked) {
    border-color:var(--shop-accent) !important;
    color:var(--shop-accent) !important;
    background:#fff !important;
}

/* ======================================================================
   MIGLIORA MOBILE (giu 2026) — override finali (in fondo per vincere
   l'ordine-sorgente sulle basi che stanno piu' su nel file).
   ====================================================================== */

/* swap testo anteprima volantino: desktop "Sfoglia il nostro volantino digitale",
   mobile solo "Volantino" */
.gg-strip-mob { display: none; }

@media (max-width: 768px), (max-height: 480px) {
    /* card volantino: angoli meno arrotondati + via il bordo grigio attorno all'anteprima */
    /* banner e anteprima: STESSO raggio esplicito su contenitori E immagini (5px),
       cosi' il clipping e' identico (l'anteprima usa object-fit:cover + img assoluta) */
    .shop-banner-card { border-radius: 5px; padding-bottom: 30px; border-color: transparent; }
    .shop-banner-link,
    .shop-banner-link img,
    .shop-volantino-thumb,
    .shop-volantino-thumb img { border-radius: 5px; }
    .shop-volantino-thumb { border-color: transparent; }

    /* fascia bianca scritte: spostata SOTTO le immagini (nello spazio del padding-bottom),
       cosi' fascia e testi non sono sopra a banner/anteprima */
    .shop-banner-strip { bottom: 5px; }
    .shop-banner-strip-cell { border-radius: 4px; }

    /* meno spazio libero tra le card categoria e la card volantino */
    .shop-banner-row { padding-top: 8px !important; }

    /* meno spazio grigio tra la card volantino e la sezione "Consegne" (benefits) */
    .shop-benefits-bar { padding-top: 8px !important; }

    /* testo anteprima: mostra "Volantino", nascondi la versione lunga desktop */
    .gg-strip-desk { display: none; }
    .gg-strip-mob { display: inline; }
}

/* ======================================================================
   MIGLIORA MOBILE (giu 2026) — CARD PRODOTTO UNIFORME E COMPATTA
   Vale per OGNI vista prodotto su mobile: categorie, ricerca, Ultimi arrivi.
   Selettore "ul.products li.product" -> copre sia .woocommerce ul.products sia
   ul.products.shop-arrivals-products. !important per battere il layout base
   (foto-sx/specs-dx) che non usa !important.
   Ordine: 1) logo marchio  2) titolo  3) foto centrale  4) disponibilita'  5) prezzo largo.
   Spariscono: scheda web/specifiche, badge (volantino/nuovo/sale/outlet), risparmi,
   classe energetica, icona occhio/carrello.
   ====================================================================== */
@media (max-width: 768px), (max-height: 480px) {
    /* La home ha body.woocommerce, quindi gli Ultimi arrivi sono colpiti dalle regole
       ".woocommerce ul.products li.product ..." (layout a GRIGLIA a fasce, specificita' 0,4,2,
       !important). Per vincere uso lo STESSO prefisso .woocommerce (qui, piu' in basso nel file)
       e annullo grid-row/grid-column tornando a un semplice flex a colonna. */

    /* card compatta: altezza = contenuto, niente quadrato forzato, niente stretch tra card */
    .woocommerce ul.products li.product { aspect-ratio: auto !important; height: auto !important; }
    .woocommerce ul.products { align-items: flex-start !important; }

    /* link = colonna, impaccato in alto (annulla griglia e flex:1) */
    .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
    .woocommerce ul.products li.product > a.woocommerce-loop-product__link {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        flex: 0 0 auto !important;
        justify-content: flex-start !important;
        align-items: stretch !important;
        align-content: normal !important;
        gap: 4px !important;
    }
    /* 1) logo marchio (altezza fissa -> card allineate) */
    .woocommerce ul.products li.product .shop-cardtop {
        order: 1 !important; grid-row: auto !important; grid-column: auto !important;
        width: 100% !important; height: 42px !important; min-height: 42px !important; padding: 6px 8px 0 !important;
    }
    /* 2) titolo: allineato a SX, MAX 2 righe poi "..." (altezza fissa -> card uguali) */
    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2.woocommerce-loop-product__title {
        order: 2 !important; grid-row: auto !important; grid-column: auto !important;
        width: 100% !important; text-align: left !important;
        white-space: normal !important;
        display: -webkit-box !important; -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 3 !important; overflow: hidden !important; text-overflow: ellipsis !important;
        font-size: 12px !important; line-height: 1.25 !important;
        height: 45px !important; min-height: 45px !important; padding: 0 8px !important;
    }
    /* 3) foto centrale grande (90% della card) */
    .woocommerce ul.products li.product .shop-product-image-wrap {
        order: 3 !important; grid-row: auto !important; grid-column: auto !important;
        width: 90% !important; margin: 6px auto !important;
        aspect-ratio: 1 / 1 !important; max-height: none !important; padding: 2px !important;
    }
    /* 4) disponibilita': UNA riga, centrata */
    .woocommerce ul.products li.product .shop-delivery {
        order: 4 !important; grid-row: auto !important; grid-column: auto !important;
        width: 100% !important; justify-content: center !important; align-items: center !important;
        text-align: center !important; white-space: nowrap !important; padding: 2px 4px !important;
    }
    .woocommerce ul.products li.product .shop-delivery .gg-disp { white-space: nowrap !important; font-size: 13px !important; }
    /* 5) prezzo: UNA riga, allineato a SX (cosi' >999 non sborda), +25% (-> 40px) */
    .woocommerce ul.products li.product .shop-buybar { width: 100% !important; justify-content: flex-start !important; padding: 0 8px !important; box-sizing: border-box !important; }
    .woocommerce ul.products li.product .shop-buybar .price,
    .woocommerce ul.products li.product .shop-buybar .price ins,
    .woocommerce ul.products li.product .shop-buybar .price ins .woocommerce-Price-amount,
    .woocommerce ul.products li.product .shop-buybar .price > .woocommerce-Price-amount {
        font-size: 40px !important; line-height: 1.05 !important;
        white-space: nowrap !important; width: 100% !important; text-align: left !important;
        -webkit-text-stroke: 0.6px currentColor !important;  /* prezzo piu' marcato */
    }

    /* nascondi tutto il resto */
    .woocommerce ul.products li.product ul.shop-scheda-web,
    .woocommerce ul.products li.product .shop-savings,
    .woocommerce ul.products li.product .shop-energy-label,
    .woocommerce ul.products li.product .shop-volantino-badge,
    .woocommerce ul.products li.product .shop-badge,
    .woocommerce ul.products li.product .shop-buybar .button { display: none !important; }
}

/* ======================================================================
   MIGLIORA MOBILE (giu 2026) — BARRA FILTRI CATEGORIA
   .gg-shop-topbar = contenitore flex; il form (.gg-archive-filters) usa
   display:contents cosi' i suoi controlli (prezzo/badge/Marchi/Filtra) diventano
   flex item accanto a sort-bar/paginazione e si possono mettere su una riga.
   NB: NON nascondere .storefront-sorting (wrapper che avvolge tutto)!
   Righe: 1) slider prezzo (80%)  2) 3 badge  3) Marchi+Filtra+Prezzo basso  4) paginazione.
   ====================================================================== */
@media (max-width: 768px), (max-height: 480px) {
    .gg-filterzone { display: block !important; }
    /* nascondo SOLO il dropdown ordinamento duplicato di Storefront, non il wrapper */
    .gg-filterzone .storefront-sorting > form.woocommerce-ordering { display: none !important; }

    /* topbar = flex container; il form si appiattisce per promuovere i suoi controlli.
       gap riga 18px = piu' spazio verticale tra slider e badge. */
    .gg-filterzone .gg-shop-topbar {
        display: flex !important; flex-wrap: wrap !important;
        align-items: center !important; justify-content: flex-start !important; gap: 18px 10px !important;
    }
    .gg-filterzone .gg-shop-topbar > .gg-archive-filters { display: contents !important; }

    /* 1) slider prezzo: riga intera centrata, larghezza 92% (no sbordo importi) */
    .gg-filterzone .gg-filter-price {
        order: 1 !important; flex: 0 0 92% !important; max-width: 92% !important; margin: 0 auto !important;
        display: flex !important; flex-wrap: nowrap !important; align-items: center !important;
        justify-content: center !important; gap: 8px !important;
    }
    .gg-filterzone .gg-filter-price .gg-price-cur-min,
    .gg-filterzone .gg-filter-price .gg-price-cur-max { flex: 0 0 auto !important; white-space: nowrap !important; }
    .gg-filterzone .gg-filter-price .gg-price-range { flex: 1 1 auto !important; min-width: 0 !important; }

    /* 2) badge Mono/Dual/Multi: riga intera, centrati */
    .gg-filterzone .gg-filter-split {
        order: 2 !important; flex: 0 0 100% !important;
        display: flex !important; justify-content: center !important; margin: 0 !important; gap: 10px !important;
    }

    /* 3) riga: Marchi a SX, Prezzo basso al CENTRO, Filtra a DX.
       (margin:auto sull'item centrale lo centra e spinge Filtra a destra) */
    .gg-filterzone .gg-filter-brand { order: 3 !important; margin: 0 !important; }
    .gg-filterzone .gg-sort-bar     { order: 4 !important; margin: 0 auto !important; }
    .gg-filterzone .gg-filter-main  { order: 5 !important; margin: 0 !important; }
    .gg-filterzone .gg-filter-reset-dot { order: 6 !important; }

    /* via il conteggio prodotti */
    .gg-filterzone .gg-result-count-text { display: none !important; }
    /* paginazione TOP (prima dei prodotti): nascosta su mobile; resta SOLO quella nativa
       sotto i prodotti (gia' presente). */
    .gg-filterzone .gg-top-pagination { display: none !important; }

    /* "Filtra": default NEUTRO (bianco / bordo grigio / testo grigio).
       Diventa arancio solo con .is-dirty (aggiunta via JS al primo cambio filtro),
       per invitare a premere Filtra. */
    .gg-filterzone .gg-filter-main {
        background: #fff !important; color: var(--shop-gray-500) !important;
        border: 1px solid var(--shop-gray-200) !important;
    }
    .gg-filterzone .gg-filter-main.is-dirty {
        background: var(--shop-accent) !important; color: #fff !important;
        border-color: var(--shop-accent) !important;
    }

    /* badge MONO/DUAL/MULTI: scritta GRIGIA finche' non selezionati, arancio se attivi */
    .gg-filterzone .gg-filter-split .gg-split-badge,
    .gg-filterzone .gg-filter-split .gg-split-badge span { color: var(--shop-gray-500) !important; }
    .gg-filterzone .gg-filter-split .gg-split-badge.is-active,
    .gg-filterzone .gg-filter-split .gg-split-badge.is-active span,
    .gg-filterzone .gg-filter-split .gg-split-badge:has(input[type="radio"]:checked),
    .gg-filterzone .gg-filter-split .gg-split-badge:has(input[type="radio"]:checked) span { color: var(--shop-accent) !important; }

    /* badge: stesso spessore bordo del tasto Filtra (1px) */
    .gg-filterzone .gg-filter-split .gg-split-badge { border-width: 1px !important; }

    /* breadcrumb categoria: TUTTE le voci a 13px (batte la regola .woocommerce-breadcrumb * = 20px) */
    .shop-header-breadcrumb .woocommerce-breadcrumb,
    .shop-header-breadcrumb .woocommerce-breadcrumb a,
    .shop-header-breadcrumb .woocommerce-breadcrumb span,
    .shop-header-breadcrumb .woocommerce-breadcrumb .breadcrumb-separator { font-size: 13px !important; }
    /* spazio tra nomi e > (gap) */
    .shop-header-breadcrumb .woocommerce-breadcrumb { gap: 6px !important; }
    .shop-header-breadcrumb .woocommerce-breadcrumb a,
    .shop-header-breadcrumb .woocommerce-breadcrumb span,
    .shop-header-breadcrumb .woocommerce-breadcrumb .breadcrumb-separator { margin: 0 !important; padding: 0 !important; }
    /* Home: solo icona casetta. Il breadcrumb rende un <a>Home</a> semplice (niente svg),
       quindi nascondo il testo del PRIMO link e gli metto l'icona casetta via background. */
    .shop-header-breadcrumb .woocommerce-breadcrumb > a:first-child {
        font-size: 0 !important;
        display: inline-block !important;
        width: 18px !important; height: 18px !important;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23003399'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E") no-repeat center center !important;
        background-size: contain !important;
        vertical-align: middle !important;
    }

    /* meno spazio tra campo cerca e breadcrumb */
    .shop-header-main { padding-bottom: 2px !important; }
    .shop-header-breadcrumb .col-full { padding: 2px 16px !important; }
    .shop-header-breadcrumb { margin: 0 !important; }

    /* chip sottocategorie: griglia bilanciata a colonne (var --gg-subcols: 4->2x2, 6->2x3, ecc.);
       riempiono tutta la larghezza della riga. Vale ANCHE per le chip ricerca (.gg-search-cats),
       dove --gg-subcols e' impostata via JS con la stessa formula della macrocategoria. */
    .gg-subcat-grid {
        display: grid !important;
        grid-template-columns: repeat(var(--gg-subcols, 2), 1fr) !important;
        gap: 10px !important;
        justify-content: stretch !important;
    }
    .gg-subcat-grid .gg-subcat-card {
        min-width: 0 !important;
        width: auto !important;
        text-align: center !important;
    }
}

/* MIGLIORA MOBILE: testo del megamenu categorie (quando si apre) +30%
   (titolo 13->17, intestazioni L2 12->16, link figli 13->17). Dopo le basi -> vince. */
@media (max-width: 768px), (max-height: 480px) {
    .shop-megamenu-title a { font-size: 15px !important; }
    .shop-megamenu-l2 { font-size: 14px !important; }
    .shop-megamenu-col li a { font-size: 15px !important; }
}

/* ======================================================================
   MIGLIORA MOBILE — CARRELLO (blocco WC) ordinato su mobile
   Il layout desktop (main+sidebar affiancati, prezzo 1.6em) si accavallava.
   ====================================================================== */
@media (max-width: 768px), (max-height: 480px) {
    /* main sopra, riepilogo sotto, a tutta larghezza */
    body.woocommerce-cart .wp-block-woocommerce-filled-cart-block { flex-direction: column !important; gap: 14px !important; }
    body.woocommerce-cart .wc-block-cart__main { width: 100% !important; }
    body.woocommerce-cart .wc-block-cart__sidebar { flex: 1 1 100% !important; max-width: 100% !important; width: 100% !important; margin: 0 !important; }

    /* tabella/righe a blocchi */
    body.woocommerce-cart table.wc-block-cart-items,
    body.woocommerce-cart .wc-block-cart-items,
    body.woocommerce-cart .wc-block-cart-items__row { display: block !important; width: 100% !important; }

    /* riga prodotto: FLEX (non grid, per non dipendere dalla griglia del blocco).
       Riga 1: immagine + prodotto. Riga 2 (a capo): totale a tutta larghezza, in basso.
       Selettori molto specifici per battere il layout del blocco WC. */
    body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row,
    body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row,
    body.woocommerce-cart .wc-block-cart-items__row {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: flex-start !important;
        column-gap: 12px !important; row-gap: 2px !important;
        padding: 10px 0 !important;
    }
    body.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__image,
    body.woocommerce-cart td.wc-block-cart-item__image {
        order: 1 !important; flex: 0 0 80px !important; width: 80px !important; max-width: 80px !important; padding: 0 !important; margin: 0 !important;
    }
    body.woocommerce-cart .wc-block-cart-item__image img { width: 100% !important; }
    body.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__product,
    body.woocommerce-cart td.wc-block-cart-item__product {
        order: 2 !important; flex: 1 1 0 !important; min-width: 0 !important; padding: 0 !important; text-align: left !important;
    }
    /* Totale: STATIC (fuori dall'absolute desktop) + flex 100% -> va a capo, ultima riga in basso */
    body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row td.wc-block-cart-item__total,
    body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row td.wc-block-cart-item__total,
    body.woocommerce-cart .wc-block-cart-items__row td.wc-block-cart-item__total,
    body.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__total,
    body.woocommerce-cart td.wc-block-cart-item__total,
    body.woocommerce-cart .wc-block-cart-item__total {
        position: static !important; float: none !important;
        top: auto !important; right: auto !important; left: auto !important; bottom: auto !important;
        order: 3 !important; flex: 1 1 100% !important;
        text-align: left !important; width: 100% !important; margin: 6px 0 0 !important; padding: 0 !important; pointer-events: auto !important;
    }
    /* "Totale prodotto" + prezzo sulla STESSA riga, allineati a baseline.
       SPECIFICITÀ ALTA (≥0,4,3): la base a ~6402 ha (0,4,2) display:block !important;
       con la sola td.* (0,2,2) vinceva lei -> qui eguaglio/supero gli antenati. */
    body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row td.wc-block-cart-item__total,
    body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row td.wc-block-cart-item__total,
    body.woocommerce-cart .wc-block-cart-items__row td.wc-block-cart-item__total,
    body.woocommerce-cart td.wc-block-cart-item__total,
    body.woocommerce-cart .wc-block-cart-item__total {
        display: flex !important; flex-direction: row !important; align-items: baseline !important;
        flex-wrap: nowrap !important; justify-content: flex-end !important; gap: 8px !important; line-height: 1.2 !important;
    }
    body.woocommerce-cart .wc-block-cart-item__total::after {
        order: -1 !important; margin: 0 !important; padding: 0 !important;
        text-align: left !important; white-space: nowrap !important; align-self: baseline !important; line-height: 1.2 !important;
    }
    body.woocommerce-cart .wc-block-cart-item__total .wc-block-cart-item__total-price-and-sale-badge-wrapper {
        margin: 0 !important; padding: 0 !important; flex: 0 0 auto !important;
        display: flex !important; flex-direction: row !important;
        align-items: baseline !important; align-self: baseline !important; line-height: 1.2 !important;
    }
    /* prezzi non giganti su mobile (erano 32px/1.6em -> si accavallavano) */
    body.woocommerce-cart td.wc-block-cart-item__total,
    body.woocommerce-cart .wc-block-cart-item__total,
    body.woocommerce-cart .wc-block-cart-item__prices,
    body.woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-price {
        font-size: 18px !important; line-height: 1.2 !important;
    }
    /* annulla il padding-bottom 80px (serviva al totale absolute desktop ~6490):
       su mobile creava un vuoto enorme tra prodotto e "Totale prodotto" */
    body.woocommerce-cart .wc-block-cart-items__row:not(:last-of-type) > td,
    body.woocommerce-cart .wc-block-cart-items__row > td {
        padding-bottom: 0 !important;
    }
    /* spazio tra un prodotto e l'altro (~una riga vuota) */
    body.woocommerce-cart .wc-block-cart-items__row:not(:last-of-type) {
        padding-bottom: 28px !important;
        margin-bottom: 28px !important;
    }
    /* allarga le card carrello: il vincolo vero è il margine di .col-full (Storefront ~22px/lato).
       Lo riduco SOLO nel contenuto della pagina carrello (non header/breadcrumb). */
    body.woocommerce-cart .site-content > .col-full {
        margin-left: 6px !important;
        margin-right: 6px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        max-width: none !important;
    }
    body.woocommerce-cart .entry-content {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart-items-block,
    body.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    /* il riquadro verde metodo spedizione: meno padding laterale -> più largo */
    .gg-ship-select { padding-left: 8px !important; padding-right: 8px !important; }
}

/* ======================================================================
   MIGLIORA MOBILE — CHECKOUT (blocco WC) ordinato su mobile
   Il layout desktop era flex-row con sidebar fissa 360px e NON in @media:
   su un telefono la sidebar mangiava quasi tutta la larghezza e il form
   (main) restava una striscia coi campi che sforavano. Qui impilo in colonna.
   ====================================================================== */
@media (max-width: 768px), (max-height: 480px) {
    /* allarga il contenuto pagina (come carrello): margine col-full ridotto */
    body.woocommerce-checkout .site-content > .col-full {
        margin-left: 6px !important;
        margin-right: 6px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        max-width: none !important;
    }
    body.woocommerce-checkout .entry-content {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    /* colonne impilate: form sopra, riepilogo sotto, entrambi a tutta larghezza */
    body.woocommerce-checkout .wp-block-woocommerce-checkout,
    body.woocommerce-checkout .wc-block-checkout {
        flex-direction: column !important;
        gap: 14px !important;
        align-items: stretch !important;
    }
    body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block,
    body.woocommerce-checkout .wc-block-checkout__main,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block,
    body.woocommerce-checkout .wc-block-checkout__sidebar {
        flex: 1 1 100% !important;
        max-width: 100% !important;
        width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        box-sizing: border-box !important;
    }

    /* RIEPILOGO: niente collassabile in alto, ma riepilogo COMPLETO in fondo.
       1) disabilito le container query del blocco -> il riepilogo rende in versione
          "espansa" (niente toggle/freccetta, niente barra collassata) */
    body.woocommerce-checkout .wc-block-checkout,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        container-type: normal !important;
    }
    /* 2) ordino: form sopra, riepilogo (sidebar) sotto; tolgo lo sticky che lo teneva su */
    body.woocommerce-checkout .wc-block-checkout__main,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block {
        order: 1 !important;
    }
    body.woocommerce-checkout .wc-block-checkout__sidebar,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block {
        order: 2 !important;
        position: static !important;
        top: auto !important;
    }
    /* 3) per sicurezza nascondo gli elementi del solo header collassato (prezzo+freccetta nel titolo) */
    body.woocommerce-checkout .wc-block-components-checkout-order-summary__title-price,
    body.woocommerce-checkout .wc-block-components-checkout-order-summary__title-icon {
        display: none !important;
    }
    body.woocommerce-checkout .wc-block-components-checkout-order-summary__title[role="button"] {
        cursor: default !important;
        pointer-events: none !important;
    }

    /* card: meno padding laterale così i campi respirano */
    body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    /* campi a tutta larghezza, niente overflow orizzontale */
    body.woocommerce-checkout .wc-block-components-text-input,
    body.woocommerce-checkout .wc-block-components-address-form,
    body.woocommerce-checkout .wc-block-components-address-form > * {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* ---- CONTENIMENTO OVERFLOW ORIZZONTALE ----
       Qualcosa dentro il checkout è più largo del viewport e veniva tagliato a dx.
       1) tutto border-box e mai più largo del proprio contenitore */
    body.woocommerce-checkout .wp-block-woocommerce-checkout,
    body.woocommerce-checkout .wp-block-woocommerce-checkout *,
    body.woocommerce-checkout .wc-block-checkout,
    body.woocommerce-checkout .wc-block-checkout * {
        box-sizing: border-box !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
    /* 2) il form indirizzo a 1 colonna (la griglia 2-col forzava la larghezza) */
    body.woocommerce-checkout .wc-block-components-address-form {
        grid-template-columns: 1fr !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    /* 3) i contenitori di pagina a border-box (Storefront usa content-box) */
    body.woocommerce-checkout .site-content > .col-full,
    body.woocommerce-checkout .entry-content,
    body.woocommerce-checkout .woocommerce,
    body.woocommerce-checkout .content-area {
        box-sizing: border-box !important;
        max-width: 100% !important;
    }
    /* 4) rete di sicurezza: niente scroll orizzontale di pagina */
    body.woocommerce-checkout { overflow-x: hidden !important; }

    /* totale dell'header "Riepilogo ordine" (collassato su mobile): rosso come gli altri
       importi; decimali e € sono già piccoli via gg-dec/gg-cur (JS) */
    body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block .wc-block-components-formatted-money-amount,
    body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-formatted-money-amount {
        color: var(--shop-red) !important;
        font-weight: 700 !important;
    }

    /* più aria tra l'avviso OSPITE/REGISTRATI e il primo campo (indirizzo email):
       l'avviso era position:absolute in un padding-top fisso (36px) e su mobile, andando
       a 3 righe, si sovrapponeva al campo. Lo rimetto nel flusso con margine reale. */
    body.woocommerce-checkout .wp-block-woocommerce-checkout-contact-information-block,
    body.woocommerce-checkout .wc-block-components-checkout-step:has(input[type="email"]),
    body.woocommerce-checkout .wc-block-components-checkout-step:has(.gg-guest-notice) {
        padding-top: 0 !important;
    }
    body.woocommerce-checkout .gg-guest-notice {
        position: static !important;
        top: auto !important; left: auto !important; right: auto !important;
        margin: 0 0 24px !important;
        padding: 0 !important;
    }

    /* riduci lo spazio grigio in cima (dove prima stava il riepilogo): lasciane solo un accenno */
    body.woocommerce-checkout .entry-content { padding-top: 8px !important; }
    body.woocommerce-checkout .wp-block-woocommerce-checkout,
    body.woocommerce-checkout .wc-block-checkout {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    body.woocommerce-checkout .wc-block-checkout__main,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block {
        margin-top: 0 !important;
    }
}

/* Checkout mobile: nascondi il riepilogo ordine standard WC (sidebar) — ridondante,
   perche' il blocco Express/PayPal in alto mostra gia' prodotto + totali. Desktop intatto. */
@media (max-width: 768px), (max-height: 480px) {
    body.woocommerce-checkout .wc-block-checkout__sidebar { display: none !important; }
}

/* Checkout mobile: metodi di pagamento IMPILATI (1 colonna, card a tutta larghezza)
   invece delle 2-3 colonne strette. Su desktop resta la griglia (regole ~8090 e ~8372).
   NB: includo anche body.gg-pickup-active (ritiro in negozio) che forzava 3 colonne con
   specificita' maggiore (0,4,1) -> qui pareggio la specificita' e vinco per ordine sorgente. */
@media (max-width: 768px), (max-height: 480px) {
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control,
    body.gg-pickup-active.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control,
    body.gg-pickup-active.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    /* niente switch toggle nelle card PAGAMENTO (la selezione e' il bordo verde) -> testo a sx */
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option::before,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option::after,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option::before,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option::after {
        display: none !important;
    }
    /* card a tutta larghezza: titolo + descrizione allineati a SX vicino al bordo (annulla flex/center) */
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option {
        padding: 14px 16px 8px 18px !important;
        text-align: left !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
    }
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option-layout,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option-layout,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__label,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__label,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-payment-method-label,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-payment-method-label {
        text-align: left !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
    }
    /* descrizione (PayPal ha CSS interno): forzo SX su accordion-content E tutti i discendenti */
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-content,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content {
        text-align: left !important;
        padding: 0 18px 14px 18px !important;
    }
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-content *,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content *,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control__option-content-wrapper *,
    body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__option-content-wrapper * {
        text-align: left !important;
    }
}

/* === Pagina "La nostra storia" (id 47872): stile statiche + foto storiche === */
body.page-id-47872 .entry-title { text-align: center !important; color: #003399; font-weight: 800; }
body.page-id-47872 h2 {
    font-weight: 900 !important; color: #003399; margin-top: 32px;
    padding-bottom: 6px; border-bottom: 3px solid var(--shop-accent);
}
/* tutte le foto della storia: angoli arrotondati */
body.page-id-47872 .entry-content img { border-radius: 14px; max-width: 100%; height: auto; }
/* foto singola centrata con didascalia */
body.page-id-47872 .gg-storia-foto { margin: 22px auto; text-align: center; }
/* display:block + margin auto: centra l'immagine anche se il tema forza img{display:block} */
body.page-id-47872 .gg-storia-foto img { display: block; margin-left: auto !important; margin-right: auto !important; box-shadow: 0 3px 12px rgba(0,0,0,.12); max-height: 460px; width: auto; max-width: 100%; }
body.page-id-47872 .gg-storia-foto figcaption { font-size: 13px; color: #666; font-style: italic; margin-top: 6px; }
/* trio elettrodomestici: 3 affiancate (stack su mobile) */
body.page-id-47872 .gg-storia-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 22px 0 6px; align-items: start; }
body.page-id-47872 .gg-storia-trio img { width: 100%; height: auto; box-shadow: 0 3px 12px rgba(0,0,0,.12); }
body.page-id-47872 .gg-storia-trio-cap { text-align: center; font-size: 13px; color: #666; font-style: italic; margin: 0 0 22px; }
@media (max-width: 768px), (max-height: 480px) {
    body.page-id-47872 .gg-storia-trio { grid-template-columns: 1fr; }
}

/* GG (fix golive 11/06/2026): card Caorle/Servizi extra FUORI dal blocco React del checkout
   (era iniettata dentro -> crash 'removeChild'). Ora in cima al checkout.
   Larghezza + bordo sinistro allineati ESATTAMENTE alla card indirizzi (.wc-block-checkout__main)
   via JS (alignCaorleBox) che imposta inline width/margin-left misurando a runtime — robusto.
   Qui solo lo stile non geometrico. Padding verticale ridotto = card più bassa. */
.gg-caorle-box.gg-caorle-outside {
    box-sizing: border-box;
    margin: 0 0 22px 0;
    padding-top: 10px;
    padding-bottom: 10px;
}
@media (max-width: 980px), (max-height: 480px) {
    /* Colonna unica: il JS azzera gli inline, qui torno a larghezza piena con margini laterali. */
    .gg-caorle-box.gg-caorle-outside {
        margin: 0 16px 16px;
    }
}
