:root {
    --ink: #0d1717;
    --mut: #5d6464;
    --line: #ececea;
    --soft: #f6f6f4;
    --line2: #dfdfdb;
    --ground: #ecece9;
    --red: #c80000;
    --red2: #a30000;
    --lime: #8ad329;
    --g: #477010;
    --ease: cubic-bezier(.16, 1, .3, 1);
    --hg: max(32px, calc((100vw - 1320px)/2 + 32px));
    --veil: rgba(13, 23, 23, .62);
    --glass: rgba(255, 255, 255, .94);
    --field: #cfd2cf;
    --chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%230d1717' stroke-width='1.8'%3E%3Cpath d='m1 1 5 5 5-5'/%3E%3C/svg%3E");
    --f: 'Onest', system-ui, sans-serif;
    --se: 'Bodoni Moda', Georgia, serif
}

* {
    box-sizing: border-box;
    margin: 0
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 90px
}

body {
    font: 400 16px/1.55 var(--f);
    color: var(--ink);
    background: #fff;
    -webkit-font-smoothing: antialiased;
    letter-spacing: -.01em
}

a {
    color: inherit;
    text-decoration: none
}

svg {
    display: block
}

img {
    display: block
}

ul,
ol,
dl {
    list-style: none;
    padding: 0
}

button {
    font: inherit;
    color: inherit
}

:focus-visible {
    outline: 3px solid var(--ink);
    outline-offset: 3px
}

::selection {
    background: var(--lime)
}

.wrap {
    max-width: 1320px;
    margin: 0 auto;
    padding-inline: 32px
}

.vh {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0)
}

.skip {
    position: absolute;
    left: 12px;
    top: -60px;
    background: var(--lime);
    padding: 10px 16px;
    font-weight: 600;
    z-index: 99
}

.skip:focus {
    top: 12px
}

h1,
h2,
h3 {
    font-weight: 300;
    letter-spacing: -.04em;
    line-height: 1.05
}

em {
    font-family: var(--se);
    font-style: italic;
    font-weight: 400;
    letter-spacing: -.02em
}

.top {
    background: var(--ink);
    color: #fff;
    text-align: center;
    font-size: 12px;
    padding: 7px 16px
}

.hd {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--line)
}

.hi {
    display: flex;
    align-items: center;
    gap: 24px;
    height: 74px
}

.lg img {
    height: 42px;
    width: auto
}

/* desktop: l'altezza di layout resta 74px; la compattazione a 60px usa solo transform (fondo scalato, contenuto traslato, logo scalato) */
@media (min-width:1181px) {
    .hd {
        background: none;
        backdrop-filter: none;
        border-bottom: 0
    }

    .hd::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        background: rgba(255, 255, 255, .96);
        backdrop-filter: blur(8px);
        border-bottom: 1px solid var(--line);
        transform-origin: top;
        transition: transform .3s var(--ease)
    }

    .hd.sm::before {
        transform: scaleY(.8108)
    }

    .hi {
        transition: transform .3s var(--ease)
    }

    .hd.sm .hi {
        transform: translateY(-7px)
    }

    .lg img {
        transform-origin: left center;
        transition: transform .3s var(--ease)
    }

    .hd.sm .lg img {
        transform: scale(.8095)
    }
}

@media (max-width:1180px) {
    .hd.sm .lg img {
        height: 34px
    }
}

.nv {
    display: flex;
    gap: 4px;
    margin: 0 auto
}

.nv a {
    position: relative;
    padding: 8px 13px;
    font-size: 15px;
    font-weight: 400;
    border-radius: 999px;
    white-space: nowrap;
    transition: background .2s
}

.nv a:hover {
    background: var(--soft)
}

.nv a.on {
    background: var(--ink);
    color: #fff
}

.nv a.sale {
    color: var(--red);
    font-weight: 500
}

.se {
    position: relative;
    width: 200px
}

.se svg {
    position: absolute;
    left: 14px;
    top: 11px;
    width: 18px;
    height: 18px;
    color: var(--mut)
}

.se input {
    width: 100%;
    height: 40px;
    border: 1px solid #cfd2cf;
    border-radius: 999px;
    padding: 0 16px 0 40px;
    font: 400 14px var(--f);
    background: #fff
}

.se input:focus {
    outline: none;
    border-color: var(--ink);
    box-shadow: 0 0 0 4px rgba(138, 211, 41, .5)
}

.cart {
    display: flex;
    align-items: center;
    gap: 10px
}

.ci {
    position: relative;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid var(--line);
    display: grid;
    place-items: center
}

.ci svg {
    width: 21px;
    height: 21px;
    stroke-width: 1.5
}

.ci i {
    position: absolute;
    right: -4px;
    top: -4px;
    min-width: 20px;
    height: 20px;
    border-radius: 10px;
    background: var(--red);
    color: #fff;
    font: 600 11px var(--f);
    font-style: normal;
    display: grid;
    place-items: center;
    padding: 0 5px
}

.ci i.bump {
    animation: bump .5s var(--ease)
}

@keyframes bump {
    40% {
        transform: scale(1.5)
    }
}

.ct b {
    font: 500 16px var(--f);
    white-space: nowrap
}

.btn,
.go {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    height: 48px;
    padding: 0 32px;
    border-radius: 999px;
    border: 1px solid var(--ink);
    background: #fff;
    color: var(--ink);
    font: 500 15px var(--f);
    cursor: pointer;
    transition: background .2s, color .2s, border-color .2s
}

.btn:hover {
    background: var(--ink);
    color: #fff
}

.btn.solid,
.go {
    background: var(--red);
    border-color: var(--red);
    color: #fff
}

.btn.solid:hover,
.go:hover {
    background: var(--red2);
    border-color: var(--red2)
}

.go svg {
    width: 18px;
    height: 18px;
    stroke-width: 2
}

.btn svg {
    width: 18px;
    height: 18px;
    stroke-width: 2
}

/* ===== hero: pannello foto a sinistra + vetrina offerte a destra. Sotto 1180px la vetrina diventa una fila di schede da far scorrere ===== */
.hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: clamp(560px, 46vw, 680px);
    background: var(--ink)
}

.hl {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 56px 48px 80px var(--hg);
    color: #fff
}

.hbg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2
}

.hl::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--veil);
    z-index: -1
}

.hc {
    display: flex;
    flex-direction: column;
    gap: 22px
}

.hl h1 {
    max-width: 8em;
    font-size: clamp(56px, 6.6vw, 104px);
    font-weight: 800;
    line-height: .92;
    text-transform: uppercase;
    color: #fff
}

