/*
 * SenzaFronzoli
 * Global UI and full-width category layout
 */

:root {
    --nwc-site-width: 1690px;
    --nwc-page-gutter: clamp(14px, 1.4vw, 24px);

    --nwc-page-bg: #eef1ef;
    --nwc-surface: #ffffff;
    --nwc-surface-soft: #f7f9f8;
    --nwc-surface-green: #f1f7f4;

    --nwc-text: #202a24;
    --nwc-text-muted: #6d7871;

    --nwc-border: #e1e7e3;
    --nwc-border-strong: #cfd9d2;

    --nwc-radius-small: 8px;
    --nwc-radius: 12px;
    --nwc-radius-large: 16px;

    --nwc-shadow-small: 0 2px 8px rgba(24, 52, 38, 0.045);
    --nwc-shadow: 0 10px 30px rgba(24, 52, 38, 0.075);
    --nwc-shadow-hover: 0 15px 38px rgba(24, 52, 38, 0.11);

    --color-primary-lighter: #59917f;
    --color-primary: #427c6d;
    --color-primary-darker: #315f53;

    --color-primary-hover: #35675a;
    --color-primary-active: #294f46;
    --color-on-primary: #ffffff;
}

/* =========================================================
   STRUTTURA GENERALE
   ========================================================= */

html,
body {
    background: var(--nwc-page-bg);
}

body {
    color: var(--nwc-text);
}

.page-wrapper {
    width: 100%;
    max-width: var(--nwc-site-width);
    min-height: 100vh;
    margin-inline: auto;
    background: var(--nwc-surface);
}

/*
 * Non aggiungere max-width a .mx-auto.
 * È una utility usata in numerosi componenti Hyvä.
 */

.page-main,
.container {
    width: 100%;
    max-width: var(--nwc-site-width);
    margin-inline: auto;
}

@media (min-width: 1730px) {
    .page-wrapper {
        border-inline: 1px solid var(--nwc-border);
        box-shadow: 0 0 28px rgba(20, 45, 32, 0.07);
    }
}

@media (max-width: 1729px) {
    .page-wrapper {
        max-width: 100%;
        border-inline: 0;
        box-shadow: none;
    }
}

/* =========================================================
   CATEGORIE E RISULTATI DI RICERCA
   Rimuove il limite Hyvä di 96rem / 1536px
   ========================================================= */

body.catalog-category-view main.page-main,
body.catalogsearch-result-index main.page-main {
    width: 100% !important;
    max-width: none !important;
    margin-inline: auto !important;
    padding-inline: var(--nwc-page-gutter) !important;
}

/*
 * Questo selettore sovrascrive:
 * :where(main:not(...)) .columns { max-width: 96rem; }
 */
body.catalog-category-view main.page-main > .columns,
body.catalogsearch-result-index main.page-main > .columns {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
}

body.catalog-category-view main.page-main > .columns > .column.main,
body.catalogsearch-result-index main.page-main > .columns > .column.main {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
}

/*
 * Mantiene la griglia corretta quando è presente la sidebar filtri.
 * Non impostare display:block sulla classe .columns.
 */
body.catalog-category-view .columns,
body.catalogsearch-result-index .columns {
    column-gap: clamp(20px, 2vw, 32px);
}

/* Titolo e intestazione categoria */

.catalog-category-view .page-title-wrapper,
.catalogsearch-result-index .page-title-wrapper {
    margin-bottom: 20px;
}

.catalog-category-view .page-title,
.catalogsearch-result-index .page-title {
    color: var(--nwc-text);
    font-weight: 800;
    letter-spacing: -0.025em;
}

/* Toolbar categoria */

.catalog-category-view .toolbar-products,
.catalogsearch-result-index .toolbar-products {
    margin-bottom: 20px;
    padding: 10px 14px;
    border: 1px solid var(--nwc-border);
    border-radius: var(--nwc-radius);
    background: var(--nwc-surface);
    box-shadow: var(--nwc-shadow-small);
}

/* Filtri laterali */

.catalog-category-view .block.filter,
.catalogsearch-result-index .block.filter {
    overflow: hidden;
    border: 1px solid var(--nwc-border);
    border-radius: var(--nwc-radius-large);
    background: var(--nwc-surface);
    box-shadow: var(--nwc-shadow-small);
}

.catalog-category-view .filter-title,
.catalogsearch-result-index .filter-title {
    padding: 15px 17px;
    border-bottom: 1px solid var(--nwc-border);
}

.catalog-category-view .filter-options-item,
.catalogsearch-result-index .filter-options-item {
    border-bottom: 1px solid var(--nwc-border);
}

.catalog-category-view .filter-options-item:last-child,
.catalogsearch-result-index .filter-options-item:last-child {
    border-bottom: 0;
}

/* Card prodotti categoria */

