@charset "UTF-8";
/* Cascina Bonfiglio — SEZIONE: Scheda prodotto (Figma 26:492). */

.cb-scheda-page { background: #ffffff; }

/* ---------- Hero prodotto (gallery + info) ---------- */
.cb-scheda {
    padding: 100px 0 50px;
    background: #ffffff;
}
.cb-scheda__inner {
    max-width: 1438px;
    margin: 0 auto;
    padding: 0;
    display: grid;
    grid-template-columns: 691px 1fr;
    gap: 37px;
    align-items: start;
}

/* Gallery: 125px thumbs + main */
.cb-scheda__gallery {
    display: grid;
    grid-template-columns: 125px 1fr;
    gap: 20px;
}
.cb-scheda__thumbs {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.cb-scheda__thumb {
    position: relative;
    width: 125px;
    height: 138px;
    border-radius: 20px;
    overflow: hidden;
    cursor: pointer;
    background: #fff5e6;
    transition: opacity .15s ease, outline .15s ease;
    outline: 2px solid transparent;
    outline-offset: -2px;
    opacity: 0.5;
}
.cb-scheda__thumb.is-active { opacity: 1; }
.cb-scheda__thumb:hover { opacity: 1; }
.cb-scheda__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Wrap delle thumb: display:contents su desktop (trasparente al grid).
   Su mobile/tablet diventa block per fare da contenitore della lista che scrolla touch. */
.cb-scheda__thumbs-wrap { display: contents; }

@media (max-width: 1100px) {
    .cb-scheda__thumbs-wrap {
        display: block;
        width: 100%;
        min-width: 0;
    }
}
/* Sotto 768 (dove .cb-scheda__gallery diventa display:contents e i suoi figli
   sono riordinati con flex order), il wrap delle thumb va in posizione 4
   come la vecchia .cb-scheda__thumbs (dopo crumbs/title/main, prima dei badge). */
@media (max-width: 768px) {
    .cb-scheda__thumbs-wrap {
        order: 4 !important;             /* batte eventuali override del riordino mobile */
        margin: 0 0 18px;
    }
}

.cb-scheda__main {
    margin: 0;
    position: relative;
    aspect-ratio: 546 / 749;
    border-radius: 20px;
    overflow: hidden;
    background: #fff5e6;
}
.cb-scheda__main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Info column */
.cb-scheda__info {
    padding-top: 2px;
    color: #000;
}
.cb-scheda__crumbs {
    font-family: var(--cb-font-body);
    font-size: 13px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #2c1a0e;
    margin: 0 0 35px;
}
.cb-scheda__crumbs a { color: inherit; text-decoration: none; text-transform: uppercase; }
.cb-scheda__crumbs a:hover { color: var(--cb-green); }

.cb-scheda__size-pill {
    display: inline-flex;
    align-items: center;
    padding: 12px 24px;
    border: 1px solid #FFF5E6;
    border-radius: 70px;
    background: #FFF5E6;
    font-family: var(--cb-font-body);
    font-size: 15px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #000;
    margin-bottom: 16px;
}
.cb-scheda__size-pill strong { font-weight: 700; margin-left: 8px; }

.cb-scheda__title {
    margin: 0 0 16px;
    font-family: var(--cb-font-body);
    font-weight: 600;
    font-size: 38px;
    line-height: 1.1;
    color: #000;
}

.cb-scheda__rating {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}
.cb-scheda__stars {
    color: #f5a623;
    font-size: 20px;
    letter-spacing: 2px;
}
.cb-scheda__rating-text {
    font-family: var(--cb-font-body);
    font-size: 16px;
    font-weight: 400;
    color: #2c1a0e;
}

/* Badges pastille */
.cb-scheda__badges {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 28px;
}
/* Figma 26:1282: badge cream con border-radius. */
.cb-scheda__badge {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 55px;
    padding: 0 8px;
    background: var(--cb-cream);
    border-radius: 10px;
}
.cb-scheda__badge-icon {
    flex-shrink: 0;
    width: auto;
    max-width: 37px;
    max-height: 31px;
}
.cb-scheda__badge-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.cb-scheda__badge-text strong {
    font-family: var(--cb-font-body);
    font-size: 13px;
    font-weight: 700;
    color: var(--cb-green);
    line-height: 1;
}
.cb-scheda__badge-text span {
    font-family: var(--cb-font-body);
    font-size: 10px;
    font-weight: 400;
    color: #000;
    line-height: 1.1;
}

.cb-scheda__sep {
    border: 0;
    border-top: 1px solid rgba(0, 0, 0, .12);
    margin: 24px 0;
}

/* Bulk dropdown — "Più compri, più risparmi" (Figma 179:3764) */
/* Nascosto globalmente su richiesta cliente (18/05/26) — riattivare rimuovendo la riga sotto. */
.cb-bulk { display: none !important; }
.cb-bulk { margin-bottom: 22px; position: relative; }
.cb-bulk__label {
    margin: 0 0 10px;
    font-family: var(--cb-font-body);
    font-size: 16px;
    font-weight: 800;
    color: #000;
}
.cb-bulk__label span { font-weight: 400; }

.cb-bulk__trigger {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    font-family: var(--cb-font-body);
    transition: border-color .15s ease;
}
.cb-bulk__trigger:hover { border-color: rgba(0, 0, 0, .35); }
.cb-bulk.is-open .cb-bulk__trigger {
    border-color: var(--cb-green);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
.cb-bulk.is-open .cb-bulk__chev { transform: rotate(180deg); }

.cb-bulk__list {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--cb-green);
    border-top: 0;
    border-radius: 0 0 14px 14px;
    background: #fff;
    overflow: hidden;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin-top: -1px;
    z-index: 20;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .08);
}
.cb-bulk__list[hidden] { display: none; }
.cb-bulk__opt {
    padding: 14px 18px;
    cursor: pointer;
    border-top: 1px solid rgba(0, 0, 0, .08);
    transition: background .12s ease;
    position: relative;
}
.cb-bulk__opt:first-child { border-top: 0; }
.cb-bulk__opt:hover { background: rgba(168, 199, 128, .08); }
.cb-bulk__opt.is-selected { background: rgba(168, 199, 128, .18); }

.cb-bulk__opt-row {
    display: flex;
    align-items: center;
    gap: 12px;
}
.cb-bulk__opt-label {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--cb-font-body);
    font-size: 15px;
    font-weight: 700;
    color: #000;
}
.cb-bulk__pill {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--cb-green);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .02em;
}
.cb-bulk__opt-price {
    text-align: right;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 92px;
}
.cb-bulk__opt-price strong {
    font-family: var(--cb-font-body);
    font-size: 16px;
    font-weight: 800;
    color: #000;
    line-height: 1;
}
.cb-bulk__opt-price small {
    font-size: 11px;
    color: rgba(0, 0, 0, .55);
    line-height: 1;
}
.cb-bulk__chev {
    color: rgba(0, 0, 0, .45);
    flex-shrink: 0;
    transition: transform .15s ease;
}