.hl em {
    color: #fff;
    text-decoration: underline;
    text-decoration-color: var(--red);
    text-decoration-thickness: .09em;
    text-underline-offset: .1em
}

.hl p {
    max-width: 30em;
    font-size: 17px;
    font-weight: 500;
    color: #fff
}

.hb {
    display: flex;
    gap: 12px;
    flex-wrap: wrap
}

.hl .btn {
    background: transparent;
    border-color: #fff;
    color: #fff
}

.hl .btn:hover {
    background: #fff;
    color: var(--ink)
}

.hl .btn.solid {
    background: var(--red);
    border-color: var(--red)
}

.hl .btn.solid:hover {
    background: var(--red2);
    border-color: var(--red2);
    color: #fff
}

/* vetrina: una scheda alla volta in dissolvenza */
.vet {
    position: relative;
    overflow: hidden;
    background: var(--ground)
}

.slides {
    display: grid;
    height: 100%
}

.sl {
    grid-area: 1/1;
    position: relative;
    opacity: 0;
    visibility: hidden;
    transition: opacity .6s var(--ease), visibility 0s .6s
}

.sl.on {
    opacity: 1;
    visibility: visible;
    transition: opacity .6s var(--ease)
}

.sp {
    position: absolute;
    inset: 0;
    display: block;
    background: var(--ground)
}

.sp img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.06);
    transition: transform 1.6s var(--ease)
}

.sl.on .sp img {
    transform: none
}

.tag {
    position: absolute;
    left: 20px;
    bottom: 54px;
    width: min(300px, calc(100% - 48px));
    display: grid;
    gap: 6px;
    padding: 14px 16px;
    border-radius: 15px;
    background: var(--glass);
    backdrop-filter: blur(6px);
    transform: translateY(16px);
    opacity: 0;
    transition: transform .7s var(--ease) .15s, opacity .7s var(--ease) .15s
}

.sl.on .tag {
    transform: none;
    opacity: 1
}

.tag h2 {
    font: 600 14px/1.3 var(--f);
    letter-spacing: 0;
    text-transform: none
}

.tag .bd {
    justify-self: start
}

.tag .ch {
    margin: 2px 0 0
}

.tag .pp b {
    font-size: 38px
}

.tag .add {
    height: 44px;
    font-size: 14px
}

/* indicatori a barra con avanzamento (guida anche la rotazione) e pausa */
.vc {
    position: absolute;
    right: 20px;
    bottom: 50px;
    display: flex;
    align-items: center;
    gap: 12px
}

.dots {
    display: flex;
    gap: 6px
}

.dots button {
    display: grid;
    align-items: center;
    width: 44px;
    height: 44px;
    background: none;
    border: 0;
    cursor: pointer
}

.dots i {
    display: block;
    height: 3px;
    border-radius: 2px;
    background: rgba(13, 23, 23, .25);
    position: relative;
    overflow: hidden
}

.dots i::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--ink);
    transform: scaleX(0);
    transform-origin: left
}

.dots .on i::after {
    transform: scaleX(1);
    animation: fill 6s linear
}

.vet.paused .dots .on i::after,
.vet:hover .dots .on i::after {
    animation-play-state: paused
}

.vet.static .dots .on i::after {
    animation: none
}

@keyframes fill {
    from {
        transform: scaleX(0)
    }
}

.pp-btn {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--ink);
    border-radius: 50%;
    background: #fff;
    cursor: pointer
}

.pp-btn[hidden] {
    display: none
}

.pp-btn svg {
    width: 13px;
    height: 13px
}

.pp-btn:hover {
    background: var(--ink);
    color: #fff
}

/* tablet e telefono: foto sopra, poi schede prodotto che scorrono di lato (la successiva si intravede) con indicatori di posizione */
@media (max-width:1180px) {
    .hero {
        grid-template-columns: 1fr;
        min-height: 0
    }

    .hl {
        padding: 64px 32px 56px
    }

    .hero+.wrap {
        margin-top: 24px
    }

    .vet,
    .slides {
        background: var(--soft)
    }

    .slides {
        display: flex;
        gap: 12px;
        height: auto;
        padding: 24px 16px 16px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding-left: 16px;
        scrollbar-width: none
    }

    .slides::-webkit-scrollbar {
        display: none
    }

    .sl {
        flex: none;
        width: min(80%, 360px);
        display: flex;
        flex-direction: column;
        grid-area: auto;
        scroll-snap-align: start;
        opacity: 1;
        visibility: visible;
        background: #fff;
        border: 1px solid var(--line2);
        transition: none
    }

    .sp {
        position: relative;
        aspect-ratio: 4/3
    }

    .sp img {
        transform: none
    }

    .tag {
        position: static;
        flex: 1;
        align-content: start;
        gap: 8px;
        width: auto;
        padding: 16px;
        border-radius: 0;
        background: #fff;
        backdrop-filter: none;
        transform: none;
        opacity: 1
    }

    .tag .bd {
        position: absolute;
        top: 0;
        left: 0;
        border-radius: 0
    }

    .tag h2 {
        min-height: 2.6em;
        font-size: 16px;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden
    }

    .tag .pp b {
        font-size: 34px
    }

    .tag .add {
        margin-top: 4px;
        height: 48px
    }

    .vc {
        position: static;
        padding: 0 10px 40px
    }

    .dots .on i::after {
        animation: none
    }

    .pp-btn {
        display: none
    }
}

@media (max-width:700px) {
    .hl {
        padding: 48px 16px 40px
    }

    .hl h1 {
        font-size: 52px
    }
}

/* ===== ricerca per misure: pillola su una riga; sotto 1180px scheda con campi in griglia ===== */
.finder {
    position: relative;
    z-index: 2;
    margin-top: -34px;
    display: grid;
    grid-template-columns: auto 1fr 1fr 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 10px 10px 10px 32px;
    border: 1px solid var(--ink);
    border-radius: 999px;
    background: #fff
}

.fttl {
    padding-right: 16px;
    border-right: 1px solid var(--line);
    font-size: 26px;
    text-transform: uppercase
}

.finder label {
    display: grid;
    padding-left: 16px;
    border-left: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.2;
    color: var(--mut)
}

.finder select {
    width: 100%;
    height: 44px;
    padding: 0 22px 0 0;
    border: 0;
    background: transparent var(--chev) no-repeat right 4px center;
    appearance: none;
    font: 500 16px var(--f);
    color: var(--ink);
    cursor: pointer
}

.finder select:focus {
    outline: none;
    box-shadow: 0 2px 0 var(--lime)
}