.catalog-category-view .products-grid .product-item-info,
.catalogsearch-result-index .products-grid .product-item-info {
    overflow: hidden;
    border: 1px solid var(--nwc-border);
    border-radius: var(--nwc-radius-large);
    background: var(--nwc-surface);
    box-shadow: var(--nwc-shadow-small);
    transition:
        border-color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
}

@media (hover: hover) {
    .catalog-category-view .products-grid .product-item-info:hover,
    .catalogsearch-result-index .products-grid .product-item-info:hover {
        border-color: var(--nwc-border-strong);
        box-shadow: var(--nwc-shadow-hover);
        transform: translateY(-2px);
    }
}

/* =========================================================
   HOMEPAGE
   ========================================================= */

.cms-index-index .page-main {
    width: 100% !important;
    max-width: none !important;
    margin-top: 0 !important;
    padding: 0 !important;
}

.cms-index-index .page-main > .columns,
.cms-index-index .column.main {
    width: 100% !important;
    max-width: none !important;
    margin-top: 0 !important;
    padding: 0 !important;
}

.cms-index-index .column.main > [data-content-type="row"]:first-child,
.cms-index-index .column.main > .widget.block:first-child,
.cms-index-index .column.main > .block:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* =========================================================
   TOP BAR
   ========================================================= */

.nvc-topbar {
    display: flex;
    width: 100%;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    gap: 36px;
    padding-inline: 18px;
    background: #427c6d;
    color: #ffffff;
    font-size: 13px;
    font-weight: 650;
    letter-spacing: 0.005em;
}

@media (max-width: 768px) {
    .nvc-topbar {
        justify-content: flex-start;
        gap: 20px;
        overflow-x: auto;
        padding-inline: 15px;
        font-size: 12px;
        white-space: nowrap;
        scrollbar-width: none;
    }

    .nvc-topbar::-webkit-scrollbar {
        display: none;
    }
}

/* =========================================================
   PULSANTI
   ========================================================= */

.btn {
    border-radius: 10px;
    font-weight: 700;
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        color 160ms ease,
        box-shadow 160ms ease,
        transform 160ms ease;
}

.btn-primary {
    --btn-stroke: transparent;
    --btn-bg: var(--color-primary);
    --btn-color: var(--color-on-primary);

    --btn-hover-stroke: transparent;
    --btn-hover-bg: var(--color-primary-hover);
    --btn-hover-color: var(--color-on-primary);

    --btn-active-stroke: transparent;
    --btn-active-bg: var(--color-primary-active);
    --btn-active-color: var(--color-on-primary);

    box-shadow: 0 8px 18px rgba(66, 124, 109, 0.18);
}

@media (hover: hover) {
    .btn-primary:hover {
        box-shadow: 0 10px 22px rgba(66, 124, 109, 0.25);
        transform: translateY(-1px);
    }
}

/* =========================================================
   CAMPI FORM
   ========================================================= */

:is(
    input:not([type="checkbox"], [type="radio"]),
    select,
    textarea,
    .form-input,
    .form-select,
    .form-textarea
) {
    border-color: var(--nwc-border-strong);
    border-radius: var(--nwc-radius-small);
    background: #ffffff;
    transition:
        border-color 160ms ease,
        box-shadow 160ms ease,
        background-color 160ms ease;
}

:is(
    input:not([type="checkbox"], [type="radio"]),
    select,
    textarea,
    .form-input,
    .form-select,
    .form-textarea
):focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(66, 124, 109, 0.13);
}

/* =========================================================
   CARD E CONTENITORI
   ========================================================= */

.card {
    border-color: var(--nwc-border);
    border-radius: var(--nwc-radius);
    background: var(--nwc-surface);
    box-shadow: var(--nwc-shadow-small);
}

.dropdown-dialog,
.modal-content {
    border: 1px solid var(--nwc-border);
    border-radius: var(--nwc-radius-large);
    background: var(--nwc-surface);
    box-shadow: var(--nwc-shadow);
}

/* Header e footer con bordo sottile */

header.page-header {
    border-bottom: 1px solid var(--nwc-border);
}

footer.page-footer {
    border-top: 1px solid var(--nwc-border);
}

/* =========================================================
   TABELLE
   ========================================================= */

.table-wrapper {
    overflow: hidden;
    border: 1px solid var(--nwc-border);
    border-radius: var(--nwc-radius);
}

table th,
table td {
    border-color: var(--nwc-border);
}

table th {
    background: var(--nwc-surface-soft);
    color: var(--nwc-text);
    font-weight: 750;
}

/* =========================================================
   MESSAGGI
   ========================================================= */

.message {
    border-radius: var(--nwc-radius-small);
    box-shadow: none;
}

/* =========================================================
   NOMI PRODOTTI
   ========================================================= */

.mt-2.mb-1.items-center.justify-center.font-semibold.text-lg.text-center {
    text-align: center !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
}

/* NWC-SHIPPING-COUNTDOWN */

