/* =========================================================================
   IL TEMPIO DEL BOSS — livello grafico
   Caricato DOPO theme.css: ridefinisce la palette (fondo scuro, accenti
   gaming) e riveste i blocchi che nel tema di partenza erano chiari.
   Toccare qui, non theme.css: così l'impianto originale resta aggiornabile.
   ========================================================================= */

:root{
    /* --- palette ---
       Fondo indaco anziché quasi-nero: resta un tema scuro ma più caldo e
       leggibile, con i pannelli staccati dal fondo. */
    --tp-bg:#15152f;
    --tp-bg-2:#1c1c3d;
    --tp-panel:#24244a;
    --tp-panel-2:#2e2e5c;
    --tp-line:#3f3f77;
    --tp-ink:#f6f6fc;
    /* grigio dei testi secondari: tenuto chiaro per restare leggibile sul fondo scuro */
    --tp-muted:#bfbfe0;
    --tp-violet:#8b5cf6;
    --tp-violet-d:#6d28d9;
    --tp-blue:#3b82f6;
    --tp-cyan:#22d3ee;
    --tp-gold:#fbbf24;
    --tp-pink:#ec4899;
    --tp-green:#22c55e;
    --tp-grad:linear-gradient(135deg,var(--tp-violet-d) 0%,var(--tp-blue) 55%,var(--tp-cyan) 100%);
    --tp-grad-hot:linear-gradient(135deg,var(--tp-pink) 0%,var(--tp-violet) 100%);

    /* --- rimappa le variabili del tema di partenza --- */
    --bg:var(--tp-bg);
    --bg-soft:var(--tp-panel);
    --ink:var(--tp-ink);
    --muted:var(--tp-muted);
    --line:var(--tp-line);
    --accent:var(--tp-cyan);
    --accent-dark:var(--tp-violet);
    --accent-soft:var(--tp-panel-2);
    --accent-soft-line:var(--tp-line);
    --btn:var(--tp-violet-d);
    --btn-hover:var(--tp-violet);
    --brand-red:var(--tp-pink);
    --header-h:96px;

    /* --- tipografia --- */
    --display:'Arial Black','Segoe UI Black',Impact,Haettenschweiler,'Montserrat',sans-serif;
    --sans:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
    --serif:var(--display);
}

/* ---------- base ---------- */
body{
    background:
        radial-gradient(120% 90% at 12% -10%, rgba(139,92,246,.26) 0%, transparent 58%),
        radial-gradient(100% 80% at 92% 0%, rgba(34,211,238,.16) 0%, transparent 52%),
        var(--tp-bg);
    background-attachment:fixed;
    color:var(--tp-ink);
    font-weight:400;
}
::selection{background:var(--tp-violet);color:#fff}
h1,h2,h3,h4{font-family:var(--display);letter-spacing:.02em;text-transform:uppercase}
h1,h2{font-style:italic}

/* barre di scorrimento in tinta */
*{scrollbar-color:var(--tp-violet) transparent;scrollbar-width:thin}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--tp-violet-d);border-radius:8px}
*::-webkit-scrollbar-track{background:var(--tp-bg-2)}

