/* ============ Il Tempio del Boss — theme ===================== */
:root{
    --bg:#ffffff;
    --bg-soft:#f6f1ea;
    --ink:#373a3d;           /* antracite — testi */
    --muted:#8a8178;
    --line:#e7e0d6;
    /* un solo font in tutto il sito (footer compreso): la variabile "serif"
       resta per compatibilità ma punta allo stesso Montserrat del testo */
    --serif:'Montserrat', system-ui, -apple-system, sans-serif;
    --sans:'Montserrat', system-ui, -apple-system, sans-serif;
    --maxw:1380px;
    --header-h:112px;
    --accent:#b0552f;        /* terracotta — accenti (badge, link) */
    --accent-dark:#8f4222;   /* terracotta scuro — hover accenti */
    --btn:#141414;           /* nero — bottoni */
    --btn-hover:#000;        /* nero pieno — hover bottoni */
    --accent-soft:#f7e9e0;   /* terracotta chiaro — card checkout */
    --accent-soft-line:#ecd5c5; /* bordo card terracotta chiaro */
    --brand-red:#d23726;     /* rosso del logo — solo piccoli dettagli */
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 10px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
    overflow-x:clip} /* la griglia prodotti full-bleed usa 100vw: niente scroll orizzontale da scrollbar */
body.drawer-open{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;letter-spacing:.3px}
button{font-family:inherit}

/* ---------- Buttons ---------- */
.btn-dark,.btn-outline,.btn-light{
    display:inline-block;padding:1rem 2.4rem;font-family:var(--sans);font-weight:400;
    font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border-radius:10px;
    transition:.25s;border:1px solid var(--ink);text-align:center;
}
.btn-dark{background:var(--btn);color:#fff;border-color:var(--btn)}
.btn-dark:hover{background:var(--btn-hover);border-color:var(--btn-hover)}
.btn-outline{background:transparent;color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--ink);border-color:#fff}
.btn-light:hover{background:transparent;color:#fff;border-color:#fff}
.btn-block{display:block;width:100%}
.link-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;padding:.6rem;width:100%}
.link-btn:hover{color:var(--ink)}

/* ---------- Header (LuisaViaRoma style) ---------- */
.site-header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line)}

/* Row 1 — announcement */
.topbar{display:flex;align-items:center;justify-content:center;gap:1rem;background:var(--bg-soft);
    padding:.5rem 1rem;font-size:.72rem;letter-spacing:.06em;color:#5b534a}
.topbar-arrow{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--ink);line-height:1;padding:0 .4rem;opacity:.55;transition:opacity .2s}
.topbar-arrow:hover{opacity:1}
.announce-msgs{position:relative;min-width:240px;max-width:70vw;height:1.2em;text-align:center}
.announce-msg{position:absolute;inset:0;opacity:0;transition:opacity .4s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.announce-msg.is-active{opacity:1}

/* Row 2 — nav · logo · icons */
.header-bar{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;
    align-items:center;gap:1rem;padding:1rem 1.6rem}
.hb-left{justify-self:start;display:flex;align-items:center;gap:1.7rem;min-width:0}
.hb-nav{display:flex;align-items:center;gap:1.7rem}
.hb-nav-link{font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink);white-space:nowrap;position:relative;padding:.2rem 0}
.hb-nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.hb-nav-link:hover::after{transform:scaleX(1)}
.brand{justify-self:center}
.brand img{height:52px;width:auto;object-fit:contain}
.hb-right{justify-self:end;display:flex;align-items:center;gap:.2rem}
.icon-btn{display:grid;place-items:center;width:42px;height:42px;border:none;background:none;color:var(--ink);cursor:pointer;border-radius:50%;transition:background .2s;position:relative}
.icon-btn:hover{background:var(--bg-soft)}
.cart-btn #cart-badge .badge-count{
    position:absolute;top:4px;right:4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;
    background:#25D366;color:#fff;font-size:.62rem;display:grid;place-items:center;line-height:1;font-weight:500; /* verde come i badge sconto */
}
.menu-btn{display:none;align-items:center;justify-content:center;width:42px;height:42px;border:none;background:none;cursor:pointer;color:var(--ink);border-radius:50%;transition:background .2s}
.menu-btn:hover{background:var(--bg-soft)}
.menu-ico{display:flex;flex-direction:column;gap:5px;width:20px}
.menu-ico span{height:1.5px;background:currentColor;width:100%}

/* Row 3 — sub-links · search */
.subbar{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
    padding:.65rem 1.6rem;border-top:1px solid var(--line)}
.subbar-links{display:flex;align-items:center;gap:1.9rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    font-size:.71rem;letter-spacing:.15em;text-transform:uppercase}
.subbar-links::-webkit-scrollbar{display:none}
.subbar-links a{color:var(--muted);white-space:nowrap;transition:color .2s}
.subbar-links a:hover{color:var(--ink)}
.subbar-links a.is-accent{color:var(--accent)}
.subbar-links a.is-accent:hover{color:var(--accent-dark)}
.subbar-search{display:flex;align-items:center;gap:.5rem;background:var(--bg-soft);border:1px solid transparent;
    border-radius:30px;padding:.5rem .95rem;flex:0 1 320px;min-width:200px;transition:border-color .2s,background .2s}
.subbar-search:focus-within{background:#fff;border-color:var(--line)}
.subbar-search svg{flex:none;color:var(--muted)}
.subbar-search input{border:none;background:none;outline:none;font-family:inherit;font-size:.8rem;color:var(--ink);width:100%}
.subbar-search input::placeholder{color:var(--muted)}

/* Live search dropdown */
.subbar-search{position:relative}
.search-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:min(420px,86vw);
    background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 26px 64px rgba(20,15,12,.2);
    overflow:hidden;opacity:0;visibility:hidden;transform:translateY(8px);
    transition:opacity .25s ease,transform .3s cubic-bezier(.2,.9,.3,1.2),visibility .25s;z-index:70}