.catalog-product-view .nwc-shipping-countdown {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    width: 100%;
    margin: 14px 0;
    padding: 11px 13px;
    border: 1px solid #d9e7dd;
    border-radius: 11px;
    background:
        linear-gradient(
            105deg,
            rgba(237, 247, 240, 0.96),
            rgba(250, 252, 250, 0.98)
        );
    color: #344139;
}

.catalog-product-view .nwc-shipping-countdown__icon {
    width: 38px;
    height: 38px;
    padding: 8px;
    border-radius: 50%;
    background: #ffffff;
    color: #2e7a4a;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    box-shadow: 0 3px 10px rgba(38, 105, 64, 0.08);
}

.catalog-product-view .nwc-shipping-countdown__content {
    min-width: 0;
}

.catalog-product-view .nwc-shipping-countdown__main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 7px;
    color: #344139;
    font-size: 12px;
    line-height: 1.45;
}

.catalog-product-view .nwc-shipping-countdown__main strong {
    color: #216b3f;
    font-weight: 800;
}

.catalog-product-view .nwc-shipping-countdown__status-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: #35a45f;
    box-shadow: 0 0 0 3px rgba(53, 164, 95, 0.12);
}

.catalog-product-view .nwc-shipping-countdown__separator {
    color: #8b958f;
    font-weight: 700;
}

.catalog-product-view .nwc-shipping-countdown__note {
    display: block;
    margin-top: 3px;
    color: #78837c;
    font-size: 10px;
    line-height: 1.35;
}

@media (max-width: 700px) {
    .catalog-product-view .nwc-shipping-countdown {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 9px;
        margin: 11px 0;
        padding: 10px;
    }

    .catalog-product-view .nwc-shipping-countdown__icon {
        width: 34px;
        height: 34px;
        padding: 7px;
    }

    .catalog-product-view .nwc-shipping-countdown__main {
        font-size: 11px;
    }

    .catalog-product-view .nwc-shipping-countdown__separator {
        display: none;
    }

    .catalog-product-view .nwc-shipping-countdown__note {
        font-size: 9px;
    }
}


/* NWC-PRODUCT-PAGE-FINAL */

.catalog-product-view body {
    background: #f6f7f5;
}

.catalog-product-view .page-wrapper {
    max-width: 1690px;
    margin: 0 auto;
    background: #fff;
    box-shadow: 0 10px 32px rgba(15, 23, 42, 0.06);
}

.catalog-product-view .page-main,
.catalog-product-view main.page-main {
    max-width: 1680px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

.catalog-product-view :where(main:not(.product-main-full-width,.page-main-full-width)) .columns {
    max-width: 1680px !important;
    width: 100% !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
}

.catalog-product-view .columns .column.main {
    width: 100%;
}

/* area hero */
.catalog-product-view .product-main-grid,
.catalog-product-view .nwc-product-main,
.catalog-product-view .product-info-main-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
    gap: 34px;
    align-items: start;
}

/* gallery */
.catalog-product-view .nwc-product-gallery,
.catalog-product-view .product.media,
.catalog-product-view .product-gallery {
    background: #f5f1e9;
    border: 1px solid #ece7dc;
    border-radius: 20px;
    padding: 14px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
}

.catalog-product-view .nwc-product-gallery .product-image-main,
.catalog-product-view .product.media .gallery-placeholder,
.catalog-product-view .product-gallery-main {
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
}

.catalog-product-view .nwc-product-gallery img,
.catalog-product-view .product.media img,
.catalog-product-view .product-image-photo {
    border-radius: 12px;
}