.cb-bulk__savings {
    margin: 10px 0 0;
    font-size: 13px;
    color: rgba(0, 0, 0, .75);
}
.cb-bulk__savings strong { color: var(--cb-green-dark); font-weight: 700; }

/* Prezzo */
.cb-scheda__price-row { margin: 20px 0 24px; }
.cb-scheda__price {
    margin: 0 0 6px;
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.cb-scheda__price strong {
    font-family: var(--cb-font-body);
    font-size: 26px;
    font-weight: 700;
    color: #000;
}
.cb-scheda__price strong del,
.cb-scheda__price strong del .woocommerce-Price-amount {
    font-size: 0.72em;
    font-weight: 400;
    color: rgba(0, 0, 0, .40);
    text-decoration: line-through !important;
    text-decoration-color: rgba(0, 0, 0, .40);
    text-decoration-thickness: 1.5px;
    margin-right: 6px;
}
.cb-scheda__price strong ins {
    text-decoration: none;
    color: var(--cb-green-dark, #6f9e3a);
}
.cb-scheda__price .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}
.cb-scheda__price span {
    font-family: var(--cb-font-body);
    font-size: 15px;
    color: #000;
}
.cb-scheda__price-note {
    margin: 0;
    font-family: var(--cb-font-body);
    font-size: 13px;
    color: rgba(0, 0, 0, .55);
}

/* Cart row */
.cb-scheda__cart-row {
    display: flex;
    gap: 8px;
    align-items: stretch;
    margin-bottom: 24px;
}
.cb-scheda__qty {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: 138px;
    height: 48px;
    padding: 0 16px;
    border: 1px solid var(--cb-green);
    border-radius: 100px;
    background: #fff;
    justify-content: space-between;
}
.cb-scheda__qty-btn {
    width: 28px;
    height: 28px;
    border: 0;
    background: transparent;
    font-size: 20px;
    line-height: 1;
    color: #000;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.cb-scheda__qty-btn:hover { color: var(--cb-green); }
.cb-scheda__qty-val {
    font-family: var(--cb-font-body);
    font-size: 16px;
    font-weight: 700;
    color: #000;
    width: 24px;
    min-width: 16px;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: center;
    -moz-appearance: textfield;
    appearance: textfield;
}
.cb-scheda__qty-val:focus { outline: none; }
.cb-scheda__qty-val::-webkit-outer-spin-button,
.cb-scheda__qty-val::-webkit-inner-spin-button {
    -webkit-appearance: none;
    appearance: none;
    margin: 0;
}

.cb-scheda__add {
    flex: 1 0 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 48px;
    padding: 0 24px;
    border: 0;
    border-radius: 100px;
    background: var(--cb-green);
    color: #fff;
    font-family: var(--cb-font-body);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.3px;
    cursor: pointer;
    transition: background .15s ease;
}
.cb-scheda__add:hover { background: var(--cb-green-dark); }

.cb-scheda__wish {
    width: 50px;
    height: 48px;
    border: 1px solid var(--cb-green);
    border-radius: 100px;
    background: #fff;
    color: var(--cb-green);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .15s ease;
}
.cb-scheda__wish:hover { background: rgba(168, 199, 128, .12); }
.cb-scheda__wish.is-active { background: var(--cb-green); color: #fff; }

/* Bullets */
.cb-scheda__bullets {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-family: var(--cb-font-body);
    font-size: 15px;
    color: #000;
}
.cb-scheda__bullets li::before { content: "\2013\00A0"; color: var(--cb-green); font-weight: 700; }

/* Shipping */
.cb-scheda__shipping {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 5px 0;
}
.cb-scheda__shipping-icon {
    flex-shrink: 0;
    color: var(--cb-green);
    width: 56px;
    height: auto;
    object-fit: contain;
}
.cb-scheda__shipping-text {
    margin: 0;
    font-family: var(--cb-font-body);
    font-size: 13px;
    color: #000;
    line-height: 1.4;
}

/* ---------- Tabs + long description ---------- */
.cb-scheda-tabs { padding: 20px 0 40px; background: #fff; }
.cb-scheda-tabs__inner {
    max-width: 1438px;
    margin: 0 auto;
    padding: 0 30px;
}
.cb-scheda-tabs__nav {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    gap: 48px;
    font-family: var(--cb-font-body);
    font-size: 18px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: rgba(0, 0, 0, .5);
}
.cb-scheda-tabs__nav li,
.cb-scheda-tabs__nav .cb-scheda-tabs__tab { padding: 14px 0; cursor: pointer; position: relative; }
.cb-scheda-tabs__nav .cb-scheda-tabs__tab {
    background: transparent;
    border: 0;
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
}
.cb-scheda-tabs__nav li.is-active,
.cb-scheda-tabs__nav .cb-scheda-tabs__tab.is-active { color: #000; }
.cb-scheda-tabs__nav li.is-active::after,
.cb-scheda-tabs__nav .cb-scheda-tabs__tab.is-active::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--cb-green);
}
.cb-scheda-tabs__panel[hidden] { display: none; }
.cb-scheda-tabs__sep {
    border: 0;
    border-top: 1px solid rgba(0, 0, 0, .12);
    margin: 0;
}
.cb-scheda-tabs__panel {
    padding: 32px 0;
    font-family: var(--cb-font-body);
    font-size: 18px;
    line-height: 1.6;
    color: #000;
}
.cb-scheda-tabs__panel p { margin: 0 0 16px; }
.cb-scheda-tabs__panel p:last-child { margin-bottom: 0; }

/* ---------- In omaggio per te (Figma Y 1703, cards 280/402/504 × 321) ---------- */
.cb-scheda-rewards { padding: 60px 0; background: #fff; }
.cb-scheda-rewards__inner {
    max-width: 1438px;
    margin: 0 auto;
    padding: 0;
}
.cb-scheda-rewards__title {
    margin: 0 0 48px;
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 38px;
    color: #000;
    text-align: center;
}
.cb-scheda-rewards__title-accent {
    font-family: var(--cb-font-accent);
    font-weight: 500;
    font-style: italic;
    color: var(--cb-green);
    font-size: 1.25em;
    margin-left: 8px;
}
.cb-scheda-rewards__row {
    display: flex;
    gap: 0;
    align-items: stretch;
    justify-content: space-between;
}
.cb-scheda-reward {
    flex: 0 0 auto;
    background: rgba(168, 199, 128, 0.1);
    border-radius: 8px;
    padding: 32px 24px;
    min-height: 321px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    min-width: 0;
}
.cb-scheda-reward--t1 { width: 280px; }
.cb-scheda-reward--t2 { width: 402px; }
.cb-scheda-reward--t3 { width: 504px; }
.cb-scheda-reward__head {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
}
.cb-scheda-reward__head span {
    font-family: var(--cb-font-body);
    font-size: 22px;
    color: #000;
}
.cb-scheda-reward__head strong {
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 72px;
    line-height: 1;
    color: var(--cb-green);
}
.cb-scheda-reward__icons {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 14px;
    flex-wrap: nowrap;
    width: 100%;
    margin-top: auto;
}
.cb-scheda-reward__item {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
    flex: 0 1 auto;
}
.cb-scheda-reward__item img {
    width: auto;
    max-height: 88px;
    height: 88px;
    object-fit: contain;
}
.cb-scheda-reward__item figcaption {
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 14px;
    color: #000;
    line-height: 1.2;
}
.cb-scheda-reward__plus {
    font-size: 28px;
    color: rgba(0, 0, 0, .35);
    align-self: center;
    padding-bottom: 28px;
}
.cb-scheda-rewards__arrow {
    align-self: center;
    font-size: 46px;
    color: var(--cb-green);
    letter-spacing: -4px;
    flex: 0 0 auto;
    line-height: 1;
    padding: 0 18px;
}

/* ---------- Recensioni (Figma cards 318×251 at x=581,923,1264 y=2135) ---------- */
.cb-scheda-reviews { padding: 60px 0; background: #fff; }
.cb-scheda-reviews__inner {
    max-width: 1438px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 360px 1fr;
    grid-template-areas: "summary viewport";
    gap: 40px;
    align-items: start;
}
.cb-scheda-reviews__summary { grid-area: summary; }
.cb-scheda-reviews__kicker {
    margin: 0 0 8px;
    font-family: var(--cb-font-body);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--cb-green);
}
.cb-scheda-reviews__title {
    margin: 0 0 20px;
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 38px;
    line-height: 1.1;
    color: #000;
}
.cb-scheda-reviews__title-accent {
    font-family: var(--cb-font-accent);
    font-weight: 500;
    font-style: italic;
    color: var(--cb-green);
    font-size: 1.15em;
    margin-left: 4px;
}
.cb-scheda-reviews__score {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    margin: 0 0 8px;
}
.cb-scheda-reviews__star { color: #f5a623; font-size: 60px; line-height: 1; }
.cb-scheda-reviews__score-num {
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 50px;
    line-height: 1;
    color: #000;
}
.cb-scheda-reviews__count {
    margin: 0;
    font-family: var(--cb-font-body);
    font-size: 16px;
    color: rgba(0, 0, 0, .55);
}
.cb-scheda-reviews__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    justify-content: stretch;
}
/* Desktop only (>1100): forza il track in grid 3-col anche se ha classe __track (che è flex per default). */
@media (min-width: 1101px) {
    .cb-scheda-reviews__track.cb-scheda-reviews__list {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        justify-content: stretch;
        overflow: visible;
        padding: 0;
    }
}
/* Tablet + mobile (<=1100): carosello full-vw con scroll-snap (stesso pattern home recensioni). */
@media (max-width: 1100px) {
    .cb-scheda-reviews__inner {
        grid-template-columns: 1fr !important;
        grid-template-areas: "summary" "viewport" !important;
        gap: 24px !important;
    }
    .cb-scheda-reviews__list,
    .cb-scheda-reviews__track,
    .cb-scheda-reviews__track.cb-scheda-reviews__list {
        display: flex !important;
        flex-wrap: nowrap !important;
        grid-template-columns: none !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 14vw;
        gap: 14px !important;
        padding: 8px 14vw !important;
        margin: 0 !important;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .cb-scheda-reviews__list::-webkit-scrollbar,
    .cb-scheda-reviews__track::-webkit-scrollbar { display: none; }
    .cb-scheda-review {
        flex: 0 0 72vw !important;
        max-width: 320px !important;
        scroll-snap-align: center;
    }
}
.cb-scheda-review {
    background: #fff;
    border-radius: 20px;
    padding: 24px;
    min-height: 251px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
    border: 1px solid rgba(0, 0, 0, .05);
}
.cb-scheda-review__stars { margin: 0; color: #f5a623; font-size: 18px; letter-spacing: 2px; }
.cb-scheda-review__text {
    margin: 0;
    font-family: var(--cb-font-body);
    font-style: italic;
    font-size: 15px;
    line-height: 24px;
    color: #000;
    flex: 1 0 0;
}
.cb-scheda-review__author {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 4px;
}
.cb-scheda-review__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #f5a623;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 16px;
    flex-shrink: 0;
}
.cb-scheda-review__name {
    margin: 0;
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 14px;
    color: #000;
}
.cb-scheda-review__location {
    margin: 0;
    font-family: var(--cb-font-body);
    font-size: 12px;
    color: #7c7c7c;
}

/* ---------- Related (Figma cards 346×631 at x=148,511,875,1238 y=2633; footer starts y=3339) ---------- */
.cb-scheda-related {
    position: relative;
    padding: 60px 0 75px;
    background: var(--cb-cream);
}
.cb-scheda-related__inner {
    position: relative;
    max-width: 1438px;
    margin: 0 auto;
    padding: 0;
    z-index: 1;
}
.cb-scheda-related__kicker {
    margin: 0 0 6px;
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: 1.17px;
    text-transform: uppercase;
    color: #000;
    text-align: center;
}
.cb-scheda-related__title {
    margin: 0 0 56px;
    font-family: var(--cb-font-body);
    font-weight: 400;
    font-size: 36px;
    line-height: 47px;
    letter-spacing: 1.17px;
    color: #000;
    text-align: center;
}
.cb-scheda-related__title-accent {
    font-family: var(--cb-font-accent);
    font-style: normal;
    font-weight: 400;
    font-size: 50px;
    line-height: 47px;
    letter-spacing: 1.174px;
    margin-left: 6px;
    vertical-align: baseline;
}
.cb-scheda-related__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 17px;
}

/* Related cards — Figma 53:1003: body bianco, h 206, image bleed leggero. */
.cb-scheda-related .cb-card { aspect-ratio: 346 / 631; }
.cb-scheda-related .cb-card__body {
    background: #fff;
    height: 206px;
}
.cb-scheda-related .cb-card__media {
    inset: -2.49% -3.43% auto -3.43%;
    height: 80.85%;
}

/* ---------- Responsive ---------- */
@media (max-width: 1500px) {
    .cb-scheda__inner { grid-template-columns: 600px 1fr; gap: 32px; padding: 0 30px; }
    .cb-scheda__gallery { grid-template-columns: 110px 1fr; gap: 16px; }
    .cb-scheda__thumb { width: 110px; height: 122px; }
    .cb-scheda-rewards__inner,
    .cb-scheda-reviews__inner,
    .cb-scheda-related__inner,
    .cb-scheda-tabs__inner { padding: 0 30px; }
    .cb-scheda-reward--t1 { width: 240px; }
    .cb-scheda-reward--t2 { width: 360px; }
    .cb-scheda-reward--t3 { width: 460px; }
    .cb-scheda-reward__head strong { font-size: 64px; }
    .cb-scheda-reward__head span { font-size: 20px; }
    .cb-scheda-reward__item img { max-height: 76px; height: 76px; }
    .cb-scheda-rewards__title { font-size: 32px; margin-bottom: 36px; }
}

@media (max-width: 1280px) {
    .cb-scheda { padding: 50px 0 30px; }
    .cb-scheda__inner { grid-template-columns: 480px 1fr; gap: 24px; padding: 0 24px; }
    .cb-scheda__gallery { grid-template-columns: 90px 1fr; gap: 10px; }
    .cb-scheda__thumb { width: 90px; height: 100px; }
    .cb-scheda__badges { grid-template-columns: repeat(2, 1fr); }
    .cb-scheda-rewards__inner,
    .cb-scheda-reviews__inner,
    .cb-scheda-related__inner,
    .cb-scheda-tabs__inner { padding: 0 24px; }
    .cb-scheda-reward { padding: 24px 16px; min-height: 280px; gap: 18px; }
    .cb-scheda-reward--t1 { width: 200px; }
    .cb-scheda-reward--t2 { width: 300px; }
    .cb-scheda-reward--t3 { width: 380px; }
    .cb-scheda-reward__head strong { font-size: 50px; }
    .cb-scheda-reward__head span { font-size: 18px; }
    .cb-scheda-reward__item img { max-height: 64px; height: 64px; }
    .cb-scheda-reward__item figcaption { font-size: 12px; }
    .cb-scheda-reward__icons { gap: 8px; }
    .cb-scheda-rewards__title { font-size: 28px; margin-bottom: 32px; }
    .cb-scheda-reviews__star { font-size: 42px; }
    .cb-scheda-reviews__score-num { font-size: 36px; }
}

/* Range intermedio 1101–1200px: gallery più stretta, layout 2-col mantenuto. */
@media (min-width: 1101px) and (max-width: 1200px) {
    .cb-scheda__inner { grid-template-columns: 440px 1fr; gap: 24px; padding: 0 24px; }
    .cb-scheda__gallery { grid-template-columns: 80px 1fr; gap: 10px; }
    .cb-scheda__thumb { width: 80px; height: 90px; }
    .cb-scheda__title { font-size: 32px; }
    .cb-scheda__badges { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1100px) {
    .cb-scheda__inner { grid-template-columns: 1fr; gap: 28px; max-width: 640px; padding: 0 24px; }
    .cb-scheda__gallery { grid-template-columns: 1fr; gap: 12px; }
    .cb-scheda__main { aspect-ratio: 1 / 1; max-width: 560px; margin: 0 auto; width: 100%; }
    .cb-scheda__thumbs { flex-direction: row; overflow-x: auto; padding-bottom: 4px; }
    .cb-scheda__thumb { flex: 0 0 84px; width: 84px; height: 92px; }
    .cb-scheda-reviews__inner { grid-template-columns: 1fr; gap: 32px; }
    .cb-scheda-reviews__list { grid-template-columns: repeat(3, minmax(0, 1fr)); justify-content: stretch; }
    .cb-scheda-rewards__row { flex-direction: column; gap: 16px; align-items: stretch; }
    .cb-scheda-reward--t1, .cb-scheda-reward--t2, .cb-scheda-reward--t3 { width: 100%; }
    .cb-scheda-rewards__arrow { transform: rotate(90deg); padding: 4px 0; }
    .cb-scheda-related__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1024px) {
    .cb-scheda { padding: 40px 0 60px; }
    .cb-scheda__inner { grid-template-columns: 1fr; gap: 32px; }
    .cb-scheda__gallery { grid-template-columns: 1fr; gap: 12px; }
    .cb-scheda__main { aspect-ratio: 1 / 1; max-width: 560px; margin: 0 auto; width: 100%; }
    .cb-scheda__thumbs { flex-direction: row; overflow-x: auto; padding-bottom: 4px; }
    .cb-scheda__thumb { flex: 0 0 84px; width: 84px; height: 92px; }
    .cb-scheda-reviews__inner { grid-template-columns: 1fr; gap: 32px; }
    .cb-scheda-reviews__list { grid-template-columns: repeat(3, minmax(0, 1fr)); justify-content: stretch; }
    .cb-scheda-rewards__row { flex-direction: column; gap: 16px; align-items: stretch; }
    .cb-scheda-reward--t1, .cb-scheda-reward--t2, .cb-scheda-reward--t3 { width: 100%; }
    .cb-scheda-rewards__arrow { transform: rotate(90deg); padding: 4px 0; }
    .cb-scheda-related__grid { grid-template-columns: repeat(2, 1fr); }
    .cb-scheda-related__title-accent { font-size: 40px; line-height: 38px; letter-spacing: 0.939px; }
}

@media (max-width: 768px) {
    .cb-scheda__inner { padding: 0 16px; display: flex; flex-direction: column; gap: 0; }
    /* Cliente: scheda-reviews su mobile = stesso pattern home (summary sopra in colonna, cards in carosello full-vw). */
    .cb-scheda-reviews__inner {
        grid-template-columns: 1fr !important;
        grid-template-areas: "summary" "viewport" !important;
        gap: 24px !important;
    }
    .cb-scheda-reviews__summary { text-align: left; }
    .cb-scheda-reviews__list,
    .cb-scheda-reviews__track {
        grid-template-columns: none !important;
        display: flex !important;
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 14vw;
        gap: 14px;
        padding: 8px 14vw;
        margin: 0;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .cb-scheda-reviews__list::-webkit-scrollbar,
    .cb-scheda-reviews__track::-webkit-scrollbar { display: none; }
    .cb-scheda-review {
        flex: 0 0 72vw;
        max-width: 320px;
        scroll-snap-align: center;
    }
    /* Cliente: riordino mobile (nome+nav → foto principale → foto secondarie → tag/icone → prezzo grande → cuore → camion → selettore). */
    .cb-scheda__gallery { display: contents; }
    .cb-scheda__info { display: contents; }
    .cb-scheda__info > * { margin-left: 0; margin-right: 0; }
    .cb-scheda__crumbs { order: 1; margin-bottom: 6px; }
    .cb-scheda__title { order: 2; font-size: 26px; margin-bottom: 12px; }
    .cb-scheda__main { order: 3; margin-bottom: 12px; }
    .cb-scheda__thumbs {
        /* order/margin spostati su .cb-scheda__thumbs-wrap (vedi sopra). */
        display: flex !important;
        flex-direction: row;
        gap: 8px;
        overflow-x: auto;
        margin: 0;
        padding-bottom: 6px;
        scrollbar-width: none;
    }
    .cb-scheda__thumbs::-webkit-scrollbar { display: none; }
    .cb-scheda__thumb { width: 70px !important; height: 70px !important; flex: 0 0 auto; }
    .cb-scheda__size-pill { order: 5; align-self: flex-start; font-size: 12px; padding: 6px 14px; }
    .cb-scheda__rating { order: 6; margin-bottom: 10px; gap: 8px; }
    .cb-scheda__stars { font-size: 18px; }
    .cb-scheda__rating-text { font-size: 13px; }
    .cb-scheda__badges {
        order: 7;
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
        margin-bottom: 18px;
    }
    .cb-scheda__badge { height: auto; padding: 10px 10px; gap: 8px; align-items: center; }
    .cb-scheda__badge-icon { width: 26px !important; height: 26px !important; }
    .cb-scheda__badge-text strong { font-size: 12.5px; line-height: 1.15; }
    .cb-scheda__badge-text span { font-size: 11px; line-height: 1.2; }
    /* Prezzo: chiaramente l'elemento più grande nella scheda. */
    .cb-scheda__price-row { order: 8; margin: 4px 0 10px; }
    .cb-scheda__price strong { font-size: 38px; font-weight: 800; line-height: 1; }
    .cb-scheda__price span { font-size: 15px; margin-left: 4px; }
    .cb-scheda__price-note { font-size: 11.5px; margin-top: 4px; }
    /* Ci sono 3 <hr.cb-scheda__sep> dentro .cb-scheda__info: senza order
       specifici finivano tutti raggruppati prima del blocco "Quantità",
       creando ~150px di vuoto. */
    .cb-scheda__info > hr.cb-scheda__sep:nth-of-type(1) { order: 9; margin: 14px 0; }
    .cb-scheda__info > hr.cb-scheda__sep:nth-of-type(2) { order: 12; margin: 18px 0; }
    .cb-scheda__info > hr.cb-scheda__sep:nth-of-type(3) { order: 14; margin: 18px 0; }
    .cb-bulk { order: 10; }
    .cb-scheda__cart-row { order: 11; flex-wrap: nowrap; gap: 10px; align-items: center; }
    .cb-scheda__qty { flex: 0 0 auto; width: 110px; height: 50px; padding: 0 10px; }
    .cb-scheda__qty-btn {
        width: 16px;
        height: 28px;
        border: 0;
        background: transparent;
        font-size: 20px;
        line-height: 1;
        color: #000;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin: 0px !important;
    }
    .cb-scheda__qty-val { font-weight: 700; }
    .cb-scheda__add {
        flex: 1 1 auto;
        min-width: 0;
        height: 50px;
        padding: 0 14px;
        font-size: 15px;
        border-radius: 100px;
    }
    /* Cuore wishlist: cerchio grigio chiaro, cuore outline nero, in linea con qty+add. */
    .cb-scheda__wish {
        flex: 0 0 auto;
        width: 50px;
        height: 50px;
        border: none;
        border-radius: 50%;
        background: #f0f0f0;
        color: #000;
    }
    .cb-scheda__wish svg {
        fill: #fff;
        stroke: #000 !important;
        width: 22px;
        height: 21px;
        margin-top: 3px;
        margin-left: 1px;
    }
    .cb-scheda__wish.is-active { background: var(--cb-green); color: #fff; }
    .cb-scheda__wish.is-active svg { fill: #fff !important; stroke: #fff !important; }
    .cb-scheda__bullets { order: 13; }
    .cb-scheda__shipping { order: 15; }
    /* Dropdown sconti: layout mobile (più compatto). */
    .cb-bulk__opt { padding: 12px 14px; }
    .cb-bulk__opt-label { font-size: 14px; gap: 8px; }
    .cb-bulk__opt-price strong { font-size: 15px; }
    .cb-bulk__pill { font-size: 10px; padding: 2px 8px; }
    .cb-bulk__savings { font-size: 12px; }
    /* Tabs selettore sezione: stessa size della tab selezionata (più grande e leggibile),
       attiva in verde brand + underline verde più spessa. */
    .cb-scheda-tabs__nav {
        gap: 22px;
        font-size: 15px;
        letter-spacing: 0.6px;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 2px;
        -webkit-overflow-scrolling: touch;
    }
    .cb-scheda-tabs__nav li, .cb-scheda-tabs__nav .cb-scheda-tabs__tab {
        white-space: nowrap;
        padding: 12px 0;
        font-size: 15px;
    }
    .cb-scheda-tabs__nav li.is-active,
    .cb-scheda-tabs__nav .cb-scheda-tabs__tab.is-active {
        color: var(--cb-green);
        font-size: 16px;
        font-weight: 800;
    }
    .cb-scheda-tabs__nav li.is-active::after,
    .cb-scheda-tabs__nav .cb-scheda-tabs__tab.is-active::after {
        height: 3px;
        background: var(--cb-green);
    }
    .cb-scheda-tabs__panel { padding: 22px 0; font-size: 15px; line-height: 1.55; }
    .cb-scheda-tabs__inner { padding: 0 16px; }
    .cb-scheda-rewards__inner,
    .cb-scheda-reviews__inner,
    .cb-scheda-related__inner { padding: 0 16px; }
    .cb-scheda-rewards { padding: 40px 0; }
    .cb-scheda-rewards__title { font-size: 26px; margin-bottom: 28px; }
    .cb-scheda-reward { padding: 24px 16px; min-height: 0; gap: 18px; }
    .cb-scheda-reward__head strong { font-size: 50px; }
    .cb-scheda-reward__head span { font-size: 18px; }
    .cb-scheda-reward__icons { gap: 8px; flex-wrap: wrap; }
    .cb-scheda-reward__item img { max-height: 64px; height: 64px; }
    .cb-scheda-reward__item figcaption { font-size: 12px; }
    .cb-scheda-reviews { padding: 40px 0; }
    .cb-scheda-reviews__title { font-size: 26px; }
    .cb-scheda-reviews__star { font-size: 42px; }
    .cb-scheda-reviews__score-num { font-size: 36px; }
    .cb-scheda-reviews__list { grid-template-columns: 1fr; gap: 14px; }
    .cb-scheda-review { padding: 20px; min-height: 0; gap: 10px; }
    .cb-scheda-related { padding: 40px 0 56px; }
    .cb-scheda-related__title { font-size: 24px; line-height: 32px; margin-bottom: 28px; }
    .cb-scheda-related__title-accent { font-size: 32px; line-height: 30px; letter-spacing: 0.751px; }
    .cb-scheda-related__grid { gap: 12px; }
}

@media (max-width: 480px) {
    .cb-scheda__title { font-size: 22px; }
    .cb-scheda__bullets { font-size: 14px; }
    .cb-scheda__price strong { font-size: 28px; }
    .cb-scheda__cart-row { gap: 6px; }
    .cb-scheda__qty { width: 90px; padding: 0 10px; }
    .cb-scheda__add { font-size: 13px; padding: 0 20px; }
    /* Cliente: "i prodotti consigliati vanno in carosello". */
    .cb-scheda-related__grid {
        display: flex !important;
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 12px;
        padding: 8px 14%;
        margin: 0 -14%;
        grid-template-columns: none !important;
        scrollbar-width: none;
    }
    .cb-scheda-related__grid::-webkit-scrollbar { display: none; }
    .cb-scheda-related__grid > .cb-card {
        flex: 0 0 72%;
        max-width: 280px;
        scroll-snap-align: center;
    }
    .cb-scheda-related .cb-card__body { height: auto; padding: 12px; gap: 4px; }
    .cb-scheda-related .cb-card__title { font-size: 14px; }
    .cb-scheda-related .cb-card__price { font-size: 15px; }
    .cb-scheda-related .cb-card__cta { font-size: 11px; padding: 6px 8px; }
}

/* Recensioni mobile: punteggio (score) a destra del titolo, prima centrato sotto. */
@media (max-width: 760px) {
    .cb-scheda-reviews__inner {
        grid-template-columns: 1fr !important;
        gap: 16px;
    }
    .cb-scheda-reviews__summary {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    .cb-scheda-reviews__title { flex: 1 1 60%; margin: 0; }
    .cb-scheda-reviews__score { flex: 0 0 auto; text-align: right; }
}

/* ---------- Reviews carousel (multi-page slider) ---------- */
.cb-scheda-reviews--carousel .cb-scheda-reviews__inner {
    grid-template-columns: 435px 1fr;
    grid-template-areas: "summary viewport" "nav nav";
    row-gap: 24px;
}
.cb-scheda-reviews--carousel .cb-scheda-reviews__summary { grid-area: summary; }
.cb-scheda-reviews__viewport {
    grid-area: viewport;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.cb-scheda-reviews--carousel .cb-scheda-reviews__viewport { grid-area: viewport; }
.cb-scheda-reviews__track {
    display: flex;
    gap: 24px;
    transition: transform .45s cubic-bezier(.4,.0,.2,1);
    will-change: transform;
    /* override grid quando .cb-scheda-reviews__list è anche track */
    grid-template-columns: none;
    justify-content: flex-start;
}
.cb-scheda-reviews__track > .cb-scheda-review {
    flex: 0 0 calc((100% - 48px) / 3); /* 3 card visibili, gap 24px x 2 */
    min-width: 0;
    box-sizing: border-box;
}
.cb-scheda-reviews__nav {
    grid-area: nav;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 8px;
}
.cb-scheda-reviews__btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,.15);
    background: #fff;
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
    color: var(--cb-green);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .2s, border-color .2s, transform .15s;
    font-family: inherit;
}
.cb-scheda-reviews__btn:hover { background: var(--cb-green); color: #fff; border-color: var(--cb-green); }
.cb-scheda-reviews__btn:active { transform: scale(.95); }
.cb-scheda-reviews__btn:disabled { opacity: .35; cursor: not-allowed; }
.cb-scheda-reviews__dots { display: inline-flex; gap: 8px; align-items: center; }
.cb-scheda-reviews__dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 0;
    background: rgba(0,0,0,.18);
    padding: 0;
    cursor: pointer;
    transition: background .2s, transform .2s;
}
.cb-scheda-reviews__dot.is-active { background: var(--cb-green); transform: scale(1.25); }

/* Foto cliente al posto della lettera */
.cb-scheda-review__avatar--photo,
.cb-rev__avatar--photo {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: transparent;
    font-size: 0;
}

@media (max-width: 1100px) {
    .cb-scheda-reviews--carousel .cb-scheda-reviews__inner {
        grid-template-columns: 1fr;
        grid-template-areas: "summary" "viewport" "nav";
    }
}

/* In carosello, il track resta sempre flex anche nei breakpoint mobile
   (override le regole grid-template-columns dei breakpoint precedenti). */
.cb-scheda-reviews--carousel .cb-scheda-reviews__track {
    display: flex;
    grid-template-columns: none;
}
@media (max-width: 1024px) {
    .cb-scheda-reviews--carousel .cb-scheda-reviews__track > .cb-scheda-review {
        flex: 0 0 calc((100% - 24px) / 2); /* 2 card visibili */
    }
}
@media (max-width: 640px) {
    .cb-scheda-reviews--carousel .cb-scheda-reviews__track {
        gap: 14px;
    }
    .cb-scheda-reviews--carousel .cb-scheda-reviews__track > .cb-scheda-review {
        flex: 0 0 100%; /* 1 card visibile */
    }
    /* Cliente: stelle, testo recensione e blocco autore tutti centrati su mobile */
    .cb-scheda-review { align-items: center; text-align: center; }
    .cb-scheda-review__stars { text-align: center; width: 100%; }
    .cb-scheda-review__text { text-align: center; }
    .cb-scheda-review__author {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: 100%;
    }
    .cb-scheda-review__author > div { text-align: center; }
    .cb-scheda-review__name,
    .cb-scheda-review__location { text-align: center; }
}

/* ---------------------------------------------------------------------------
   Tabella nutrizionale (popolata da ACF cb_prod_nutri_table).
   Compare dentro la tab "Ingredienti e valori" della scheda prodotto.
--------------------------------------------------------------------------- */
.cb-nutri-title {
    margin: 28px 0 12px;
    font-family: var(--cb-font-display);
    font-size: 16px;
    font-weight: 700;
    color: var(--cb-text);
    text-align: left;
}
.cb-nutri-table {
    width: 100%;
    max-width: 480px;
    border-collapse: collapse;
    font-size: 14px;
    color: var(--cb-text);
    margin-left: 0;
    margin-right: auto;
}
/* Allinea a sinistra anche eventuali tabelle inserite a mano in HTML nei pannelli tab (es. ingredienti). */
.cb-scheda-tabs__panel { text-align: left !important; }
.cb-scheda-tabs__panel table,
.cb-scheda-tabs__panel table[align],
.cb-scheda-tabs__panel table[style*="margin"] {
    margin-left: 0 !important;
    margin-right: auto !important;
    max-width: 480px;
    width: 100%;
    float: none !important;
}
.cb-scheda-tabs__panel table th,
.cb-scheda-tabs__panel table td { text-align: left !important; }
.cb-scheda-tabs__panel table td:last-child { text-align: right !important; }
.cb-scheda-tabs__panel h1,
.cb-scheda-tabs__panel h2,
.cb-scheda-tabs__panel h3,
.cb-scheda-tabs__panel h4,
.cb-scheda-tabs__panel h5,
.cb-scheda-tabs__panel h6 { text-align: left !important; }
.cb-scheda-tabs__panel center { display: block; text-align: left !important; }
.cb-scheda-tabs__panel div[style*="text-align: center"],
.cb-scheda-tabs__panel div[style*="text-align:center"] { text-align: left !important; }
.cb-nutri-table th,
.cb-nutri-table td {
    padding: 9px 14px;
    text-align: left;
    border-bottom: 1px solid #ece5d6;
    font-weight: 400;
}
.cb-nutri-table th {
    color: #5b5142;
    font-weight: 500;
}
.cb-nutri-table td {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.cb-nutri-table tr:nth-child(odd) {
    background: rgba(168, 199, 128, 0.06);
}
.cb-nutri-table tr:last-child th,
.cb-nutri-table tr:last-child td {
    border-bottom: none;
}


/* Badge stato stock sopra l'immagine principale (esaurito / in produzione). */
.cb-scheda__main { position: relative; }
.cb-scheda__stock-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 8px 14px;
    border-radius: 999px;
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.6px;
    color: #ffffff;
    z-index: 2;
}
.cb-scheda__stock-badge--out       { background: #2C1A0E; }
.cb-scheda__stock-badge--backorder { background: #E08F2E; }

/* Messaggio sotto la quantità prima del bottone "Aggiungi". */
.cb-scheda__stock-note {
    margin: 0 0 12px;
    padding: 10px 14px;
    border-radius: 10px;
    background: rgba(224,143,46,.10);
    color: #2C1A0E;
    font-family: var(--cb-font-body);
    font-size: 14px;
    line-height: 1.4;
}