@media (max-width:1180px) {
    .finder {
        grid-template-columns: 1fr 1fr 1fr;
        padding: 20px;
        border-radius: 15px
    }

    .fttl {
        grid-column: 1/-1;
        padding: 0;
        border: 0
    }

    .finder label {
        padding: 0;
        border: 0
    }

    .finder select {
        padding: 0 30px 0 12px;
        border: 1px solid var(--field);
        border-radius: 10px
    }

    .finder .go {
        grid-column: 1/-1
    }
}

@media (max-width:700px) {
    .finder {
        grid-template-columns: 1fr 1fr
    }

    .finder label:last-of-type {
        grid-column: 1/-1
    }
}

/* sezioni */
.sec {
    margin-top: 88px
}

.sh {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
    flex-wrap: wrap
}

.sh h2 {
    font-size: clamp(32px, 3.6vw, 52px);
    font-weight: 300
}

.al {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
    border-bottom: 1px solid var(--ink);
    padding-bottom: 1px
}

.al svg {
    width: 16px;
    height: 16px;
    stroke-width: 2
}

.al:hover {
    color: var(--red);
    border-color: var(--red)
}

.arr {
    display: flex;
    gap: 8px
}

.arr button {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid var(--ink);
    background: #fff;
    cursor: pointer;
    display: grid;
    place-items: center
}

.arr button:hover {
    background: var(--ink);
    color: #fff
}

.arr svg {
    width: 18px;
    height: 18px;
    stroke-width: 2
}

.arr button:first-child svg {
    transform: scaleX(-1)
}

.tiles {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 64px)/5);
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none
}

.tiles::-webkit-scrollbar {
    display: none
}

.tile {
    position: relative;
    scroll-snap-align: start;
    display: block;
    aspect-ratio: 3/4;
    border-radius: 15px;
    overflow: hidden;
    background: var(--ground)
}

.tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease)
}

.tile:hover img {
    transform: scale(1.05)
}

.tn {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    background: rgba(255, 255, 255, .92)
}

.tn b {
    font: 400 24px var(--f);
    letter-spacing: -.03em
}

.tn i {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    transition: background .2s, color .2s, transform .3s var(--ease)
}

.tn svg {
    width: 16px;
    height: 16px;
    stroke-width: 2
}

.tile:hover .tn i {
    background: var(--lime);
    color: var(--ink);
    transform: translateX(3px)
}

.band {
    margin-top: 88px;
    background: var(--soft)
}

.band .sec {
    margin-top: 0;
    padding-top: 72px;
    padding-bottom: 64px
}

.tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}

.tabs button {
    height: 40px;
    padding: 0 18px;
    border-radius: 999px;
    border: 1px solid #cfd2cf;
    background: #fff;
    font-size: 15px;
    cursor: pointer;
    transition: background .2s, color .2s
}

.tabs button:hover {
    border-color: var(--ink)
}

.tabs button.on {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff
}

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

.pc {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 15px;
    overflow: hidden;
    transition: transform .35s var(--ease)
}

.pc:hover {
    transform: translateY(-4px)
}

.pi {
    position: relative;
    display: block;
    aspect-ratio: 4/3.2;
    background: var(--ground);
    overflow: hidden
}

.pi img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s var(--ease)
}

.pc:hover .pi img,
.mini:hover .pi img {
    transform: scale(1.05)
}

.bd {
    display: inline-block;
    align-self: flex-start;
    background: var(--red);
    color: #fff;
    font: 500 15px/1 var(--f);
    border-radius: 999px;
    padding: 6px 12px
}

.pi .bd {
    position: absolute;
    left: 12px;
    top: 12px
}

.fav {
    position: absolute;
    right: 12px;
    top: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 0;
    background: rgba(255, 255, 255, .92);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background .2s, color .2s
}

.fav svg {
    width: 18px;
    height: 18px;
    stroke-width: 1.6
}

.fav:hover {
    background: var(--ink);
    color: #fff
}

.pt {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 8px;
    padding: 16px
}

.pt h3 {
    font: 500 16px/1.3 var(--f);
    letter-spacing: -.02em;
    min-height: 42px
}

.pt h3 a:hover {
    text-decoration: underline;
    text-underline-offset: 3px
}

.ch {
    display: flex;
    flex-wrap: wrap;
    gap: 6px
}

.ch li {
    border: 1px solid #b9bdb9;
    border-radius: 999px;
    padding: 1px 10px;
    font-size: 14px;
    color: var(--ink)
}

.ch li b {
    font-weight: 600;
    margin-right: 2px
}

.pp {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap
}

.pp b {
    font: 400 32px/1 var(--f);
    letter-spacing: -.04em;
    color: var(--red)
}

.pp s {
    color: var(--mut);
    font-size: 16px
}

.sv {
    color: var(--g);
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 8px
}

.add {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    height: 46px;
    border-radius: 999px;
    border: 1px solid var(--ink);
    background: var(--ink);
    color: #fff;
    font: 500 15px var(--f);
    cursor: pointer;
    margin-top: auto;
    transition: background .2s, color .2s, transform .15s
}

.add svg {
    width: 19px;
    height: 19px;
    stroke-width: 1.7
}

.add:hover {
    background: var(--lime);
    border-color: var(--lime);
    color: var(--ink)
}

.add:active {
    transform: scale(.97)
}

.add.sm {
    height: 42px;
    font-size: 14px
}

.add.done {
    background: var(--lime);
    border-color: var(--lime);
    color: var(--ink)
}

.add .sh {
    display: none
}

.add i {
    font-style: normal
}

.pc.hide,
.pc.extra:not(.show) {
    display: none
}

.pc.pop {
    animation: pop .5s var(--ease) both
}

@keyframes pop {
    from {
        opacity: 0;
        transform: translateY(14px)
    }
}

.more {
    display: flex;
    justify-content: center;
    margin-top: 28px
}

.empty {
    padding: 40px 0;
    color: var(--mut);
    text-align: center
}

.note {
    color: var(--mut);
    font-size: 13px;
    margin-top: 18px
}

.minis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px
}

.mini {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.mini .pi {
    border-radius: 15px
}

.mini h3 {
    font: 500 16px/1.3 var(--f);
    letter-spacing: -.02em;
    min-height: 42px
}

.mini .pp {
    min-height: 34px
}

.mini .pp b {
    font-size: 28px
}

.mini .bd {
    font-size: 14px
}

.brands {
    margin-top: 88px;
    border-block: 1px solid var(--line);
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent)
}

.mt {
    display: flex;
    width: max-content;
    animation: marq 52s linear infinite
}

.brands:hover .mt {
    animation-play-state: paused
}

.mt span {
    padding: 22px 36px;
    font: 200 34px var(--f);
    letter-spacing: -.04em;
    color: var(--mut);
    white-space: nowrap
}