.catalog-product-view .nwc-gallery-thumbs,
.catalog-product-view .product.media .gallery-thumbs,
.catalog-product-view .product-gallery-thumbs {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    margin-top: 12px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.catalog-product-view .nwc-gallery-thumbs button,
.catalog-product-view .nwc-gallery-thumbs a,
.catalog-product-view .product.media .gallery-thumbs button,
.catalog-product-view .product.media .gallery-thumbs a {
    width: 86px;
    min-width: 86px;
    height: 86px;
    border-radius: 12px;
    border: 1px solid #dfe7de;
    background: #fff;
    overflow: hidden;
    transition: .2s ease;
}

.catalog-product-view .nwc-gallery-thumbs button:hover,
.catalog-product-view .nwc-gallery-thumbs a:hover,
.catalog-product-view .product.media .gallery-thumbs button:hover,
.catalog-product-view .product.media .gallery-thumbs a:hover {
    border-color: #2d7a4b;
    box-shadow: 0 0 0 3px rgba(45, 122, 75, 0.08);
}

/* colonna dx */
.catalog-product-view .nwc-product-summary,
.catalog-product-view .product-info-main {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.catalog-product-view .product-info-main {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.catalog-product-view .product-info-main .page-title-wrapper,
.catalog-product-view .product-info-main .product-info-price,
.catalog-product-view .product-info-main .product-options-bottom,
.catalog-product-view .product-info-main .box-tocart,
.catalog-product-view .product-info-main .product-social-links,
.catalog-product-view .product-info-main .product.attribute.sku {
    background: #fff;
    border: 1px solid #e8ede7;
    border-radius: 18px;
    padding: 18px 20px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.035);
}

/* titolo */
.catalog-product-view .page-title-wrapper .page-title,
.catalog-product-view .product-info-main .page-title {
    font-size: 54px !important;
    line-height: 0.96 !important;
    font-weight: 800 !important;
    letter-spacing: -0.03em !important;
    color: #1d2320 !important;
    margin: 0 0 8px 0 !important;
}

.catalog-product-view .product-reviews-summary {
    margin-top: 0 !important;
}

/* prezzo */
.catalog-product-view .price-box .price,
.catalog-product-view .product-info-price .price {
    font-size: 46px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    color: #2d7a4b !important;
}

.catalog-product-view .old-price .price {
    font-size: 22px !important;
    color: #8d958e !important;
}

/* disponibilità */
.catalog-product-view .stock.available,
.catalog-product-view .product-info-stock-sku .stock.available {
    color: #2d7a4b !important;
    font-weight: 700 !important;
}

.catalog-product-view .product-info-stock-sku {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 16px !important;
}

/* sku in basso e sobrio */
.catalog-product-view .product.attribute.sku .type {
    display: none !important;
}
.catalog-product-view .product.attribute.sku .value {
    font-size: 12px;
    color: #7c847d;
    font-weight: 600;
}

/* box benefici tipo mockup */
.catalog-product-view .nwc-product-benefits,
.catalog-product-view .nwc-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    background: #f4f8f2;
    border: 1px solid #e0eadf;
    border-radius: 16px;
    padding: 14px;
}

.catalog-product-view .nwc-product-benefits .item,
.catalog-product-view .nwc-feature-grid .item {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    border-radius: 12px;
    padding: 10px 12px;
    background: rgba(255,255,255,0.55);
    color: #2b3a2f;
    font-size: 14px;
    font-weight: 600;
}

/* qty + add to cart */
.catalog-product-view .box-tocart .fieldset {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    align-items: center !important;
}

.catalog-product-view .box-tocart .field.qty {
    margin: 0 !important;
}

.catalog-product-view .box-tocart input.qty,
.catalog-product-view .box-tocart .qty input {
    width: 98px !important;
    height: 52px !important;
    border-radius: 12px !important;
    border: 1px solid #dbe5dc !important;
    background: #fff !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    text-align: center !important;
}

.catalog-product-view .box-tocart .actions {
    flex: 1 1 auto;
    margin: 0 !important;
}

.catalog-product-view .box-tocart .tocart,
.catalog-product-view .box-tocart .action.tocart {
    width: 100% !important;
    min-height: 58px !important;
    border-radius: 14px !important;
    background: linear-gradient(135deg, #2c7b49, #317e4d) !important;
    border: 0 !important;
    color: #fff !important;
    font-size: 22px !important;
    font-weight: 800 !important;
    letter-spacing: 0.01em !important;
    box-shadow: 0 10px 20px rgba(45, 122, 75, 0.16);
}

/* wishlist compare */
.catalog-product-view .product-social-links,
.catalog-product-view .product-addto-links {
    display: flex !important;
    gap: 24px !important;
    align-items: center !important;
    justify-content: flex-start !important;
}

.catalog-product-view .product-social-links a,
.catalog-product-view .product-addto-links a {
    font-size: 15px !important;
    color: #2e342f !important;
    font-weight: 600 !important;
}

/* cards supporto */
.catalog-product-view .nwc-trust-row,
.catalog-product-view .nwc-trust-box {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    background: #fff;
    border: 1px solid #e7ece7;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.03);
}

.catalog-product-view .nwc-trust-row .item,
.catalog-product-view .nwc-trust-box .item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    min-height: 128px;
    padding: 18px;
    text-align: center;
}

.catalog-product-view .nwc-trust-row .item + .item,
.catalog-product-view .nwc-trust-box .item + .item {
    border-left: 1px solid #edf1ec;
}

/* tabs / descrizione */
.catalog-product-view .product.info.detailed,
.catalog-product-view .product.data.items {
    margin-top: 26px !important;
    background: transparent !important;
    border: 0 !important;
}

.catalog-product-view .product.data.items > .item.title,
.catalog-product-view .product.info.detailed .data.item.title {
    display: inline-flex !important;
    margin-right: 20px !important;
}

.catalog-product-view .product.data.items > .item.title > .switch,
.catalog-product-view .product.info.detailed .data.item.title .switch {
    border: 0 !important;
    background: transparent !important;
    font-weight: 700 !important;
    color: #4d5751 !important;
    padding: 0 0 12px !important;
    border-bottom: 2px solid transparent !important;
}

.catalog-product-view .product.data.items > .item.title.active > .switch,
.catalog-product-view .product.info.detailed .data.item.title.active .switch {
    color: #2d7a4b !important;
    border-bottom-color: #2d7a4b !important;
}

.catalog-product-view .product.data.items > .item.content,
.catalog-product-view .product.info.detailed .data.item.content {
    background: transparent !important;
    border: 0 !important;
    padding: 22px 0 0 !important;
}

.catalog-product-view .product.attribute.description,
.catalog-product-view .product.data.items .item.content > div {
    max-width: 980px;
    color: #303631;
    line-height: 1.8;
    font-size: 17px;
}

.catalog-product-view .product.attribute.description h2,
.catalog-product-view .product.attribute.description h3 {
    font-size: 34px;
    line-height: 1.05;
    margin: 26px 0 14px;
    color: #1f2521;
}

.catalog-product-view .product.attribute.description p {
    margin-bottom: 14px;
}

.catalog-product-view .product.attribute.description ul {
    padding-left: 18px;
    margin: 10px 0 16px;
}

/* review summary box opzionale */
.catalog-product-view .nwc-rating-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-radius: 16px;
    border: 1px solid #e5ebe4;
    background: #fff;
}