.subbar-search.is-active .search-dropdown:not(:empty){opacity:1;visibility:visible;transform:translateY(0)}
.search-dropdown::before{content:"";position:absolute;top:-6px;right:24px;width:12px;height:12px;background:#fff;
    border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.sd-list{position:relative;padding:.4rem}
.sd-item{display:flex;align-items:center;gap:.8rem;padding:.55rem .6rem;border-radius:7px;color:var(--ink);
    animation:sd-in .42s ease both;animation-delay:calc(var(--i,0) * .05s)}
.sd-item:hover{background:var(--bg-soft)}
.sd-thumb{flex:none;width:46px;height:58px;border-radius:4px;background:var(--bg-soft) center/cover no-repeat}
.sd-info{display:flex;flex-direction:column;gap:.06rem;min-width:0;flex:1}
.sd-name{font-family:var(--serif);font-size:1.05rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sd-cat{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.sd-price{font-size:.82rem;color:#544b41;margin-top:.1rem}
.sd-go{flex:none;color:var(--muted);font-size:1.4rem;line-height:1}
.sd-all{display:block;text-align:center;padding:.85rem;margin-top:.2rem;border-top:1px solid var(--line);
    font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);transition:background .2s}
.sd-all:hover{background:var(--bg-soft)}
.sd-empty{padding:1.8rem 1.4rem;text-align:center;display:flex;flex-direction:column;gap:.35rem}
.sd-empty strong{font-family:var(--serif);font-size:1.15rem;font-weight:500}
.sd-empty span{font-size:.82rem;color:var(--muted)}
@keyframes sd-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}

/* ---------- Home: transparent header over hero, solid white on scroll ---------- */
.page-home .site-header{position:fixed;left:0;right:0;top:0;transition:background .35s,border-color .35s}
.page-home .site-header .topbar,
.page-home .site-header .subbar,
.page-home .site-header .subbar-search,
.page-home .site-header .brand img{transition:background .35s,color .35s,border-color .35s,filter .35s}
.page-home .site-header .topbar-arrow,
.page-home .site-header .hb-nav-link,
.page-home .site-header .icon-btn,
.page-home .site-header .menu-btn,
.page-home .site-header .subbar-links a{transition:color .25s,background .25s}

.page-home .site-header:not(.is-scrolled){background:transparent;border-bottom-color:transparent}
.page-home .site-header:not(.is-scrolled) .topbar{background:transparent;color:#fff}
.page-home .site-header:not(.is-scrolled) .topbar-arrow{color:#fff}
.page-home .site-header:not(.is-scrolled) .hb-nav-link{color:#fff}
.page-home .site-header:not(.is-scrolled) .hb-nav-link::after{background:#fff}
.page-home .site-header:not(.is-scrolled) .brand img{filter:brightness(0) invert(1)}
.page-home .site-header:not(.is-scrolled) .icon-btn{color:#fff}
.page-home .site-header:not(.is-scrolled) .icon-btn:hover{background:rgba(255,255,255,.16)}
.page-home .site-header:not(.is-scrolled) .menu-btn{color:#fff}
.page-home .site-header:not(.is-scrolled) .menu-btn:hover{background:rgba(255,255,255,.16)}
.page-home .site-header:not(.is-scrolled) .subbar{border-top-color:rgba(255,255,255,.25)}
.page-home .site-header:not(.is-scrolled) .subbar-links a{color:rgba(255,255,255,.82)}
.page-home .site-header:not(.is-scrolled) .subbar-links a:hover{color:#fff}
.page-home .site-header:not(.is-scrolled) .subbar-links a.is-accent{color:#f0d9cb}
.page-home .site-header:not(.is-scrolled) .subbar-search{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28)}
.page-home .site-header:not(.is-scrolled) .subbar-search svg{color:rgba(255,255,255,.8)}
.page-home .site-header:not(.is-scrolled) .subbar-search input{color:#fff}
.page-home .site-header:not(.is-scrolled) .subbar-search input::placeholder{color:rgba(255,255,255,.72)}
.page-home .site-header:not(.is-scrolled) .cart-btn #cart-badge .badge-count{background:#25D366;color:#fff}

/* ---------- Video hero ---------- */
.video-hero{position:relative;height:88vh;min-height:540px;max-height:920px;overflow:hidden;background:#0e0d0c}
.video-hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.18) 38%,rgba(0,0,0,.62) 100%)}
.video-hero-inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;color:#fff;padding:0 1.5rem}
.video-hero-kicker{letter-spacing:.36em;text-transform:uppercase;font-size:.74rem;opacity:.9;margin:0 0 1.1rem}
.video-hero-title{font-size:clamp(2.8rem,6.5vw,5.6rem);line-height:1.02;color:#fff;margin:0 0 1rem;max-width:14ch}
.video-hero-sub{font-size:clamp(.95rem,1.6vw,1.15rem);font-weight:300;opacity:.92;margin:0 0 2.1rem;max-width:42ch}
.video-hero-cta{display:flex;gap:.9rem;flex-wrap:wrap;justify-content:center}
.video-hero .btn-dark,.video-hero .btn-light{min-width:200px}
.video-hero .btn-ghost{display:inline-block;padding:1rem 2.4rem;font-family:var(--sans);font-weight:400;font-size:.72rem;
    letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border-radius:10px;border:1px solid rgba(255,255,255,.7);
    color:#fff;background:transparent;transition:.25s;text-align:center;min-width:200px}
.video-hero .btn-ghost:hover{background:#fff;color:#111;border-color:#fff}

/* ---------- Hero slider ---------- */
.hero-slider{position:relative;background:#0e0d0c}
.slider-track{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.slider-track::-webkit-scrollbar{display:none}
.slide{position:relative;flex:0 0 100%;scroll-snap-align:center;height:92vh;min-height:560px;max-height:1080px}
.slide-media{position:absolute;inset:0}
.slide-media img{width:100%;height:100%;object-fit:cover}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,
    rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 12%, rgba(0,0,0,0) 26%,   /* scurisce l'alto: topbar e menu bianchi leggibili */
    rgba(0,0,0,.05) 55%, rgba(0,0,0,.55) 100%)}
.slide-caption{position:absolute;left:0;right:0;bottom:7%;z-index:2;text-align:center;color:#fff;padding:0 1.5rem}
.slide-kicker{letter-spacing:.34em;text-transform:uppercase;font-size:.72rem;opacity:.85;margin:0 0 .5rem}
.slide-title{font-size:clamp(2.6rem,6vw,5rem);line-height:1;margin:0 0 1.4rem;color:#fff}
.slider-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:50px;height:50px;border-radius:50%;
    border:1px solid rgba(255,255,255,.5);background:rgba(0,0,0,.18);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;
    display:grid;place-items:center;transition:.2s;backdrop-filter:blur(2px)}
.slider-nav:hover{background:#fff;color:#111}
.slider-nav.prev{left:3%}
.slider-nav.next{right:3%}
.slider-dots{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:.5rem;z-index:3}
.slider-dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.45);cursor:pointer;padding:0}
.slider-dot.is-active{background:#fff;width:22px;border-radius:4px}

/* ---------- Catalog ---------- */
.catalog{max-width:var(--maxw);margin:4rem auto 5rem;padding:0 1.6rem}
.catalog-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;border-bottom:1px solid var(--line);padding-bottom:1.1rem}
.catalog-head h2{font-size:2.2rem;text-transform:uppercase;letter-spacing:.06em}
.catalog-head-main{margin-right:auto;min-width:0}
.catalog-search{position:relative;flex:1 1 220px;max-width:340px;min-width:0}
.catalog-search .cs-ico{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.catalog-search .cs-input{width:100%;padding:.62rem .9rem .62rem 2.5rem;border:1px solid var(--line);border-radius:999px;
    background:#fff;font:inherit;font-size:.9rem;color:var(--ink);-webkit-appearance:none;appearance:none;
    transition:border-color .2s,box-shadow .2s}
.catalog-search .cs-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.catalog-search .cs-input::placeholder{color:var(--muted)}
.catalog-search .cs-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;height:14px;width:14px;cursor:pointer;
    background:var(--muted);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 6l12 12M18 6 6 18' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 6l12 12M18 6 6 18' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
/* riga singola scorrevole: niente wrap su più righe, scrollbar nascosta */
.filter-bar{display:flex;gap:.4rem;flex-wrap:nowrap;max-width:100%;min-width:0;overflow-x:auto;
    padding-bottom:.25rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.filter-bar::-webkit-scrollbar{display:none}
.filter{flex:none;white-space:nowrap;background:#fff;border:1px solid var(--line);color:var(--muted);
    padding:.48rem 1rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;
    border-radius:30px;transition:.2s}
.filter:hover{color:var(--ink);border-color:var(--ink)}
.filter.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}

/* Griglia prodotti full-bleed: esce dal contenitore e occupa tutta la
   finestra, immagini a filo (niente margini, padding né arrotondamenti) */
.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;
    margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.product-card{position:relative}
.card-media{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;background:var(--bg-soft)}
.card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .5s,transform .6s}
.card-media-hover{opacity:0}
.card-media:hover .card-media-hover{opacity:1}
.card-media:hover img{transform:scale(1.04)}
.card-noimg{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-size:2rem;color:var(--muted)}
.card-tag{position:absolute;top:.7rem;left:.7rem;background:rgba(255,255,255,.92);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .6rem;border-radius:30px}
.card-sizes{position:absolute;left:0;bottom:0;z-index:2;display:flex;gap:.55rem;max-width:92%;overflow:hidden;
    background:rgba(255,255,255,.94);padding:.32rem .6rem;border-radius:0 4px 0 0;
    font-size:.63rem;letter-spacing:.05em;color:var(--ink)}
.card-sizes i{font-style:normal;white-space:nowrap}
/* scorciatoia admin: modifica rapida dal front (visibile solo agli amministratori) */
.card-edit{position:absolute;bottom:.7rem;right:.7rem;z-index:3;display:inline-flex;align-items:center;gap:.35rem;
    background:rgba(20,20,20,.82);color:#fff;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;
    padding:.34rem .65rem;border-radius:30px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .2s}
.card-edit:hover{background:#000;color:#fff}
.card-body{padding:.6rem .55rem .2rem}
.card-title{font-family:var(--sans);font-size:.76rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;line-height:1.4}
.card-title a:hover{color:var(--muted)}
.card-row{display:flex;align-items:center;justify-content:space-between;margin-top:.2rem}
.card-price{font-size:.82rem;color:var(--muted)}
.card-add{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.2rem;line-height:1;color:var(--ink);transition:.2s}
.card-add:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.empty{color:var(--muted);padding:3rem 0;text-align:center}

/* ---------- Single product (editorial gallery + purchase panel) ---------- */
/* Desktop: galleria full-bleed a filo dei bordi, pannello acquisto a destra */
.product-single{max-width:none;margin:0 0 4rem;padding:0;
    display:grid;grid-template-columns:minmax(0,1fr) clamp(400px,34vw,540px);gap:0;align-items:start}

/* Left: gallery — all images, editorial 2-up */
.product-stage{min-width:0}
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}
.gallery-item{margin:0;position:relative;background:var(--bg-soft);border-radius:0;overflow:hidden;aspect-ratio:3/4}
.gallery-item:last-child:nth-child(odd){grid-column:1/-1;aspect-ratio:3/4}
.gallery-item img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.gallery-item:hover img{transform:scale(1.03)}
.gallery-item.is-empty{grid-column:1/-1;aspect-ratio:3/4;display:grid;place-items:center;font-family:var(--serif);color:var(--muted);font-size:2rem}
/* una sola foto: contenuta e centrata (si dimensiona sull'altezza dello schermo),
   niente full-width gigante — con 2+ foto il layout resta invariato */
@media(min-width:901px){
    .gallery-item:only-child:last-child{grid-column:1/-1;justify-self:center;
        width:min(100%,calc((100vh - var(--header-h) - 2rem)*.75))}
    /* il bottone "Indossa" segue la foto centrata (fallback: resta in alto a destra) */
    .product-stage:has(.gallery-item:only-child) .tryon-btn{
        right:calc((100% - min(100%,calc((100vh - var(--header-h) - 2rem)*.75)))/2 + 14px)}
}

/* Right: purchase panel (padding proprio: la griglia è a gap 0) */
.product-info{min-width:0;display:flex;flex-direction:column;
    padding:2.5rem clamp(1.6rem,3.2vw,3.4rem) 0 clamp(1.6rem,2.6vw,2.8rem)}
.product-eyebrow{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin:0 0 .75rem}
.product-eyebrow a:hover{color:var(--ink)}
.product-name{font-family:var(--sans);font-weight:400;font-size:1.65rem;line-height:1.15;letter-spacing:.06em;
    text-transform:uppercase;margin-bottom:1rem}
.price-block{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;margin-bottom:1.6rem}
.price-current{font-size:1.35rem;font-weight:400}
.price-badge{background:#25D366;color:#fff; /* verde WhatsApp come le card */
    font-size:.7rem;font-weight:600;letter-spacing:.03em;padding:.24rem .55rem;border-radius:999px}
.price-old{font-size:1rem;color:var(--muted);text-decoration:line-through}
.price-note{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-left:.15rem}

/* Size */
.size-block{margin-bottom:1.25rem}
/* accessori con la sola "taglia unica": niente selettore, ma le chip restano
   nel DOM perché il JS ci risolve la variante (prezzo, foto, disponibilità) */
.size-block.is-hidden{display:none}
.size-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.6rem}
.size-head span{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}
.size-guide{font-size:.72rem;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.size-guide:hover{color:var(--ink)}
.size-opts{display:flex;flex-wrap:wrap;gap:.5rem}
.size-chip{min-width:64px;padding:.7rem 1.15rem;border:1px solid var(--line);background:#fff;cursor:pointer;
    font-family:inherit;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border-radius:2px;transition:.2s}
.size-chip:hover{border-color:var(--ink)}
.size-chip.is-active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}

/* Availability */
.stock-line{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#2e7d4f;margin:0 0 1.3rem}
.stock-dot{width:8px;height:8px;border-radius:50%;background:#2e9d5b;box-shadow:0 0 0 3px rgba(46,157,91,.18)}

/* Buy */
.buy-form{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.4rem}
.buy-add{padding:1.15rem 1.2rem;border-radius:2px}
.wishlist-link{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:none;border:none;cursor:pointer;color:var(--muted);
    font-family:var(--sans);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.55rem 0;transition:color .2s}
.wishlist-link:hover{color:var(--ink)}
.wishlist-link .wl-ico{transition:color .2s}
.wishlist-link .wl-added{display:none}
.wishlist-link.is-saved{color:var(--ink)}
.wishlist-link.is-saved .wl-ico{color:#c0392b;fill:#c0392b}
.wishlist-link.is-saved .wl-add{display:none}
.wishlist-link.is-saved .wl-added{display:inline}

/* Installments box */
.pay-box{border:1px solid var(--line);border-radius:8px;margin-bottom:1.6rem;overflow:hidden}
.pay-box summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.7rem;padding:.95rem 1.1rem}
.pay-box summary::-webkit-details-marker{display:none}
.pay-brand{flex:none;background:var(--bg-soft);color:var(--ink);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
    padding:.32rem .55rem;border-radius:20px;font-weight:500}
.pay-line{flex:1;font-size:.82rem;color:#544b41;line-height:1.35}
.pay-line strong{color:var(--ink);font-weight:500}
.pay-chevron{flex:none;color:var(--muted);transition:transform .25s}
.pay-box[open] .pay-chevron{transform:rotate(180deg)}
.pay-body{padding:0 1.1rem 1.1rem;font-size:.85rem;color:#544b41;line-height:1.6}
.pay-body>p{margin:0 0 .8rem}
.pay-plan{list-style:none;margin:0;padding:.7rem 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.5rem}
.pay-plan li{display:flex;justify-content:space-between;align-items:center;font-size:.82rem}
.pay-plan li span{color:var(--muted)}
.pay-plan li strong{font-weight:500;color:var(--ink)}

/* Completa il look */
.look{margin-bottom:1.6rem;padding-bottom:1.6rem;border-bottom:1px solid var(--line)}
.look-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.look-head h2{font-family:var(--sans);font-weight:500;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}
.look-nav{display:flex;gap:.35rem}
.look-arrow{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:50%;cursor:pointer;
    color:var(--ink);font-size:1.2rem;line-height:1;display:grid;place-items:center;transition:.2s}
.look-arrow:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.look-arrow:disabled{opacity:.3;cursor:default;background:#fff;color:var(--ink);border-color:var(--line)}
.look-track{display:flex;gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:.2rem}
.look-track::-webkit-scrollbar{display:none}
.look-card{flex:0 0 100%;min-width:0;overflow:hidden;scroll-snap-align:start;display:flex;align-items:center;gap:.8rem;
    background:var(--bg-soft);border-radius:8px;padding:.6rem .7rem .6rem .6rem}
.look-media{flex:none;width:64px;height:80px;border-radius:5px;overflow:hidden;background:#fff;display:block}
.look-media img{width:100%;height:100%;object-fit:cover}
.look-noimg{display:grid;place-items:center;height:100%;font-family:var(--serif);color:var(--muted);font-size:.9rem}
.look-body{flex:1 1 auto;min-width:0;overflow:hidden}
.look-name{display:block;font-family:var(--serif);font-size:1.05rem;line-height:1.2;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.look-name:hover{color:var(--muted)}
.look-price{display:flex;align-items:baseline;gap:.4rem;margin-top:.15rem;font-size:.85rem;color:#544b41}
.look-price s{color:var(--muted);font-size:.76rem}
.look-add{flex:none;background:#fff;border:1px solid var(--ink);color:var(--ink);cursor:pointer;
    font-family:var(--sans);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
    padding:.55rem .8rem;border-radius:2px;transition:.2s;white-space:nowrap}
.look-add:hover{background:var(--ink);color:#fff}

/* Shipping / returns rows */
.ship-rows{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.6rem}
.ship-row{display:flex;align-items:center;gap:.7rem;background:var(--bg-soft);border-radius:8px;padding:.85rem 1rem;
    font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.ship-row svg{flex:none;color:var(--ink)}
.ship-more{margin-left:auto;font-size:.68rem;letter-spacing:.06em;color:var(--muted);text-decoration:underline;text-underline-offset:3px;text-transform:none}
.ship-more:hover{color:var(--ink)}

/* Description + details accordions */
.product-meta{border-top:1px solid var(--line)}
.product-meta details{border-bottom:1px solid var(--line)}
.product-meta summary{list-style:none;cursor:pointer;padding:1.05rem 0;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.product-meta summary::-webkit-details-marker{display:none}
.product-meta summary::after{content:"+";font-size:1.2rem;color:var(--muted)}
.product-meta details[open] summary::after{content:"\2013"}
.product-meta .pm-content{padding:0 0 1.1rem;font-size:.88rem;color:#544b41;line-height:1.7}
.pm-desc{line-height:1.85}
/* etichetta composizione sopra le istruzioni di cura */
.pm-label{display:inline-block;margin:0 0 .6rem;padding:.3rem .7rem;border:1px solid var(--line);
    border-radius:30px;background:var(--bg-soft);color:var(--ink);
    font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}

/* «Completa il tuo look» ripetuto in fondo alla scheda, come riga di correlati */
.look-related{max-width:var(--maxw);margin:3.5rem auto 4rem;padding:0 1.6rem}
.look-related-head{text-align:center;margin-bottom:1.8rem}
.look-related-head h2{font-size:1.8rem;text-transform:uppercase;letter-spacing:.06em}
.look-related-head p{margin:.5rem 0 0;color:var(--muted);font-size:.9rem}
@media(max-width:680px){
    .look-related{margin:2.4rem auto 3rem;padding:0 1rem}
    .look-related-head h2{font-size:1.4rem}
}

/* ---------- Mobile buy bar ---------- */
.mobile-buybar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:55;background:#fff;border-top:1px solid var(--line);
    padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom));gap:.8rem;align-items:center;box-shadow:0 -6px 18px rgba(0,0,0,.06)}
.mb-price{font-size:1.05rem;font-weight:400;white-space:nowrap;display:flex;align-items:baseline;gap:.4rem}
.mb-old{font-size:.82rem;color:var(--muted);text-decoration:line-through}
.mb-add{flex:1;padding:.95rem 1rem}

/* ---------- Modale modifica rapida (admin sul front) ---------- */
.adm-edit-modal{position:fixed;inset:0;z-index:9700;display:none}
.adm-edit-modal.is-open{display:block}
.aem-backdrop{position:absolute;inset:0;background:rgba(20,15,12,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.aem-shell{position:absolute;inset:2.5vh 2.5vw;margin:auto;max-width:1180px;background:#fff;border-radius:12px;
    overflow:hidden;display:flex;flex-direction:column;box-shadow:0 40px 90px rgba(20,15,12,.45)}
.aem-head{display:flex;align-items:center;gap:1rem;padding:.65rem .8rem .65rem 1.2rem;border-bottom:1px solid var(--line);background:#fff}
.aem-title{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase}
.aem-open-full{margin-left:auto;font-size:.72rem;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.aem-open-full:hover{color:var(--ink)}
.aem-x{flex:none;width:36px;height:36px;border:none;border-radius:50%;background:var(--bg-soft);color:var(--ink);
    font-size:1.35rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s}
.aem-x:hover{background:var(--ink);color:#fff}
.aem-frame{flex:1;width:100%;border:none;background:#fff}
@media(max-width:680px){.aem-shell{inset:0;border-radius:0}}

/* ---------- Drawers ---------- */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:opacity .3s;z-index:80}
.overlay.is-visible{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;height:100%;width:420px;max-width:90vw;background:#fff;z-index:90;
    transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-10px 0 40px rgba(0,0,0,.12)}
.drawer.is-open{transform:translateX(0)}
.drawer-close{position:absolute;top:1.1rem;right:1.1rem;width:42px;height:42px;border-radius:50%;border:none;background:var(--ink);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;z-index:2}
/* ----- Menu mobile: voci uniformi (sans come il logotipo) + pannelli drill-down ----- */
.drawer-menu{padding:0}
.menu-viewport{position:relative;flex:1;overflow:hidden;margin-top:4.4rem}
.menu-panel{position:absolute;inset:0;display:flex;flex-direction:column;overflow-y:auto;background:#fff;
    padding:.4rem 2.2rem 2rem;transform:translateX(103%);transition:transform .33s cubic-bezier(.4,0,.2,1)}
.menu-panel-root{transform:none}
.menu-panel-root.is-left{transform:translateX(-28%)}
.menu-panel-sub{z-index:2}
.menu-panel-sub.is-active{transform:none}
/* tutte le voci identiche: stesso font, stesso corpo, stesso colore */
.menu-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;
    font-family:var(--sans);font-size:.9rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;
    color:var(--ink);padding:1.05rem 0;background:none;border:none;border-bottom:1px solid var(--line);
    cursor:pointer;text-align:left;line-height:1.35;
    transition:opacity .2s;-webkit-tap-highlight-color:transparent}
.menu-item:hover{opacity:.55}
.menu-item svg{flex:none;opacity:.45;transition:transform .25s ease,opacity .2s}
.menu-item:hover svg{transform:translateX(3px);opacity:.8}
/* sottomenu: ritorno discreto + intestazione del pannello */
.menu-back{display:inline-flex;align-items:center;gap:.45rem;align-self:flex-start;background:none;border:none;cursor:pointer;
    font-family:var(--sans);font-size:.68rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;
    color:var(--muted);padding:.9rem 0 .1rem;text-align:left;transition:color .2s;-webkit-tap-highlight-color:transparent}
.menu-back:hover{color:var(--ink)}
.menu-back svg{flex:none}
.menu-panel-name{font-family:var(--sans);font-size:1.02rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
    color:var(--ink);padding:.45rem 0 1rem;border-bottom:1px solid var(--ink);margin-bottom:.2rem}
.menu-sep{height:0;background:none;margin:1.5rem 0 .1rem} /* le righe le fanno già gli item: qui solo respiro */

.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:1.4rem 1.6rem;border-bottom:1px solid var(--line)}
.drawer-head h2{font-size:1.5rem}
.drawer-head .drawer-close{position:static;width:38px;height:38px;font-size:1.3rem}
.drawer-body{flex:1;overflow-y:auto;display:flex;flex-direction:column}
.cart-empty{padding:3rem 1.6rem;text-align:center;color:var(--muted);display:grid;gap:1.4rem;place-items:center}
.cart-lines{list-style:none;margin:0;padding:.5rem 1.6rem;flex:1}
.cart-line{display:grid;grid-template-columns:64px 1fr auto;gap:.9rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.cl-media{display:block;width:64px;height:80px;background:var(--bg-soft);border-radius:3px;overflow:hidden}
.cl-media img{width:100%;height:100%;object-fit:cover}
.cl-name{font-family:var(--serif);font-size:1.05rem;line-height:1.2;display:block}
.cl-price{font-size:.8rem;color:var(--muted);margin:.2rem 0 .5rem}
.cl-qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:30px;overflow:hidden}
.qbtn{width:28px;height:28px;border:none;background:none;cursor:pointer;font-size:1rem;line-height:1;color:var(--ink)}
.qbtn:hover{background:var(--bg-soft)}
.qnum{min-width:26px;text-align:center;font-size:.85rem}
.cl-right{text-align:right;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end}
.cl-total{font-size:.9rem}
.cl-remove{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.7rem;letter-spacing:.06em;text-decoration:underline;text-underline-offset:2px;padding:0}
.cl-remove:hover{color:#a3261f}
.cart-foot{padding:1.4rem 1.6rem;border-top:1px solid var(--line);background:#fff}
.cart-subtotal{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:1rem}
.cart-subtotal strong{font-size:1.2rem}

/* ---------- Checkout (Shopify-style, one page) ---------- */
.checkout{max-width:1180px;margin:1.6rem auto 3rem;padding:0 1.6rem;display:grid;grid-template-columns:1.25fr .9fr;gap:3.4rem;align-items:start}
.co-block{margin-bottom:1.6rem}
.co-block-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem}
.co-block-head h2{font-size:1.15rem}
.co-step{flex:none;width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:.74rem;display:grid;place-items:center;font-weight:500}
.field{margin-bottom:.7rem}
.checkout .row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.checkout .row-3{grid-template-columns:1fr 1.4fr 1fr}
.checkout input,.checkout textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:.95rem 1rem;font-family:inherit;font-size:.95rem;background:#fff;transition:border-color .2s,box-shadow .2s}
.checkout input:focus,.checkout textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,20,19,.08)}
.checkout textarea{min-height:70px;resize:vertical}
/* select (nazione, provincia) allineati agli altri campi: stessa altezza, chevron custom */
.checkout select{width:100%;border:1px solid var(--line);border-radius:6px;padding:.95rem 2.5rem .95rem 1rem;
    font-family:inherit;font-size:.95rem;color:var(--ink);cursor:pointer;
    -webkit-appearance:none;appearance:none;
    background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%239a9085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .85rem center/16px;
    transition:border-color .2s,box-shadow .2s}
.checkout select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,20,19,.08)}
.field-label{display:block;margin-bottom:.35rem;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.field-hint{display:block;margin-top:.35rem;font-size:.78rem;color:var(--muted)}
.co-notes{margin-top:.7rem}
.field-error{display:block;color:#a3261f;font-size:.78rem;margin-top:.3rem}
.radio{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:6px;margin-bottom:.6rem;cursor:pointer;font-size:.9rem;transition:border-color .2s,background .2s}
.radio:hover{border-color:var(--ink)}
.radio:has(input:checked){border-color:var(--ink);background:var(--bg-soft)}
.radio input{accent-color:var(--ink)}
.co-pay{margin-top:.6rem;padding:1.1rem}
.co-secure{display:flex;align-items:center;justify-content:center;gap:.45rem;margin-top:.9rem;font-size:.76rem;color:var(--muted)}
.co-secure svg{flex:none}
.checkout-summary{background:var(--accent-soft);border:1px solid var(--accent-soft-line);border-radius:10px;padding:1.6rem;position:sticky;top:calc(var(--header-h) + 14px)}
.co-sum-title{font-size:1.2rem;margin-bottom:1.1rem}
.co-items{list-style:none;margin:0 0 1.1rem;padding:0;display:flex;flex-direction:column;gap:.9rem;max-height:46vh;overflow-y:auto}
.co-item{display:flex;align-items:center;gap:.85rem}
.co-thumb{position:relative;flex:none;width:54px;height:66px;border-radius:6px;background:#fff center/cover no-repeat;border:1px solid var(--line)}
.co-thumb img{width:100%;height:100%;object-fit:cover;border-radius:6px}
.co-qty{position:absolute;top:-8px;right:-8px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--muted);color:#fff;font-size:.68rem;display:grid;place-items:center;line-height:1}
.co-item-name{flex:1;min-width:0;font-size:.88rem;line-height:1.3}
.co-item-meta{display:block;margin-top:.15rem;font-size:.75rem;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}
.co-item-price{font-size:.88rem;white-space:nowrap}
.co-row{display:flex;justify-content:space-between;align-items:center;padding:.45rem 0;font-size:.9rem;color:#544b41;border-top:1px solid var(--line)}
.co-free{color:#2e7d4f;font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}
.cs-total{display:flex;justify-content:space-between;align-items:center;margin-top:.7rem;padding-top:.9rem;border-top:1px solid var(--line);font-size:1.05rem}
.cs-total strong{font-size:1.4rem}
.checkout-empty,.checkout-success{max-width:560px;margin:5rem auto;text-align:center;padding:0 1.6rem;display:grid;gap:1.2rem;place-items:center}
.checkout-success .cs-check{width:64px;height:64px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:1.8rem}
.checkout-success h1{font-size:2.4rem}
.cs-amount strong{font-size:1.2rem}
.cs-note{color:var(--muted);font-size:.9rem}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid #000;background:#0e0d0c;color:#f4f0ea;margin-top:2rem;padding:3.4rem 1.6rem 2rem}
.footer-top{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:2.4rem}
.footer-brand{padding-right:1.5rem}
.footer-logo{height:38px;width:auto;filter:brightness(0) invert(1);margin-bottom:1rem}
.footer-tag{font-size:.85rem;line-height:1.6;color:#9a9087;max-width:280px;margin:0}
.footer-col h4{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#fff;margin:0 0 1.1rem}
.footer-col a{display:block;font-size:.85rem;color:#b8aea2;margin-bottom:.65rem;transition:color .2s}
.footer-col a:hover{color:#fff}
.footer-social{display:flex;gap:.95rem;margin-top:.2rem}
.footer-col .footer-social a{display:inline-flex;align-items:center;justify-content:center;margin-bottom:0}
.footer-social svg{display:block}
.footer-locale{max-width:var(--maxw);margin:2.8rem auto 0;display:flex;justify-content:center;gap:.7rem}
.fl-pill{display:inline-flex;align-items:center;gap:.4rem;border:1px solid #2c2824;border-radius:20px;padding:.45rem 1rem;font-size:.76rem;color:#cfc6bb}
.footer-pay{max-width:var(--maxw);margin:1.4rem auto 0;display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem}
.pay-badge{display:inline-flex;align-items:center;height:26px;padding:0 .6rem;border-radius:5px;background:#f4f0ea;color:#161413;font-size:.66rem;font-weight:600;letter-spacing:.02em}
.footer-bottom{max-width:var(--maxw);margin:2rem auto 0;padding-top:1.6rem;border-top:1px solid #221f1c;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.8rem}
.footer-legal{margin:0;font-size:.76rem;color:#8a8178}
.footer-powered{font-size:.76rem;color:#8a8178;transition:color .2s}
.footer-powered strong{color:var(--accent);font-weight:600}
.footer-powered:hover{color:#cfc6bb}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr;gap:2rem}.footer-brand{grid-column:1 / -1;padding-right:0}}
@media(max-width:560px){.footer-top{grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column;text-align:center}}

/* ---------- Newsletter popup ---------- */
.np-modal{position:fixed;inset:0;z-index:9500;display:flex;align-items:center;justify-content:center;padding:1.2rem;
    opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s}
.np-modal.is-open{opacity:1;visibility:visible}
.np-backdrop{position:absolute;inset:0;background:rgba(20,15,12,.55);backdrop-filter:blur(2px)}
.np-card{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;width:min(860px,100%);max-height:calc(100vh - 2.4rem);
    background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 40px 90px rgba(20,15,12,.4);
    transform:translateY(16px) scale(.98);transition:transform .4s cubic-bezier(.2,.9,.3,1.2)}
.np-modal.is-open .np-card{transform:translateY(0) scale(1)}
.np-close{position:absolute;top:.7rem;right:.7rem;z-index:3;width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;
    background:rgba(255,255,255,.85);color:var(--ink);font-size:1.6rem;line-height:1;display:grid;place-items:center;transition:background .2s}
.np-close:hover{background:#fff}
.np-aside{background:linear-gradient(150deg,#1b1815,#2c2620);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;padding:2.4rem}
.np-logo{height:64px;width:auto;filter:brightness(0) invert(1);opacity:.96}
.np-aside-tag{font-family:var(--serif);font-size:1.5rem;color:#f4f0ea;text-align:center;line-height:1.3;margin:0}
.np-body{padding:2.6rem 2.4rem;overflow-y:auto;display:flex;flex-direction:column;justify-content:center}
.np-title{font-size:1.9rem;margin-bottom:.6rem}
.np-sub{color:var(--muted);font-size:.92rem;line-height:1.6;margin:0 0 1.6rem}
.np-form{display:flex;flex-direction:column;gap:1.2rem}
.np-field{position:relative}
.np-field input{width:100%;border:none;border-bottom:1px solid var(--line);background:none;padding:1.2rem 0 .5rem;font-family:inherit;font-size:.95rem;color:var(--ink);outline:none;transition:border-color .2s}
.np-field input:focus{border-color:var(--ink)}
.np-field label{position:absolute;left:0;top:1.1rem;color:var(--muted);font-size:.95rem;pointer-events:none;transition:.2s}
.np-field input:focus+label,.np-field input:not(:placeholder-shown)+label{top:-.2rem;font-size:.72rem;letter-spacing:.04em;color:var(--ink)}
.np-consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.74rem;line-height:1.5;color:var(--muted)}
.np-consent input{margin-top:.15rem;flex:none;accent-color:var(--ink)}
.np-consent a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.np-submit{margin-top:.4rem}
.np-success{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.np-success .np-sub{margin-bottom:1.4rem}
.np-check{width:60px;height:60px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:1.7rem;margin-bottom:.6rem}

/* ---------- Checkout: Stripe + member ---------- */
.co-express{margin-bottom:1rem}
.co-express:empty{display:none}
.co-or{display:flex;align-items:center;text-align:center;color:var(--muted);font-size:.74rem;letter-spacing:.04em;margin:.4rem 0 1.2rem}
.co-or::before,.co-or::after{content:"";flex:1;height:1px;background:var(--line)}
.co-or span{padding:0 .9rem}
#payment-element{margin-bottom:.3rem}
.co-pay-msg{margin-top:.6rem;font-size:.85rem;color:#a3261f}
.co-alert{background:#fbeae8;border:1px solid #f2c9c4;color:#9a2b22;border-radius:6px;padding:.8rem 1rem;font-size:.86rem;margin-bottom:1.1rem}
.co-disc{color:#2e7d4f}
.co-disc span:last-child{font-weight:500}
.co-priv-hint a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;font-size:.82rem}
.co-priv-hint a:hover{color:#7d5037}

/* ---------- Checkout: account (bar + registrazione ospite) ---------- */
.co-account-bar{max-width:1180px;margin:1.4rem auto -.4rem;padding:.85rem 1.1rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;background:var(--accent-soft);border:1px solid var(--accent-soft-line);border-radius:10px}
.co-account-ico{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--ink)}
.co-account-txt{flex:1;min-width:180px;font-size:.9rem;line-height:1.4;color:#544b41}
.co-account-open{flex:none;padding:.6rem 1.15rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;width:auto}
.co-account-link{background:none;border:none;color:var(--ink);cursor:pointer;font-weight:500;text-decoration:underline;text-underline-offset:3px;font-size:.9rem;padding:0;line-height:1.4}
.co-account-link:hover{color:var(--accent)}

.co-member-bar{max-width:1180px;margin:1.4rem auto -.4rem;padding:.85rem 1.1rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;
    background:linear-gradient(120deg,#1b1815,#2c2620);color:#f4f0ea;border-radius:10px}
.co-member-badge{flex:none;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;background:var(--accent);color:#fff;padding:.3rem .65rem;border-radius:20px}
.co-member-text{flex:1;min-width:180px;font-size:.9rem;line-height:1.4}
.co-member-bar .co-account-link{color:#f4f0ea}
.co-member-bar .co-account-link:hover{color:#fff}

.co-register{margin-top:.5rem;border:1px solid var(--accent-soft-line);border-radius:8px;padding:.85rem 1rem;background:var(--accent-soft)}
.co-register-check{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer;font-size:.86rem;line-height:1.45;margin:0}
.co-register-check input{margin-top:.12rem;flex:none;width:16px;height:16px;accent-color:var(--ink)}
.co-register-extra{margin:.8rem 0 0}
.co-register-extra[hidden]{display:none}
.co-consent{display:flex;align-items:flex-start;gap:.55rem;font-size:.8rem;line-height:1.45;color:#544b41;margin-top:.2rem;cursor:pointer}
.co-consent input{margin-top:.12rem;flex:none;width:15px;height:15px;accent-color:var(--ink)}
.co-consent a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.co-alert-prepare{margin-top:.2rem}
.co-alert-prepare[hidden]{display:none}
.co-coupon{display:flex;gap:.5rem;margin:.7rem 0 .2rem}
.co-coupon input{flex:1;min-width:0;border:1px solid var(--line);border-radius:6px;padding:.6rem .8rem;font-family:inherit;font-size:.85rem;background:#fff;transition:border-color .2s}
.co-coupon input:focus{outline:none;border-color:var(--ink)}
.co-coupon-apply{flex:none;padding:.5rem 1rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;width:auto}
.co-coupon-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;padding:0 .25rem;vertical-align:middle}
.co-coupon-x:hover{color:#a3261f}

/* ---------- Checkout: modale account ---------- */
.acc-modal{position:fixed;inset:0;z-index:9600;display:flex;align-items:center;justify-content:center;padding:1.2rem;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}
.acc-modal.is-open{opacity:1;visibility:visible}
.acc-backdrop{position:absolute;inset:0;background:rgba(20,15,12,.55);backdrop-filter:blur(2px)}
.acc-card{position:relative;z-index:1;display:grid;grid-template-columns:.85fr 1.15fr;width:min(760px,100%);max-height:calc(100vh - 2.4rem);background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 40px 90px rgba(20,15,12,.4);transform:translateY(16px) scale(.98);transition:transform .35s cubic-bezier(.2,.9,.3,1.2)}
.acc-modal.is-open .acc-card{transform:translateY(0) scale(1)}
.acc-close{position:absolute;top:.6rem;right:.6rem;z-index:3;width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;background:rgba(255,255,255,.85);color:var(--ink);font-size:1.5rem;line-height:1;display:grid;place-items:center;transition:background .2s}
.acc-close:hover{background:#fff}
.acc-aside{background:linear-gradient(150deg,#1b1815,#2c2620);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem 1.4rem;text-align:center}
.acc-logo{height:52px;width:auto;filter:brightness(0) invert(1);opacity:.96}
.acc-aside-tag{font-family:var(--serif);font-size:1.5rem;color:#f4f0ea;line-height:1.25;margin:0}
.acc-aside-tag span{font-family:var(--sans);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.acc-body{padding:2rem 1.9rem;overflow-y:auto;display:flex;flex-direction:column;justify-content:center}
.acc-tabs{display:flex;gap:.4rem;margin-bottom:1.3rem;border-bottom:1px solid var(--line)}
.acc-tab{flex:1;background:none;border:none;cursor:pointer;padding:.6rem .2rem .8rem;font-family:inherit;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);position:relative}
.acc-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink);transform:scaleX(0);transition:transform .25s}
.acc-tab.is-active{color:var(--ink)}
.acc-tab.is-active::after{transform:scaleX(1)}
.acc-form{display:none;flex-direction:column;gap:1.05rem}
.acc-form.is-active{display:flex}
.acc-field{position:relative}
.acc-field input{width:100%;border:none;border-bottom:1px solid var(--line);background:none;padding:1.1rem 0 .5rem;font-family:inherit;font-size:.95rem;color:var(--ink);outline:none;transition:border-color .2s}
.acc-field input:focus{border-color:var(--ink)}
.acc-field label{position:absolute;left:0;top:1rem;color:var(--muted);font-size:.95rem;pointer-events:none;transition:.2s}
.acc-field input:focus+label,.acc-field input:not(:placeholder-shown)+label{top:-.35rem;font-size:.72rem;letter-spacing:.04em;color:var(--ink)}
.acc-consent{display:flex;align-items:flex-start;gap:.55rem;font-size:.78rem;line-height:1.45;color:#544b41;cursor:pointer}
.acc-consent input{margin-top:.12rem;flex:none;width:15px;height:15px;accent-color:var(--ink)}
.acc-consent a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.acc-hint{font-size:.85rem;color:var(--muted);line-height:1.5;margin:0}
.acc-link{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.8rem;text-decoration:underline;text-underline-offset:3px;padding:.2rem 0;align-self:flex-start}
.acc-link:hover{color:var(--ink)}
@media(max-width:640px){.acc-card{grid-template-columns:1fr}.acc-aside{display:none}.acc-body{padding:2.2rem 1.4rem}}

/* ---------- Pagine account / legali ---------- */
.acc-page{max-width:460px;margin:3rem auto;padding:0 1.6rem;text-align:center}
.acc-page-card{border:1px solid var(--line);border-radius:12px;padding:2.4rem 2rem;background:#fff}
.acc-page-logo{height:44px;width:auto;margin-bottom:1.2rem}
.acc-page h1{font-size:1.8rem;margin-bottom:.4rem}
.acc-page-sub{color:var(--muted);font-size:.9rem;margin-bottom:1.6rem}
.acc-page-form{display:flex;flex-direction:column;gap:.8rem;text-align:left}
.acc-page-form input{width:100%;border:1px solid var(--line);border-radius:6px;padding:.9rem 1rem;font-family:inherit;font-size:.95rem;background:#fff;transition:border-color .2s,box-shadow .2s}
.acc-page-form input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,20,19,.08)}
.acc-page-back{display:inline-block;margin-top:1.2rem;color:var(--muted);font-size:.82rem;text-decoration:underline;text-underline-offset:3px}
.acc-page-back:hover{color:var(--ink)}

.legal-page{max-width:820px;margin:2.6rem auto 3.5rem;padding:0 1.6rem}
.legal-hero{text-align:center;margin-bottom:2.4rem;padding-bottom:1.8rem;border-bottom:1px solid var(--line)}
.legal-kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem}
.legal-hero h1{font-size:2.4rem;margin-bottom:.5rem}
.legal-sub{color:var(--muted);font-size:.95rem}
.legal-section h2{font-size:1.15rem;margin:1.8rem 0 .5rem}
.legal-section p{color:#544b41;font-size:.95rem;line-height:1.7;margin-bottom:.6rem}
.legal-section a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.legal-note{margin-top:2rem;font-size:.8rem;color:var(--muted);font-style:italic}

/* ---------- Privilege Card button (header) ---------- */
.privilege-btn{display:inline-flex;align-items:center;gap:.45rem;background:#fff;color:var(--ink);border:1px solid var(--ink);
    border-radius:30px;padding:.45rem .95rem;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;
    margin-right:.35rem;animation:priv-pulse 2.6s ease-in-out infinite;transition:transform .2s,box-shadow .2s}
.privilege-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(176,85,47,.32)}
.privilege-btn svg{flex:none;color:var(--accent)}
.privilege-btn .pb-label{line-height:1}
@keyframes priv-pulse{
    0%,100%{box-shadow:0 0 0 0 rgba(176,85,47,.45);transform:scale(1)}
    50%{box-shadow:0 0 0 9px rgba(176,85,47,0);transform:scale(1.03)}
}

/* ---------- Scroll to top ---------- */
.to-top{position:fixed;left:max(1.25rem,env(safe-area-inset-left));bottom:max(1.4rem,env(safe-area-inset-bottom));
    z-index:70;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);
    cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 26px rgba(20,15,12,.16);
    opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .3s,transform .3s,visibility .3s}
.to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.to-top:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ---------- Category page hero ---------- */
.cat-hero{position:relative;height:42vh;min-height:280px;max-height:460px;overflow:hidden;background:#0e0d0c;display:grid;place-items:center;text-align:center}
.cat-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cat-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.32),rgba(0,0,0,.55))}
.cat-hero-inner{position:relative;z-index:2;color:#fff;padding:0 1.5rem}
.cat-hero-kicker{letter-spacing:.32em;text-transform:uppercase;font-size:.72rem;opacity:.9;margin:0 0 .6rem}
.cat-hero-title{font-size:clamp(2.4rem,5vw,4rem);color:#fff;margin:0}
.cat-count{font-size:.78rem;letter-spacing:.04em;color:var(--muted)}

/* ---------- Shop page hero (compatto: i prodotti si vedono subito) ---------- */
.shop-hero{position:relative;height:34vh;min-height:220px;max-height:340px;overflow:hidden;background:#0e0d0c;display:grid;place-items:center;text-align:center}
.shop-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.shop-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,.58))}
.shop-hero-inner{position:relative;z-index:2;color:#fff;padding:0 1.5rem;max-width:640px}
.shop-hero-kicker{letter-spacing:.3em;text-transform:uppercase;font-size:.68rem;opacity:.9;margin:0 0 .55rem}
.shop-hero-title{font-family:var(--serif);font-size:clamp(2.2rem,5vw,3.6rem);color:#fff;line-height:1.03;margin:0}
.shop-hero-sub{margin:.7rem auto 0;font-size:.95rem;line-height:1.5;color:rgba(255,255,255,.85);max-width:480px}
@media(max-width:640px){
    .shop-hero{height:auto;min-height:0;max-height:none;padding:2.1rem 1.2rem}
    .shop-hero-title{font-size:1.9rem}
    .shop-hero-sub{font-size:.86rem}
    .catalog{margin-top:1.6rem}
}

/* ---------- Privilege page ---------- */
.privilege-page{max-width:1080px;margin:3rem auto 4.5rem;padding:0 1.6rem}
.pp-hero{text-align:center;margin-bottom:2.6rem}
.pp-hero h1{font-size:clamp(2.2rem,4vw,3.4rem);margin-bottom:.7rem}
.pp-hero p{color:#544b41;max-width:56ch;margin:0 auto;line-height:1.7}
.pp-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.4rem;align-items:center}
.vcard{position:relative;aspect-ratio:1.586/1;border-radius:16px;padding:1.9rem;color:#f4f0ea;overflow:hidden;
    background:linear-gradient(135deg,#1b1815,#3a322b 55%,#1b1815);box-shadow:0 30px 64px rgba(20,15,12,.34);
    display:flex;flex-direction:column;justify-content:space-between}
.vcard::after{content:"";position:absolute;top:-45%;right:-12%;width:62%;height:170%;background:radial-gradient(circle,rgba(176,85,47,.55),transparent 65%)}
.vcard>*{position:relative;z-index:1}
.vcard-top{display:flex;justify-content:space-between;align-items:flex-start}
.vcard-brand{font-family:var(--serif);font-size:1.35rem;letter-spacing:.4px}
.vcard-badge{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;border:1px solid rgba(255,255,255,.45);border-radius:20px;padding:.3rem .7rem}
.vcard-num{font-size:1.1rem;letter-spacing:.18em}
.vcard-bottom{display:flex;justify-content:space-between;align-items:flex-end}
.vcard-name{font-size:.92rem;letter-spacing:.06em;text-transform:uppercase}
.vcard-perk{font-family:var(--serif);font-size:1.9rem;color:#e9c8b4}
.pp-benefits{list-style:none;padding:0;margin:0 0 1.6rem;display:grid;gap:.7rem}
.pp-benefits li{padding-left:1.6rem;position:relative;color:#544b41}
.pp-benefits li::before{content:"\2713";position:absolute;left:0;color:var(--accent);font-weight:600}
.pp-tabs{display:flex;gap:.5rem;margin-bottom:1.1rem}
.pp-tab{flex:1;padding:.7rem;border:1px solid var(--line);background:#fff;cursor:pointer;border-radius:6px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);transition:.2s}
.pp-tab.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.pp-form{display:none;flex-direction:column;gap:.7rem}
.pp-form.is-active{display:flex}
.pp-form input{width:100%;border:1px solid var(--line);border-radius:6px;padding:.95rem 1rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}
.pp-forgot{display:block;margin:.9rem auto 0;background:none;border:none;cursor:pointer;font-family:inherit;font-size:.8rem;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.pp-forgot:hover{color:var(--ink)}
.pp-forgot-txt{font-size:.85rem;color:var(--muted);margin:0 0 .8rem;line-height:1.5}
.pp-forgot-ok{font-size:.85rem;color:#1d7a46;margin:.2rem 0 .8rem}
.pp-alert{border:1px solid #e5b8a6;background:#fdf1ec;color:#8a3b1f;padding:.8rem 1rem;border-radius:8px;font-size:.85rem;margin-bottom:1rem}
.pp-reset-head h2{font-size:1.2rem;margin:0 0 .3rem}
.pp-reset-head p{font-size:.88rem;color:var(--muted);margin:0 0 1rem}
.pp-form input:focus{outline:none;border-color:var(--ink)}
.pp-form button{margin-top:.3rem}
.pp-account{text-align:center;display:flex;flex-direction:column;gap:.4rem}
.pp-foot{margin-top:.9rem;font-size:.78rem;color:var(--muted);text-align:center}

/* ---------- Size table (PDP + FAQ) ---------- */
.size-table{width:100%;border-collapse:collapse;margin:.5rem 0 .4rem;font-size:.85rem}
.size-table th,.size-table td{border:1px solid var(--line);padding:.5rem .55rem;text-align:center}
.size-table th{background:var(--bg-soft);font-weight:500}
.size-note{font-size:.8rem;color:var(--muted);margin-top:.5rem}

/* ---------- FAQ / info page ---------- */
.info-page{max-width:820px;margin:3rem auto 4.5rem;padding:0 1.6rem}
.info-hero{text-align:center;margin-bottom:2.6rem}
.info-kicker{letter-spacing:.3em;text-transform:uppercase;font-size:.72rem;color:var(--muted);margin-bottom:.6rem}
.info-hero h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:.6rem}
.info-sub{color:#544b41}
.info-section{margin-bottom:2.8rem}
.info-section>h2{font-size:1.4rem;margin-bottom:1rem;padding-bottom:.55rem;border-bottom:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;list-style:none;padding:1.05rem 0;font-size:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-size:1.3rem;color:var(--muted)}
.faq-list details[open] summary::after{content:"\2013"}
.faq-list .pm-content{padding:0 0 1.1rem;color:#544b41;line-height:1.7;font-size:.92rem}
.faq-list .pm-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.info-cta{text-align:center;background:var(--bg-soft);border-radius:12px;padding:2.6rem 1.6rem}
.info-cta h2{font-size:1.5rem;margin-bottom:.5rem}
.info-cta p{color:#544b41;margin-bottom:1.3rem}

/* ---------- Language switcher (topbar) ---------- */
.topbar{position:relative}
.lang-switch{position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}
.lang-switch summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.lang-switch summary::-webkit-details-marker{display:none}
.lang-switch[open] .lang-menu{display:block}
.lang-menu{display:none;position:absolute;right:0;top:140%;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 36px rgba(20,15,12,.18);min-width:130px;padding:.3rem;z-index:120}
.lang-menu a,.lang-menu span{display:block;padding:.45rem .7rem;font-size:.8rem;border-radius:5px;color:var(--ink)}
.lang-menu a:hover{background:var(--bg-soft)}
.lang-menu .is-current{font-weight:500}
.lang-menu .is-soon{color:var(--muted);cursor:default}

/* ===================== Responsive / Mobile ===================== */
@media(max-width:1100px){
    .product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .checkout{grid-template-columns:1fr;gap:1.8rem;max-width:640px}
    .checkout-summary{position:static}
}
/* Header collapses to hamburger */
@media(max-width:980px){
    .hb-nav{display:none}
    .menu-btn{display:flex}
    .subbar-links{display:none}
    .subbar{justify-content:center;padding:.55rem 1rem}
    .subbar-search{flex:1 1 auto;max-width:none}
    .privilege-btn .pb-label{display:none}
    .privilege-btn{padding:.45rem;gap:0}
}
@media(max-width:900px){
    /* product page: single column, gallery becomes a swipeable carousel */
    .product-single{grid-template-columns:1fr;gap:1.4rem;margin-top:1rem}
    .gallery-grid{display:flex;gap:.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
        scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -1.6rem;padding:0 1.6rem}
    .gallery-grid::-webkit-scrollbar{display:none}
    .gallery-item{flex:0 0 88%;scroll-snap-align:center;aspect-ratio:3/4}
    .gallery-item:last-child:nth-child(odd){aspect-ratio:3/4}
    .gallery-item:hover img{transform:none}
    .slide{flex-basis:86%;height:62vh}
    .video-hero{height:72vh}
}
@media(max-width:680px){
    :root{--header-h:96px}
    .header-bar{padding:.7rem 1rem;gap:.5rem}
    .hb-left{gap:0}
    .brand img{height:32px}
    .icon-btn{width:38px;height:38px}
    .hide-sm{display:none}
    .topbar{padding:.45rem .6rem}
    .topbar-arrow{display:none}
    .announce-msgs{min-width:0;max-width:86vw}
    .search-dropdown{left:0;right:0;width:auto}
    .search-dropdown::before{right:auto;left:24px}
    .video-hero{height:86vh;min-height:480px}
    .video-hero-title{font-size:clamp(2.4rem,9vw,3.6rem)}
    .video-hero-cta{flex-direction:column;width:100%;max-width:300px}
    .video-hero .btn-dark,.video-hero .btn-light,.video-hero .btn-ghost{width:100%;min-width:0}
    .slide{flex-basis:100%;height:56vh;min-height:380px;border-radius:0}
    .slider-nav{width:40px;height:40px;font-size:1.3rem}
    .slider-nav.prev{left:2%}.slider-nav.next{right:2%}
    .catalog{margin:2.5rem auto 3rem;padding:0 1rem}
    .catalog-head{align-items:flex-start}
    .catalog-head h2{font-size:1.7rem}
    .catalog-search{flex:1 1 100%;max-width:none}
    .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))} /* su mobile sempre DUE colonne, a filo */
    .product-name{font-size:1.4rem}
    .checkout .row,.checkout .row-3{grid-template-columns:1fr}
    .pp-grid{grid-template-columns:1fr;gap:2rem}
    .drawer{width:100%;max-width:100%}
    /* bottom buy bar visibile solo su mobile, nella pagina prodotto */
    .page-product .mobile-buybar{display:flex}
    .page-product .site-footer{margin-bottom:74px}
    .page-product .to-top{bottom:88px}
    .filter-bar{width:100%;justify-content:flex-start}
    /* newsletter popup stacks */
    .np-card{grid-template-columns:1fr;max-height:calc(100vh - 1.6rem)}
    .np-aside{display:none}
    .np-body{padding:2.4rem 1.5rem}
}
@media(max-width:380px){
    .card-title{font-size:.7rem}
}

/* ===================== Prova virtuale (webcam AR) ===================== */
.product-stage{position:relative}

/* --- Pulsante "Indossa" sull'immagine --- */
.tryon-btn{
    position:absolute;top:14px;right:14px;z-index:6;display:inline-flex;align-items:center;gap:.5rem;
    padding:.52rem .95rem .52rem .62rem;border:none;border-radius:100px;cursor:pointer;color:#fff;
    background:rgba(22,20,19,.55);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
    box-shadow:0 8px 22px -8px rgba(0,0,0,.55);transition:transform .25s,background .25s;isolation:isolate;
}
.tryon-btn:hover{background:rgba(22,20,19,.82);transform:translateY(-1px)}
.tryon-btn:active{transform:scale(.97)}
.tryon-btn-ico{width:19px;height:19px;color:#fff}
.tryon-btn-label{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;white-space:nowrap}
.tryon-btn-ring{position:absolute;inset:0;border-radius:100px;border:1px solid rgba(255,255,255,.55);z-index:-1;
    animation:tryonPulse 2.6s ease-out infinite}
@keyframes tryonPulse{
    0%{box-shadow:0 0 0 0 rgba(255,255,255,.4)}
    70%{box-shadow:0 0 0 12px rgba(255,255,255,0)}
    100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}
}
@media(max-width:600px){ .tryon-btn{top:10px;right:10px;padding:.5rem .8rem .5rem .58rem} .tryon-btn-label{letter-spacing:.16em} }

/* --- Modale AR --- */
.tryon{position:fixed;inset:0;z-index:1000;display:none}
.tryon.open{display:block}
.tryon-backdrop{position:absolute;inset:0;background:rgba(10,9,8,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.tryon-shell{
    position:relative;z-index:1;height:100%;width:100%;max-width:540px;margin:0 auto;
    display:flex;flex-direction:column;background:#0d0c0b;color:#fff;overflow:hidden;
    box-shadow:0 0 90px rgba(0,0,0,.6);animation:tryonIn .38s cubic-bezier(.2,.7,.2,1);
}
@keyframes tryonIn{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}

.tryon-top{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.tryon-tag{display:inline-flex;align-items:center;gap:.45rem;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:#d9cfc2}
.tryon-dot{width:7px;height:7px;border-radius:50%;background:#4ad07d;animation:tryonPulse 2s infinite}
.tryon-title{flex:1;font-family:var(--serif);font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.tryon-x{margin-left:auto;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:transparent;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;transition:.2s}
.tryon-x:hover{background:rgba(255,255,255,.1)}

.tryon-stage{position:relative;flex:1;min-height:0;overflow:hidden;background:#000;touch-action:none}
.tryon-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#111}
.tryon-overlay{position:absolute;left:50%;top:50%;width:62%;transform:translate(-50%,-50%);
    cursor:grab;user-select:none;-webkit-user-drag:none;touch-action:none;filter:drop-shadow(0 12px 30px rgba(0,0,0,.45));will-change:transform}
.tryon-overlay:active{cursor:grabbing}
.tryon-shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:3}

/* effetti AR */
.tryon-fx{position:absolute;inset:0;pointer-events:none;z-index:2}
.tryon-corner{position:absolute;width:26px;height:26px;border:2px solid rgba(255,255,255,.85)}
.tryon-corner.tl{top:16px;left:16px;border-right:0;border-bottom:0}
.tryon-corner.tr{top:16px;right:16px;border-left:0;border-bottom:0}
.tryon-corner.bl{bottom:16px;left:16px;border-right:0;border-top:0}
.tryon-corner.br{bottom:16px;right:16px;border-left:0;border-top:0}
.tryon-scan{position:absolute;left:0;right:0;height:2px;top:0;
    background:linear-gradient(90deg,transparent,rgba(176,85,47,.9),transparent);
    box-shadow:0 0 14px 2px rgba(176,85,47,.6);animation:tryonScan 3.4s ease-in-out infinite}
@keyframes tryonScan{0%{top:6%}50%{top:94%}100%{top:6%}}
.tryon-grain{position:absolute;inset:0;opacity:.06;mix-blend-mode:overlay;
    background-image:radial-gradient(rgba(255,255,255,.9) 1px,transparent 1px);background-size:3px 3px}
.tryon-stage.is-shot .tryon-fx{display:none}

/* stati */
.tryon-state{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;
    text-align:center;padding:2rem;color:#e9e2d8;background:rgba(10,9,8,.55)}
.tryon-state p{margin:0;font-size:.9rem;max-width:280px;color:#cfc7bb}
.tryon-spinner{width:34px;height:34px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;animation:tryonSpin .8s linear infinite}
@keyframes tryonSpin{to{transform:rotate(360deg)}}
.tryon-retry{margin-top:.3rem}

/* toolbar */
.tryon-tools{display:flex;align-items:center;gap:1rem;padding:1rem 1.1rem 1.2rem;background:#111010;border-top:1px solid rgba(255,255,255,.08)}
.tryon-slider{flex:1;min-width:0;display:flex;flex-direction:column;gap:.35rem;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:#a99f92}
.tryon-slider input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:3px;border-radius:3px;background:#3a3632;outline:none}
.tryon-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:3px solid var(--accent)}
.tryon-slider input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:3px solid var(--accent)}
.tryon-actions{display:flex;align-items:center;gap:.8rem}
.tryon-btn2{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer;transition:.2s}
.tryon-btn2:hover{background:rgba(255,255,255,.1)}
.tryon-shot-btn{position:relative;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;border:none;cursor:pointer;
    background:var(--btn);color:#fff;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;transition:.2s}
.tryon-shot-btn:hover{background:var(--btn-hover)}
.tryon-shot-ring{position:absolute;inset:-5px;border-radius:50%;border:2px solid rgba(255,255,255,.85)}
.tryon-shotbar{justify-content:center;gap:.8rem}
.tryon-shotbar .btn-dark,.tryon-shotbar .btn-outline{padding:.85rem 1.6rem}
.tryon-shotbar .btn-outline{color:#fff;border-color:rgba(255,255,255,.5)}
.tryon-shotbar .btn-outline:hover{background:#fff;color:#111}
.tryon-hint{margin:0;padding:.7rem 1rem 1rem;text-align:center;font-size:.72rem;color:#8a8178;background:#111010;transition:opacity .3s}

@media(min-width:560px){
    .tryon-shell{height:92vh;margin:4vh auto;border-radius:16px}
}
@media(max-width:400px){
    .tryon-tools{gap:.6rem;padding:.8rem .7rem 1rem}
    .tryon-shot-btn{width:58px;height:58px}
    .tryon-btn2{width:40px;height:40px}
}

/* ============================================================
   Prova virtuale AI (FASHN) — flusso foto → generazione → risultato
   ============================================================ */
.tryon-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:1rem;
    padding:1.1rem;overflow-y:auto;background:#0d0c0b}

/* capo selezionato */
.tryon-garment{display:flex;align-items:center;gap:.8rem;padding:.55rem .7rem;
    border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.03)}
.tryon-garment img{width:44px;height:58px;object-fit:cover;border-radius:7px;background:#1a1917;flex:none}
.tryon-garment-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.tryon-garment-label{font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:#a99f92}
.tryon-garment-info strong{font-weight:500;font-size:.92rem;color:#f3ede4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* step generico */
.tryon-step{flex:1;min-height:0;display:flex;flex-direction:column;gap:1rem}
/* l'attributo hidden deve vincere sulle regole display:flex qui sotto */
.tryon-step[hidden],.tryon-state[hidden],.tryon-saved[hidden],.tryon-guest[hidden]{display:none}
.tryon-lead{margin:0;font-size:.95rem;line-height:1.5;color:#e9e2d8}
.tryon-lead strong{color:#fff}
.tryon-tip{margin:auto 0 0;font-size:.76rem;line-height:1.4;color:#8a8178;text-align:center}

/* scelta foto */
.tryon-choose{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.tryon-pick{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;
    min-height:118px;padding:1rem;border-radius:14px;cursor:pointer;color:#f0e9df;
    border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03);transition:.2s}
.tryon-pick svg{color:var(--accent)}
.tryon-pick span{font-size:.82rem;letter-spacing:.02em}
.tryon-pick:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.32);transform:translateY(-2px)}

/* fotocamera */
.tryon-cam{position:relative;flex:1;min-height:0;border-radius:14px;overflow:hidden;background:#000}
.tryon-cam .tryon-video{transform:scaleX(-1)} /* effetto specchio, coerente con lo scatto */
.tryon-cam-guide{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:56%;height:82%;border:1.5px dashed rgba(255,255,255,.45);border-radius:120px;pointer-events:none}
.tryon-canvas{display:none}
.tryon-cam-hint{margin:0;text-align:center;font-size:.78rem;color:#a99f92}
.tryon-cam-hint strong{color:#fff;font-weight:500}

/* smile-to-shoot */
.tryon-smile{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:5;
    display:flex;align-items:center;gap:.6rem;max-width:calc(100% - 28px);
    padding:.5rem .9rem;border-radius:100px;background:rgba(12,11,10,.72);
    -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
    border:1px solid rgba(255,255,255,.14);color:#fff;animation:tryonIn .3s ease-out}
.tryon-smile[hidden]{display:none}
.tryon-smile-face{font-size:1.25rem;line-height:1;flex:none}
.tryon-smile-copy{display:flex;flex-direction:column;gap:.3rem;min-width:150px}
.tryon-smile-copy [data-tryon-smile-text]{font-size:.74rem;letter-spacing:.04em;white-space:nowrap}
.tryon-smile-bar{display:block;height:4px;border-radius:4px;background:rgba(255,255,255,.18);overflow:hidden}
.tryon-smile-bar span{display:block;height:100%;width:0;border-radius:4px;
    background:linear-gradient(90deg,var(--accent),#e0906a);transition:width .18s ease-out}

/* flash di scatto */
.tryon-flash{position:absolute;inset:0;z-index:6;background:#fff;opacity:0;pointer-events:none}
.tryon-flash.on{animation:tryonFlash .5s ease-out}
@keyframes tryonFlash{0%{opacity:0}20%{opacity:.95}100%{opacity:0}}

/* countdown timer 3-2-1 */
.tryon-countdown{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:rgba(10,9,8,.35)}
.tryon-countdown[hidden]{display:none}
.tryon-countdown span{font-family:var(--serif);font-size:6rem;line-height:1;color:#fff;
    text-shadow:0 6px 34px rgba(0,0,0,.55)}
.tryon-countdown span.tick{animation:tryonCd 1s ease-out}
@keyframes tryonCd{0%{transform:scale(1.4);opacity:.15}35%{transform:scale(1);opacity:1}100%{opacity:1}}

/* confronto Prima / Dopo sul risultato */
.tryon-result{position:relative}
.tryon-compare{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
    padding:.55rem 1.1rem;border-radius:100px;border:1px solid rgba(255,255,255,.35);cursor:pointer;
    background:rgba(12,11,10,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
    color:#fff;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;transition:.2s;white-space:nowrap}
.tryon-compare:hover{background:rgba(255,255,255,.16)}
.tryon-compare[hidden]{display:none}

/* anteprima + risultato */
.tryon-preview,.tryon-result{flex:1;min-height:0;display:grid;place-items:center;
    border-radius:14px;overflow:hidden;background:#111010}
.tryon-preview img,.tryon-result img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}

/* barra azioni (nel corpo scuro) */
.tryon-body .tryon-actions{display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap}
.tryon-body .tryon-actions .btn-dark,.tryon-body .tryon-actions .btn-outline{padding:.8rem 1.3rem;font-size:.72rem}
.tryon-actions-spacer{flex:1;max-width:96px}
.tryon-body .tryon-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.42)}
.tryon-body .tryon-ghost:hover{background:#fff;color:#141312;border-color:#fff}
.tryon-body .tryon-cta{display:inline-flex;align-items:center;gap:.45rem;border:none;
    background:var(--btn);color:#fff}
.tryon-body .tryon-cta:hover{background:var(--btn-hover)}

/* elaborazione */
.tryon-proc{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center}
.tryon-proc-frame{position:relative;width:190px;max-width:60%;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:#111}
.tryon-proc-frame img{width:100%;height:100%;object-fit:cover}
.tryon-proc-scan{position:absolute;left:0;right:0;height:3px;top:0;
    background:linear-gradient(90deg,transparent,rgba(176,85,47,.95),transparent);
    box-shadow:0 0 16px 3px rgba(176,85,47,.6);animation:tryonScan 2.2s ease-in-out infinite}
.tryon-spinner.big{width:30px;height:30px}
.tryon-proc-msg{margin:0;font-size:.98rem;color:#f3ede4}
.tryon-proc-sub{margin:0;font-size:.78rem;color:#8a8178}

/* esito salvataggio */
.tryon-saved,.tryon-guest{display:flex;align-items:center;justify-content:center;gap:.4rem;margin:0;font-size:.82rem}
.tryon-saved{color:#7fd8a2}
.tryon-guest{color:#c9c0b4}
.tryon-guest a{color:#fff;text-decoration:underline;text-underline-offset:2px}

/* stato inline (errore) */
.tryon-state-inline{position:static;background:transparent;flex:1}

/* desktop: due colonne su scelta e più respiro */
@media(min-width:560px){
    .tryon-body{padding:1.4rem}
}

/* ============================================================
   Account — Le mie prove virtuali
   ============================================================ */
.pp-tryons{margin-top:2.6rem}
.pp-tryons-head h2{font-family:var(--sans);font-weight:400;font-size:1.15rem;letter-spacing:.06em;
    text-transform:uppercase;margin:0 0 .35rem}
.pp-tryons-head p{margin:0 0 1.2rem;color:var(--muted);font-size:.9rem}
.pp-tryons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem}
.pp-tryon{margin:0}
.pp-tryon img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;background:var(--bg-soft);display:block}
.pp-tryon figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-top:.5rem}
.pp-tryon figcaption a,.pp-tryon figcaption span{font-size:.82rem;color:var(--ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-tryon figcaption a:hover{text-decoration:underline}
.pp-tryon figcaption small{color:var(--muted);font-size:.7rem;flex:none}
.pp-tryons-empty{border:1px dashed var(--line,#e2ddd5);border-radius:12px;padding:2rem 1.5rem;text-align:center}
.pp-tryons-empty p{margin:0 0 1rem;color:var(--muted);font-size:.92rem}

/* ============================================================
   Account — tab (ordini, resi, indirizzi, assistenza)
   ============================================================ */
.acc-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:2.6rem 0 1.4rem;border-bottom:1px solid var(--line);padding-bottom:.8rem}
.acc-tab{padding:.6rem 1.1rem;border-radius:100px;border:1px solid var(--line);background:#fff;cursor:pointer;
    font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:.2s}
.acc-tab:hover{border-color:var(--ink);color:var(--ink)}
.acc-tab.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.acc-panel{display:none}
.acc-panel.is-active{display:block}

.acc-head h2{font-family:var(--sans);font-weight:400;font-size:1.15rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .3rem}
.acc-head p{margin:0 0 1.2rem;color:var(--muted);font-size:.9rem}
.acc-empty{border:1px dashed var(--line);border-radius:12px;padding:2rem 1.5rem;text-align:center;color:var(--muted)}
.acc-empty p{margin:0 0 1rem}
.acc-badge{display:inline-block;padding:.26rem .6rem;border-radius:20px;font-size:.64rem;letter-spacing:.08em;
    text-transform:uppercase;background:var(--bg-soft);color:var(--muted)}
.acc-badge.st-paid,.acc-badge.st-completed,.acc-badge.st-answered,.acc-badge.st-default{background:#e7f3ea;color:#2e7d4f}
.acc-badge.st-shipped,.acc-badge.st-open{background:#fdf1e4;color:#a4611f}
.acc-badge.st-cancelled{background:#fbe9e7;color:#b3402e}
.acc-badge.st-returned,.acc-badge.st-closed{background:var(--bg-soft);color:var(--muted)}
.acc-link{background:none;border:none;cursor:pointer;font-size:.74rem;letter-spacing:.06em;color:var(--ink);
    text-decoration:underline;text-underline-offset:3px;padding:.2rem}
.acc-link:hover{color:var(--accent)}
.acc-link.danger{color:#b3402e}
.acc-note{font-size:.82rem;color:var(--muted)}
.acc-note.ok{color:#2e7d4f}
.acc-note.wait{color:#a4611f}

/* ordini */
.acc-orders{display:flex;flex-direction:column;gap:1rem}
.acc-order{border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem;background:#fff}
.acc-order-head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;margin-bottom:.6rem}
.acc-order-head small{color:var(--muted);margin-left:.5rem}
.acc-order-items{list-style:none;margin:0 0 .8rem;padding:0;font-size:.9rem}
.acc-order-items li{display:flex;gap:.5rem;padding:.22rem 0;border-bottom:1px dashed var(--line)}
.acc-order-items li span{color:var(--muted);flex:none}
.acc-order-items li em{margin-left:auto;font-style:normal;color:var(--muted)}
.acc-order-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.acc-return summary{cursor:pointer;font-size:.8rem;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.acc-return form{display:flex;flex-direction:column;gap:.6rem;margin-top:.7rem;max-width:420px}
.acc-return textarea{border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;font:inherit;font-size:.88rem;resize:vertical}
.acc-return .btn-outline{padding:.7rem 1.2rem;font-size:.68rem}

/* indirizzi */
.acc-addresses{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem;margin-bottom:1.2rem}
.acc-address{border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;background:#fff}
.acc-address.is-default{border-color:var(--accent)}
.acc-address header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.45rem}
.acc-address p{margin:0 0 .7rem;font-size:.88rem;line-height:1.55;color:#5c574f}
.acc-address footer{display:flex;gap:.8rem}

/* form generico account */
.acc-new{border:1px dashed var(--line);border-radius:12px;padding:1rem 1.2rem;background:var(--bg-soft)}
.acc-new summary{cursor:pointer;font-size:.85rem;letter-spacing:.04em;color:var(--ink)}
.acc-form{display:flex;flex-direction:column;gap:.65rem;margin-top:.9rem}
.acc-form input,.acc-form select,.acc-form textarea{border:1px solid var(--line);border-radius:8px;
    padding:.7rem .9rem;font:inherit;font-size:.9rem;background:#fff;width:100%}
.acc-form input:focus,.acc-form select:focus,.acc-form textarea:focus{outline:none;border-color:var(--accent)}
.acc-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.acc-form-row.three{grid-template-columns:110px 1fr 90px}
.acc-check{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}
.acc-form .btn-dark{padding:.85rem 1.4rem;font-size:.7rem;align-self:flex-start}

/* ticket */
.acc-tickets{display:flex;flex-direction:column;gap:.8rem;margin-top:1.2rem}
.acc-ticket{border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 1.1rem}
.acc-ticket summary{display:flex;align-items:center;gap:.8rem;cursor:pointer;padding:1rem 0;list-style:none}
.acc-ticket summary::-webkit-details-marker{display:none}
.acc-ticket-subject{flex:1;font-weight:500}
.acc-ticket summary small{color:var(--muted)}
.acc-thread{display:flex;flex-direction:column;gap:.6rem;padding-bottom:1rem}
.acc-msg{max-width:85%;border-radius:12px;padding:.7rem .9rem;font-size:.88rem}
.acc-msg header{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem}

/* ================= Mega menu (Shop) ================= */
.header-bar{position:relative}
.hb-nav{gap:1.35rem}
.hb-nav-item{display:inline-flex;align-items:center;position:static}
.hb-nav-item>.hb-nav-link{display:inline-flex;align-items:center}
.nav-caret{margin-left:.34rem;opacity:.6;transition:transform .25s}
.hb-nav-item:hover .nav-caret{transform:rotate(180deg)}

.nav-mega{position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid var(--line);border-top:none;
    box-shadow:0 26px 48px -18px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translateY(10px);
    transition:opacity .22s ease,transform .22s ease,visibility .22s;z-index:70}
.nav-mega::before{content:"";position:absolute;top:-1.6rem;left:0;right:0;height:1.6rem}
.hb-nav-item:hover .nav-mega,
.hb-nav-item:focus-within .nav-mega{opacity:1;visibility:visible;transform:translateY(0)}

.nav-mega-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2.2rem;padding:2.1rem 2.6rem 2.5rem}
.nm-col{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.nm-head{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);font-weight:500;
    padding-bottom:.55rem;margin-bottom:.4rem;border-bottom:1px solid var(--line);white-space:nowrap}
a.nm-head:hover{color:var(--accent)}
.nm-link{font-size:.86rem;color:var(--muted);padding:.13rem 0;transition:color .18s,transform .18s}
.nm-link:hover{color:var(--accent);transform:translateX(3px)}
.nm-outlet .nm-head{color:var(--accent);border-bottom-color:var(--accent-soft-line)}
.nm-outlet .nm-link{color:var(--accent)}
.nm-outlet .nm-link:hover{color:var(--accent-dark)}

/* il mega menu resta bianco anche con header trasparente in home */
.page-home .site-header:not(.is-scrolled) .nav-mega{background:#fff}

/* hamburger un po' prima: la nav non deve mai toccare il logo */
@media(max-width:1150px){.hb-nav{display:none}.menu-btn{display:flex}}


/* ================= Header: ricerca in alto (subbar rimossa) ================= */
.hb-search{flex:0 1 240px;min-width:140px;margin-right:.35rem}
@media(max-width:680px){.hb-search{display:none}}

/* ================= Pagina categoria senza hero ================= */
.catalog-nohero{margin-top:2.4rem}
.cat-kicker{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 .3rem}
.catalog-title{font-size:2rem;margin:0;text-transform:uppercase;letter-spacing:.06em}

/* ================= Card prodotto: sconto / esaurito ================= */
.card-sale{position:absolute;top:.7rem;right:.7rem;
    background:#25D366;color:#fff; /* verde WhatsApp, come il pulsante flottante */
    font-size:.68rem;font-weight:600;letter-spacing:.06em;padding:.28rem .55rem;border-radius:999px}
/* Esaurito: foto sbiadita e fascia nera centrata sull'immagine */
.card-soldout{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);
    background:#0c0c0c;color:#fff;text-align:center;
    font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
    padding:.55rem .5rem}
.product-card[data-oos="1"] .card-media img{opacity:.3}
.product-card[data-oos="1"] .card-media:hover img{transform:none}
.product-card[data-oos="1"] .card-media .card-media-hover{opacity:0}
/* stessa resa nella galleria della scheda prodotto esaurita */
.gallery-grid.is-soldout .gallery-item img{opacity:.3}
.gallery-grid.is-soldout .gallery-item:hover img{transform:none}
.card-price-old{color:var(--muted);font-weight:300;margin-right:.35rem;text-decoration:line-through}

/* ================= Checkout a step ================= */
/* barra step come tab: tutte le voci visibili, l'attiva si sottolinea */
.co-progress{display:flex;align-items:stretch;list-style:none;margin:0 0 1.7rem;padding:0;
    border-bottom:1px solid var(--line);scroll-margin-top:120px}
.co-progress li{flex:1;display:flex;align-items:center;justify-content:center;gap:.45rem;
    padding:.8rem .3rem;position:relative;color:var(--muted);
    font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;transition:color .25s}
.co-progress li::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
    background:transparent;transition:background .25s}
.co-prog-n{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;
    border:1px solid var(--line);background:#fff;font-size:.68rem;flex:0 0 auto;transition:.25s}
.co-progress li.is-active{color:var(--ink);font-weight:500}
.co-progress li.is-active::after{background:var(--accent)}
.co-progress li.is-active .co-prog-n{background:var(--accent);border-color:var(--accent);color:#fff}
.co-progress li.is-done{color:var(--ink);cursor:pointer}
.co-progress li.is-done::after{background:var(--line)}
.co-progress li.is-done .co-prog-n{background:var(--ink);border-color:var(--ink);color:#fff}
.co-panel{display:none}
.co-panel.is-active{display:block;animation:coFade .25s ease}
@keyframes coFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.co-panel-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.4rem 0 .4rem}
.co-panel-nav .co-next{margin-left:auto;padding:.95rem 1.9rem}
.co-back{background:none;border:none;cursor:pointer;color:var(--muted);font-size:.85rem;padding:.4rem 0;font-family:inherit}
.co-back:hover{color:var(--ink)}
@media(max-width:680px){
    .co-prog-n{display:none} /* su schermi stretti restano le tre scritte come tab */
    .co-progress li{font-size:.64rem;letter-spacing:.08em;padding:.7rem .2rem}
}

/* scelta metodo di pagamento */
.pm-choice{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.2rem}
.pm-opt{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.7rem;align-items:center;
    padding:.85rem 1rem;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.pm-opt input{grid-row:1 / span 2;accent-color:var(--accent);width:16px;height:16px}
.pm-opt .pm-name{font-weight:500;font-size:.95rem}
.pm-opt .pm-desc{grid-column:2;font-size:.78rem;color:var(--muted)}
.pm-opt.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.pm-info{background:var(--accent-soft);border:1px solid var(--accent-soft-line);border-radius:10px;
    padding:.9rem 1.1rem;font-size:.88rem;line-height:1.5;margin-bottom:.4rem}
.pm-info p{margin:0}

/* box bonifico nella conferma ordine */
.cs-bank{max-width:430px;margin:1.2rem auto;text-align:left;background:var(--accent-soft);
    border:1px solid var(--accent-soft-line);border-radius:12px;padding:1.2rem 1.4rem}
.cs-bank h3{margin:0 0 .7rem;font-size:1.05rem}
.cs-bank p{display:flex;justify-content:space-between;gap:1rem;margin:.3rem 0;font-size:.9rem}
.cs-bank p span{color:var(--muted)}
.cs-bank .cs-bank-note{display:block;margin-top:.7rem;font-size:.8rem;color:var(--muted)}

/* bottone paga nella barra step (desktop e mobile) */
.co-panel-nav-pay{gap:.8rem}
.co-panel-nav-pay .co-pay{flex:1;padding:1rem 1.4rem}
.co-panel-nav-pay .co-back{flex:0 0 auto;font-size:1.05rem;padding:.6rem .95rem;border:1px solid var(--line);border-radius:8px;background:#fff}

/* ----- Mobile: barra azione fissa in basso, tutto above the fold ----- */
@media(max-width:1100px){
    .co-panel-nav{position:fixed;left:0;right:0;bottom:0;z-index:70;margin:0;
        background:#fff;border-top:1px solid var(--line);box-shadow:0 -10px 26px rgba(0,0,0,.08);
        padding:.65rem .9rem calc(.65rem + env(safe-area-inset-bottom))}
    .co-panel-nav .co-next{flex:1;margin-left:0;padding:1rem 1.2rem}
    .checkout{padding-bottom:5.8rem}
    .co-block-head{display:none} /* il numero e il titolo dello step sono già nella barra di avanzamento */
    .co-progress{margin-bottom:1.1rem}

    /* barra Privilege fissa sotto l'header, compatta su una riga */
    .co-account-bar,
    .co-member-bar{position:sticky;top:var(--header-h, 64px);z-index:45;
        margin-top:.6rem;margin-bottom:.6rem;flex-wrap:nowrap;align-items:center;
        padding:.55rem .8rem;gap:.6rem;box-shadow:0 6px 18px -8px rgba(0,0,0,.12)}
    .co-account-bar .co-account-ico{display:none}
    .co-account-bar .co-account-txt{font-size:.78rem;line-height:1.3;min-width:0}
    .co-account-bar .co-account-open{padding:.5rem .8rem;font-size:.64rem;white-space:nowrap;flex:0 0 auto}
    /* il riepilogo si aggancia subito sotto la barra Privilege */
    .checkout-summary{top:calc(var(--header-h, 64px) + 62px)}

}

/* ================= Prestazioni: le card fuori schermo non vengono renderizzate ================= */
.product-grid .product-card{content-visibility:auto;contain-intrinsic-size:320px 540px}

/* ================= Ricerca: categorie nel dropdown ================= */
.sd-cats{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.5rem .6rem .65rem;border-bottom:1px solid var(--line);margin-bottom:.35rem}
.sd-cats-lbl{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-right:.2rem}
.sd-cat-chip{font-size:.76rem;padding:.28rem .7rem;border:1px solid var(--line);border-radius:999px;color:var(--ink);transition:.18s;white-space:nowrap}
.sd-cat-chip:hover{border-color:var(--accent);color:var(--accent)}
.sd-price s{color:var(--muted);font-weight:300;margin-right:.3rem}

/* ================= Filtri catalogo ================= */
.catalog-tools{display:flex;flex-direction:column;gap:.9rem;margin:0 0 1.6rem;padding:1rem 1.2rem;
    background:var(--bg-soft,#faf8f6);border:1px solid var(--line);border-radius:12px}
.catalog-filters-toggle{display:none}
.flt-chips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.flt-row{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.1rem;min-width:0}
.flt-group{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;min-width:0}
.flt-lbl{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.flt-sizes{display:flex;flex-wrap:wrap;gap:.35rem}
.flt-size{min-width:34px;padding:.32rem .5rem;border:1px solid var(--line);background:#fff;cursor:pointer;
    font:inherit;font-size:.78rem;border-radius:7px;color:var(--ink);transition:.18s}
.flt-size:hover{border-color:var(--ink)}
.flt-size.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.flt-price{width:76px;padding:.38rem .5rem;border:1px solid var(--line);border-radius:7px;background:#fff;
    font:inherit;font-size:.82rem;color:var(--ink)}
.flt-price:focus{outline:none;border-color:var(--accent)}
.flt-dash{color:var(--muted)}
.flt-toggle{display:inline-flex;align-items:center;gap:.42rem;font-size:.82rem;color:var(--ink);cursor:pointer;user-select:none}
.flt-toggle input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}
.flt-select{padding:.4rem 1.9rem .4rem .6rem;border:1px solid var(--line);border-radius:7px;background:#fff;
    font:inherit;font-size:.82rem;color:var(--ink);cursor:pointer;appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='12' height='12'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right .55rem center}
.flt-select:focus{outline:none;border-color:var(--accent)}
.flt-sort-group{margin-left:auto}
.flt-reset{background:none;border:none;cursor:pointer;font:inherit;font-size:.8rem;color:var(--accent);padding:.3rem 0;white-space:nowrap}
.flt-reset:hover{color:var(--accent-dark)}
@media(max-width:680px){
    /* pulsante "Filtri e ordina" (iniettato via JS), visibile solo su mobile */
    .catalog-filters-toggle{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;
        margin:0 0 1rem;padding:.8rem 1rem;background:var(--bg-soft,#faf8f6);border:1px solid var(--line);
        border-radius:10px;font:inherit;font-size:.9rem;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}
    .cft-l{display:inline-flex;align-items:center;gap:.55rem;font-weight:500;letter-spacing:.02em}
    .cft-badge{display:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--ink);
        color:#fff;font-size:.72rem;line-height:20px;text-align:center;font-weight:600}
    .cft-badge.is-on{display:inline-block}
    .cft-caret{flex:none;transition:transform .25s;opacity:.55}
    .catalog-filters-toggle[aria-expanded="true"] .cft-caret{transform:rotate(180deg)}

    /* pannello filtri: chiuso finché non lo apri */
    .catalog-tools{padding:1rem;gap:1.15rem}
    .js-flt .catalog-tools{display:none}
    .js-flt .catalog-tools.is-open{display:flex;animation:flt-open .25s ease}
    @keyframes flt-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

    /* controlli impilati, ognuno su riga piena e tap-friendly */
    .flt-row{flex-direction:column;align-items:stretch;gap:1.15rem}
    .flt-row > *{width:100%}
    .flt-group{align-items:center;gap:.5rem .7rem}
    [data-flt-sizes-group]{flex-direction:column;align-items:flex-start;gap:.55rem}
    .flt-sizes{gap:.4rem}
    .flt-size{min-width:44px;padding:.5rem .6rem;font-size:.85rem}
    .flt-price{flex:1;width:auto;padding:.6rem .7rem;font-size:.9rem}
    .flt-toggle{font-size:.9rem;padding:.15rem 0}
    .flt-toggle input{width:18px;height:18px}
    .flt-sort-group{margin-left:0;flex-direction:column;align-items:stretch;gap:.5rem}
    .flt-select{width:100%;padding:.6rem 2rem .6rem .7rem;font-size:.9rem}
    .flt-reset{align-self:flex-start;padding:.4rem 0;font-size:.88rem}
}

/* ----- Riepilogo ordine: sempre visibile ----- */
.co-sum-toggle{display:none}
@media(max-width:1100px){
    .checkout-summary{order:-1;padding:0;overflow:visible;position:sticky;top:calc(var(--header-h, 64px) + 58px);z-index:40}
    .co-sum-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;
        background:none;border:none;cursor:pointer;padding:1rem 1.2rem;font:inherit;color:var(--ink)}
    .cst-l{display:inline-flex;align-items:center;gap:.55rem;font-size:.9rem}
    .cst-r{display:inline-flex;align-items:center;gap:.5rem}
    .cst-caret{transition:transform .25s;opacity:.6}
    .checkout-summary.is-open .cst-caret{transform:rotate(180deg)}
    .co-sum-body{display:none;padding:0 1.2rem 1.2rem;max-height:62vh;overflow:auto}
    .checkout-summary.is-open .co-sum-body{display:block}
}
.acc-msg p{margin:0;line-height:1.5}
.acc-msg.from-user{background:var(--bg-soft);align-self:flex-end}
.acc-msg.from-admin{background:#f3e9e2;align-self:flex-start}
.acc-reply{padding-bottom:1.1rem}
.acc-reply-actions{display:flex;align-items:center;gap:1rem}

/* chips sottocategorie in pagina categoria */
.cat-chips{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.4rem}
.cat-chip{padding:.55rem 1.05rem;border-radius:100px;border:1px solid var(--line);background:#fff;
    font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);transition:.2s}
.cat-chip:hover{border-color:var(--accent);color:var(--accent)}

@media(max-width:680px){
    .acc-form-row,.acc-form-row.three{grid-template-columns:1fr}
    .acc-msg{max-width:100%}
}

/* ============================================================
   Varianti — selettore colore e foto collegata
   ============================================================ */
.color-block{margin-top:-.4rem}
.color-block .size-head em{font-style:normal;color:var(--muted);text-transform:none;letter-spacing:.02em}
.color-chip{text-transform:capitalize}
.color-chip.is-active{background:var(--btn);border-color:var(--btn);color:#fff}
.gallery-item.is-variant{outline:2px solid var(--accent);outline-offset:-2px}

/* ============================================================
   Carrello — spedizione gratuita, taglia, coupon
   ============================================================ */
.cart-freeship{margin:0 0 1rem;padding:.65rem .9rem;border-radius:10px;background:var(--bg-soft);
    font-size:.82rem;color:#5c574f;text-align:center}
.cart-freeship.ok{background:#e7f3ea;color:#2e7d4f}
.cl-size{font-size:.74rem;color:var(--muted);margin:-2px 0 2px}
.cart-coupon{display:flex;gap:.5rem;margin-bottom:.9rem}
.cart-coupon input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;font:inherit;font-size:.82rem}
.cart-coupon .btn-outline{padding:.6rem 1rem;font-size:.64rem}
.cart-coupon-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
    margin-bottom:.9rem;font-size:.85rem;color:#2e7d4f}
.cart-coupon-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;padding:0 .2rem}
.cart-coupon-x:hover{color:#b3402e}
.cart-shiprow{display:flex;align-items:center;justify-content:space-between;font-size:.88rem;
    color:var(--muted);margin:.3rem 0 .9rem}

/* ============================================================
   Blog
   ============================================================ */
.blog-index{max-width:var(--maxw);margin:2.2rem auto 4rem;padding:0 1.6rem}
.blog-head{text-align:center;margin-bottom:2.4rem}
.blog-head h1{font-size:2.2rem}
.blog-sub{color:var(--muted);margin:.4rem 0 0}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.6rem}
.blog-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.blog-card-media{display:block;aspect-ratio:16/10;background:var(--bg-soft);overflow:hidden}
.blog-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.blog-card:hover .blog-card-media img{transform:scale(1.04)}
.blog-noimg{display:grid;place-items:center;height:100%;font-family:var(--serif);color:var(--muted)}
.blog-card-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.blog-card-meta{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.blog-card-body h2{font-family:var(--sans);font-weight:500;font-size:1.05rem;line-height:1.35;letter-spacing:.02em;margin:0}
.blog-card-body p{margin:0;font-size:.88rem;color:#5c574f;line-height:1.55}
.blog-more{margin-top:auto;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.blog-more:hover{color:var(--accent-dark)}

.blog-single{max-width:820px;margin:2.4rem auto 4rem;padding:0 1.6rem}
.blog-single-head h1{font-size:2rem;margin:.5rem 0 .7rem}
.blog-single-excerpt{color:var(--muted);font-size:1.02rem;line-height:1.6;margin:0}
.blog-single-cover{margin:1.6rem 0}
.blog-single-cover img{border-radius:12px}
.blog-single-body{font-size:1rem;line-height:1.8;color:#453f38}
.blog-products{margin-top:2.6rem}
.blog-products h2{font-family:var(--sans);font-weight:400;font-size:1.1rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.2rem}
.blog-single-foot{margin-top:2.4rem}

/* ============================================================
   Mobile — immagini prodotto a tutta larghezza (full-bleed)
   ============================================================ */
@media(max-width:900px){
    .product-single{padding-left:0;padding-right:0}
    .gallery-grid{margin:0;padding:0;gap:0}
    .gallery-item{flex:0 0 100%;border-radius:0}
    .product-info{padding:0 1.6rem}
}

/* ================= Carta Regalo (/gift) ================= */
.gift-amount{font-family:var(--serif, Georgia, serif);font-size:2.4rem;line-height:1;color:var(--accent, #b0552f)}
.gift-label{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted, #8a8178)}
.gift-label small{display:block;text-transform:none;letter-spacing:0;margin-top:.15rem}
.gift-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1.2rem 0}
.gift-step{border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem;font-size:.92rem;background:#fff}
.gift-step-n{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;
    border-radius:50%;background:var(--accent, #b0552f);color:#fff;font-size:.85rem;margin-right:.55rem}

/* ---- Gift Card: immagine della card + modulo del regalo ---- */
.gift-compose{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:2.6rem;align-items:start;margin-bottom:2.6rem}
.gift-preview{position:sticky;top:90px}
.gp-img{display:block;width:100%;height:auto;border-radius:14px;
    box-shadow:0 24px 46px -26px rgba(22,20,19,.5)}
/* Importo e dedica scritti sopra la grafica della card (gift-blank.png, la
   versione senza cifra). Tutto in percentuale dell'immagine e in cqw, così
   resta al suo posto a qualsiasi dimensione. Le misure vengono dall'artwork
   612x408: slot vuoto dell'importo y 212-270, blocco di testo centrato su
   x 220, sfondo campionato #ECDDCE, oro del testo stampato #BE9B4A.
   Se cambia il disegno della card bastano le variabili qui sotto. */
.gp-visual{position:relative;display:block;container-type:inline-size;
    --gp-x:36%;              /* centro del blocco di testo */
    --gp-y:59%;              /* riga dell'importo */
    --gp-oro:#be9b4a;        /* oro del testo stampato */
    --gp-carta:#ecddce}      /* fondo crema della card */
.gp-img{display:block;width:100%;height:auto;border-radius:14px;
    box-shadow:0 24px 46px -26px rgba(22,20,19,.5)}
.gp-on-valore{position:absolute;left:var(--gp-x);top:var(--gp-y);transform:translate(-50%,-50%);
    white-space:nowrap;text-align:center;color:var(--gp-oro);line-height:1;pointer-events:none;
    font-family:var(--serif, Georgia, serif);font-size:52px;font-size:8.8cqw}
/* la dedica prende il posto di «scegli tu l'importo che preferisci»:
   compare solo quando i nomi ci sono davvero, altrimenti la card resta intatta */
.gp-on-dedica{position:absolute;left:var(--gp-x);top:70.5%;transform:translateX(-50%);
    width:42%;height:11%;background:var(--gp-carta);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1em;
    text-align:center;color:var(--gp-oro);line-height:1.3;pointer-events:none;
    font-family:var(--serif, Georgia, serif);font-size:15px;font-size:2.5cqw}
.gp-on-dedica[hidden],.gp-on-dedica span[hidden]{display:none}
.gp-on-dedica b{font-weight:400;font-style:italic}
.gp-note{font-size:.74rem;color:var(--muted, #8a8178);margin-top:.9rem;text-align:center}

/* tessere dei tagli: radio nascosto, la label fa da pulsante */
.gift-tagli{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.gift-taglio{position:relative;display:flex;align-items:center;justify-content:center;
    border:1px solid var(--line);border-radius:12px;padding:.9rem .6rem;background:#fff;
    cursor:pointer;transition:border-color .2s,box-shadow .2s}
.gift-taglio:hover{border-color:var(--ink)}
.gift-taglio input{position:absolute;opacity:0;width:0;height:0}
.gift-taglio .gift-amount{font-size:1.35rem;color:var(--ink);transition:color .2s}
.gift-taglio.is-active{border-color:var(--accent, #b0552f);
    box-shadow:0 0 0 1px var(--accent, #b0552f) inset}
.gift-taglio.is-active .gift-amount{color:var(--accent, #b0552f)}
.gift-taglio input:focus-visible + .gift-amount{outline:2px solid var(--accent, #b0552f);outline-offset:4px}
.gift-taglio-altro .gift-amount{font-size:1rem;letter-spacing:.08em;text-transform:uppercase}
/* campo dell'importo libero: compare solo quando si sceglie «Altro» */
.gift-altro{display:flex;align-items:center;gap:.5rem;margin-top:.6rem}
.gift-altro[hidden]{display:none}
.gift-altro input{flex:1;text-align:center;font-size:1.2rem}
.gift-altro input::-webkit-outer-spin-button,
.gift-altro input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.gift-altro-euro{font-family:var(--serif, Georgia, serif);font-size:1.4rem;color:var(--accent, #b0552f)}
.gift-form .field{margin-bottom:1.05rem}
.gift-form .field-label{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
    color:var(--muted, #8a8178);margin-bottom:.4rem}
.gift-form .field-label em{font-style:normal;color:var(--accent, #b0552f)}
.gift-form input{width:100%;padding:.78rem .95rem;border:1px solid var(--line);border-radius:10px;
    font-family:inherit;font-size:.95rem;background:#fff;color:var(--ink)}
.gift-form input:focus{outline:none;border-color:var(--accent, #b0552f)}
.gift-form .field-hint{display:block;font-size:.76rem;line-height:1.5;color:var(--muted, #8a8178);margin-top:.4rem}
.gift-form .btn-block{margin-top:.5rem}
@media (max-width:860px){
    .gift-compose{grid-template-columns:1fr;gap:2rem}
    .gift-preview{position:static;max-width:420px;margin:0 auto}
}

/* ---- Card Gift Card in testa alla griglia (home e categorie) ----
   Non e' una .product-card: i filtri del catalogo la ignorano, quindi
   resta sempre visibile e sempre per prima. */
.gift-tile{position:relative;display:flex;flex-direction:column;color:inherit}
.gift-tile-media{position:relative;aspect-ratio:3/4;overflow:hidden;display:grid;place-items:center;
    padding:1.2rem;background:linear-gradient(160deg,#f7f1e7 0%,#e9dccb 100%)}
.gift-tile-media img{width:100%;max-width:330px;height:auto;border-radius:8px;
    box-shadow:0 18px 34px -22px rgba(22,20,19,.55);transition:transform .6s}
.gift-tile:hover .gift-tile-media img{transform:scale(1.04)}
.gift-tile-body{padding:.6rem .55rem .2rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.gift-tile-title{font-family:var(--sans);font-size:.76rem;font-weight:400;letter-spacing:.1em;
    text-transform:uppercase;line-height:1.4}
.gift-tile-cta{font-size:.82rem;color:var(--muted);white-space:nowrap;transition:color .2s}
.gift-tile:hover .gift-tile-cta{color:var(--ink)}

/* ================= Banner cookie GDPR ================= */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:9500;
    display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;
    background:#1d1a18;color:#f0e8db;border-radius:14px;padding:1.1rem 1.4rem;
    box-shadow:0 18px 44px -18px rgba(0,0,0,.5);max-width:720px;margin:0 auto;
    font-size:.84rem;line-height:1.5}
.cookie-banner[hidden]{display:none} /* l'attributo hidden deve vincere sul display:flex */
.cookie-banner a{color:#e9c9a8;text-decoration:underline;text-underline-offset:2px}
.cookie-banner .cb-text{flex:1;min-width:230px}
.cookie-banner .cb-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.cb-btn{font-family:inherit;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;
    border-radius:999px;padding:.65rem 1.2rem;cursor:pointer;transition:opacity .2s}
.cb-accept{background:#e9c9a8;color:#1d1a18;border:1px solid #e9c9a8}
.cb-reject{background:transparent;color:#f0e8db;border:1px solid #6b5c4e}
.cb-btn:hover{opacity:.85}
@media (max-width:560px){.cookie-banner{flex-direction:column;align-items:stretch;text-align:center}}

/* ================= Checkout: quantità e rimozione nel riepilogo ================= */
.co-item-ctrl{display:flex;align-items:center;gap:.45rem;margin-top:.3rem}
.co-item-ctrl b{font-size:.82rem;min-width:1.1rem;text-align:center}
.co-qbtn{width:1.55rem;height:1.55rem;border:1px solid var(--line, #e3ded7);border-radius:50%;
    background:#fff;cursor:pointer;font-size:.95rem;line-height:1;display:inline-flex;
    align-items:center;justify-content:center;color:inherit;font-family:inherit;transition:border-color .2s}
.co-qbtn:hover:not(:disabled){border-color:#1d1a18}
.co-qbtn:disabled{opacity:.35;cursor:default}
.co-item-x{margin-left:.35rem;color:#a05248}

/* ================= WhatsApp flottante ================= */
.wa-float{position:fixed;right:max(1.25rem, env(safe-area-inset-right));
    bottom:calc(max(1.25rem, env(safe-area-inset-bottom)) + 4.6rem);z-index:8999;
    width:52px;height:52px;border-radius:50%;background:#25D366;color:#fff;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 10px 26px -10px rgba(37,211,102,.65);transition:transform .2s, box-shadow .2s}
.wa-float:hover{transform:scale(1.07);box-shadow:0 14px 30px -10px rgba(37,211,102,.8)}

/* ---- Footer: recapiti e dati fiscali ---- */
.footer-info{font-style:normal;font-size:.8rem;line-height:1.7;margin-top:.9rem;color:inherit}
.footer-info a{text-decoration:none}
.footer-info a:hover{text-decoration:underline;text-underline-offset:2px}
.footer-vat{font-size:.72rem;line-height:1.6;opacity:.65;margin-top:.7rem}

/* variante della barra spedizione gratuita dentro il riepilogo checkout */
.co-freeship{margin:.4rem 0;border-radius:10px}
.co-freeship a{text-decoration:underline;text-underline-offset:2px}

/* ---- Form contatti (/contatti) ---- */
.contact-page{padding-top:0}
.contact-form .cf-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.contact-form .field{margin-bottom:1rem}
.contact-form input,.contact-form textarea{width:100%;padding:.85rem 1rem;border:1px solid var(--line);
    border-radius:10px;font-family:inherit;font-size:.92rem;background:#fff;resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent, #b0552f)}
.cf-note{font-size:.78rem;color:var(--muted, #8a8178);margin-top:.8rem}
.cf-ok{padding:1.1rem 1.3rem;border:1px solid #cfe9d9;background:#f0faf4;color:#1b7a4b;
    border-radius:12px;font-size:.95rem}
@media (max-width:640px){.contact-form .cf-row{grid-template-columns:1fr}}

/* ================= Header: la nav non deve mai finire sotto il logo =================
   La colonna sinistra della griglia ha spazio finito: la nav si stringe
   progressivamente e sotto i 1500px i link Outlet restano solo nel mega
   menu Shop (e nel menu mobile). */
/* l'header può allargarsi oltre il contenuto pagina (logo sempre centrato) */
.header-bar{max-width:1720px}
@media (min-width:981px){
    .hb-nav{gap:.95rem}
    .hb-nav-link{font-size:.68rem;letter-spacing:.09em}
}
@media (min-width:981px) and (max-width:1599px){
    .hb-outlet{display:none}
    .hb-nav{gap:1.1rem}
    .hb-nav-link{font-size:.7rem;letter-spacing:.11em}
}

/* Gift Card + Contatti a destra del logo, prima della ricerca */
.hb-nav-right{margin-right:1.1rem}
@media (min-width:981px) and (max-width:1300px){
    .subbar-search.hb-search{flex-basis:230px;min-width:150px}
    .hb-nav-right{margin-right:.7rem}
}

/* ---- Slider home: descrizione e CTA nella caption ---- */
/* Tutte le scritte dello slider in maiuscolo (titolo, kicker, descrizione, CTA) */
.hero-slider .slide-caption{text-transform:uppercase}
.slide-desc{max-width:560px;margin:0 auto 1.3rem;font-size:.95rem;line-height:1.55;opacity:.92}
.slide-cta{border-color:rgba(255,255,255,.7);color:#fff}
.slide-cta:hover{background:#fff;color:#111;border-color:#fff}
.hero-slider .slide:only-child{flex-basis:100%}

/* ---- Taglia su richiesta (scheda prodotto): invito WhatsApp ---- */
.size-request{display:flex;align-items:center;gap:.6rem;margin-top:.8rem;
    padding:.65rem .9rem;border:1px solid #cfe9d9;border-radius:10px;
    background:#f0faf4;color:#1b7a4b;font-size:.84rem;line-height:1.4;
    text-decoration:none;transition:background .2s,border-color .2s}
.size-request:hover{background:#e3f6ec;border-color:#25D366}
.size-request svg{flex:none;color:#25D366}
.size-request b{font-weight:600}

/* =========== Barra agganciata (home: categorie · categoria: titolo) ===========
   Full-bleed come la griglia prodotti, si ferma sotto l'header (--hh è
   l'altezza reale misurata da theme.js; --header-h è il fallback senza JS).
   z-index sotto l'header (60) così ci scorre dietro. */
.cat-sticky{position:sticky;top:var(--hh,var(--header-h));z-index:40;background:#fff;
    margin:0 calc(50% - 50vw) 1.6rem;border-bottom:1px solid transparent;
    transition:border-color .2s,box-shadow .2s}
.cat-sticky-in{max-width:var(--maxw);margin:0 auto;padding:.7rem 1.6rem}
.cat-sticky.is-stuck{border-bottom-color:var(--line);box-shadow:0 6px 18px rgba(20,15,12,.06)}
.cat-sticky .filter-bar{padding-bottom:0}

/* Categoria: titolo intero in cima, compatto su una riga quando è agganciato */
.cat-sticky-title .catalog-head-main{min-width:0}
.cat-sticky-title .cat-kicker{transition:opacity .2s,max-height .25s,margin .25s}
.cat-sticky-title .catalog-title{transition:font-size .25s}
.cat-sticky-title.is-stuck .cat-kicker{opacity:0;max-height:0;margin:0;overflow:hidden}
.cat-sticky-title.is-stuck .catalog-title{font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-sticky-title.is-stuck .cat-sticky-in{padding-top:.6rem;padding-bottom:.6rem}

/* la testata della home resta solo col titolo: niente riga vuota a destra */
.catalog-head-plain{margin-bottom:1.2rem}

@media(max-width:680px){
    .cat-sticky{margin-bottom:1.1rem}
    .cat-sticky-in{padding:.6rem 1rem}
    .cat-sticky-title.is-stuck .catalog-title{font-size:.95rem;letter-spacing:.04em}
}

/* ================= Wishlist (localStorage) ================= */
.wl-btn .badge-count{position:absolute;top:4px;right:4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#25D366;color:#fff;font-size:.62rem;display:grid;place-items:center;line-height:1;font-weight:500} /* verde come i badge sconto */
.page-home .site-header:not(.is-scrolled) .wl-btn .badge-count{background:#25D366;color:#fff}
.wl-page .product-card{position:relative}
.wl-remove{position:absolute;top:8px;right:8px;z-index:3;width:30px;height:30px;border-radius:50%;border:none;cursor:pointer;background:rgba(255,255,255,.92);color:#1a1714;font-size:1.05rem;line-height:1;display:grid;place-items:center;box-shadow:0 1px 6px rgba(0,0,0,.14);transition:background .2s,color .2s}
.wl-remove:hover{background:#1a1714;color:#fff}
.wl-empty{text-align:center;padding:3.5rem 1rem;color:var(--muted)}
.wl-empty p{margin:.3rem 0}
.wl-empty-hint{font-size:.85rem}
.wl-empty .btn-dark{display:inline-block;margin-top:1.2rem}