@keyframes marq {
    to {
        transform: translateX(-50%)
    }
}

/* perché comprare: mosaico a spigoli vivi, campo scuro col titolo + 4 celle a tono */
.why {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 4px
}

.why h2 {
    padding: 32px 40px 40px;
    background: var(--ink);
    color: #fff
}

.why h2 em {
    color: #fff;
    text-decoration: underline;
    text-decoration-color: var(--red);
    text-decoration-thickness: .09em;
    text-underline-offset: .1em
}

.why dl {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px
}

/* punto: blocco ripetibile (dt con icona + dd) */
.why dl>div {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 30px 32px 32px;
    background: var(--soft)
}

.why dt {
    font: 700 26px/1.05 var(--d);
    font-stretch: 78%;
    letter-spacing: .005em
}

.why dd {
    max-width: 36ch;
    color: var(--ink);
    text-wrap: pretty
}

.duo {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 24px 48px
}

/* recensioni: slider a scorrimento con aggancio */
.revs {
    grid-column: 1;
    grid-row: span 3;
    display: grid;
    grid-template-rows: subgrid;
    gap: 24px;
    min-width: 0
}

.revs [hidden] {
    display: none
}

.rvh,
.rvf {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px
}

.rvf {
    align-items: center;
    flex-wrap: wrap
}

.revs h2 {
    font-size: clamp(32px, 3.6vw, 52px)
}

.revs .arr button {
    border-radius: 0;
    transition: background .2s, color .2s, opacity .2s
}

.revs .arr button[aria-disabled="true"] {
    opacity: .3;
    cursor: default;
    background: #fff;
    color: var(--ink)
}

.rvt {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    scrollbar-width: none
}

.rvt::-webkit-scrollbar {
    display: none
}

.rvt:focus-visible {
    outline-offset: 4px
}

.rv {
    flex: 0 0 100%;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-height: 280px;
    padding: 32px 36px 28px;
    border: 1px solid var(--line);
    background: #fff
}

.rv>svg {
    width: 34px;
    height: 34px;
    color: var(--red)
}

.rv blockquote {
    color: var(--ink);
    font-size: clamp(19px, 1.65vw, 24px);
    line-height: 1.42;
    max-width: 44ch;
    text-wrap: pretty
}

.rv figcaption {
    margin-top: auto;
    color: var(--mut);
    font-size: 15px
}

.rv figcaption b {
    color: var(--ink);
    font-weight: 600
}

.rvd {
    display: flex;
    gap: 6px
}

.rvd button {
    width: 44px;
    height: 44px;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
    display: grid;
    align-items: center
}

.rvd i {
    display: block;
    height: 3px;
    background: rgba(13, 23, 23, .2);
    transition: background .25s
}

.rvd button:hover i {
    background: rgba(13, 23, 23, .5)
}

.rvd .on i {
    background: var(--ink)
}

.rvf .rl {
    margin-left: auto
}

/* il negozio si allinea alla card della recensione (stessa riga del subgrid) */
.shop {
    grid-column: 2;
    grid-row: 2;
    background: var(--soft);
    padding: 32px 36px 28px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px
}

.shop .btn {
    margin-top: auto
}

.shop h3 {
    font-size: 30px
}

.tel {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font: 300 32px var(--f);
    letter-spacing: -.04em
}

.tel svg {
    width: 22px;
    height: 22px;
    color: var(--red)
}

.tel:hover {
    color: var(--red)
}

.ft {
    margin-top: 96px;
    background: var(--soft);
    border-top: 1px solid var(--line)
}

.fg {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.3fr;
    gap: 40px;
    padding-top: 56px;
    padding-bottom: 36px
}

.fl {
    height: 38px;
    width: auto;
    margin-bottom: 14px
}

.ft h4 {
    font: 500 15px var(--f);
    margin-bottom: 10px
}

.ft a {
    display: block;
    padding: 3px 0;
    font-size: 15px
}

.ft a:hover {
    color: var(--red)
}

.ft p {
    font-size: 15px;
    color: #2b3333
}

.fb {
    display: flex;
    justify-content: space-between;
    padding-top: 16px;
    padding-bottom: 22px;
    border-top: 1px solid var(--line);
    font-size: 14px;
    color: var(--mut)
}

.toast {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 80;
    max-width: 340px;
    background: var(--ink);
    color: #fff;
    border-radius: 15px;
    padding: 14px 18px;
    font-size: 15px;
    display: flex;
    gap: 12px;
    align-items: center;
    transform: translateY(24px);
    opacity: 0;
    pointer-events: none;
    transition: transform .45s var(--ease), opacity .3s
}

.toast.on {
    transform: none;
    opacity: 1
}

.toast svg {
    width: 22px;
    height: 22px;
    color: var(--lime);
    flex: none;
    stroke-width: 2.4
}

.toast b {
    display: block;
    font-weight: 500
}

.toast span {
    display: block;
    color: #c9ccc8;
    font-size: 13px
}

.js .rv-in {
    opacity: 0;
    transform: translateY(18px)
}

.js .rv-in.in {
    opacity: 1;
    transform: none;
    transition: opacity .6s var(--ease), transform .6s var(--ease);
    transition-delay: var(--dl, 0s)
}

@media (max-width:1180px) {
    .nv {
        display: none
    }

    .hi {
        gap: 16px
    }

    .se {
        width: auto;
        flex: 1;
        margin-left: auto
    }

    .tiles {
        grid-auto-columns: calc((100% - 32px)/3)
    }

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

    .minis {
        grid-template-columns: repeat(2, 1fr)
    }

    .why,
    .duo {
        grid-template-columns: 1fr
    }

    .duo {
        row-gap: 48px
    }

    .revs,
    .shop {
        grid-area: auto
    }

    .revs {
        grid-template-rows: none
    }

    .fg {
        grid-template-columns: 1fr 1fr
    }
}