/* servizi sotto gallery */
.catalog-product-view .nwc-service-strip,
.catalog-product-view .nwc-service-icons {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: 24px;
    padding-top: 10px;
}

.catalog-product-view .nwc-service-strip .item,
.catalog-product-view .nwc-service-icons .item {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #344039;
    font-size: 14px;
    font-weight: 700;
}

/* recensioni form */
.catalog-product-view .review-form,
.catalog-product-view .block.review-add {
    background: #fff;
    border: 1px solid #e8ece8;
    border-radius: 18px;
    padding: 20px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.03);
}

.catalog-product-view .review-control-vote label:before,
.catalog-product-view .review-control-vote label:after {
    font-size: 28px !important;
}

/* mobile / tablet */
@media (max-width: 1200px) {
    .catalog-product-view .page-title-wrapper .page-title,
    .catalog-product-view .product-info-main .page-title {
        font-size: 44px !important;
    }

    .catalog-product-view .product-main-grid,
    .catalog-product-view .nwc-product-main,
    .catalog-product-view .product-info-main-wrap {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}

@media (max-width: 768px) {
    .catalog-product-view .page-main,
    .catalog-product-view main.page-main {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .catalog-product-view .page-title-wrapper .page-title,
    .catalog-product-view .product-info-main .page-title {
        font-size: 34px !important;
    }

    .catalog-product-view .price-box .price,
    .catalog-product-view .product-info-price .price {
        font-size: 34px !important;
    }

    .catalog-product-view .product-info-main .page-title-wrapper,
    .catalog-product-view .product-info-main .product-info-price,
    .catalog-product-view .product-info-main .product-options-bottom,
    .catalog-product-view .product-info-main .box-tocart,
    .catalog-product-view .product-info-main .product-social-links,
    .catalog-product-view .product-info-main .product.attribute.sku {
        padding: 16px !important;
        border-radius: 16px !important;
    }

    .catalog-product-view .nwc-product-benefits,
    .catalog-product-view .nwc-feature-grid {
        grid-template-columns: 1fr;
    }

    .catalog-product-view .nwc-service-strip,
    .catalog-product-view .nwc-service-icons {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .catalog-product-view .nwc-trust-row,
    .catalog-product-view .nwc-trust-box {
        grid-template-columns: 1fr;
    }

    .catalog-product-view .nwc-trust-row .item + .item,
    .catalog-product-view .nwc-trust-box .item + .item {
        border-left: 0;
        border-top: 1px solid #edf1ec;
    }

    .catalog-product-view .box-tocart .tocart,
    .catalog-product-view .box-tocart .action.tocart {
        font-size: 18px !important;
        min-height: 52px !important;
    }

    .catalog-product-view .product.data.items > .item.title,
    .catalog-product-view .product.info.detailed .data.item.title {
        display: block !important;
        margin-right: 0 !important;
        margin-bottom: 10px !important;
    }
}
/* =========================================================
   SENZAFRONZOLI - HEADER E MENU DESKTOP
   ========================================================= */

@media (min-width: 1024px) {

    /* Voci principali del menu */
    header nav a.level-0 {
        position: relative;
        display: block;
        padding: 12px 10px;
        border-radius: 8px;
        font-size: 15px;
        line-height: 1.2;
        text-transform: uppercase;
        font-weight: 600;
        letter-spacing: 0.035em;
        color: #38364b;
        white-space: nowrap;
        transition:
            color 0.2s ease,
            background-color 0.2s ease,
            transform 0.2s ease;
    }

    /* Hover e voce attiva */
    header nav a.level-0:hover,
    header nav a.level-0:focus-visible,
    header nav a.level-0[aria-current="page"] {
        color: #665b87;
        background-color: rgba(102, 91, 135, 0.08);
        transform: translateY(-1px);
    }

    /* Linea animata sotto le voci principali */
    header nav a.level-0::before {
        content: "";
        position: absolute;
        right: 10px;
        bottom: 5px;
        left: 10px;
        height: 2px;
        border-radius: 999px;
        background-color: #665b87;
        transform: scaleX(0);
        transform-origin: center;
        transition: transform 0.22s ease;
    }

    header nav a.level-0:hover::before,
    header nav a.level-0:focus-visible::before,
    header nav a.level-0[aria-current="page"]::before {
        transform: scaleX(1);
    }

    /* Contenitore dropdown */
    header nav li.level-0 > ul,
    header nav ul.level-1 {
        min-width: 260px;
        padding: 10px;
        border: 1px solid rgba(56, 54, 75, 0.1);
        border-radius: 12px;
        background-color: #ffffff;
        box-shadow:
            0 18px 45px rgba(32, 29, 49, 0.12),
            0 4px 12px rgba(32, 29, 49, 0.06);
    }

    /* Voci interne del dropdown */
    header nav li.level-0 > ul a,
    header nav ul.level-1 a,
    header nav a.level-1 {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 42px;
        padding: 10px 13px;
        border-radius: 8px;
        font-size: 14px;
        line-height: 1.35;
        font-weight: 500;
        color: #38364b;
        text-transform: none;
        letter-spacing: 0.01em;
        transition:
            color 0.18s ease,
            background-color 0.18s ease,
            padding-left 0.18s ease;
    }

    /* Hover voci dropdown */
    header nav li.level-0 > ul a:hover,
    header nav li.level-0 > ul a:focus-visible,
    header nav ul.level-1 a:hover,
    header nav ul.level-1 a:focus-visible,
    header nav a.level-1:hover,
    header nav a.level-1:focus-visible {
        color: #665b87;
        background-color: #f5f3f8;
        padding-left: 17px;
    }

    /* Separazione leggera tra gli elementi */
    header nav li.level-0 > ul li + li,
    header nav ul.level-1 li + li {
        margin-top: 2px;
    }

    /* Logo desktop */
    header a.logo,
    header .logo,
    .page-header a.logo,
    .page-header .logo {
        width: 250px !important;
        max-width: 250px !important;
    }

    header a.logo img,
    header .logo img,
    .page-header a.logo img,
    .page-header .logo img {
        display: block;
        width: 250px !important;
        max-width: 250px !important;
        height: auto !important;
        object-fit: contain;
    }
}


/* =========================================================
   LOGO TABLET E MOBILE
   ========================================================= */

@media (max-width: 1023px) {

    header a.logo,
    header .logo,
    .page-header a.logo,
    .page-header .logo {
        width: 190px !important;
        max-width: 190px !important;
    }

    header a.logo img,
    header .logo img,
    .page-header a.logo img,
    .page-header .logo img {
        width: 190px !important;
        max-width: 190px !important;
        height: auto !important;
    }
}
@media (min-width: 1024px) {
    header .logo-container,
    header div:has(> a.logo) {
        width: 250px !important;
        min-width: 250px !important;
        max-width: 250px !important;
        flex-basis: 250px !important;
    }
}

/* =========================================================
   NWC-BADGE-SEARCH-V3-START
   Badge sconto e risultati ricerca
   ========================================================= */


/* =========================================================
   BADGE PERCENTUALE SCONTO
   ========================================================= */

.product-item,
.product-item-info,
.nwc-home-product-list li,
.nwc-home-product-list .product-item {
    position: relative !important;
}

.nwc-discount-badge {
    position: absolute !important;
    z-index: 50 !important;
    top: 12px !important;
    left: 12px !important;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    min-width: 48px;
    height: 28px;
    padding: 0 9px;

    border: 2px solid #fff;
    border-radius: 999px;
    background-color: #d94d63;
    box-shadow:
        0 5px 14px rgba(217, 77, 99, 0.28),
        0 1px 3px rgba(0, 0, 0, 0.08);

    color: #fff !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.025em;
    white-space: nowrap;

    pointer-events: none;
}


/* =========================================================
   PAGINA RISULTATI RICERCA
   ========================================================= */

.catalogsearch-result-index .column.main {
    min-width: 0;
}

/*
 * Forza una griglia anche quando Magento restituisce
 * la ricerca nella modalità "list".
 */
.catalogsearch-result-index .products.wrapper .product-items,
.catalogsearch-result-index .products.wrapper ul.product-items,
.catalogsearch-result-index .products.wrapper ol.product-items,
.catalogsearch-result-index .products.wrapper.mode-list .product-items,
.catalogsearch-result-index .products.wrapper.mode-grid .product-items {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch;
    gap: 20px !important;

    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;
}


/* Singolo elemento della griglia */
.catalogsearch-result-index .product-items > li,
.catalogsearch-result-index .product-items > .product-item,
.catalogsearch-result-index li.product-item {
    display: flex !important;
    flex-direction: column !important;

    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100%;

    margin: 0 !important;
    padding: 0 !important;
}


/* Scheda prodotto */
.catalogsearch-result-index .product-item,
.catalogsearch-result-index .product-item-info {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;

    width: 100% !important;
    max-width: none !important;
    height: 100% !important;

    overflow: hidden;
    border: 1px solid #e2e7e4;
    border-radius: 14px;
    background-color: #fff;
    box-shadow: 0 4px 14px rgba(34, 51, 43, 0.05);

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.catalogsearch-result-index .product-item:hover,
.catalogsearch-result-index .product-item-info:hover {
    transform: translateY(-3px);
    border-color: rgba(61, 136, 112, 0.35);
    box-shadow: 0 12px 28px rgba(34, 51, 43, 0.11);
}


/* Contenitore immagine */
.catalogsearch-result-index .product-item-photo,
.catalogsearch-result-index .product-image-container,
.catalogsearch-result-index .product-image-wrapper,
.catalogsearch-result-index .product-item picture {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}

.catalogsearch-result-index .product-item-photo {
    position: relative !important;
    flex: none !important;

    margin: 0 !important;
    padding: 16px !important;

    overflow: hidden;
    background-color: #fff;
}

.catalogsearch-result-index .product-image-wrapper {
    height: auto !important;
    padding: 0 !important;
    aspect-ratio: 1 / 1;
}


/* Immagine prodotto: impedisce l'immagine enorme */
.catalogsearch-result-index .product-image-photo,
.catalogsearch-result-index .product-item-photo img,
.catalogsearch-result-index .product-item picture img {
    position: static !important;

    display: block !important;
    width: 100% !important;
    height: 280px !important;
    max-width: 100% !important;
    max-height: 280px !important;

    margin: 0 auto !important;

    object-fit: contain !important;
    object-position: center;
}


/* Rimuove l'impostazione orizzontale della modalità lista */
.catalogsearch-result-index .product-item > div,
.catalogsearch-result-index .product-item-info > div {
    max-width: 100%;
}

.catalogsearch-result-index .product-item-details,
.catalogsearch-result-index .product-info {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;

    width: 100% !important;
    max-width: 100% !important;

    padding: 4px 16px 18px !important;
}


/* Descrizione lunga non necessaria nella griglia ricerca */
.catalogsearch-result-index .product-item-description,
.catalogsearch-result-index .product.description {
    display: none !important;
}


/* Nome prodotto */
.catalogsearch-result-index .product-item-name {
    min-height: 44px;
    margin: 5px 0 8px !important;
}

.catalogsearch-result-index .product-item-name a,
.catalogsearch-result-index .product-item-link {
    color: #111827;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.catalogsearch-result-index .product-item-name a:hover,
.catalogsearch-result-index .product-item-link:hover {
    color: #3d8870;
}


/* Recensioni */
.catalogsearch-result-index .product-reviews-summary,
.catalogsearch-result-index .rating-summary {
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
}


/* Prezzi */
.catalogsearch-result-index .price-box {
    margin-top: auto !important;
    margin-bottom: 14px !important;
    text-align: center;
}

.catalogsearch-result-index .price-box .price {
    color: #111827;
    font-size: 20px;
    font-weight: 800;
}

.catalogsearch-result-index .special-price .price {
    color: #111827;
}

.catalogsearch-result-index .old-price {
    display: block;
}

.catalogsearch-result-index .old-price .price {
    color: #5f6368;
    font-size: 13px;
    font-weight: 500;
    text-decoration: line-through;
}


/* Azioni e pulsanti */
.catalogsearch-result-index .product-item-actions,
.catalogsearch-result-index .product-item .actions {
    width: 100%;
    margin-top: auto;
}

.catalogsearch-result-index .product-item .action.tocart,
.catalogsearch-result-index .product-item button.tocart,
.catalogsearch-result-index .product-item [data-addto="cart"] {
    min-height: 44px;
    border-radius: 9px;
}


/* =========================================================
   TOOLBAR RICERCA
   ========================================================= */

.catalogsearch-result-index .toolbar-products {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;

    margin: 0 0 24px;
    padding: 10px 14px;

    border: 1px solid #e2e7e4;
    border-radius: 11px;
    background-color: #fff;
    box-shadow: 0 3px 10px rgba(34, 51, 43, 0.04);
}

.catalogsearch-result-index .toolbar-products select {
    min-height: 39px;
    padding: 6px 35px 6px 12px;

    border: 1px solid #d9dfdc;
    border-radius: 8px;
    background-color: #fff;
}


/* =========================================================
   PAGINAZIONE
   ========================================================= */

.catalogsearch-result-index .pages {
    width: 100%;
    margin-top: 30px;
}

.catalogsearch-result-index .pages-items {
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px;

    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;
}

.catalogsearch-result-index .pages-item {
    margin: 0 !important;
}

.catalogsearch-result-index .pages a,
.catalogsearch-result-index .pages strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 39px;
    height: 39px;
    padding: 0 10px;

    border: 1px solid #dfe4e1;
    border-radius: 8px;
    background-color: #fff;

    color: #26332d;
    font-size: 14px;
    line-height: 1;
    font-weight: 700;
    text-decoration: none;
}

.catalogsearch-result-index .pages a:hover {
    border-color: #3d8870;
    background-color: #eef6f3;
    color: #3d8870;
}

.catalogsearch-result-index .pages .current strong {
    border-color: #3d8870;
    background-color: #3d8870;
    color: #fff;
}


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

@media (max-width: 1100px) {
    .catalogsearch-result-index .products.wrapper .product-items,
    .catalogsearch-result-index .products.wrapper ul.product-items,
    .catalogsearch-result-index .products.wrapper ol.product-items {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 15px !important;
    }
}

@media (max-width: 767px) {
    .catalogsearch-result-index .products.wrapper .product-items,
    .catalogsearch-result-index .products.wrapper ul.product-items,
    .catalogsearch-result-index .products.wrapper ol.product-items {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .catalogsearch-result-index .product-item-photo {
        padding: 8px !important;
    }

    .catalogsearch-result-index .product-image-photo,
    .catalogsearch-result-index .product-item-photo img,
    .catalogsearch-result-index .product-item picture img {
        height: 180px !important;
        max-height: 180px !important;
    }

    .catalogsearch-result-index .product-item-details,
    .catalogsearch-result-index .product-info {
        padding: 3px 9px 12px !important;
    }

    .catalogsearch-result-index .product-item-name {
        min-height: 38px;
    }

    .catalogsearch-result-index .product-item-name a,
    .catalogsearch-result-index .product-item-link {
        font-size: 13px;
        line-height: 1.35;
    }

    .catalogsearch-result-index .price-box .price {
        font-size: 17px;
    }

    .nwc-discount-badge {
        top: 7px !important;
        left: 7px !important;

        min-width: 41px;
        height: 23px;
        padding: 0 7px;

        border-width: 1px;
        font-size: 10px;
    }
}

@media (max-width: 340px) {
    .catalogsearch-result-index .products.wrapper .product-items,
    .catalogsearch-result-index .products.wrapper ul.product-items,
    .catalogsearch-result-index .products.wrapper ol.product-items {
        grid-template-columns: 1fr !important;
    }
}

/* NWC-BADGE-SEARCH-V3-END */





/* NWC-DISCOUNT-BADGE-VENDOR-START */

form.product-item,
.item.product.product-item,
.product-item-info,
.product-card,
.card,
.nwc-home-product-list li,
.product-item {
    position: relative !important;
}

.nwc-discount-badge {
    position: absolute !important;
    z-index: 120 !important;
    top: 12px !important;
    left: 12px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-width: 54px !important;
    height: 30px !important;
    padding: 0 12px !important;

    border: 0 !important;
    border-radius: 999px !important;
    background: #d7ead8 !important;
    box-shadow: none !important;

    color: #2d5b37 !important;
    font-size: 13px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;

    pointer-events: none !important;
}

@media (max-width: 767px) {
    .nwc-discount-badge {
        top: 8px !important;
        left: 8px !important;
        min-width: 48px !important;
        height: 26px !important;
        padding: 0 10px !important;
        font-size: 12px !important;
    }
}

/* NWC-DISCOUNT-BADGE-VENDOR-END */

/* =========================================================
   NWC-SEARCH-DEFINITIVE-GRID-START
   ========================================================= */

/*
 * Fallback nel caso una cache conservi temporaneamente
 * la classe page-layout-2columns-left.
 */
.catalogsearch-result-index .columns {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    grid-template-columns:
        minmax(0, 1fr) !important;
}

.catalogsearch-result-index .column.main {
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.catalogsearch-result-index .sidebar,
.catalogsearch-result-index .sidebar-main,
.catalogsearch-result-index .sidebar-additional,
.catalogsearch-result-index aside.sidebar {
    display: none !important;
}

/*
 * Questo è il vero UL generato dal list.phtml Hyvä.
 */
.catalogsearch-result-index
#product-list
.products.wrapper
> ul {
    display: grid !important;
    grid-template-columns:
        repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
    align-items: stretch !important;

    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-top: 16px !important;
    padding-bottom: 32px !important;
}

/* Singola cella della griglia. */
.catalogsearch-result-index
#product-list
.products.wrapper
> ul
> li {
    display: flex !important;
    flex-direction: column !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}

/*
 * Dopo la correzione PHP la scheda viene renderizzata
 * dal ramo grid di item.phtml.
 */
.catalogsearch-result-index
#product-list
.product-item,
.catalogsearch-result-index
#product-list
.product-item-info,
.catalogsearch-result-index
#product-list
form.product-item {
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
}

/* Il selettore modalità non serve nella ricerca. */
.catalogsearch-result-index .modes {
    display: none !important;
}

@media (max-width: 1199px) {
    .catalogsearch-result-index
    #product-list
    .products.wrapper
    > ul {
        grid-template-columns:
            repeat(3, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }
}

@media (max-width: 767px) {
    .catalogsearch-result-index
    #product-list
    .products.wrapper
    > ul {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }
}

/* NWC-SEARCH-DEFINITIVE-GRID-END */