/* ---------- pulsanti: taglio angolare + gradiente ---------- */
.btn-dark,.btn-outline,.btn-light,.btn-ghost{
    font-family:var(--display);font-style:italic;font-weight:400;
    letter-spacing:.08em;border-radius:0;
    clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
    transition:transform .18s,box-shadow .18s,filter .18s;
}
.btn-dark{background:var(--tp-grad);border:none;color:#fff;box-shadow:0 6px 20px rgba(109,40,217,.42)}
.btn-dark:hover{background:var(--tp-grad);filter:brightness(1.12);transform:translateY(-2px);box-shadow:0 10px 26px rgba(59,130,246,.5)}
.btn-outline{background:transparent;border:2px solid var(--tp-violet);color:var(--tp-ink)}
.btn-outline:hover{background:var(--tp-violet);color:#fff;transform:translateY(-2px)}
.btn-light{background:var(--tp-gold);border-color:var(--tp-gold);color:#241a00;font-weight:700}
.btn-light:hover{background:#ffd257;border-color:#ffd257;color:#241a00}
/* niente border: con il taglio angolare si spezzerebbe agli angoli, il
   contorno lo fa un'ombra interna che segue la stessa forma */
.btn-ghost{background:rgba(255,255,255,.07);border:none;color:#fff;backdrop-filter:blur(6px);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.28);text-transform:uppercase}
.btn-ghost:hover{background:rgba(255,255,255,.15);box-shadow:inset 0 0 0 2px #fff}
.btn-outline{box-shadow:inset 0 0 0 2px var(--tp-violet);border:none}
.btn-outline:hover{box-shadow:inset 0 0 0 2px var(--tp-violet)}

/* testo per soli screen reader (titoli di pagina non ripetuti a video) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
    clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.link-btn{color:var(--tp-muted)}
.link-btn:hover{color:var(--tp-cyan)}

/* ---------- header ---------- */
.site-header{
    background:rgba(10,10,18,.86);backdrop-filter:blur(14px);
    border-bottom:1px solid var(--tp-line);
    box-shadow:0 1px 0 rgba(139,92,246,.35),0 10px 30px rgba(0,0,0,.5);
}
.topbar{
    background:var(--tp-grad);color:#fff;font-weight:600;letter-spacing:.14em;
    text-transform:uppercase;font-size:.66rem;
}
.topbar-arrow{color:#fff}
.header-bar{padding:.85rem 1.6rem}
.brand img{height:66px;filter:drop-shadow(0 4px 14px rgba(139,92,246,.55))}
.hb-nav-link{
    font-family:var(--display);font-style:italic;font-size:.78rem;letter-spacing:.06em;
    color:var(--tp-ink);opacity:.85;transition:opacity .2s,color .2s;
}
.hb-nav-link:hover{opacity:1;color:var(--tp-cyan)}
.hb-nav-link::after{height:3px;background:var(--tp-grad);bottom:-6px}
.hb-week{color:var(--tp-gold);opacity:1}
.icon-btn{color:var(--tp-ink)}
.icon-btn:hover{background:rgba(139,92,246,.22)}
.menu-btn{color:var(--tp-ink)}
.menu-btn:hover{background:rgba(139,92,246,.22)}
.cart-btn #cart-badge .badge-count{background:var(--tp-gold);color:#241a00;font-weight:700}
.subbar,.subbar-links a{border-color:var(--tp-line);color:var(--tp-muted)}
.subbar-links a:hover{color:var(--tp-cyan)}

/* ricerca */
.subbar-search{border:1px solid var(--tp-line);background:rgba(255,255,255,.04);border-radius:2px}
.subbar-search:focus-within{background:var(--tp-panel);border-color:var(--tp-violet);box-shadow:0 0 0 3px rgba(139,92,246,.25)}
.subbar-search input{color:var(--tp-ink)}
.subbar-search input::placeholder{color:var(--tp-muted)}
.search-dropdown{background:var(--tp-panel);border:1px solid var(--tp-line);box-shadow:0 20px 50px rgba(0,0,0,.65);color:var(--tp-ink)}
.search-dropdown::before{background:var(--tp-panel);border-color:var(--tp-line)}

/* ---------- mega menu ----------
   Il tema di partenza lo forza bianco anche in home: quel selettore va
   ripetuto qui, altrimenti vince lui. */
.page-home .site-header:not(.is-scrolled) .nav-mega,
.site-header .nav-mega,
.nav-mega{
    background:linear-gradient(180deg, rgba(36,36,74,.99) 0%, rgba(21,21,47,.99) 100%);
    backdrop-filter:blur(18px);
    border:none;border-top:2px solid transparent;
    border-image:var(--tp-grad) 1;
    border-radius:0 0 18px 18px;
    box-shadow:0 30px 70px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.05);
}
.nav-mega-inner{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));
    gap:.4rem 1.6rem;padding:2rem 2.4rem 2.2rem;align-items:start;
}
.nm-col{gap:.1rem}
.nm-head{
    display:flex;align-items:center;justify-content:space-between;gap:.5rem;
    font-family:var(--display);font-style:italic;font-size:.82rem;letter-spacing:.03em;
    color:var(--tp-ink);text-transform:uppercase;border:none;
    padding:.35rem .55rem .55rem;margin-bottom:.45rem;position:relative;
}
.nm-head::after{
    content:"";position:absolute;left:.55rem;right:.55rem;bottom:.2rem;height:2px;
    background:var(--tp-grad);border-radius:2px;transform:scaleX(.28);transform-origin:left;
    transition:transform .28s;
}
a.nm-head:hover{color:var(--tp-cyan)}
a.nm-head:hover::after{transform:scaleX(1)}
.nm-head-ico{opacity:0;transform:translateX(-4px);transition:.22s;color:var(--tp-cyan)}
a.nm-head:hover .nm-head-ico{opacity:1;transform:translateX(0)}
.nm-link{
    display:flex;align-items:center;justify-content:space-between;gap:.6rem;
    font-size:.84rem;color:var(--tp-muted);padding:.4rem .55rem;border-radius:8px;
    transition:background .18s,color .18s,transform .18s;
}
.nm-link:hover{background:rgba(139,92,246,.20);color:#fff;transform:translateX(2px)}
.nm-count{
    font-style:normal;font-size:.66rem;font-weight:700;line-height:1;
    padding:.22rem .42rem;border-radius:999px;
    background:rgba(255,255,255,.07);color:var(--tp-muted);
}
.nm-link:hover .nm-count{background:rgba(255,255,255,.18);color:#fff}
.nm-outlet .nm-head{color:var(--tp-gold)}

/* pannello di richiamo a destra del menu */
.nm-promo{
    display:flex;flex-direction:column;gap:.5rem;padding:1.2rem;
    background:linear-gradient(150deg, rgba(139,92,246,.24), rgba(34,211,238,.12));
    border:1px solid var(--tp-line);border-radius:14px;
}
.nm-promo-logo{width:112px;opacity:.95;margin-bottom:.2rem}
.nm-promo-title{margin:0;font-family:var(--display);font-style:italic;font-size:.95rem;text-transform:uppercase;color:#fff}
.nm-promo-txt{margin:0;font-size:.78rem;line-height:1.45;color:var(--tp-muted)}
.nm-promo-cta{
    margin-top:.3rem;align-self:flex-start;font-family:var(--display);font-style:italic;
    font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:#fff;
    padding:.5rem .9rem;background:var(--tp-grad);
    clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);
    transition:filter .18s,transform .18s;
}
.nm-promo-cta:hover{filter:brightness(1.14);transform:translateY(-1px)}

/* ---------- hero di home ---------- */
.tp-hero{
    position:relative;overflow:hidden;margin-bottom:2.5rem;
    padding:clamp(3rem,7vw,5.5rem) 1.6rem clamp(2.5rem,5vw,4rem);
    background:
        radial-gradient(90% 120% at 50% -20%, rgba(139,92,246,.42) 0%, transparent 60%),
        linear-gradient(180deg,#15102e 0%,var(--tp-bg) 100%);
    border-bottom:1px solid var(--tp-line);
}
.tp-hero::after{  /* griglia prospettica sullo sfondo */
    content:"";position:absolute;inset:auto 0 -30% 0;height:60%;pointer-events:none;
    background-image:linear-gradient(rgba(34,211,238,.16) 1px,transparent 1px),
                     linear-gradient(90deg,rgba(34,211,238,.16) 1px,transparent 1px);
    background-size:64px 64px;
    transform:perspective(340px) rotateX(58deg);
    mask-image:linear-gradient(180deg,transparent,#000 65%);
    -webkit-mask-image:linear-gradient(180deg,transparent,#000 65%);
}
.tp-hero-inner{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;text-align:center}
.tp-hero-logo{width:min(520px,80vw);margin:0 auto 1.4rem;filter:drop-shadow(0 10px 34px rgba(139,92,246,.6))}
.tp-hero-kicker{
    display:inline-block;margin:0 0 1rem;padding:.45rem 1.1rem;
    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);
    font-family:var(--display);font-style:italic;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--tp-cyan);
    clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
}
.tp-hero-sub{max-width:640px;margin:0 auto 1.9rem;color:var(--tp-muted);font-size:1.02rem;line-height:1.65}
.tp-hero-cta{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}
.tp-hero-stats{display:flex;gap:2.6rem;justify-content:center;flex-wrap:wrap;margin-top:2.6rem}
.tp-stat b{display:block;font-family:var(--display);font-style:italic;font-size:1.9rem;
    background:var(--tp-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tp-stat span{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--tp-muted)}

/* ---------- hero slider ---------- */
.hero-slider{background:var(--tp-bg-2)}
.slide{height:min(72vh,760px);min-height:440px}
.slide-caption{bottom:11%}
.slide-title{font-family:var(--display);font-style:italic;font-size:clamp(2.1rem,4.6vw,3.9rem);
    text-shadow:0 6px 30px rgba(0,0,0,.6);margin-bottom:1rem}
.slide-desc{max-width:640px;font-size:.92rem;letter-spacing:.02em;opacity:.94;
    text-shadow:0 2px 14px rgba(0,0,0,.7)}
.hero-slider .slide-cta{
    background:var(--tp-grad);border:none;color:#fff;box-shadow:0 10px 28px rgba(109,40,217,.5);
    padding:.95rem 2.2rem;
}
.hero-slider .slide-cta:hover{filter:brightness(1.12);background:var(--tp-grad);color:#fff;transform:translateY(-2px)}
.slider-nav{background:rgba(21,21,47,.6);border:1px solid rgba(255,255,255,.22);color:#fff;backdrop-filter:blur(6px)}
.slider-nav:hover{background:var(--tp-violet);border-color:var(--tp-violet)}
.slider-dot{background:rgba(255,255,255,.4)}
.slider-dot.is-active{background:var(--tp-cyan);width:26px}

/* ---------- barra dei numeri sotto l'hero ---------- */
.tp-strip{
    border-bottom:1px solid var(--tp-line);
    background:linear-gradient(180deg, rgba(46,46,92,.55), rgba(21,21,47,.55));
}
.tp-strip-in{
    max-width:var(--maxw);margin:0 auto;padding:1.7rem 1.6rem;
    display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;
}
.tp-strip .tp-stat{
    display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;
    padding:0 1rem;position:relative;
}
.tp-strip .tp-stat + .tp-stat::before{
    content:"";position:absolute;left:0;top:12%;bottom:12%;width:1px;
    background:linear-gradient(180deg,transparent,var(--tp-line),transparent);
}
.tp-strip .tp-stat svg{width:22px;height:22px;fill:none;stroke:var(--tp-cyan);stroke-width:1.6;
    stroke-linecap:round;stroke-linejoin:round;margin-bottom:.2rem;opacity:.9}
.tp-strip .tp-stat b{font-size:1.65rem}

/* ---------- reparti ---------- */
.tp-depts{max-width:var(--maxw);margin:2.8rem auto 3.4rem;padding:0 1.6rem}
.tp-depts-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
    flex-wrap:wrap;margin-bottom:1.3rem}
.tp-depts-head h2{font-size:clamp(1.35rem,2.6vw,1.9rem)}
.tp-depts-all{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tp-cyan)}
.tp-depts-all:hover{color:#fff}

.tp-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:1.1rem}
.tp-tile{
    position:relative;display:grid;grid-template-rows:1fr auto;overflow:hidden;
    background:var(--tp-panel);border:1px solid var(--tp-line);border-radius:16px;
    transition:transform .22s,border-color .22s,box-shadow .22s;
}
.tp-tile:hover{transform:translateY(-5px);border-color:var(--tp-violet);
    box-shadow:0 18px 40px rgba(109,40,217,.38)}

.tp-tile-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;
    background:linear-gradient(160deg,var(--tp-panel-2),var(--tp-bg-2))}
.tp-tile-media::after{  /* filigrana quando il reparto non ha ancora foto */
    content:"";position:absolute;inset:0;opacity:.10;
    background:url('../logo-white.svg') center/56% no-repeat;
}
.tp-tile-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    transition:transform .5s;z-index:1}
.tp-tile:hover .tp-tile-media img{transform:scale(1.07)}
.tp-tile-media::before{  /* sfumatura per staccare il testo dalla foto */
    content:"";position:absolute;inset:0;z-index:2;
    background:linear-gradient(180deg,rgba(21,21,47,0) 35%,rgba(21,21,47,.75) 100%);
}

.tp-tile-body{position:relative;z-index:3;display:flex;flex-direction:column;gap:.25rem;
    padding:.9rem 1rem 1rem;margin-top:-2.2rem}
.tp-tile-body b{font-family:var(--display);font-style:italic;font-size:1rem;
    text-transform:uppercase;line-height:1.15;color:#fff}
.tp-tile-body em{font-style:normal;font-size:.7rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--tp-cyan)}
.tp-tile-go{
    position:absolute;top:.75rem;right:.75rem;z-index:3;display:grid;place-items:center;
    width:30px;height:30px;border-radius:50%;color:#fff;
    background:rgba(21,21,47,.6);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(4px);
    transition:background .2s,transform .2s;
}
.tp-tile:hover .tp-tile-go{background:var(--tp-violet);border-color:var(--tp-violet);transform:translateX(2px)}

/* ---------- catalogo ---------- */
.catalog-head h2,.cat-sticky-title{font-family:var(--display);font-style:italic}
.catalog-head h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
.cat-sticky{background:rgba(10,10,18,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--tp-line)}
.filter{
    background:var(--tp-panel);border:1px solid var(--tp-line);color:var(--tp-muted);
    font-family:var(--display);font-style:italic;letter-spacing:.05em;border-radius:0;
    clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
    transition:.2s;
}
.filter:hover{color:var(--tp-ink);border-color:var(--tp-violet)}
.filter.is-active{background:var(--tp-grad);color:#fff;border-color:transparent;box-shadow:0 6px 18px rgba(109,40,217,.45)}

/* ---------- barra filtri del catalogo ---------- */
/* il filtro taglia è un residuo del tema moda: in un negozio di carte
   non ha nulla da filtrare, quindi resta fuori dalla barra */
[data-flt-sizes-group]{display:none !important}
.catalog-tools{background:var(--tp-panel);border:1px solid var(--tp-line)}
.flt-lbl,.flt-dash,.flt-toggle,.flt-toggle span{color:var(--tp-muted)}
.flt-price,.flt-select,.catalog-search .cs-input{
    background:var(--tp-panel-2);border:1px solid var(--tp-line);color:var(--tp-ink);border-radius:6px;
}
.flt-price:focus,.flt-select:focus{border-color:var(--tp-violet);outline:none;
    box-shadow:0 0 0 3px rgba(139,92,246,.22)}
.flt-select option{background:var(--tp-panel-2);color:var(--tp-ink)}
.cat-chip{background:var(--tp-panel-2);border:1px solid var(--tp-line);color:var(--tp-muted)}
.cat-chip:hover{border-color:var(--tp-cyan);color:var(--tp-cyan)}
.cat-count,.catalog-count{color:var(--tp-muted)}
.cat-kicker{color:var(--tp-cyan)}

/* ---------- card prodotto ---------- */
.product-card{
    background:var(--tp-panel);border:1px solid var(--tp-line);
    clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);
    transition:transform .22s,box-shadow .22s,border-color .22s;
}
.product-card:hover{transform:translateY(-6px);border-color:var(--tp-violet);box-shadow:0 18px 42px rgba(0,0,0,.6),0 0 0 1px rgba(139,92,246,.5)}
.card-media{background:linear-gradient(160deg,var(--tp-panel-2),var(--tp-bg-2));position:relative}
.card-media::after{content:"";position:absolute;inset:0;background:var(--tp-grad);opacity:0;transition:opacity .25s;mix-blend-mode:soft-light;pointer-events:none}
.product-card:hover .card-media::after{opacity:.5}
/* i collezionabili (box, figure, scatole) stanno meglio in un riquadro quasi
   quadrato: il 3/4 del tema moda allungava troppo le card */
.card-media{aspect-ratio:1/1}
.card-noimg{
    display:block;width:100%;height:100%;color:transparent;font-size:0;
    background:url('../logo-white.svg') center/54% no-repeat;opacity:.12;
}
.card-title a{font-family:var(--display);font-style:italic;font-size:.82rem;line-height:1.35;letter-spacing:.01em;color:var(--tp-ink)}
.card-title a:hover{color:var(--tp-cyan)}
.card-price{font-family:var(--display);font-style:italic;color:var(--tp-gold);font-size:1.05rem}
.card-price-old{color:var(--tp-muted);font-size:.8rem}
.card-add{
    background:var(--tp-grad);color:#fff;border:none;font-weight:700;border-radius:0;
    clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);
    box-shadow:0 4px 14px rgba(109,40,217,.45);
}
.card-add:hover{filter:brightness(1.15)}
.card-sale{background:var(--tp-pink);color:#fff;font-family:var(--display);font-style:italic;border-radius:0}
.card-soldout{background:rgba(10,10,18,.86);color:var(--tp-muted);border:1px solid var(--tp-line);font-family:var(--display);font-style:italic;border-radius:0}
.card-sizes i{background:rgba(10,10,18,.8);border:1px solid var(--tp-line);color:var(--tp-ink)}
.card-cat,.card-kicker{color:var(--tp-cyan)}

/* ---------- pannelli, drawer, modali ---------- */
.drawer,.menu-panel,.cart-foot,.np-card,.acc-card,.acc-page-card,.lang-menu,.pp-tab,.acc-tab,.co-thumb{
    background:var(--tp-panel);color:var(--tp-ink);border-color:var(--tp-line);
}
.drawer{border-left:1px solid var(--tp-line);box-shadow:-20px 0 60px rgba(0,0,0,.6)}
.drawer-head h2{font-family:var(--display);font-style:italic}
.drawer-close,.np-close,.acc-close{color:var(--tp-ink)}
.menu-item{color:var(--tp-ink);font-family:var(--display);font-style:italic;border-color:var(--tp-line)}
.menu-item:hover{color:var(--tp-cyan)}
.menu-sep{background:var(--tp-line)}
.overlay{background:rgba(4,4,10,.72);backdrop-filter:blur(3px)}
.to-top{background:var(--tp-panel);border:1px solid var(--tp-line);color:var(--tp-ink)}
.to-top:hover{background:var(--tp-violet);border-color:var(--tp-violet)}

/* ---------- form ---------- */
input,textarea,select{color:var(--tp-ink)}
.checkout input,.checkout textarea,.checkout select,.acc-page-form input,.co-coupon input,.catalog-search .cs-input,.contact-form input,.contact-form textarea{
    background:var(--tp-panel-2);border:1px solid var(--tp-line);color:var(--tp-ink);border-radius:2px;
}
.checkout input:focus,.checkout textarea:focus,.checkout select:focus,.contact-form input:focus,.contact-form textarea:focus{
    border-color:var(--tp-violet);box-shadow:0 0 0 3px rgba(139,92,246,.22);outline:none;
}
input::placeholder,textarea::placeholder{color:var(--tp-muted)}
label,.co-label{color:var(--tp-muted)}

/* ---------- checkout ---------- */
.checkout,.checkout-summary,.co-panel,.pay-box,.pm-opt,.cs-bank,.co-account-bar,.co-member-bar{
    background:var(--tp-panel);border-color:var(--tp-line);color:var(--tp-ink);
}
.co-progress b,.co-progress .is-active{color:var(--tp-cyan)}
.pm-opt.is-active,.pm-opt:hover{border-color:var(--tp-violet);background:var(--tp-panel-2)}

/* ---------- footer ---------- */
.site-footer{background:linear-gradient(180deg,var(--tp-bg-2) 0%,#07070f 100%);border-top:1px solid var(--tp-line);color:var(--tp-muted)}
.footer-logo{width:230px;margin-bottom:1rem}
.footer-col h4{font-family:var(--display);font-style:italic;color:var(--tp-ink);letter-spacing:.06em}
.footer-col a{color:var(--tp-muted)}
.footer-col a:hover{color:var(--tp-cyan)}
.footer-tag,.footer-info,.footer-vat,.footer-hours{color:var(--tp-muted)}
.footer-hours{margin-top:1rem;font-size:.78rem;line-height:1.5}
.footer-social a{color:var(--tp-ink);opacity:.8;transition:.2s}
.footer-social a:hover{color:var(--tp-cyan);opacity:1;transform:translateY(-2px)}
.fl-pill,.pay-badge{background:var(--tp-panel);border:1px solid var(--tp-line);color:var(--tp-muted)}
.footer-legal,.footer-powered{color:#6f6f95}
.footer-powered strong{color:var(--tp-muted)}

/* ---------- scheda prodotto ---------- */
.product-title,.pp-title{font-family:var(--display);font-style:italic}
.pp-price,.product-price{font-family:var(--display);font-style:italic;color:var(--tp-gold)}
.size-chip,.pp-tab,.acc-tab{background:var(--tp-panel-2);border-color:var(--tp-line);color:var(--tp-ink)}
.size-chip:hover,.size-chip.is-active{border-color:var(--tp-violet);background:var(--tp-violet);color:#fff}
.gallery-item,.look-media{background:var(--tp-panel-2);border-color:var(--tp-line)}
/* prodotto senza foto: filigrana del marchio al posto del riquadro vuoto */
.gallery-item.is-empty,.look-noimg{
    position:relative;display:block;aspect-ratio:1/1;font-size:0;color:transparent;
    background:linear-gradient(160deg,var(--tp-panel-2),var(--tp-bg-2));
}
.gallery-item.is-empty::after,.look-noimg::after{
    content:"";position:absolute;inset:0;opacity:.14;
    background:url('../logo-white.svg') center/38% no-repeat;
}
.gallery-item.is-empty{max-height:70vh}
.look-arrow{background:var(--tp-panel);border:1px solid var(--tp-line);color:var(--tp-ink)}
.look-add{background:var(--tp-grad);color:#fff;border:none}
.faq-list details,.faq-item{background:var(--tp-panel);border-color:var(--tp-line)}
/* corpo dei testi lunghi (scheda prodotto, pagine legali): contrasto pieno */
.pp-acc-body,.pp-acc-body p,.pp-acc-body li,.acc-body p,
.legal-section,.legal-section p,.legal-section li,.legal-sub{color:#dcdcf0}
.legal-section h2,.legal-section h3{color:var(--tp-ink)}
.legal-kicker{color:var(--tp-cyan)}
.legal-section a{color:var(--tp-cyan);text-decoration:underline}

/* stato disponibilità: badge parlante nel gergo del negozio */
.tp-stock{display:inline-flex;align-items:center;gap:.45rem;font-size:.72rem;letter-spacing:.12em;
    text-transform:uppercase;font-weight:600}
.tp-stock::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}
.tp-stock-in{color:var(--tp-green)}
.tp-stock-low{color:var(--tp-gold)}
.tp-stock-out{color:var(--tp-muted)}

/* ---------- banner cookie / consenso ---------- */
.cookie-banner{background:var(--tp-panel);border:1px solid var(--tp-line);color:var(--tp-ink);box-shadow:0 -10px 40px rgba(0,0,0,.6)}

/* ---------- mobile ---------- */
@media (max-width:900px){
    .brand img{height:48px}
    .tp-hero-stats{gap:1.6rem}
    .tp-tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
}