@media (max-width:700px) {
    .wrap {
        padding-inline: 16px
    }

    .hi {
        height: 64px
    }

    .lg img {
        height: 34px
    }

    .se {
        display: none
    }

    .sec {
        margin-top: 60px
    }

    .tiles {
        grid-auto-columns: 62%
    }

    .grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px
    }

    .pt {
        padding: 12px
    }

    .pt h3 {
        font-size: 14px;
        min-height: 0
    }

    .pp b {
        font-size: 26px
    }

    .pp s {
        font-size: 14px
    }

    .add .lo {
        display: none
    }

    .add .sh {
        display: inline
    }

    .ch li {
        border: 0;
        padding: 0;
        font-size: 13px
    }

    .ch {
        gap: 0 10px
    }

    .pi {
        aspect-ratio: 16/11
    }

    .minis {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px
    }

    .rvt {
        gap: 12px
    }

    /* sul telefono si intravede la recensione successiva */
    .rv {
        flex-basis: 86%;
        min-height: 0;
        padding: 24px 22px 22px;
        gap: 16px
    }

    .rv>svg {
        width: 28px;
        height: 28px
    }

    .rvf .rl {
        margin-left: 0
    }

    .shop {
        padding: 24px 22px 22px
    }

    .why h2 {
        padding: 28px 20px
    }

    .why dl {
        grid-template-columns: 1fr
    }

    .why dl>div {
        padding: 22px 20px 24px
    }

    .why dt {
        font-size: 23px
    }

    .fg {
        grid-template-columns: 1fr
    }

    .fb {
        flex-direction: column;
        gap: 4px
    }

    .toast {
        left: 16px;
        right: 16px;
        max-width: none
    }

    .sh .arr {
        display: none
    }
}

@media (prefers-reduced-motion:reduce) {

    *,
    *::before,
    *::after {
        animation: none !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important
    }

    .js .rv-in {
        opacity: 1;
        transform: none
    }

    .mt {
        animation: none
    }
}

/* marchi: loghi reali, in grigio, a colori al passaggio */
.mk {
    display: grid;
    place-items: center;
    height: 96px;
    padding: 0 34px
}

.mk img {
    height: 34px;
    width: auto;
    max-width: 170px;
    object-fit: contain;
    mix-blend-mode: multiply;
    filter: grayscale(1) contrast(1.05);
    opacity: .62;
    transition: opacity .25s, filter .25s
}

.mk:hover img {
    filter: none;
    opacity: 1
}

/* ===== A: caratteri da negozio di batterie. Saira (tecnico, condensato) per titoli e prezzi, Barlow (segnaletica) per il testo ===== */
:root {
    --f: 'Barlow', system-ui, sans-serif;
    --d: 'Saira', system-ui, sans-serif
}

body {
    font-size: 17px;
    letter-spacing: 0
}

h1,
h2,
h3,
.fttl,
.tn b,
.tel,
.mt span,
.sh h2,
.why h2,
.revs h2,
.shop h3 {
    font-family: var(--d);
    font-stretch: 78%;
    font-weight: 700;
    letter-spacing: .005em;
    line-height: 1
}

em {
    font-family: inherit;
    font-style: normal;
    font-weight: inherit;
    letter-spacing: inherit;
    color: var(--red)
}

.sh h2,
.why h2,
.revs h2 {
    font-size: clamp(34px, 3.8vw, 56px);
    text-transform: uppercase
}

.pp b,
.mini .pp b {
    font-family: var(--d);
    font-stretch: 78%;
    font-weight: 700;
    letter-spacing: .01em
}

.pp b {
    font-size: 40px
}

.mini .pp b {
    font-size: 34px
}

.pt h3,
.mini h3,
.sd h3 {
    font-family: var(--f);
    font-stretch: 100%;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none
}

.bd {
    font-family: var(--d);
    font-stretch: 78%;
    font-weight: 700;
    font-size: 19px;
    letter-spacing: .02em;
    border-radius: 6px;
    padding: 5px 10px 4px
}

.nv a {
    font-weight: 500;
    font-size: 16px
}

.btn,
.go,
.add,
.tabs button {
    font-family: var(--f);
    font-weight: 600;
    letter-spacing: .01em
}

.tn b {
    font-size: 28px;
    text-transform: uppercase;
    font-weight: 700
}

.ch li {
    font-family: var(--f);
    font-weight: 500
}

.ch li b {
    font-family: var(--d);
    font-stretch: 78%;
    font-weight: 700;
    font-size: 18px
}

.tel {
    font-size: 36px
}

.mt span {
    font-size: 34px
}

/* punti di forza di un e-commerce */
.trust {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    margin-top: 36px;
    border: 1px solid var(--line);
    border-radius: 15px;
    overflow: hidden
}

.trust li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 20px 18px
}

.trust li+li {
    border-left: 1px solid var(--line)
}

.trust svg {
    width: 32px;
    height: 32px;
    flex: none;
    stroke-width: 1.5;
    color: var(--ink)
}

.trust b {
    display: block;
    font: 700 17px/1.2 var(--d);
    font-stretch: 78%;
    text-transform: uppercase;
    letter-spacing: .02em
}

.trust small {
    display: block;
    font-size: 14px;
    line-height: 1.35;
    color: #3d4545;
    margin-top: 3px
}

.ship {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 14px;
    color: #3d4545;
    margin: 2px 0 6px
}

.ship svg {
    width: 18px;
    height: 18px;
    stroke-width: 1.6;
    flex: none
}

@media (max-width:1180px) {
    .trust {
        grid-template-columns: repeat(3, 1fr)
    }

    .trust li:nth-child(4) {
        border-left: 0
    }

    .trust li:nth-child(n+4) {
        border-top: 1px solid var(--line)
    }
}

@media (max-width:700px) {
    .trust {
        grid-template-columns: 1fr 1fr
    }

    .trust li {
        padding: 14px 12px
    }

    .trust li:nth-child(odd) {
        border-left: 0
    }

    .trust li:nth-child(even) {
        border-left: 1px solid var(--line)
    }

    .trust li:nth-child(n+3) {
        border-top: 1px solid var(--line)
    }

    .trust svg {
        width: 26px;
        height: 26px
    }

    .trust b {
        font-size: 15px
    }

    .trust small {
        font-size: 13px
    }

    .pp b {
        font-size: 30px
    }

    .ship {
        font-size: 13px
    }
}

.tn {
    gap: 10px;
    padding: 16px 18px
}

.tn b {
    font-size: 21px;
    line-height: 1.05;
    min-width: 0;
    overflow-wrap: anywhere
}

.tn i {
    flex: none
}

/* categorie con icone */
.cats {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 14px
}

.cat {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 22px 18px 18px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
    transition: border-color .2s, transform .35s var(--ease)
}

.cat:hover {
    border-color: var(--ink);
    transform: translateY(-4px)
}

.ico {
    display: grid;
    place-items: center;
    width: 84px;
    height: 84px;
    border-radius: 50%;
    background: var(--soft);
    color: var(--ink);
    margin-bottom: 16px;
    transition: background .25s, transform .35s var(--ease)
}

.ico svg {
    width: 54px;
    height: 54px;
    stroke-width: 2.2
}

.cat:hover .ico {
    background: var(--lime);
    transform: scale(1.06)
}

.cat b {
    font: 700 22px/1.05 var(--d);
    font-stretch: 78%;
    text-transform: uppercase;
    letter-spacing: .01em;
    min-height: 2.1em
}

.cat small {
    font-size: 14px;
    color: var(--mut)
}

@media (max-width:1180px) {
    .cats {
        grid-template-columns: repeat(4, 1fr)
    }
}

@media (max-width:700px) {
    .cats {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px
    }

    .cat {
        padding: 16px 14px
    }

    .ico {
        width: 60px;
        height: 60px;
        margin-bottom: 12px
    }

    .ico svg {
        width: 36px;
        height: 36px
    }

    .cat b {
        font-size: 19px;
        min-height: 0
    }
}

/* banner pubblicitario: foto in assets/banner/banner-1.jpg (2400x900) */
.banner {
    position: relative;
    isolation: isolate;
    border-radius: 15px;
    overflow: hidden;
    min-height: clamp(340px, 32vw, 440px);
    display: flex;
    align-items: center;
    background: var(--ink);
    color: #fff
}

.bimg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
    z-index: -2
}

.banner::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(13, 23, 23, .42);
    z-index: -1
}

.bc {
    display: grid;
    gap: 14px;
    justify-items: start;
    padding: 44px clamp(24px, 5vw, 64px);
    max-width: 640px
}

.bc h2 {
    font-size: clamp(36px, 4.4vw, 64px);
    text-transform: uppercase;
    color: #fff
}

.bc p {
    max-width: 26em;
    font-size: 18px;
    color: #fff
}

.bc .pp b {
    color: #fff;
    font-size: 52px
}

.bc .pp s {
    color: #e3e6e3;
    font-size: 20px
}

.bc .hb {
    margin-top: 4px
}

.bc .btn {
    background: transparent;
    border-color: #fff;
    color: #fff
}

.bc .btn:hover {
    background: #fff;
    color: var(--ink)
}

.bc .add.lg {
    background: var(--red);
    border-color: var(--red);
    color: #fff
}

.bc .add.lg:hover {
    background: var(--lime);
    border-color: var(--lime);
    color: var(--ink)
}

@media (max-width:700px) {
    .banner {
        min-height: 0
    }

    .banner::after {
        background: rgba(13, 23, 23, .55)
    }

    .bc {
        padding: 28px 20px
    }

    .bc .pp b {
        font-size: 42px
    }

    .bc p {
        font-size: 16px
    }

    .bc .hb .btn {
        display: none
    }
}

.bc .add {
    width: auto;
    padding: 0 28px;
    height: 50px
}

.bc .btn {
    height: 50px
}

/* banner a tutta larghezza, senza angoli arrotondati */
.banner-full {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-top: 88px;
    min-height: clamp(380px, 34vw, 520px);
    display: flex;
    align-items: center;
    background: var(--ink);
    color: #fff
}

.banner-full .bimg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
    z-index: -2
}

.banner-full::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(13, 23, 23, .42);
    z-index: -1
}

.banner-full .wrap {
    width: 100%
}

.banner-full .bc {
    padding: 56px 0
}

@media (max-width:700px) {
    .banner-full {
        margin-top: 60px;
        min-height: 0
    }

    .banner-full::after {
        background: rgba(13, 23, 23, .55)
    }

    .banner-full .bc {
        padding: 36px 0
    }
}

/* categorie: angoli vivi, senza arrotondamenti */
.cat,
.ico,
.tile,
.tn,
.tn i {
    border-radius: 0
}

.cat:hover .ico {
    transform: none
}

/* categorie sul telefono: griglia a due colonne con riquadri bassi (icona a sinistra, nome a destra) */
@media (max-width:700px) {
    .sec .sh {
        margin-bottom: 16px
    }

    .cats {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        overflow: visible;
        margin-right: 0;
        padding-right: 0
    }

    .cat {
        flex-direction: row;
        align-items: center;
        gap: 12px;
        padding: 10px 12px;
        text-align: left;
        width: auto
    }

    .cat small {
        display: none
    }

    .ico {
        flex: none;
        width: 56px;
        height: 56px;
        margin: 0
    }

    .ico svg {
        width: 38px;
        height: 38px
    }

    .cat b {
        font-size: 18px;
        min-height: 0;
        line-height: 1.05
    }

    .cat:last-child {
        grid-column: 1/-1
    }

    .tiles {
        grid-auto-columns: 46%
    }

    .tile {
        aspect-ratio: 4/3
    }

    .tn {
        padding: 10px 12px
    }

    .tn b {
        font-size: 17px
    }

    .tn i {
        width: 28px;
        height: 28px
    }

    .tn svg {
        width: 14px;
        height: 14px
    }
}

@media (max-width:700px) {
    .cat {
        gap: 10px;
        padding: 8px 10px
    }

    .ico {
        width: 50px;
        height: 50px
    }

    .ico svg {
        width: 34px;
        height: 34px
    }

    .cat b {
        font-size: 16px
    }
}

/* categorie sul telefono: tessere grandi che scorrono di lato (la successiva si intravede) */
@media (max-width:700px) {
    .cats {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        margin-right: -16px;
        padding-right: 16px
    }

    .cats::-webkit-scrollbar {
        display: none
    }

    .cat {
        flex: none;
        width: 136px;
        scroll-snap-align: start;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        padding: 16px 14px;
        border: 0;
        border-bottom: 3px solid var(--lime);
        background: var(--soft);
        text-align: left
    }

    .cat:last-child {
        grid-column: auto
    }

    .cat small {
        display: none
    }

    .ico {
        width: 56px;
        height: 56px;
        margin: 0;
        background: transparent
    }

    .ico svg {
        width: 52px;
        height: 52px
    }

    .cat b {
        font-size: 20px;
        line-height: 1;
        min-height: 2em;
        display: block
    }

    .cat:hover {
        transform: none;
        border-color: transparent;
        border-bottom-color: var(--ink)
    }
}

/* ===== UX: ricerca e menu sul telefono, zone da toccare, vetrina a schede scorrevoli ===== */
.sbtn {
    display: none;
    width: 44px;
    height: 44px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    place-items: center
}

.sbtn svg {
    width: 21px;
    height: 21px;
    stroke-width: 1.6
}

.hi {
    flex-wrap: wrap
}

.fav {
    width: 44px;
    height: 44px;
    right: 8px;
    top: 8px
}

.al {
    padding: 12px 0
}

@media (max-width:1180px) {
    .nv {
        display: flex;
        order: 3;
        flex: 0 0 100%;
        margin: 0 -16px;
        padding: 0 16px;
        overflow-x: auto;
        scrollbar-width: none;
        border-top: 1px solid var(--line);
        gap: 0
    }

    .nv::-webkit-scrollbar {
        display: none
    }

    .nv a {
        flex: none;
        padding: 0 14px;
        height: 46px;
        display: flex;
        align-items: center;
        border-radius: 0
    }

    .nv a.on {
        background: transparent;
        color: var(--ink);
        box-shadow: inset 0 -3px var(--lime)
    }

    .hi {
        height: auto;
        min-height: 64px;
        padding-top: 6px
    }

    .hd.sm .hi {
        height: auto
    }
}

@media (max-width:700px) {
    .hi {
        gap: 8px 10px;
        padding-top: 8px
    }

    .lg {
        flex: 1
    }

    .sbtn {
        display: grid
    }

    .se {
        display: none;
        order: 4;
        flex: 0 0 100%;
        width: 100%;
        margin: 0 0 8px
    }

    .se.open {
        display: block
    }

    .se input {
        height: 46px;
        font-size: 16px
    }

    .se svg {
        top: 14px
    }

    .pt h3 a,
    .mini h3 a {
        display: block;
        padding: 3px 0
    }
}

.hi {
    flex-wrap: nowrap
}

@media (max-width:1180px) {
    .hi {
        flex-wrap: wrap
    }

    .lg {
        flex: 1
    }

    .se {
        order: 4
    }
}

@media (max-width:700px) {
    .ct {
        display: none
    }

    .lg img {
        height: 32px
    }
}

/* ===== passata UX: tocco 44 px, testo minimo 13 px, contrasto sulla foto, fascia finale ===== */
.top {
    font-size: 13px
}

.ci i {
    font-size: 12px
}

.nv a {
    min-height: 44px
}

.se input {
    height: 44px
}

.se svg {
    top: 13px
}

.add {
    min-height: 44px
}

.tabs button {
    height: 44px
}

.ft a {
    padding: 10px 0
}

.top a {
    padding: 6px 0;
    display: inline-block
}

.tel {
    padding: 6px 0
}

.hint {
    display: none
}

/* CTA finale: mosaico a spigoli vivi come "Perché comprare" (campo scuro + due celle azione, tutta la cella è cliccabile) */
.callband {
    margin: 96px 0
}

.cb {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 4px
}

.cb>div:first-child {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 44px 48px;
    background: var(--ink);
    color: #fff
}

.cb h2 {
    font-size: clamp(32px, 3.4vw, 50px);
    line-height: 1;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 16px;
    text-wrap: balance
}

.cb p {
    color: #e6eae9;
    max-width: 34em;
    text-wrap: pretty
}

.cbb {
    display: contents
}

.cb .tel,
.cb .btn {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: 28px;
    min-height: 200px;
    height: auto;
    padding: 28px 32px 30px;
    border: 0;
    border-radius: 0;
    font: 700 clamp(30px, 2.8vw, 40px)/1 var(--d);
    font-stretch: 78%;
    letter-spacing: .005em;
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .2s, color .2s
}

.cb .btn {
    text-transform: uppercase
}

.cb .tel svg,
.cb .btn svg {
    flex: none;
    order: -1;
    align-self: flex-start;
    width: 52px;
    height: 52px;
    margin: -4px 0 0 -6px;
    stroke-width: 1.5;
    transition: transform .3s var(--ease)
}

.cb .tel {
    background: var(--soft);
    color: var(--ink)
}

.cb .tel svg {
    color: var(--red)
}

.cb .tel:hover {
    background: #fff;
    color: var(--red)
}

.cb .tel:active {
    background: var(--ground)
}

.cb .btn.solid {
    background: var(--red);
    color: #fff
}

.cb .btn.solid:hover {
    background: var(--red2)
}

.cb .btn.solid:active {
    background: var(--ink)
}

.cb .tel:hover svg,
.cb .btn:hover svg {
    transform: translate(-3px, -3px) rotate(-8deg)
}

.cb .btn:focus-visible {
    outline-color: #fff;
    outline-offset: -8px
}

.cb .tel:focus-visible {
    outline-offset: -8px
}

/* le celle ritardano la comparsa (--dl) ma mantengono la transizione di hover */
.js .callband .rv-in.in {
    transition: opacity .6s var(--ease) var(--dl, 0s), transform .6s var(--ease) var(--dl, 0s), background-color .2s, color .2s
}

@media (max-width:1100px) {
    .cb {
        grid-template-columns: 1fr 1fr
    }

    .cb>div:first-child {
        grid-column: 1/-1
    }

    .cb .tel,
    .cb .btn {
        min-height: 160px
    }
}

@media (prefers-reduced-motion:reduce) {

    .cb .tel:hover svg,
    .cb .btn:hover svg {
        transform: none
    }
}

.rl {
    grid-column: 1/-1;
    justify-self: start
}

.ft {
    margin-top: 0
}

@media (max-width:700px) {
    .hint {
        display: inline;
        font-size: 14px;
        color: var(--mut);
        padding-bottom: 4px
    }

    .sec .sh {
        align-items: baseline;
        flex-direction: row;
        justify-content: space-between
    }

    .tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        margin-right: -16px;
        padding-right: 16px;
        scrollbar-width: none
    }

    .tabs::-webkit-scrollbar {
        display: none
    }

    .tabs button {
        flex: none
    }

    .callband {
        margin: 64px 0
    }

    .cb {
        grid-template-columns: 1fr
    }

    .cb>div:first-child {
        padding: 32px 24px
    }

    .cb .tel,
    .cb .btn {
        flex-direction: row-reverse;
        align-items: center;
        min-height: 92px;
        padding: 16px 24px;
        font-size: 34px
    }

    .cb .tel svg,
    .cb .btn svg {
        order: 0;
        align-self: center;
        width: 44px;
        height: 44px;
        margin: 0
    }
}

.cart,
.ci {
    min-height: 44px
}

.ci {
    width: 44px;
    height: 44px
}

.pt h3 a,
.mini h3 a {
    display: block;
    padding: 3px 0
}

/* icone categoria: tratto nero, dettaglio rosso (e verde sul LED del caricabatterie) */
.ico svg .ac {
    stroke: var(--red)
}

.ico svg .fl {
    fill: var(--red);
    stroke: var(--red)
}

.ico svg .w {
    fill: var(--soft)
}

.ico svg .lm {
    fill: var(--lime);
    stroke: var(--ink)
}

.cat:hover .ico svg .w {
    fill: #fff
}

/* stesso linguaggio nella fascia dei punti di forza e in "Perché comprare da noi" */
.ti svg .ac,
.why dt svg .ac {
    stroke: var(--red)
}

.ti svg .w {
    fill: var(--soft)
}

.ti svg .ac.w,
.why dt svg .w {
    fill: #fff
}

/* titolo a sinistra, icona grande nell'angolo in alto a destra */
.why dt {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px
}

.why dt span {
    padding-top: 6px
}

.why dt svg {
    flex: none;
    width: 52px;
    height: 52px;
    margin: -4px -6px 0 0
}

.cat:hover .ico svg .fl {
    fill: var(--red)
}

.ico svg {
    width: 62px;
    height: 62px
}

@media (max-width:700px) {
    .ico svg {
        width: 50px;
        height: 50px
    }
}

/* fascia dei punti di forza: banda a tutta larghezza dopo il banner; sei colonne (3 su tablet, 2 su mobile), icona in riquadro bianco, titolo e una riga */
.strip {
    background: var(--soft);
    border-block: 1px solid var(--line)
}

.strip .trust {
    grid-template-columns: repeat(6, 1fr);
    margin-top: 0;
    border: 0;
    border-radius: 0;
    overflow: visible
}

.strip .trust li {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 26px 20px
}

.strip .trust li:first-child {
    padding-left: 0
}

.strip .trust li:last-child {
    padding-right: 0
}

.strip .trust li+li {
    border-left: 1px solid var(--line2)
}

.ti {
    display: grid;
    place-items: center;
    flex: none;
    width: 52px;
    height: 52px;
    background: #fff;
    border: 1px solid #e3e3df
}

.strip .trust .ti svg {
    width: 34px;
    height: 34px;
    stroke-width: 2.3;
    margin: 0
}

.strip .trust b {
    font-size: 17px;
    line-height: 1.1
}

.strip .trust small {
    font-size: 14px;
    margin-top: 4px;
    line-height: 1.3
}

.strip+.sec {
    margin-top: 88px
}

@media (min-width:701px) and (max-width:1180px) {
    .strip .trust {
        grid-template-columns: repeat(3, 1fr)
    }

    .strip .trust li {
        flex-direction: row;
        align-items: center;
        gap: 14px;
        padding: 18px 16px
    }

    .strip .trust li:nth-child(3n+1) {
        padding-left: 0;
        border-left: 0
    }

    .strip .trust li:nth-child(3n) {
        padding-right: 0
    }

    .strip .trust li:nth-child(n+4) {
        border-top: 1px solid var(--line2)
    }

    .strip .trust b {
        font-size: 16px
    }
}

@media (max-width:700px) {
    .strip .trust {
        grid-template-columns: 1fr 1fr
    }

    .strip .trust li {
        flex-direction: row;
        align-items: flex-start;
        gap: 10px;
        padding: 14px 10px
    }

    .strip .trust li:nth-child(odd) {
        padding-left: 0;
        border-left: 0
    }

    .strip .trust li:nth-child(even) {
        padding-right: 0
    }

    .strip .trust li:nth-child(n+3) {
        border-top: 1px solid var(--line2)
    }

    .ti {
        width: 42px;
        height: 42px
    }

    .strip .trust .ti svg {
        width: 28px;
        height: 28px
    }

    .strip .trust b {
        font-size: 15px
    }

    .strip .trust small {
        font-size: 13px
    }

    .strip+.sec {
        margin-top: 56px
    }
}

/* ===== schede prodotto a spigoli vivi (offerte) e compatte (più venduti) ===== */
.grid {
    gap: 28px 24px
}

.pc {
    border: 1px solid var(--line);
    border-radius: 0;
    background: #fff;
    transition: transform .35s var(--ease), border-color .2s
}

.pc:hover {
    transform: translateY(-4px);
    border-color: var(--ink)
}

.pi {
    border-radius: 0;
    background: #f1f1ee
}

.pi img {
    mix-blend-mode: multiply
}

.bd {
    border-radius: 0
}

.fav {
    border-radius: 0;
    background: #fff;
    border: 1px solid var(--line)
}

.fav:hover {
    background: var(--ink);
    border-color: var(--ink)
}

.ch li {
    border-radius: 0
}

.pt {
    padding: 18px 18px 20px;
    gap: 10px
}

.pt .ship {
    margin: 0
}

.add.out {
    border-radius: 0;
    background: #fff;
    color: var(--ink);
    border: 2px solid var(--ink)
}

.pc:hover .add.out,
.add.out:hover {
    background: var(--ink);
    color: #fff;
    border-color: var(--ink)
}

.add.out.done {
    background: var(--lime);
    border-color: var(--lime);
    color: var(--ink)
}

.minis {
    gap: 24px
}

.mini {
    border: 1px solid var(--line);
    background: #fff;
    transition: transform .35s var(--ease), border-color .2s
}

.mini:hover {
    transform: translateY(-4px);
    border-color: var(--ink)
}

.mini .pi {
    border-radius: 0
}

.mini .pi img {
    mix-blend-mode: multiply
}

.mini h3 {
    padding: 14px 14px 0;
    min-height: 0
}

.mini .ch {
    padding: 0 14px
}

.mrow {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px 14px;
    margin-top: auto
}

.mini .pp {
    min-height: 0
}

.mini .pp b {
    font-size: 32px
}

.add.sq {
    width: 48px;
    height: 48px;
    min-height: 48px;
    flex: none;
    border-radius: 0;
    padding: 0;
    margin: 0
}

.add.sq svg {
    width: 22px;
    height: 22px
}

.mini:hover .add.sq {
    background: var(--lime);
    border-color: var(--lime);
    color: var(--ink)
}

.mini .bd {
    font-size: 17px
}

@media (max-width:700px) {
    .grid {
        gap: 12px
    }

    .pt {
        padding: 12px 12px 14px;
        gap: 8px
    }

    .mini {
        min-width: 0
    }

    .mini h3 {
        font-size: 14px;
        padding: 10px 10px 0
    }

    .mini .ch {
        padding: 0 10px
    }

    .mrow {
        padding: 8px 10px 10px
    }

    .mini .pp b {
        font-size: 24px
    }

    .mini .pp s {
        font-size: 13px
    }

    .add.sq {
        width: 44px;
        height: 44px;
        min-height: 44px
    }

    .minis {
        gap: 12px
    }
}

.tabs button,
.more .btn {
    border-radius: 0
}

.more .btn {
    border-width: 2px
}

@media (max-width:700px) {
    .pt .pp {
        flex-wrap: nowrap;
        gap: 6px
    }

    .pt .pp b {
        font-size: 25px
    }

    .pt .pp s {
        font-size: 12.5px
    }

    .pt .ship {
        font-size: 12px;
        gap: 0
    }

    .pt .ship svg {
        display: none
    }

    .mini .pp {
        flex-wrap: wrap;
        gap: 0 6px
    }
}
/* icone categoria: perni delle ruote pieni */
.ico svg .hub {
    fill: currentColor;
    stroke: none
}

.ico svg .solid {
    fill: currentColor
}
