/* ============================================================
   WeAreCreative Honey · Main Stylesheet
   Tipografia: Fraunces (display) + Manrope (body)
============================================================ */

:root {
    --wac-cream: #FBF7F0;
    --wac-cream-2: #F5EFE2;
    --wac-paper: #FFFDF8;
    --wac-night: #0F0E0C;
    --wac-night-soft: #1A1714;
    --wac-coffee: #2A1810;
    --wac-gold: #C8932A;
    --wac-gold-deep: #9C6F1B;
    --wac-gold-light: #F4D374;
    --wac-line: rgba(15, 14, 12, 0.10);
    --wac-line-strong: rgba(15, 14, 12, 0.20);
    --wac-line-cream: rgba(251, 247, 240, 0.18);
    --wac-mute: #6E665B;

    --wac-display: "Fraunces", Georgia, serif;
    --wac-body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    --wac-radius: 4px;
    --wac-radius-lg: 18px;
    --wac-radius-xl: 32px;

    --wac-ease: cubic-bezier(0.65, 0.05, 0.36, 1);
    --wac-ease-out: cubic-bezier(0.16, 1, 0.3, 1);

    --wac-container: 1320px;
    --wac-container-narrow: 920px;

    --wac-header-h: 84px;
}

/* ============================================================
   Reset
============================================================ */
*,
*::before,
*::after { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--wac-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--wac-night);
    background: var(--wac-cream);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: clip; /* previene scroll orizzontale SENZA rompere position:sticky */
}

img,
svg,
video { max-width: 100%; height: auto; display: block; }

button {
    font: inherit;
    color: inherit;
    background: none;
    border: 0;
    cursor: pointer;
    padding: 0;
}

input,
textarea,
select { font: inherit; }

a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s var(--wac-ease);
}

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

h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 400; letter-spacing: -0.01em; }

p { margin: 0 0 1em; }

p:last-child { margin-bottom: 0; }

strong, b { font-weight: 600; }

::selection {
    background: var(--wac-gold);
    color: var(--wac-night);
}

.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    background: var(--wac-night);
    color: var(--wac-cream);
    padding: 12px 18px;
    z-index: 999999;
}
.skip-link:focus { left: 12px; top: 12px; }

.screen-reader-text {
    position: absolute !important;
    clip: rect(1px,1px,1px,1px);
    width: 1px; height: 1px;
    overflow: hidden;
}

/* ============================================================
   Typography
============================================================ */
.wac-display {
    font-family: var(--wac-display);
    font-weight: 400;
    font-variation-settings: "opsz" 80;
    line-height: 0.98;
    letter-spacing: -0.025em;
}

.wac-display em {
    font-style: italic;
    font-variation-settings: "opsz" 12;
    color: var(--wac-gold-deep);
}

.wac-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--wac-gold-deep);
    margin-bottom: 18px;
}

.wac-eyebrow::before {
    content: "";
    width: 24px; height: 1px;
    background: var(--wac-gold);
}

.wac-meta {
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--wac-mute);
}

/* ============================================================
   Container & sections
============================================================ */
.wac-container {
    width: 100%;
    max-width: var(--wac-container);
    margin: 0 auto;
    padding: 0 32px;
}

.wac-container--narrow { max-width: var(--wac-container-narrow); }

.wac-section { padding: clamp(60px, 9vw, 140px) 0; }

.wac-section-head {
    margin-bottom: 60px;
    max-width: 760px;
}
.wac-section-head h2 { font-size: clamp(2.4rem, 5vw, 4.4rem); }
.wac-section-head--split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: end;
    max-width: none;
}
.wac-section-head--split p { color: var(--wac-mute); margin-bottom: 18px; }
@media (max-width: 720px) {
    .wac-section-head--split { grid-template-columns: 1fr; gap: 24px; }
}

.wac-section-text { font-size: 18px; color: var(--wac-mute); }

.wac-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-weight: 600;
    color: var(--wac-night);
    font-size: 14px;
    letter-spacing: 0.04em;
    border-bottom: 1px solid var(--wac-night);
    padding-bottom: 4px;
    transition: gap 0.3s var(--wac-ease);
}
.wac-link-arrow:hover { gap: 18px; color: var(--wac-gold-deep); border-color: var(--wac-gold-deep); }
.wac-link-arrow .wac-icon { width: 16px; height: 16px; }

/* ============================================================
   Buttons
============================================================ */
.wac-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 28px;
    font-family: var(--wac-body);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.04em;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.35s var(--wac-ease), color 0.35s, border-color 0.35s, transform 0.3s var(--wac-ease), box-shadow 0.35s;
    position: relative;
    line-height: 1;
    -webkit-tap-highlight-color: transparent;
}
.wac-btn:active { transform: scale(0.97); }

.wac-btn .wac-icon { width: 16px; height: 16px; transition: transform 0.4s var(--wac-ease); }
.wac-btn i { font-size: 16px; line-height: 1; transition: transform 0.4s var(--wac-ease); }
.wac-btn:hover i { transform: translateX(3px); }
.wac-btn-large i { font-size: 18px; }
.wac-btn:hover .wac-icon { transform: translateX(4px); }

.wac-btn-primary {
    background: var(--wac-night);
    color: var(--wac-cream);
}
.wac-btn-primary:hover {
    background: var(--wac-gold-deep);
    color: var(--wac-cream);
    box-shadow: 0 4px 16px -2px rgba(200, 147, 42, 0.4);
    transform: translateY(-1px);
}
.wac-btn-primary:active {
    transform: translateY(0) scale(0.98);
    box-shadow: none;
}

.wac-btn-outline {
    background: transparent;
    color: var(--wac-night);
    border-color: var(--wac-night);
}
.wac-btn-outline:hover {
    background: var(--wac-night);
    color: var(--wac-cream);
}

.wac-btn-gold {
    background: var(--wac-gold);
    color: var(--wac-night);
}
.wac-btn-gold:hover { background: var(--wac-gold-deep); color: var(--wac-cream); }

.wac-btn-large { padding: 22px 36px; font-size: 15px; }
.wac-btn-block { display: flex; width: 100%; }

.wac-magnetic { will-change: transform; }

/* ============================================================
   Custom cursor (pointer devices only)
============================================================ */
.wac-cursor {
    position: fixed; top: 0; left: 0;
    pointer-events: none;
    z-index: 2147483000;            /* sopra a qualsiasi overlay/drawer/popup */
    mix-blend-mode: difference;     /* si inverte su ogni sfondo → sempre visibile */
    isolation: isolate;
    display: none;
}
.has-cursor .wac-cursor { display: block; }

.wac-cursor-dot,
.wac-cursor-ring {
    position: absolute;
    top: 0; left: 0;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    will-change: transform;
    transition: width .25s ease, height .25s ease, opacity .25s ease;
}
/* Bianco PIENO: con mix-blend-mode:difference dà il massimo contrasto
   sia sulle sezioni chiare (diventa scuro) sia su quelle scure (resta bianco). */
.wac-cursor-dot {
    width: 8px; height: 8px;
    background: #fff;
}
.wac-cursor-ring {
    width: 0; height: 0; opacity: 0;
    border: 1.5px solid #fff;
}

/* --- Stile: Puntino (solo dot che si ingrandisce in hover) --- */
.wac-cursor--dot .wac-cursor-ring { display: none; }
.has-cursor.wac-cursor--dot.cursor-hover .wac-cursor-dot { width: 18px; height: 18px; }

/* --- Stile: Anello (solo ring, dot minuscolo di riferimento) --- */
.wac-cursor--ring .wac-cursor-dot { width: 4px; height: 4px; }
.wac-cursor--ring .wac-cursor-ring { width: 30px; height: 30px; opacity: .9; }
.has-cursor.wac-cursor--ring.cursor-hover .wac-cursor-ring { width: 52px; height: 52px; }

/* --- Stile: Punto + Anello (dot netto + anello che segue e cresce) --- */
.wac-cursor--dot-ring .wac-cursor-ring { width: 34px; height: 34px; opacity: .55; }
.has-cursor.wac-cursor--dot-ring.cursor-hover .wac-cursor-ring { width: 58px; height: 58px; opacity: 1; }

/* --- Stile: Pulse (anello che compare e pulsa in hover) --- */
.wac-cursor--pulse .wac-cursor-ring { width: 28px; height: 28px; opacity: 0; }
.has-cursor.wac-cursor--pulse.cursor-hover .wac-cursor-ring {
    opacity: .9;
    animation: wac-cursor-pulse 1s ease-out infinite;
    transition: none;
}
@keyframes wac-cursor-pulse {
    0%   { width: 22px; height: 22px; opacity: .9; }
    100% { width: 62px; height: 62px; opacity: 0; }
}

/* Nasconde il cursore nativo solo su device fine, quando l'handler è attivo */
@media (hover: hover) and (pointer: fine) {
    body.wac-cursor-on, body.wac-cursor-on * { cursor: none !important; }
}
@media (hover: none) {
    .wac-cursor { display: none !important; }
    body.wac-cursor-on, body.wac-cursor-on * { cursor: auto; }
}

/* Loader iniziale: ora gestito da inc/loader.php (opzionale, dal builder). */
@keyframes wac-spin {
    to { transform: rotate(360deg); }
}

/* ============================================================
   Header
============================================================ */
.wac-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    height: var(--wac-header-h);
    background: rgba(251, 247, 240, 0.85);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid transparent;
    transition: background 0.4s var(--wac-ease), border-color 0.4s var(--wac-ease), transform 0.4s var(--wac-ease), top 0.4s var(--wac-ease);
}
.wac-header.is-scrolled { border-bottom-color: var(--wac-line); }
.wac-header.is-hidden { transform: translateY(-100%); }

.wac-header-inner {
    height: 100%;
    max-width: var(--wac-container);
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.wac-logo {
    display: flex;
    align-items: center;
}
.wac-logo-text {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--wac-night);
}
.wac-logo-symbol {
    width: 28px; height: 28px;
    color: var(--wac-gold-deep);
    transition: transform 0.5s var(--wac-ease);
}
.wac-logo:hover .wac-logo-symbol { transform: rotate(60deg); }
.wac-logo-name {
    font-family: var(--wac-display);
    font-weight: 500;
    font-size: 22px;
    letter-spacing: -0.02em;
}

.wac-nav { flex: 1; display: flex; justify-content: center; }
.wac-nav-menu {
    display: flex;
    gap: 36px;
}
.wac-nav-menu a {
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.02em;
    position: relative;
    padding: 6px 0;
}
.wac-nav-menu a::after {
    content: "";
    position: absolute;
    left: 0; right: 100%;
    bottom: 0;
    height: 1px;
    background: var(--wac-night);
    transition: right 0.4s var(--wac-ease);
}
.wac-nav-menu a:hover::after,
.wac-nav-menu .current-menu-item > a::after { right: 0; }

.wac-header-actions { display: flex; align-items: center; gap: 8px; }

.wac-cart-toggle {
    position: relative;
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    transition: background 0.3s var(--wac-ease);
}
.wac-cart-toggle:hover { background: var(--wac-cream-2); }
.wac-cart-toggle .wac-icon { width: 22px; height: 22px; }

/* Icone Phosphor nell'header (carrello, profilo, ricerca) */
.wac-header-ph-icon { font-size: 22px; line-height: 1; color: var(--wac-night); display: inline-flex; }
.wac-search-trigger .wac-header-ph-icon,
.wac-search-trigger-m .wac-header-ph-icon { font-size: 20px; }
.wac-header-login .wac-header-ph-icon { font-size: 22px; }

.wac-cart-count {
    position: absolute;
    top: 4px; right: 4px;
    min-width: 18px; height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--wac-cart-badge-bg, var(--wac-gold-deep));
    color: var(--wac-cart-badge-fg, var(--wac-cream));
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s var(--wac-ease);
    transform-origin: center;
}
.wac-cart-count[data-count="0"] { transform: scale(0); }
.wac-cart-count.is-bump { animation: wac-bump 0.5s; }
@keyframes wac-bump {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.4); }
}

.wac-menu-toggle {
    width: 44px; height: 44px;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
}
.wac-menu-toggle span {
    width: 22px; height: 1.5px;
    background: var(--wac-night);
    transition: transform 0.4s var(--wac-ease), opacity 0.3s;
}
body.menu-open .wac-menu-toggle span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
}
body.menu-open .wac-menu-toggle span:nth-child(2) { opacity: 0; }
body.menu-open .wac-menu-toggle span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
}

@media (max-width: 900px) {
    .wac-nav { display: none; }
    .wac-menu-toggle { display: flex; }
    .wac-header-inner { position: relative; }
    /* L'account NON deve mai comparire nell'header mobile: sta solo nel drawer */
    .wac-header-login,
    .wac-account-toggle { display: none !important; }

    /* === Layout header mobile (classe wac-header-m--*) === */

    /* Default: hamburger + ricerca a sinistra · logo centrato · carrello a destra */
    .wac-header-m--ham-search-logo-cart .wac-header-mobile-left { display: flex; align-items: center; gap: 2px; }
    .wac-header-m--ham-search-logo-cart .wac-logo { position: absolute !important; left: 50% !important; top: 50% !important; right: auto !important; transform: translate(-50%, -50%) !important; margin: 0 !important; }
    .wac-header-m--ham-search-logo-cart .wac-header-actions { margin-left: auto; }
    .wac-header-m--ham-search-logo-cart .wac-header-actions .wac-search-trigger,
    .wac-header-m--ham-search-logo-cart .wac-header-actions #wac-menu-toggle { display: none; }

    /* Hamburger · logo centrato · carrello (ricerca nascosta) */
    .wac-header-m--ham-logo-cart .wac-header-mobile-left { display: flex; }
    .wac-header-m--ham-logo-cart .wac-search-trigger-m { display: none; }
    .wac-header-m--ham-logo-cart .wac-logo { position: absolute !important; left: 50% !important; top: 50% !important; right: auto !important; transform: translate(-50%, -50%) !important; margin: 0 !important; }
    .wac-header-m--ham-logo-cart .wac-header-actions { margin-left: auto; }
    .wac-header-m--ham-logo-cart .wac-header-actions .wac-search-trigger,
    .wac-header-m--ham-logo-cart .wac-header-actions #wac-menu-toggle { display: none; }

    /* Logo a sinistra · icone a destra (ricerca + carrello + hamburger) */
    .wac-header-m--logo-left-icons .wac-header-mobile-left { display: none; }
    .wac-header-m--logo-left-icons .wac-header-actions { margin-left: auto; }
    .wac-header-m--logo-left-icons .wac-header-actions .wac-search-trigger { display: flex; }
    .wac-header-m--logo-left-icons .wac-header-actions #wac-menu-toggle { display: flex; }
}

/* Mobile menu: vedi blocco in fondo al file */
body.menu-open { overflow: hidden; }

/* ============================================================
   Cart drawer
============================================================ */
.wac-cart-drawer {
    position: fixed; inset: 0;
    z-index: 200;
    visibility: hidden;
    pointer-events: none;
    transition: visibility 0s 0.5s;
}
.wac-cart-drawer.is-open {
    visibility: visible;
    pointer-events: auto;
    transition: visibility 0s 0s;
}

/* Overlay: solo il lato sinistro fuori dal pannello */
.wac-cart-overlay {
    position: absolute;
    top: 0; left: 0; bottom: 0; right: 0;
    background: rgba(15, 14, 12, 0.35);
    opacity: 0;
    transition: opacity 0.4s;
    cursor: pointer;
    z-index: 1;
}
.wac-cart-drawer.is-open .wac-cart-overlay { opacity: 1; }

/* Pannello */
.wac-cart-drawer-inner {
    position: absolute;
    top: 0; right: 0; bottom: 0;
    z-index: 2;
    width: 100%;
    max-width: 420px;
    background: var(--wac-drawer-bg, var(--wac-paper));
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    box-shadow: -12px 0 48px -8px rgba(0,0,0,0.12);
}
.wac-cart-drawer.is-open .wac-cart-drawer-inner { transform: translateX(0); }

@media (max-width: 460px) {
    .wac-cart-drawer-inner { max-width: 100%; }
    .wac-cart-overlay { display: none; }
}

/* Pannello centrale "Visti di recente" (carrello vuoto, stile Velasca) */
.wac-cart-recent {
    position: absolute;
    top: 0; bottom: 0; left: 0; right: 420px;
    z-index: 2;
    display: flex; align-items: center; justify-content: center;
    padding: 28px;
    opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity 0.4s ease, visibility 0s linear 0.5s;
}
.wac-cart-drawer.is-open.is-empty .wac-cart-recent {
    opacity: 1; visibility: visible;
    transition: opacity 0.45s ease 0.15s, visibility 0s;
}
.wac-cart-recent-inner {
    pointer-events: auto;
    width: 100%; max-width: 1080px; max-height: 86vh; overflow: hidden;
    background: var(--wac-paper, #fff);
    padding: 34px 38px 40px;
    box-shadow: 0 40px 90px -24px rgba(0,0,0,0.35);
    display: flex; flex-direction: column;
}
.wac-cart-recent-head { margin-bottom: 18px; }
.wac-cart-recent-head .wac-eyebrow { display: block; margin-bottom: 6px; }
.wac-cart-recent-head h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); margin: 0; }
.wac-cart-recent .wac-related-slider { overflow: hidden; }
.wac-cart-recent .wac-related-track {
    display: flex; gap: 20px; overflow-x: auto; scroll-behavior: smooth;
    scrollbar-width: none;
}
.wac-cart-recent .wac-related-track::-webkit-scrollbar { display: none; }
.wac-cart-recent .wac-related-slide { flex: 0 0 clamp(230px, 30%, 300px); }

/* Da tablet in giù: niente pannello centrale, solo le categorie nel drawer */
@media (max-width: 900px) {
    .wac-cart-recent { display: none; }
}

/* Header drawer */
.wac-cart-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--wac-line);
    flex-shrink: 0;
}
.wac-cart-drawer-head h2 {
    font-family: var(--wac-display);
    font-size: 18px;
    font-weight: 600;
    margin: 0;
    color: var(--wac-night);
}
.wac-cart-close {
    width: 36px; height: 36px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    transition: background 0.2s;
    border: 0; background: none; cursor: pointer;
    color: var(--wac-night);
    padding: 0;
}
.wac-cart-close:hover { background: var(--wac-cream-2); }
.wac-cart-close .wac-icon { width: 18px; height: 18px; }

/* Body — scorribile */
.wac-cart-drawer-body {
    flex: 1;
    overflow-y: auto;
    padding: 0;
    -webkit-overflow-scrolling: touch;
}

/* Empty state */
.wac-cart-empty {
    text-align: center;
    padding: 60px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}
.wac-cart-empty p {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 15px;
    color: var(--wac-mute);
    margin: 0;
}

/* Singola riga prodotto */
.wac-cart-line {
    display: flex;
    gap: 16px;
    padding: 16px 24px;
    border-bottom: 1px solid var(--wac-line);
    align-items: flex-start;
}
.wac-cart-line:last-child { border-bottom: 0; }

.wac-cart-line-img {
    width: 72px; height: 72px;
    background: var(--wac-cream-2);
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0;
}
.wac-cart-line-img img { width: 100%; height: 100%; object-fit: cover; }

.wac-cart-line-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.wac-cart-line-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--wac-night);
    margin: 0;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wac-cart-line-variant {
    font-size: 12px;
    color: var(--wac-mute);
}
.wac-cart-line-price { font-size: 13px; color: var(--wac-mute); }

/* Qty mini */
.wac-cart-line-qty {
    display: inline-flex;
    align-self: flex-start;
    width: -moz-fit-content;
    width: fit-content;
    align-items: center;
    background: var(--wac-cream-2);
    border-radius: 999px;
    height: 34px;
    padding: 3px;
    margin-top: 10px;
    gap: 2px;
}
.wac-cart-line-qty button {
    width: 28px; height: 28px;
    display: flex; align-items: center; justify-content: center;
    color: var(--wac-night);
    background: var(--wac-paper);
    border: 0; border-radius: 50%; cursor: pointer; padding: 0;
    font-size: 16px; line-height: 1; font-weight: 500;
    box-shadow: 0 1px 2px rgba(15,14,12,0.06);
    transition: background 0.2s var(--wac-ease), transform 0.15s var(--wac-ease), color 0.2s;
}
.wac-cart-line-qty button:hover { background: var(--wac-night); color: var(--wac-cream); }
.wac-cart-line-qty button:active { transform: scale(0.9); }
.wac-cart-line-qty button .wac-icon { width: 12px; height: 12px; }
.wac-cart-line-qty span {
    min-width: 30px;
    text-align: center;
    font-weight: 700;
    font-size: 13px;
    color: var(--wac-night);
}

/* Colonna destra: prezzo totale + rimuovi */
.wac-cart-line-end {
    display: flex; flex-direction: column; align-items: flex-end;
    justify-content: space-between;
    align-self: stretch;
    flex-shrink: 0;
}
.wac-cart-line-total {
    font-weight: 700;
    font-size: 14px;
    color: var(--wac-night);
}
.wac-cart-line-remove {
    color: var(--wac-mute);
    font-size: 11px;
    text-decoration: underline;
    text-underline-offset: 3px;
    border: 0; background: none; cursor: pointer; padding: 0;
}
.wac-cart-line-remove:hover { color: #c62828; }

/* Footer drawer */
.wac-cart-drawer-foot {
    border-top: 1px solid var(--wac-line);
    padding: 20px 24px 24px;
    flex-shrink: 0;
    background: var(--wac-paper);
}

/* Hint spedizione gratuita */
.wac-cart-free-hint {
    font-size: 12px;
    color: var(--wac-gold-deep);
    text-align: center;
    margin-bottom: 14px;
    background: rgba(200,147,42,0.08);
    padding: 8px 14px;
    border-radius: 999px;
    font-weight: 500;
}

/* Totali */
.wac-cart-totals {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 14px;
    margin-bottom: 18px;
}
.wac-cart-totals-row {
    display: flex;
    justify-content: space-between;
    color: var(--wac-mute);
}
.wac-cart-totals-row strong { color: var(--wac-night); font-weight: 600; }
.wac-cart-totals-row.is-total {
    font-weight: 700;
    font-size: 16px;
    color: var(--wac-night);
    padding-top: 10px;
    margin-top: 6px;
    border-top: 1px solid var(--wac-line);
}

/* Bottoni footer */
.wac-cart-drawer-foot .wac-btn {
    width: 100%;
    justify-content: center;
    padding: 16px 24px;
    font-size: 14px;
}
.wac-cart-view-link {
    display: block;
    text-align: center;
    margin-top: 12px;
    font-size: 13px;
    color: var(--wac-mute);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.wac-cart-view-link:hover { color: var(--wac-night); }

.wac-cart-summary .wac-btn { margin-top: 24px; width: 100%; }

body.cart-open { overflow: hidden; }

/* ============================================================
   Main wrapper
============================================================ */
.wac-main {
    padding-top: var(--wac-header-h);
    min-height: 60vh;
}

/* ============================================================
   Hero
============================================================ */
.js-reveal.is-revealed .wac-hero-line > span,
.wac-hero-cta {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.wac-honey-drip {
    position: absolute;
    top: 0;
    right: 12%;
    width: 40px;
    height: 130px;
    z-index: 2;
    opacity: 0.85;
    transform-origin: top center;
    animation: wac-drip 4.6s var(--wac-ease) infinite;
}
@keyframes wac-drip {
    0%, 100% { transform: scaleY(0.7); }
    50% { transform: scaleY(1); }
}

.wac-scroll-indicator {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 24px;
    height: 38px;
    border: 1px solid var(--wac-night);
    border-radius: 999px;
    display: flex;
    justify-content: center;
    padding-top: 8px;
}
.wac-scroll-indicator span {
    width: 2px;
    height: 6px;
    background: var(--wac-night);
    border-radius: 1px;
    animation: wac-scroll-dot 1.8s var(--wac-ease) infinite;
}
@keyframes wac-scroll-dot {
    0% { transform: translateY(0); opacity: 1; }
    70% { transform: translateY(14px); opacity: 0; }
    100% { transform: translateY(0); opacity: 0; }
}

/* ============================================================
   Marquee — il componente vive interamente in builder-components.css.
   (Rimossa la vecchia regola legacy che animava il container in conflitto
   con la track: causava lo scatto/riparti e il drift verso destra.)
============================================================ */

/* ============================================================
   Features
============================================================ */
.wac-feature {
    position: relative;
    padding: 36px 28px;
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-lg);
    overflow: hidden;
    transition: transform 0.4s var(--wac-ease), box-shadow 0.4s var(--wac-ease);
}
.wac-feature::before {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(135deg, transparent 50%, rgba(244,211,116,0.10) 100%);
    opacity: 0;
    transition: opacity 0.4s;
}
.wac-feature:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 50px -20px rgba(15,14,12,0.18);
}
.wac-feature:hover::before { opacity: 1; }
.wac-feature-icon {
    width: 56px; height: 56px;
    background: var(--wac-cream-2);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--wac-gold-deep);
    margin-bottom: 24px;
}
.wac-feature-icon .wac-icon { width: 24px; height: 24px; }
.wac-feature-title {
    font-family: var(--wac-display);
    font-size: 1.5rem;
    margin-bottom: 12px;
}
.wac-feature-text { color: var(--wac-mute); font-size: 15px; }
.wac-feature-num {
    position: absolute;
    top: 20px; right: 24px;
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 14px;
    color: var(--wac-gold);
}

/* ============================================================
   Showcase / product grid + product card
============================================================ */
.wac-products-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    row-gap: 32px;
}
@media (max-width: 540px) { .wac-products-grid { grid-template-columns: 1fr; gap: 24px; } }

/* ============================================================
   Story
============================================================ */
.wac-story-visual img,
@keyframes wac-spin-slow {
    to { transform: rotate(360deg); }
}
/* ============================================================
   Testimonial
============================================================ */
.wac-quote-mark {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 8rem;
    line-height: 0.5;
    color: var(--wac-gold);
    opacity: 0.25;
}
/* ============================================================
   CTA finale
============================================================ */
.wac-bigtext {
    position: relative;
    margin-top: 40px;
    color: rgba(251, 247, 240, 0.05);
    overflow: hidden;
    white-space: nowrap;
    pointer-events: none;
}
.wac-bigtext span {
    display: inline-block;
    font-family: var(--wac-display);
    font-style: italic;
    font-weight: 600;
    font-size: clamp(5rem, 14vw, 12rem);
    line-height: 1;
    letter-spacing: -0.04em;
    animation: wac-marquee-bigtext 30s linear infinite;
}
@keyframes wac-marquee-bigtext {
    to { transform: translateX(-33%); }
}

/* ============================================================
   Footer
============================================================ */
.wac-footer {
    background: var(--wac-night);
    color: var(--wac-cream);
    position: relative;
    overflow: hidden;
    padding: 80px 0 30px;
}
.wac-footer-inner {
    position: relative;
    z-index: 2;
    max-width: var(--wac-container);
    margin: 0 auto;
    padding: 0 32px;
}
.wac-footer-grid {
    display: grid;
    grid-template-columns: repeat(var(--wac-footer-cols, 4), minmax(0, 1fr));
    gap: 40px;
    margin-bottom: 56px;
}

.wac-footer-col h4 {
    font-family: var(--wac-body);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--wac-gold);
    margin-bottom: 18px;
    font-weight: 600;
}
.wac-footer-text,
.wac-footer-col li {
    color: rgba(251,247,240,0.7);
    font-size: 14px;
    line-height: 1.7;
    margin: 0 0 8px;
}
.wac-footer-text { max-width: 34ch; }
.wac-footer-col a { color: rgba(251,247,240,0.7); transition: color 0.3s; text-decoration: none; }
.wac-footer-col a:hover { color: var(--wac-gold); }
.wac-footer-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.wac-footer-menu li { margin: 0; }

/* Sezione "Pagamenti accettati" (stile Velasca: immagine centrata) */
.wac-footer-payments {
    display: flex;
    justify-content: center;
    padding: 8px 0 40px;
}
.wac-footer-payments img {
    max-width: 420px;
    width: 100%;
    height: auto;
    opacity: 0.9;
}

/* Barra inferiore: due lati affiancati */
.wac-footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px 32px;
    flex-wrap: wrap;
    padding-top: 28px;
    border-top: 1px solid var(--wac-line-cream);
    font-size: 12px;
    color: rgba(251,247,240,0.5);
}
.wac-footer-bottom-left,
.wac-footer-bottom-right { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.wac-footer-bottom-text { color: rgba(251,247,240,0.5); }
.wac-footer-links-inline { list-style: none; margin: 0; padding: 0; display: flex; gap: 24px; flex-wrap: wrap; }
.wac-footer-links-inline li { margin: 0; }
.wac-footer-bottom a { color: rgba(251,247,240,0.7); text-decoration: none; transition: color 0.3s; }
.wac-footer-bottom a:hover { color: var(--wac-gold); }

.wac-footer-watermark {
    position: absolute;
    bottom: -40px; left: 50%;
    transform: translateX(-50%);
    font-family: var(--wac-display);
    font-style: italic;
    font-weight: 500;
    font-size: clamp(8rem, 28vw, 24rem);
    line-height: 0.85;
    color: rgba(251,247,240,0.04);
    pointer-events: none;
    z-index: 1;
    white-space: nowrap;
    letter-spacing: -0.03em;
}

/* ============================================================
   Pagination
============================================================ */
.wac-pagination {
    margin-top: 60px;
    display: flex;
    justify-content: center;
}
.wac-pagination .nav-links,
.wac-pagination > * {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}
.wac-pagination a,
.wac-pagination span {
    width: 44px; height: 44px;
    border: 1px solid var(--wac-line-strong);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 14px;
    text-decoration: none;
    flex: 0 0 auto;
    transition: all 0.3s var(--wac-ease);
}
.wac-pagination a:hover { background: var(--wac-night); color: var(--wac-cream); border-color: var(--wac-night); }
.wac-pagination .current { background: var(--wac-night); color: var(--wac-cream); border-color: var(--wac-night); }
.wac-pagination .dots { border-color: transparent; }

/* ============================================================
   Generic page header
============================================================ */
.wac-page-header {
    padding: 80px 0 40px;
    border-bottom: 1px solid var(--wac-line);
}
.wac-page-title {
    font-size: clamp(2.6rem, 6vw, 5rem);
    line-height: 1;
    max-width: 900px;
}

.wac-posts-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 50px;
}
@media (max-width: 800px) { .wac-posts-grid { grid-template-columns: 1fr; gap: 30px; } }
.wac-post-card { display: flex; flex-direction: column; gap: 18px; }
.wac-post-card-img {
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: var(--wac-radius-lg);
    background: var(--wac-cream-2);
}
.wac-post-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--wac-ease); }
.wac-post-card:hover .wac-post-card-img img { transform: scale(1.04); }
.wac-post-card-title {
    font-family: var(--wac-display);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    margin: 6px 0 4px;
    line-height: 1.15;
}
.wac-post-card-excerpt { color: var(--wac-mute); margin-bottom: 8px; }

.wac-no-results {
    text-align: center;
    padding: 80px 20px;
    color: var(--wac-mute);
    font-style: italic;
    font-family: var(--wac-display);
    font-size: 1.4rem;
}

/* ============================================================
   Single product page
============================================================ */
.wac-product-single {
    padding: 50px 0 100px;
}
.wac-product-layout {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 80px;
    align-items: flex-start;
}

.wac-product-gallery { position: sticky; top: calc(var(--wac-header-h) + 24px); display: flex; flex-direction: column; gap: 14px; }
.wac-product-gallery-main {
    aspect-ratio: 4/5;
    border-radius: var(--wac-radius-lg);
    overflow: hidden;
    background: var(--wac-cream-2);
}
.wac-product-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.wac-product-gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}
.wac-product-gallery-thumbs button {
    aspect-ratio: 1;
    border-radius: var(--wac-radius);
    overflow: hidden;
    background: var(--wac-cream-2);
    border: 2px solid transparent;
    transition: border-color 0.3s;
}
.wac-product-gallery-thumbs button.is-active { border-color: var(--wac-gold-deep); }
.wac-product-gallery-thumbs button img { width: 100%; height: 100%; object-fit: cover; }

.wac-product-info { padding: 14px 0; }
.wac-product-info-eyebrow {
    font-size: 12px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--wac-gold-deep);
    margin-bottom: 14px;
}
.wac-product-info-title {
    font-family: var(--wac-display);
    font-size: clamp(2rem, 4.5vw, 3.4rem);
    line-height: 1;
    margin-bottom: 16px;
}
.wac-product-info-price {
    font-size: 1.6rem;
    font-weight: 600;
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    gap: 14px;
}
.wac-product-info-price del { color: var(--wac-mute); font-weight: 400; font-size: 1.2rem; }
.wac-product-info-price ins { text-decoration: none; }

.wac-product-attrs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin: 28px 0;
    padding: 24px 0;
    border-top: 1px solid var(--wac-line);
    border-bottom: 1px solid var(--wac-line);
}
.wac-product-attr {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.wac-product-attr-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--wac-mute);
}
.wac-product-attr-value { font-weight: 600; }

.wac-product-desc { color: var(--wac-mute); font-size: 1.025rem; margin-bottom: 30px; }

.wac-product-buy {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 30px;
    flex-wrap: wrap;
}
.wac-qty-control {
    display: inline-flex;
    align-items: center;
    border: 1.5px solid var(--wac-line-strong);
    border-radius: 999px;
    height: 48px;
    overflow: hidden;
    background: var(--wac-paper);
}
/* Solo la scheda prodotto: questa classe non compare da nessun'altra parte,
   quindi carrello e drawer restano com'erano. */
.wac-qty-control.wac-qty-control-large {
    background: var(--wac-qty-bg, var(--wac-paper));
    border-color: var(--wac-qty-border, var(--wac-line-strong));
    border-radius: var(--wac-qty-radius, 999px);
}
/* Simboli e numero: se lo sfondo qui sopra diventa scuro, i glifi di serie
   spariscono. Seguono la stessa variabile, con i valori di prima come
   ripiego. */
/* Due classi nel selettore, non per vezzo: le regole generiche di
   .wac-qty-control stanno piu' sotto in questo file e a parita' di peso
   vincerebbero loro. Cosi' l'ordine non conta. */
.wac-qty-control.wac-qty-control-large button { color: var(--wac-qty-fg, var(--wac-mute)); }
.wac-qty-control.wac-qty-control-large input { color: var(--wac-qty-fg, var(--wac-night)); }
.wac-qty-control.wac-qty-control-large button:hover { color: var(--wac-qty-fg, var(--wac-night)); }
.wac-qty-control button {
    width: 44px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--wac-mute);
    font-size: 18px;
    font-weight: 300;
    line-height: 1;
    transition: color 0.2s, background 0.2s;
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}
.wac-qty-control button:hover { color: var(--wac-night); background: var(--wac-cream-2); }
.wac-qty-control button:active { background: var(--wac-line); }
.wac-qty-control button .wac-icon { width: 14px; height: 14px; }
.wac-qty-control input {
    width: 36px;
    height: 100%;
    border: 0;
    text-align: center;
    background: transparent;
    font-weight: 700;
    font-size: 15px;
    outline: none;
    -moz-appearance: textfield;
    color: var(--wac-night);
    padding: 0;
}
.wac-qty-control input::-webkit-outer-spin-button,
.wac-qty-control input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Large variant (single product) */
.wac-qty-control-large { height: 56px; }
.wac-qty-control-large button { width: 52px; }
.wac-qty-control-large input { width: 46px; font-size: 17px; }

.wac-product-add-btn {
    flex: 1;
    min-height: 56px;
    padding: 0 28px;
}
.wac-product-add-btn.is-added {
    background: var(--wac-gold);
    color: var(--wac-night);
}

.wac-product-tabs {
    margin-top: 32px;
    border-top: 1px solid var(--wac-line);
}
.wac-product-tabs details {
    border-bottom: 1px solid var(--wac-line);
}
.wac-product-tabs summary {
    list-style: none;
    cursor: pointer;
    padding: 24px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 600;
    font-size: 15px;
}
.wac-product-tabs summary::-webkit-details-marker { display: none; }
.wac-product-tabs summary::after {
    content: "+";
    font-size: 24px;
    font-family: var(--wac-display);
    color: var(--wac-gold-deep);
    transition: transform 0.3s;
}
.wac-product-tabs details[open] summary::after { content: "−"; }
.wac-product-tabs-content {
    padding-bottom: 24px;
    color: var(--wac-mute);
    font-size: 15px;
    line-height: 1.7;
}

/* ============================================================
   Cart page
============================================================ */
.wac-cart-page { padding-bottom: 100px; }
.wac-cart-layout {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 60px;
    align-items: flex-start;
}

.wac-cart-table {
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-lg);
    padding: 6px 28px;
}
.wac-cart-row {
    display: grid;
    grid-template-columns: 100px 1fr auto auto;
    gap: 18px;
    align-items: center;
    padding: 22px 0;
    border-bottom: 1px solid var(--wac-line);
}
.wac-cart-row:last-child { border-bottom: 0; }
.wac-cart-row-img {
    width: 100px; height: 100px;
    background: var(--wac-cream-2);
    border-radius: var(--wac-radius);
    overflow: hidden;
}
.wac-cart-row-img img { width: 100%; height: 100%; object-fit: cover; }
.wac-cart-row-info h3 {
    font-family: var(--wac-display);
    font-size: 1.15rem;
    margin: 0 0 4px;
}
.wac-cart-row-info a { color: var(--wac-night); }
.wac-cart-row-info a:hover { color: var(--wac-gold-deep); }
.wac-cart-row-info p { font-size: 13px; color: var(--wac-mute); margin: 0; }
.wac-cart-row-line { font-weight: 700; min-width: 80px; text-align: right; }
.wac-cart-row-remove {
    color: var(--wac-mute);
    font-size: 11px;
    text-decoration: underline;
    text-underline-offset: 3px;
    margin-top: 6px;
}

.wac-cart-summary {
    background: var(--wac-cream-2);
    border-radius: var(--wac-radius-lg);
    padding: 32px;
    position: sticky;
    top: calc(var(--wac-header-h) + 24px);
}
.wac-cart-summary h3 {
    font-family: var(--wac-display);
    font-size: 1.4rem;
    margin-bottom: 20px;
}
.wac-cart-summary-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    font-size: 14px;
}
.wac-cart-summary-row.is-total {
    font-weight: 700;
    font-size: 18px;
    margin-top: 12px;
    padding-top: 16px;
    border-top: 1px solid var(--wac-line-strong);
}

.wac-cart-empty-page {
    text-align: center;
    padding: 100px 20px;
}
.wac-cart-empty-page h1 {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: clamp(2rem, 5vw, 3.4rem);
    margin-bottom: 18px;
}
.wac-cart-empty-page p { color: var(--wac-mute); margin-bottom: 32px; }

/* ============================================================
   Checkout page
============================================================ */
.wac-checkout-page { padding-bottom: 100px; }
.wac-checkout-layout {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 60px;
    align-items: flex-start;
}

.wac-checkout-form .wac-form-section {
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-lg);
    padding: 32px;
    margin-bottom: 20px;
}
.wac-checkout-form h3 {
    font-family: var(--wac-display);
    font-size: 1.3rem;
    margin-bottom: 20px;
}
.wac-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}
.wac-form-row.single { grid-template-columns: 1fr; }

.wac-form-field { display: flex; flex-direction: column; gap: 6px; }
.wac-form-field label {
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--wac-mute);
    font-weight: 600;
}
.wac-form-field input,
.wac-form-field textarea,
.wac-form-field select {
    border: 1px solid var(--wac-line-strong);
    background: var(--wac-cream);
    padding: 14px 16px;
    border-radius: var(--wac-radius);
    font-size: 14px;
    transition: border-color 0.3s;
}
.wac-form-field input:focus,
.wac-form-field textarea:focus,
.wac-form-field select:focus {
    outline: none;
    border-color: var(--wac-gold-deep);
}

.wac-checkout-summary {
    background: var(--wac-night);
    color: var(--wac-cream);
    border-radius: var(--wac-radius-lg);
    padding: 32px;
    position: sticky;
    top: calc(var(--wac-header-h) + 24px);
}
.wac-checkout-summary h3 {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 1.3rem;
    margin-bottom: 24px;
    color: var(--wac-gold-light);
}
.wac-checkout-line {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid var(--wac-line-cream);
    font-size: 14px;
    gap: 8px;
}
.wac-checkout-line span:first-child { color: rgba(251,247,240,0.85); }
.wac-checkout-totals { padding-top: 16px; }
.wac-checkout-totals .row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    font-size: 14px;
    color: rgba(251,247,240,0.7);
}
.wac-checkout-totals .row.is-total {
    color: var(--wac-cream);
    font-weight: 700;
    font-size: 18px;
    margin-top: 12px;
    padding-top: 16px;
    border-top: 1px solid var(--wac-line-cream);
}

.wac-checkout-submit {
    width: 100%;
    margin-top: 24px;
    background: var(--wac-gold);
    color: var(--wac-night);
}
.wac-checkout-submit:hover { background: var(--wac-gold-light); color: var(--wac-night); }
.wac-checkout-error {
    margin-top: 14px;
    color: #ff6b6b;
    font-size: 13px;
    text-align: center;
}

/* ============================================================
   Thank you page
============================================================ */
.wac-thankyou {
    text-align: center;
    padding: 100px 20px 120px;
}
.wac-thankyou-hex {
    width: 90px; height: 90px;
    margin: 0 auto 28px;
    color: var(--wac-gold-deep);
    position: relative;
}
.wac-thankyou-hex svg { width: 100%; height: 100%; animation: wac-bounce 1s var(--wac-ease); }
@keyframes wac-bounce {
    0% { transform: scale(0); }
    60% { transform: scale(1.2); }
    100% { transform: scale(1); }
}
.wac-thankyou h1 {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: clamp(3rem, 7vw, 5rem);
    margin-bottom: 16px;
}
.wac-thankyou-lede {
    font-size: 1.15rem;
    color: var(--wac-mute);
    max-width: 540px;
    margin: 0 auto 36px;
}
.wac-thankyou-number {
    display: inline-block;
    background: var(--wac-cream-2);
    padding: 14px 28px;
    border-radius: 999px;
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 1.3rem;
    margin-bottom: 50px;
}
.wac-thankyou-actions {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* ============================================================
   About + Contact pages
============================================================ */
@media (max-width: 700px) { .wac-about-stats-grid { grid-template-columns: 1fr; gap: 40px; } }
/* Contact */
/* ============================================================
   Shop / archive
============================================================ */
.wac-shop-header {
    padding: 60px 0 30px;
    border-bottom: 1px solid var(--wac-line);
}
.wac-shop-header-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: end;
}
.wac-shop-header h1 {
    font-size: clamp(3rem, 7vw, 5.5rem);
    line-height: 0.96;
}
.wac-shop-header p { color: var(--wac-mute); font-size: 1.075rem; max-width: 460px; }

.wac-shop-toolbar {
    padding: 30px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    border-bottom: 1px solid var(--wac-line);
}
.wac-filter-pills {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.wac-filter-pill {
    padding: 8px 16px;
    border: 1px solid var(--wac-line-strong);
    border-radius: 999px;
    font-size: 13px;
    transition: all 0.3s var(--wac-ease);
}
.wac-filter-pill.is-active,
.wac-filter-pill:hover { background: var(--wac-night); color: var(--wac-cream); border-color: var(--wac-night); }

/* ============================================================
   Toast
============================================================ */
.wac-toast {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    background: var(--wac-night);
    color: var(--wac-cream);
    padding: 14px 24px;
    border-radius: 999px;
    font-size: 14px;
    z-index: 9999;
    opacity: 0;
    transition: all 0.4s var(--wac-ease);
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.3);
    pointer-events: none;
}
.wac-toast.is-visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}
.wac-toast--ok { background: #2e7d32; }
.wac-toast--err { background: #c62828; }

/* ============================================================
   Reveal animations (init state — handled by JS)
============================================================ */
.js-reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.9s var(--wac-ease-out), transform 0.9s var(--wac-ease-out);
}
.js-reveal.is-revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .js-reveal { opacity: 1; transform: none; }
    .wac-marquee { animation-play-state: paused; }
}

/* ============================================================
   Responsive utilities
============================================================ */

/* ============================================================
   Template-specific class aliases
   (i template usano queste classi, qui le definiamo)
============================================================ */

/* Shop toolbar filtri */
.wac-shop-filters {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.wac-shop-filter {
    padding: 8px 16px;
    border: 1px solid var(--wac-line-strong);
    border-radius: 999px;
    font-size: 13px;
    color: var(--wac-night);
    transition: all 0.3s var(--wac-ease);
}
.wac-shop-filter:hover { border-color: var(--wac-night); }
.wac-shop-filter.is-active {
    background: var(--wac-night);
    color: var(--wac-cream);
    border-color: var(--wac-night);
}
.wac-shop-sort {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 13px;
}
.wac-shop-sort label {
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wac-mute);
    font-size: 11px;
    font-weight: 600;
}
.wac-shop-sort select {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--wac-line-strong);
    padding: 6px 24px 6px 0;
    font-size: 13px;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F0E0C' stroke-width='1.5'><path d='M6 9l6 6 6-6'/></svg>");
    background-repeat: no-repeat;
    background-position: right 0 center;
    background-size: 16px;
}

.wac-shop { padding-bottom: 80px; }

.wac-page-header-text {
    color: var(--wac-mute);
    font-size: 1.075rem;
    margin-top: 18px;
    max-width: 640px;
}

/* Empty states */
.wac-empty {
    text-align: center;
    padding: 80px 20px;
    color: var(--wac-mute);
    font-style: italic;
    font-family: var(--wac-display);
    font-size: 1.4rem;
}

/* Product card price old/new */
.wac-price-old {
    color: var(--wac-mute);
    font-size: 0.85em;
    text-decoration: line-through;
    margin-right: 8px;
}
.wac-price-now { color: var(--wac-night); font-weight: 700; }
.wac-price-large { font-size: 1.6rem; }

.wac-product-card-badge {
    position: absolute;
    top: 14px; left: 14px;
    background: var(--wac-night);
    color: var(--wac-cream);
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
    z-index: 2;
}
.wac-product-card-badge-out { background: #6e665b; }

.wac-product-card-add.is-added { background: var(--wac-gold); color: var(--wac-cream); border-color: var(--wac-gold); }

.wac-product-card-weight {
    font-size: 11px;
    color: var(--wac-mute);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-left: 8px;
}

/* Single product extras */
.wac-breadcrumbs {
    padding: 30px 0 20px;
    font-size: 13px;
    color: var(--wac-mute);
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.wac-breadcrumbs a:hover { color: var(--wac-gold-deep); }

.wac-product-title {
    font-size: clamp(2rem, 4.5vw, 3.4rem);
    line-height: 1;
    margin-bottom: 16px;
}
.wac-product-flowers {
    color: var(--wac-gold-deep);
    font-family: var(--wac-display);
    font-size: 1.1rem;
    margin-bottom: 20px;
}
.wac-product-price-row {
    display: flex;
    align-items: baseline;
    gap: 16px;
    margin-bottom: 28px;
    flex-wrap: wrap;
}
.wac-product-weight {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wac-mute);
}
.wac-product-excerpt { color: var(--wac-mute); font-size: 1.025rem; margin-bottom: 30px; line-height: 1.7; }

.wac-product-purchase {
    display: flex;
    gap: 14px;
    align-items: stretch;
    margin-bottom: 30px;
    flex-wrap: wrap;
}
.wac-product-purchase .wac-btn { flex: 1; min-width: 200px; }
/* qty-large già definito sopra */

.wac-product-trust {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px;
    background: var(--wac-cream-2);
    border-radius: var(--wac-radius);
    margin-bottom: 24px;
}
.wac-product-trust li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 13px;
}
.wac-product-trust .wac-icon {
    width: 20px; height: 20px;
    color: var(--wac-gold-deep);
    flex-shrink: 0;
}

.wac-product-sku {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wac-mute);
}

.wac-product-image-placeholder {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    background: var(--wac-cream-2);
}

.wac-product-thumb {
    aspect-ratio: 1;
    border-radius: var(--wac-radius);
    overflow: hidden;
    background: var(--wac-cream-2);
    border: 2px solid transparent;
    transition: border-color 0.3s;
    cursor: pointer;
    padding: 0;
}
.wac-product-thumb.is-active { border-color: var(--wac-gold-deep); }
.wac-product-thumb img { width: 100%; height: 100%; object-fit: cover; }

.wac-product-details {
    margin-top: 80px;
    padding-top: 60px;
    border-top: 1px solid var(--wac-line);
}
.wac-product-details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 40px;
}
.wac-product-detail-block .wac-eyebrow { margin-bottom: 14px; }
.wac-product-detail-content {
    color: var(--wac-mute);
    line-height: 1.7;
}
.wac-product-related {
    margin-top: 80px;
    padding-top: 60px;
    border-top: 1px solid var(--wac-line);
}
.wac-product-related .wac-section-head { margin-bottom: 40px; }

/* Cart page custom classes used in template */
.wac-cart-empty-icon {
    width: 80px; height: 80px;
    margin: 0 auto 24px;
    color: var(--wac-gold-deep);
    opacity: 0.6;
}
.wac-cart-empty-icon .wac-icon { width: 100%; height: 100%; }
.wac-cart-empty h2 {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    margin-bottom: 18px;
}

/* ---- Pagina Carrello: niente titolo "Carrello"/linea, più larga, più su ---- */
.woocommerce-cart .wac-page-header { display: none; }
.woocommerce-cart .wac-page-content .wac-section,
.woocommerce-cart .wac-section { padding-top: 12px; padding-bottom: 40px; }
/* Il contenuto del carrello non deve restare nel container stretto */
.woocommerce-cart .wac-container--narrow { max-width: none; padding: 0; }
.woocommerce-cart .wac-page-content { max-width: none; }

.wac-cart-page-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 48px;
    align-items: flex-start;
}

.wac-cart-page-items {
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-lg);
    padding: 8px 28px;
}
.wac-cart-page-head {
    display: grid;
    grid-template-columns: 1fr 140px 100px;
    gap: 20px;
    padding: 14px 0;
    border-bottom: 1px solid var(--wac-line);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--wac-mute);
    font-weight: 600;
}
.wac-cart-page-head-total { text-align: right; }
.wac-cart-page-head-qty { text-align: center; }

.wac-cart-page-item {
    display: grid;
    grid-template-columns: 1fr 140px 100px;
    gap: 20px;
    padding: 22px 0;
    border-bottom: 1px solid var(--wac-line);
    align-items: center;
}
.wac-cart-page-item:last-child { border-bottom: 0; }

.wac-cart-page-item-product {
    display: flex;
    gap: 18px;
    align-items: center;
}
.wac-cart-page-item-image {
    width: 90px; height: 90px;
    border-radius: var(--wac-radius);
    background: var(--wac-cream-2);
    overflow: hidden;
    flex-shrink: 0;
}
.wac-cart-page-item-image img { width: 100%; height: 100%; object-fit: cover; }
.wac-cart-thumb-placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
}
.wac-cart-page-item-info { flex: 1; }
.wac-cart-page-item-title {
    display: block;
    font-family: var(--wac-display);
    font-size: 1.15rem;
    margin-bottom: 4px;
    color: var(--wac-night);
}
.wac-cart-page-item-title:hover { color: var(--wac-gold-deep); }
.wac-cart-page-item-meta { font-size: 12px; color: var(--wac-mute); margin-bottom: 4px; }
.wac-cart-page-item-unit { font-size: 13px; color: var(--wac-mute); margin-bottom: 6px; }
/* Override FORTE: Woo dà ad a.remove un cerchietto 1.5em (la "pallina dorata"
   con la scritta gigante). Qui lo riportiamo a link piccolo e sottolineato,
   identico a quello del drawer. */
.wac-cart-page-item a.wac-cart-remove-link,
.wac-cart-page-item a.wac-cart-remove-link.remove {
    display: inline !important;
    width: auto !important; height: auto !important;
    line-height: normal !important;
    color: var(--wac-mute) !important;
    background: none !important;
    border-radius: 0 !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    text-align: left !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}
.wac-cart-page-item a.wac-cart-remove-link::before,
.wac-cart-page-item a.wac-cart-remove-link::after { content: none !important; }
.wac-cart-page-item a.wac-cart-remove-link:hover { color: #c62828 !important; background: none !important; }

/* Barra fisarmonica mobile (nascosta su desktop) */
.wac-cart-mobile-toggle { display: none; }
.wac-cart-collapse { display: block; }

@media (max-width: 900px) {
    /* Colonna unica: RIEPILOGO in cima (con "Vai al checkout" subito visibile),
       elenco prodotti sotto dentro una fisarmonica. align-items:stretch = box a TUTTA
       larghezza (prima restavano strette e a sinistra per l'align-items ereditato). */
    .wac-cart-page-grid { display: flex; flex-direction: column; align-items: stretch; gap: 18px; }
    .wac-cart-page-summary,
    .wac-cart-page-items { width: 100%; box-sizing: border-box; }
    .wac-cart-page-summary { order: -1; position: static !important; top: auto !important; }
    .wac-cart-page-items { padding: 6px 16px; }

    .wac-cart-mobile-toggle {
        display: flex; align-items: center; justify-content: space-between;
        width: 100%; gap: 10px; padding: 16px 4px; background: none; border: 0; cursor: pointer;
        font-family: var(--wac-sans, sans-serif); font-size: 13px; font-weight: 700;
        letter-spacing: 0.08em; text-transform: uppercase; color: var(--wac-night);
    }
    .wac-cart-mobile-chevron { width: 20px; height: 20px; transition: transform .25s ease; flex-shrink: 0; }
    .wac-cart-mobile-toggle.is-open .wac-cart-mobile-chevron { transform: rotate(180deg); }

    .wac-cart-collapse { display: none; }
    .wac-cart-collapse.is-open { display: block; }

    /* Riga prodotto impilata → niente scroll orizzontale */
    .wac-cart-page-head { display: none; }
    .wac-cart-page-item {
        grid-template-columns: 1fr auto;
        grid-template-areas: "prod prod" "qty total";
        gap: 14px 12px; padding: 18px 0;
    }
    .wac-cart-page-item-product { grid-area: prod; }
    .wac-cart-page-item-qty { grid-area: qty; justify-content: flex-start; }
    .wac-cart-page-item-total { grid-area: total; align-self: center; }

    /* Righe riepilogo: vanno a capo, testo che spezza (niente scroll X) */
    .wac-cart-page-summary-inner { padding: 24px 20px; overflow-wrap: anywhere; }
    .wac-cart-page-summary-row { flex-wrap: wrap; gap: 2px 12px; }
    .wac-cart-page-summary-row > span:last-child,
    .wac-cart-page-summary-row > strong { margin-left: auto; text-align: right; }
    .wac-cart-shipping-note { text-align: right; }
}


.wac-cart-page-item-qty { display: flex; justify-content: center; }
.wac-cart-page-item-qty .wac-qty-control { height: 40px; }

.wac-cart-page-item-total {
    text-align: right;
    font-weight: 700;
    font-size: 16px;
}

@media (min-width: 901px) {
    .wac-cart-page-summary {
        position: sticky;
        top: calc(var(--wac-header-h) + 24px);
    }
}
.wac-cart-page-summary-inner {
    background: var(--wac-cream-2);
    border-radius: var(--wac-radius-lg);
    padding: 32px;
}
.wac-cart-page-summary-title {
    font-family: var(--wac-display);
    font-size: 1.4rem;
    margin-bottom: 24px;
}
.wac-cart-page-summary-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    font-size: 14px;
}
.wac-cart-page-summary-total {
    display: flex;
    justify-content: space-between;
    padding-top: 16px;
    margin-top: 8px;
    border-top: 1px solid var(--wac-line-strong);
    font-weight: 700;
    font-size: 18px;
}
.wac-cart-page-summary-note {
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    padding: 10px 14px;
    border-radius: var(--wac-radius);
    font-size: 12px;
    color: var(--wac-gold-deep);
    margin: 12px 0;
}
.wac-cart-page-continue {
    display: block;
    text-align: center;
    margin-top: 16px;
    font-size: 13px;
    color: var(--wac-mute);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.wac-cart-page-trust {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--wac-line);
    font-size: 12px;
    color: var(--wac-mute);
}
.wac-cart-trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
}
.wac-cart-trust-item .wac-icon { width: 16px; height: 16px; color: var(--wac-gold-deep); }

/* Checkout */
.wac-checkout-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 50px;
    align-items: flex-start;
}

.wac-checkout-section {
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-lg);
    padding: 32px;
    margin-bottom: 18px;
}
.wac-checkout-section-title {
    font-family: var(--wac-display);
    font-size: 1.3rem;
    margin-bottom: 20px;
}
.wac-form-field-small { max-width: 140px; }
.wac-checkbox-field {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
}
.wac-checkbox-field label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    color: var(--wac-night);
    cursor: pointer;
}
.wac-checkbox-field input { margin-top: 4px; }

.wac-payment-options { display: flex; flex-direction: column; gap: 10px; }
.wac-payment-option {
    display: flex;
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid var(--wac-line-strong);
    border-radius: var(--wac-radius);
    cursor: pointer;
    transition: border-color 0.3s, background 0.3s;
}
.wac-payment-option:hover { border-color: var(--wac-gold-deep); }
.wac-payment-option input { margin-top: 4px; }
.wac-payment-option-body { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.wac-payment-option-title { font-weight: 600; font-size: 14px; }
.wac-payment-option-text { font-size: 12px; color: var(--wac-mute); }

.wac-form-actions { padding: 0; }
.wac-form-feedback {
    display: block;
    margin-top: 14px;
    font-size: 13px;
    text-align: center;
    color: #c62828;
}

.wac-checkout-summary-inner {
    background: var(--wac-night);
    color: var(--wac-cream);
    border-radius: var(--wac-radius-lg);
    padding: 32px;
    position: sticky;
    top: calc(var(--wac-header-h) + 24px);
}
.wac-checkout-summary-title {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 1.3rem;
    margin-bottom: 24px;
    color: var(--wac-gold-light);
}
.wac-checkout-items {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--wac-line-cream);
}
.wac-checkout-item {
    display: flex;
    gap: 14px;
    align-items: center;
}
.wac-checkout-item-image {
    position: relative;
    width: 50px; height: 50px;
    background: rgba(255,255,255,0.06);
    border-radius: var(--wac-radius);
    overflow: hidden;
    flex-shrink: 0;
}
.wac-checkout-item-image img { width: 100%; height: 100%; object-fit: cover; }
.wac-checkout-item-qty {
    position: absolute;
    top: -6px; right: -6px;
    width: 22px; height: 22px;
    background: var(--wac-gold);
    color: var(--wac-night);
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    display: flex; align-items: center; justify-content: center;
}
.wac-checkout-item-info { flex: 1; }
.wac-checkout-item-title { font-size: 13px; }
.wac-checkout-item-price { font-size: 13px; font-weight: 600; }

.wac-checkout-summary-totals {
    color: rgba(251,247,240,0.85);
}
.wac-checkout-summary-totals .wac-cart-page-summary-row {
    color: rgba(251,247,240,0.7);
}
.wac-checkout-summary-totals .wac-cart-page-summary-total {
    color: var(--wac-cream);
    border-top-color: var(--wac-line-cream);
}

/* Thank-you */
.wac-thankyou-hero {
    text-align: center;
    margin-bottom: 50px;
}
.wac-thankyou-icon {
    width: 80px; height: 80px;
    margin: 0 auto 24px;
    border-radius: 50%;
    background: var(--wac-gold);
    color: var(--wac-night);
    display: flex; align-items: center; justify-content: center;
    animation: wac-bounce 0.8s var(--wac-ease);
}
.wac-thankyou-icon .wac-icon { width: 36px; height: 36px; }
.wac-thankyou-hero h1 {
    font-style: italic;
    font-size: clamp(3rem, 7vw, 5rem);
    margin-bottom: 16px;
}
.wac-thankyou-lead {
    font-size: 1.05rem;
    color: var(--wac-mute);
    max-width: 540px;
    margin: 0 auto 30px;
}
.wac-thankyou-number strong {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 1.4rem;
    color: var(--wac-night);
    font-weight: 500;
}

.wac-thankyou-card {
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-lg);
    padding: 32px;
    margin-bottom: 18px;
}
.wac-thankyou-card-info { background: var(--wac-cream-2); border-color: var(--wac-gold-light); }
.wac-thankyou-section-title {
    font-family: var(--wac-display);
    font-size: 1.2rem;
    margin-bottom: 18px;
}
.wac-thankyou-items {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--wac-line);
}
.wac-thankyou-items li {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-size: 14px;
}
.wac-thankyou-item-qty { color: var(--wac-mute); margin-left: 6px; font-size: 12px; }
.wac-thankyou-item-price { font-weight: 600; }
.wac-thankyou-totals {
    color: var(--wac-night);
}
.wac-thankyou-address {
    font-style: normal;
    line-height: 1.6;
    color: var(--wac-night);
}
.wac-thankyou-empty { text-align: center; padding: 80px 20px; }

/* About */
.wac-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    text-align: center;
}
.wac-stat { display: flex; flex-direction: column; gap: 6px; }
.wac-stat-number {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: clamp(3.5rem, 8vw, 6rem);
    line-height: 1;
    color: var(--wac-gold);
}
.wac-stat-label {
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(251,247,240,0.7);
}

.wac-chapter {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 40px;
    padding: 40px 0;
    border-bottom: 1px solid var(--wac-line);
    align-items: flex-start;
}
.wac-chapter:last-child { border-bottom: 0; }
.wac-chapter-num {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 2.4rem;
    color: var(--wac-gold);
    line-height: 1;
}
.wac-chapter-title {
    font-family: var(--wac-display);
    font-size: clamp(1.4rem, 3vw, 1.9rem);
    margin-bottom: 12px;
}
.wac-chapter-text { color: var(--wac-mute); }

.wac-text-center { text-align: center; }

/* Contact */

.wac-honeypot {
    position: absolute;
    left: -9999px;
    width: 0; height: 0;
    overflow: hidden;
}

/* 404 */
.wac-404 { padding: 100px 20px; text-align: center; }
.wac-404-number {
    font-family: var(--wac-display);
    font-style: italic;
    font-weight: 600;
    font-size: clamp(8rem, 24vw, 16rem);
    line-height: 0.9;
    color: var(--wac-gold);
    margin-bottom: 20px;
}
.wac-404 h1 { font-size: clamp(2rem, 5vw, 3rem); margin-bottom: 16px; }
.wac-404-text {
    color: var(--wac-mute);
    max-width: 480px;
    margin: 0 auto 36px;
    white-space: pre-line;
}
.wac-404-actions {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* Search */
.wac-search-results { display: flex; flex-direction: column; gap: 30px; }
.wac-search-result {
    padding: 28px 0;
    border-bottom: 1px solid var(--wac-line);
}
.wac-search-result-title {
    font-family: var(--wac-display);
    font-size: 1.6rem;
    margin: 8px 0 10px;
}
.wac-search-result-title a { color: var(--wac-night); }
.wac-search-result-title a:hover { color: var(--wac-gold-deep); }
.wac-search-result-excerpt { color: var(--wac-mute); margin-bottom: 14px; }

.wac-search-form {
    display: flex;
    gap: 8px;
    margin-top: 30px;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
}
.wac-search-form input {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid var(--wac-line-strong);
    border-radius: 999px;
    font-size: 14px;
}

/* Single post */
.wac-post-header { padding: 80px 0 30px; text-align: center; }
.wac-post-header .wac-eyebrow { margin: 0 auto 18px; justify-content: center; }
.wac-post-meta {
    display: flex;
    justify-content: center;
    gap: 8px;
    font-size: 13px;
    color: var(--wac-mute);
    margin-top: 18px;
}
.wac-post-thumbnail {
    margin-bottom: 60px;
}
.wac-post-thumbnail-inner {
    aspect-ratio: 16 / 9;
    border-radius: var(--wac-radius-lg);
    overflow: hidden;
    background: var(--wac-cream-2);
}
.wac-post-thumbnail-inner img { width: 100%; height: 100%; object-fit: cover; }
.wac-post-content {
    font-size: 1.05rem;
    line-height: 1.7;
}
.wac-post-content h2,
.wac-post-content h3 {
    font-family: var(--wac-display);
    margin-top: 1.4em;
    margin-bottom: 0.6em;
}
.wac-post-content h2 { font-size: 2rem; }
.wac-post-content blockquote {
    border-left: 3px solid var(--wac-gold);
    padding-left: 24px;
    margin: 30px 0;
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 1.3rem;
    color: var(--wac-night);
}
.wac-post-content img { margin: 30px 0; border-radius: var(--wac-radius-lg); }
.wac-post-footer { margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--wac-line); }
.wac-post-tags { font-size: 13px; color: var(--wac-mute); }
.wac-post-tags a { color: var(--wac-gold-deep); }
.wac-post-nav {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 30px 0;
    border-top: 1px solid var(--wac-line);
    margin-top: 30px;
    font-size: 14px;
}
.wac-post-nav a { color: var(--wac-night); transition: color 0.3s; }
.wac-post-nav a:hover { color: var(--wac-gold-deep); }
.wac-post-card-image {
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: var(--wac-radius-lg);
    background: var(--wac-cream-2);
    display: block;
    margin-bottom: 16px;
}
.wac-post-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--wac-ease); }
.wac-post-card:hover .wac-post-card-image img { transform: scale(1.04); }
.wac-post-card-meta {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--wac-mute);
    font-weight: 600;
}

/* Page-template-specific overrides */
.wac-page-cart .wac-section,
.wac-page-checkout .wac-section,
.wac-page-thank-you .wac-section { padding-top: 40px; }

.wac-page-header-compact { padding: 40px 0 20px; }

/* ============================================================
   VARIANTI PRODOTTO — selettore frontend
============================================================ */
.wac-variant-selector {
    margin: 24px 0 28px;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--wac-line);
}

.wac-variant-selector-label {
    font-size: 13px;
    color: var(--wac-mute);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.wac-variant-selector-label strong {
    color: var(--wac-night);
    font-weight: 600;
}

.wac-variant-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.wac-variant-pill {
    position: relative;
    cursor: pointer;
    user-select: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 76px;
    padding: 12px 18px;
    background: transparent;
    border: 1.5px solid var(--wac-cream-2, #e5dfd0);
    border-radius: 4px;
    transition: all 0.18s ease;
}

.wac-variant-pill input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.wac-variant-pill-label,
.wac-variant-pill-price {
    display: block;
}

.wac-variant-pill:hover:not(.is-out) {
    border-color: var(--wac-night, #0F0E0C);
    transform: translateY(-1px);
}

.wac-variant-pill.is-active {
    border-color: var(--wac-night, #0F0E0C);
    background: var(--wac-night, #0F0E0C);
    color: var(--wac-cream, #F5F0E8);
}
.wac-variant-pill.is-active .wac-variant-pill-label,
.wac-variant-pill.is-active .wac-variant-pill-price {
    color: var(--wac-cream, #F5F0E8);
}

.wac-variant-pill.is-out {
    opacity: 0.4;
    cursor: not-allowed;
}
.wac-variant-pill.is-out .wac-variant-pill-label,
.wac-variant-pill.is-out .wac-variant-pill-price {
    text-decoration: line-through;
}

.wac-variant-pill-label {
    font-weight: 700;
    font-size: 13px;
    color: var(--wac-night, #0F0E0C);
    line-height: 1.2;
    letter-spacing: 0.02em;
}
.wac-variant-pill-price {
    font-size: 11px;
    color: var(--wac-night-3, #888);
    font-weight: 500;
    margin-top: 4px;
    letter-spacing: 0.01em;
}

.wac-variant-pill-badge {
    position: absolute;
    top: -7px;
    right: -7px;
    width: 20px;
    height: 20px;
    background: var(--wac-gold-deep);
    color: #fff;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--wac-paper);
}

.wac-variant-pill-out {
    font-size: 10px;
    color: #c62828;
    text-decoration: none;
    margin-top: 2px;
    font-style: italic;
}

/* Stock hint */
.wac-variant-stock-hint {
    margin-top: 12px;
    font-size: 13px;
    min-height: 1.2em;
    font-weight: 500;
}
.wac-variant-stock-hint.is-low { color: #e65100; }
.wac-variant-stock-hint.is-out { color: #c62828; }

/* Badge card varianti */
.wac-product-card-badge-variants {
    background: var(--wac-gold-deep);
}
.wac-price-from {
    font-size: 11px;
    color: var(--wac-mute);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-right: 4px;
    font-weight: 600;
}

/* ============================================================
   ACCOUNT — header dropdown + pagine login/account
============================================================ */

/* ---- Pulsante login (utente non loggato) ---- */
.wac-header-login {
    width: 40px; height: 40px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--wac-night);
    transition: background 0.3s;
}
.wac-header-login:hover { background: var(--wac-cream-2); }
.wac-header-login .wac-icon { width: 22px; height: 22px; }

/* ---- Toggle account (utente loggato) ---- */
.wac-account-toggle { position: relative; }
.wac-account-btn {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--wac-night);
    color: var(--wac-cream);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: background 0.3s, transform 0.3s;
}
.wac-account-btn:hover { background: var(--wac-gold-deep); transform: scale(1.06); }
.wac-account-initial {
    font-family: var(--wac-display);
    font-size: 15px;
    font-style: italic;
    font-weight: 500;
    line-height: 1;
}

/* ---- Dropdown ---- */
.wac-account-dropdown {
    position: absolute;
    top: calc(100% + 14px);
    right: 0;
    width: 240px;
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-lg);
    box-shadow: 0 16px 40px -10px rgba(15,14,12,0.2);
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 0.3s var(--wac-ease), visibility 0.3s, transform 0.3s var(--wac-ease);
    z-index: 200;
}
.wac-account-dropdown.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.wac-account-dropdown-head {
    padding: 16px 18px;
    background: var(--wac-cream-2);
    border-bottom: 1px solid var(--wac-line);
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.wac-account-dropdown-head strong {
    font-size: 14px;
    font-weight: 600;
    color: var(--wac-night);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wac-account-dropdown-head span {
    font-size: 11px;
    color: var(--wac-mute);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wac-account-dropdown-nav {
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.wac-account-dropdown-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--wac-night);
    transition: background 0.2s;
}
.wac-account-dropdown-nav a:hover { background: var(--wac-cream-2); }
.wac-account-dropdown-nav a .wac-icon { width: 16px; height: 16px; color: var(--wac-mute); flex-shrink: 0; }
.wac-account-dropdown-logout { color: #c62828 !important; margin-top: 4px; border-top: 1px solid var(--wac-line); padding-top: 12px !important; }

/* Il menu account ha SEMPRE testo scuro leggibile, anche su pagine con header
   trasparente (dove i link dell'header sono bianchi): lì diventava invisibile. */
.wac-header .wac-account-dropdown-head strong,
body.wac-has-transparent-header .wac-header .wac-account-dropdown-head strong { color: var(--wac-night) !important; }
.wac-header .wac-account-dropdown-head span,
body.wac-has-transparent-header .wac-header .wac-account-dropdown-head span { color: var(--wac-mute) !important; }
.wac-header .wac-account-dropdown-nav a,
body.wac-has-transparent-header .wac-header .wac-account-dropdown-nav a { color: var(--wac-night) !important; }
.wac-header .wac-account-dropdown-nav a .wac-icon,
body.wac-has-transparent-header .wac-header .wac-account-dropdown-nav a .wac-icon,
body.search-open .wac-header .wac-account-dropdown-nav a .wac-icon {
	color: var(--wac-mute) !important;
	stroke: currentColor !important;   /* le icone usano stroke=currentColor: forziamo il colore visibile */
}
.wac-header .wac-account-dropdown-logout,
body.wac-has-transparent-header .wac-header .wac-account-dropdown-logout { color: #c62828 !important; }
.wac-header .wac-account-dropdown-logout .wac-icon,
body.wac-has-transparent-header .wac-header .wac-account-dropdown-logout .wac-icon { color: #c62828 !important; stroke: currentColor !important; }
.wac-account-dropdown-logout .wac-icon { color: #c62828 !important; }

/* ============================================================
   PAGINA LOGIN / REGISTRAZIONE
============================================================ */
.wac-auth-section { padding: 40px 0 100px; }

.wac-auth-wrap {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 80px;
    align-items: center;
    max-width: 1000px;
    margin: 0 auto;
}
@media (max-width: 860px) {
    .wac-auth-wrap { grid-template-columns: 1fr; gap: 0; }
    .wac-auth-deco { display: none; }
}

/* Deco laterale */
.wac-auth-deco-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 30px;
}
/* Logo del sito */
.wac-auth-deco-logo { display: flex; align-items: center; justify-content: center; }
.wac-auth-deco-logo img,
.wac-auth-deco-logo .custom-logo { max-width: 220px; max-height: 90px; width: auto; height: auto; object-fit: contain; }
.wac-auth-deco-logotext {
    font-family: var(--wac-display, serif);
    font-size: 2rem; font-weight: 700; color: var(--wac-night); letter-spacing: -0.01em; line-height: 1.05;
}

/* Card curiosità su miele & api */
.wac-auth-fact-card {
    max-width: 340px;
    display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.wac-auth-fact-label {
    font-family: var(--wac-sans, sans-serif);
    font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--wac-gold-deep, #C8932A);
    position: relative;
    /* effetto "illuminato": una luce che passa sopra la scritta */
    background: linear-gradient(90deg, var(--wac-gold-deep,#C8932A) 0%, #F4D374 45%, #fff 50%, #F4D374 55%, var(--wac-gold-deep,#C8932A) 100%);
    background-size: 220% 100%;
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent;
    animation: wac-fact-shine 4.5s linear infinite;
}
@keyframes wac-fact-shine { 0% { background-position: 120% 0; } 100% { background-position: -120% 0; } }

.wac-auth-fact {
    font-family: var(--wac-display, serif);
    font-size: 1.32rem; line-height: 1.45; color: var(--wac-night);
    margin: 0;
    transition: opacity .4s var(--wac-ease, ease), transform .4s var(--wac-ease, ease);
    text-shadow: 0 0 22px rgba(200,147,42,0.12);
}
.wac-auth-fact.is-fading { opacity: 0; transform: translateY(8px); }

@media (prefers-reduced-motion: reduce) {
    .wac-auth-fact-label { animation: none; }
}

/* Box form */
.wac-auth-box {
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-xl);
    overflow: hidden;
}

/* Tab */
.wac-auth-tabs {
    display: flex;
    border-bottom: 1px solid var(--wac-line);
}
.wac-auth-tab {
    flex: 1;
    padding: 18px;
    font-size: 14px;
    font-weight: 600;
    color: var(--wac-mute);
    background: var(--wac-cream-2);
    border: 0;
    cursor: pointer;
    transition: background 0.25s, color 0.25s;
}
.wac-auth-tab:hover { color: var(--wac-night); }
.wac-auth-tab.is-active {
    background: var(--wac-paper);
    color: var(--wac-night);
    position: relative;
}
.wac-auth-tab.is-active::after {
    content: "";
    position: absolute;
    bottom: -1px; left: 0; right: 0;
    height: 2px;
    background: var(--wac-gold-deep);
}

/* Panel */
.wac-auth-panel { display: none; padding: 36px; }
.wac-auth-panel.is-active { display: block; }

.wac-auth-title { font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: 8px; }
.wac-auth-sub { color: var(--wac-mute); font-size: 14px; margin-bottom: 28px; }

/* Form fields */
.wac-auth-form { display: flex; flex-direction: column; gap: 18px; }
.wac-auth-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .wac-auth-row { grid-template-columns: 1fr; } }

.wac-auth-field { display: flex; flex-direction: column; gap: 6px; }
.wac-auth-field label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--wac-night);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.wac-auth-field label span { color: #c62828; }
.wac-auth-field input {
    padding: 13px 16px;
    border: 1px solid var(--wac-line-strong);
    border-radius: var(--wac-radius);
    font-size: 15px;
    background: var(--wac-cream);
    transition: border-color 0.3s, box-shadow 0.3s;
}
.wac-auth-field input:focus {
    outline: none;
    border-color: var(--wac-gold-deep);
    box-shadow: 0 0 0 3px rgba(200,147,42,0.12);
}
.wac-auth-forgot {
    font-size: 11px;
    color: var(--wac-mute);
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.wac-auth-forgot:hover { color: var(--wac-gold-deep); }
.wac-auth-help { font-size: 12px; color: var(--wac-mute); }

/* Password toggle */
.wac-auth-pass-wrap {
    position: relative;
    display: flex;
}
.wac-auth-pass-wrap input { flex: 1; padding-right: 48px !important; }
.wac-auth-toggle-pass {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--wac-mute);
    width: 24px; height: 24px;
    display: flex; align-items: center; justify-content: center;
    transition: color 0.2s;
}
.wac-auth-toggle-pass:hover { color: var(--wac-night); }
.wac-auth-toggle-pass .wac-icon { width: 18px; height: 18px; }

/* Remember */
.wac-auth-remember {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--wac-mute);
    cursor: pointer;
}

/* Separator */
.wac-auth-separator {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 4px 0;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wac-mute);
}
.wac-auth-separator::before,
.wac-auth-separator::after {
    content: ""; flex: 1;
    height: 1px; background: var(--wac-line);
}

/* Feedback */
.wac-auth-feedback {
    font-size: 13px;
    min-height: 1em;
    padding: 2px 0;
}
.wac-auth-feedback.is-ok { color: #2e7d32; }
.wac-auth-feedback.is-err { color: #c62828; }

/* Notice */
.wac-auth-notice {
    background: var(--wac-cream-2);
    border: 1px solid var(--wac-line-strong);
    border-radius: var(--wac-radius);
    padding: 16px 20px;
    font-size: 14px;
    color: var(--wac-mute);
    text-align: center;
}

/* Switch panel */
.wac-auth-switch {
    text-align: center;
    margin-top: 4px;
    font-size: 13px;
    color: var(--wac-mute);
}
.wac-auth-switch-btn {
    color: var(--wac-gold-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    background: none; border: 0; font: inherit;
}

/* ============================================================
   PAGINA ACCOUNT DASHBOARD
============================================================ */
.wac-account-section {
    padding: 50px 0 100px;
}

.wac-account-header {
    display: flex;
    align-items: center;
    gap: 24px;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--wac-line);
    margin-bottom: 48px;
    flex-wrap: wrap;
}
.wac-account-avatar-img {
    width: 72px !important; height: 72px !important;
    border-radius: 50% !important;
    border: 2px solid var(--wac-gold-light);
    display: block;
}
.wac-account-identity { flex: 1; min-width: 0; }
.wac-account-identity h1 { font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1; margin-top: 8px; }
.wac-account-email { font-size: 13px; color: var(--wac-mute); margin-top: 4px; }
.wac-account-logout {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--wac-mute);
    transition: color 0.3s;
    margin-left: auto;
}
.wac-account-logout:hover { color: #c62828; }
.wac-account-logout .wac-icon { width: 18px; height: 18px; }

.wac-account-layout {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 50px;
    align-items: flex-start;
}

.wac-account-nav {
    background: var(--wac-paper);
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-lg);
    padding: 8px;
    position: sticky;
    top: calc(var(--wac-header-h) + 20px);
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.wac-account-nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    color: var(--wac-mute);
    transition: background 0.2s, color 0.2s;
}
.wac-account-nav-item:hover { background: var(--wac-cream-2); color: var(--wac-night); }
.wac-account-nav-item.is-active { background: var(--wac-night); color: var(--wac-cream); }
.wac-account-nav-item.is-active .wac-icon { color: var(--wac-gold-light); }
.wac-account-nav-item .wac-icon { width: 18px; height: 18px; color: var(--wac-mute); flex-shrink: 0; }
.wac-account-nav-badge {
    margin-left: auto;
    background: var(--wac-gold);
    color: var(--wac-night);
    width: 20px; height: 20px;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    display: flex; align-items: center; justify-content: center;
}

.wac-account-panel-title {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--wac-line);
}

/* Empty state ordini */
.wac-account-empty {
    text-align: center;
    padding: 60px 20px;
}
.wac-account-empty-icon {
    width: 64px; height: 64px;
    margin: 0 auto 20px;
    color: var(--wac-gold-deep);
    opacity: 0.5;
}
.wac-account-empty h3 {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 1.6rem;
    margin-bottom: 10px;
}
.wac-account-empty p { color: var(--wac-mute); margin-bottom: 28px; }

/* Lista ordini */
.wac-orders-list { display: flex; flex-direction: column; gap: 16px; }

.wac-order-card {
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-radius-lg);
    overflow: hidden;
    transition: box-shadow 0.3s;
}
.wac-order-card:hover { box-shadow: 0 8px 24px -8px rgba(15,14,12,0.12); }

.wac-order-card-head {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr auto;
    gap: 16px;
    padding: 18px 22px;
    background: var(--wac-cream-2);
    align-items: center;
}
@media (max-width: 640px) {
    .wac-order-card-head { grid-template-columns: 1fr 1fr; gap: 12px; }
}

.wac-order-card-number,
.wac-order-card-date,
.wac-order-card-total { display: flex; flex-direction: column; gap: 3px; }
.wac-order-card-number strong,
.wac-order-card-date strong,
.wac-order-card-total strong { font-size: 15px; color: var(--wac-night); }

.wac-order-status-pill {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.wac-order-card-items {
    padding: 16px 22px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-top: 1px solid var(--wac-line);
}
.wac-order-card-items li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
}
.wac-order-card-item-name { flex: 1; color: var(--wac-night); }
.wac-order-card-item-qty { color: var(--wac-mute); flex-shrink: 0; }
.wac-order-card-item-price { font-weight: 600; flex-shrink: 0; }

/* Profilo form */
.wac-profile-form { max-width: 600px; }

/* ============================================================
   LIVE SEARCH — overlay + risultati
============================================================ */

/* Trigger button nell'header */
.wac-search-trigger {
    width: 40px; height: 40px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--wac-night);
    transition: background 0.3s var(--wac-ease), color 0.3s;
    position: relative;
}
.wac-search-trigger:hover { background: var(--wac-cream-2); }
.wac-search-trigger .wac-icon { width: 20px; height: 20px; }
/* Quando la search è aperta diventa X */
body.search-open .wac-search-trigger .wac-icon { opacity: 0.5; }

/* ---- Overlay contenitore ---- */
.wac-search-overlay {
    position: fixed;
    inset: 0;
    z-index: 300;
    visibility: hidden;
    pointer-events: none;
}
.wac-search-overlay.is-open {
    visibility: visible;
    pointer-events: auto;
}

/* Background blur/dim */
.wac-search-overlay-bg {
    position: absolute; inset: 0;
    background: rgba(15, 14, 12, 0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity 0.35s var(--wac-ease);
}
.wac-search-overlay.is-open .wac-search-overlay-bg { opacity: 1; }

/* Pannello interno (scorre dall'alto) */
.wac-search-overlay-inner {
    position: absolute;
    top: 0; left: 0; right: 0;
    background: var(--wac-cream);
    transform: translateY(-100%);
    transition: transform 0.45s var(--wac-ease-out);
    max-height: 92vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px -10px rgba(15,14,12,0.25);
}
/* La sequenza dei tempi (navbar → pannello in apertura; pannello → navbar in chiusura)
   è gestita via JS aggiungendo/togliendo le classi con i giusti ritardi. */
.wac-search-overlay.is-open .wac-search-overlay-inner { transform: translateY(0); transition: transform 0.4s var(--wac-ease-out); }

/* body.search-open blocca scroll */
body.search-open { overflow: hidden; }

/* ---- Barra di ricerca ---- */
.wac-search-bar {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 32px;
    border-bottom: 1px solid var(--wac-line);
    position: sticky;
    top: 0;
    background: var(--wac-cream);
    z-index: 2;
}

.wac-search-bar-input-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--wac-paper);
    border: 1.5px solid var(--wac-line-strong);
    border-radius: 999px;
    padding: 0 20px;
    transition: border-color 0.3s, box-shadow 0.3s;
}
.wac-search-bar-input-wrap:focus-within {
    border-color: var(--wac-gold-deep);
    box-shadow: 0 0 0 3px rgba(200,147,42,0.12);
}

.wac-search-bar-icon {
    width: 20px; height: 20px;
    color: var(--wac-mute);
    flex-shrink: 0;
}

.wac-search-input {
    flex: 1;
    border: 0;
    background: transparent;
    padding: 16px 0;
    font-family: var(--wac-body);
    font-size: 1.1rem;
    color: var(--wac-night);
    outline: none;
    min-width: 0;
    -webkit-appearance: none;
}
.wac-search-input::placeholder { color: var(--wac-mute); opacity: 0.7; }
.wac-search-input::-webkit-search-cancel-button { display: none; }

.wac-search-clear {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--wac-cream-2);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    color: var(--wac-mute);
    flex-shrink: 0;
    transition: background 0.2s, color 0.2s;
}
.wac-search-clear:hover { background: var(--wac-line-strong); color: var(--wac-night); }
.wac-search-clear[hidden] { display: none; }
.wac-search-clear svg { width: 14px; height: 14px; }

.wac-search-close {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--wac-mute);
    transition: color 0.2s;
    white-space: nowrap;
    flex-shrink: 0;
    cursor: pointer;
    border: 0;
    background: none;
    padding: 8px;
    min-width: 36px;
    min-height: 36px;
    justify-content: center;
}
.wac-search-close:hover { color: var(--wac-night); }
.wac-search-close kbd {
    background: var(--wac-cream-2);
    border: 1px solid var(--wac-line-strong);
    border-radius: 4px;
    padding: 2px 7px;
    font-size: 11px;
    font-family: inherit;
    color: var(--wac-mute);
}
/* Mobile: mostra icona × al posto di testo */
.wac-search-close::after { content: none; }

/* ---- Area risultati ---- */
.wac-search-results-wrap {
    padding: 28px 32px 40px;
    max-width: 1100px;
    margin: 0 auto;
    min-height: 200px;
}

/* Stati */
.wac-search-state {
    text-align: center;
    padding: 40px 20px;
    color: var(--wac-mute);
    font-size: 15px;
}
.wac-search-state[hidden] { display: none; }

/* Suggerimenti tag */
.wac-search-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
    align-items: center;
}
.wac-search-tags span {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wac-mute);
    font-weight: 600;
}
.wac-search-tag {
    padding: 7px 16px;
    border: 1px solid var(--wac-line-strong);
    border-radius: 999px;
    font-size: 13px;
    color: var(--wac-night);
    transition: all 0.25s var(--wac-ease);
}
.wac-search-tag:hover {
    background: var(--wac-night);
    color: var(--wac-cream);
    border-color: var(--wac-night);
}

/* Loading spinner */
.wac-search-state-loading { display: flex; justify-content: center; padding: 60px 20px; }
.wac-search-state-loading[hidden] { display: none; }
.wac-search-spinner {
    width: 32px; height: 32px;
    border: 2px solid var(--wac-line-strong);
    border-top-color: var(--wac-gold-deep);
    border-radius: 50%;
    animation: wac-spin 0.8s linear infinite;
}

/* Empty state */
.wac-search-state-empty p { font-size: 1.05rem; color: var(--wac-night); margin-bottom: 8px; }
#wac-search-empty-term {
    font-family: var(--wac-display);
    font-style: italic;
    font-size: 1.4rem;
    color: var(--wac-gold-deep);
}

/* ---- Grid risultati ---- */
.wac-search-results-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 48px;
    align-items: flex-start;
}
.wac-search-results-grid[hidden] { display: none; }

.wac-search-col-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--wac-mute);
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--wac-line);
}

/* ---- Product list ---- */
.wac-search-product-list,
.wac-search-page-list { list-style: none; display: flex; flex-direction: column; gap: 4px; }

.wac-search-product-item {
    display: grid;
    grid-template-columns: 64px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 10px;
    color: var(--wac-night);
    transition: background 0.2s;
    text-decoration: none;
}
.wac-search-product-item:hover,
.wac-search-product-item:focus {
    background: var(--wac-cream-2);
    outline: none;
}

.wac-search-prod-thumb {
    width: 64px; height: 64px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--wac-cream-2);
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
}
.wac-search-prod-thumb img { width: 100%; height: 100%; object-fit: cover; }
.wac-search-thumb-placeholder { font-size: 24px; opacity: 0.5; }

.wac-search-prod-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.wac-search-prod-title {
    font-weight: 600;
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wac-search-origin {
    font-size: 11px;
    color: var(--wac-mute);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.wac-search-prod-price {
    font-weight: 700;
    font-size: 14px;
    color: var(--wac-night);
    white-space: nowrap;
    flex-shrink: 0;
}
.wac-search-from {
    font-size: 10px;
    color: var(--wac-mute);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-right: 3px;
}

/* ---- Page list ---- */
.wac-search-page-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 14px;
    border-radius: 10px;
    color: var(--wac-night);
    transition: background 0.2s;
    text-decoration: none;
}
.wac-search-page-item:hover,
.wac-search-page-item:focus { background: var(--wac-cream-2); outline: none; }

.wac-search-page-title {
    font-weight: 600;
    font-size: 14px;
}
.wac-search-page-excerpt {
    font-size: 12px;
    color: var(--wac-mute);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* "Vedi tutti" link */
.wac-search-all-link {
    display: inline-block;
    margin-top: 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--wac-gold-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.wac-search-all-link[hidden] { display: none; }

/* highlight match */
.wac-search-result-item mark {
    background: rgba(244, 211, 116, 0.5);
    color: var(--wac-night);
    border-radius: 2px;
    padding: 0 1px;
}

/* ============================================================
   TOPBAR annunci — layout fixed sopra l'header
   Il sistema di spazi funziona così:
   - topbar è position:fixed top:0, altezza calcolata via JS in --wac-topbar-h
   - header è position:fixed top: var(--wac-topbar-h) quando topbar è presente
   - main ha padding-top = header + topbar
   - Se sticky=none, la topbar scorre via e header torna a top:0
============================================================ */
.wac-topbar {
    --wac-topbar-bg: #0F0E0C;
    --wac-topbar-color: #FBF7F0;
    background: var(--wac-topbar-bg);
    color: var(--wac-topbar-color);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
    width: 100%;
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 110;
    transition: transform 0.4s var(--wac-ease), opacity 0.4s;
}
.wac-topbar.is-hidden {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
}

/* Header si sposta giù di --wac-topbar-h quando topbar è presente */
body.has-topbar .wac-header {
    top: var(--wac-topbar-h, 0px);
}
body.has-topbar .wac-main {
    padding-top: calc(var(--wac-header-h) + var(--wac-topbar-h, 0px));
}
/* Quando la topbar scorre via (non sticky), resettiamo */
body.has-topbar.topbar-scrolled .wac-header { top: 0; }
body.has-topbar.topbar-scrolled .wac-main { padding-top: var(--wac-header-h); }
body.has-topbar.topbar-scrolled .wac-topbar { position: absolute; }

/* Sticky responsive */
body.has-topbar[data-topbar-sticky="all"] .wac-topbar { position: fixed; }
body.has-topbar[data-topbar-sticky="all"].topbar-scrolled .wac-header { top: var(--wac-topbar-h, 0px); }
body.has-topbar[data-topbar-sticky="all"].topbar-scrolled .wac-main { padding-top: calc(var(--wac-header-h) + var(--wac-topbar-h, 0px)); }

@media (min-width: 769px) {
    body.has-topbar[data-topbar-sticky="desktop"] .wac-topbar { position: fixed; }
    body.has-topbar[data-topbar-sticky="desktop"].topbar-scrolled .wac-header { top: var(--wac-topbar-h, 0px); }
    body.has-topbar[data-topbar-sticky="desktop"].topbar-scrolled .wac-main { padding-top: calc(var(--wac-header-h) + var(--wac-topbar-h, 0px)); }
}
@media (max-width: 768px) {
    body.has-topbar[data-topbar-sticky="mobile"] .wac-topbar { position: fixed; }
    body.has-topbar[data-topbar-sticky="mobile"].topbar-scrolled .wac-header { top: var(--wac-topbar-h, 0px); }
    body.has-topbar[data-topbar-sticky="mobile"].topbar-scrolled .wac-main { padding-top: calc(var(--wac-header-h) + var(--wac-topbar-h, 0px)); }
}

.wac-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 40px;
    padding: 6px 48px;
    max-width: var(--wac-container);
    margin: 0 auto;
    position: relative;
}

.wac-topbar-track {
    position: relative;
    flex: 1;
    text-align: center;
    min-height: 1.4em;
}
.wac-topbar-slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.5s var(--wac-ease), transform 0.5s var(--wac-ease);
    pointer-events: none;
}
.wac-topbar-slide.is-active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    position: relative;
}
.wac-topbar-slide a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.wac-topbar-arrow {
    width: 24px; height: 24px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: currentColor;
    opacity: 0.6;
    transition: opacity 0.2s, background 0.2s;
    flex-shrink: 0;
    background: rgba(255,255,255,0.08);
    border: 0; cursor: pointer;
}
.wac-topbar-arrow:hover { opacity: 1; background: rgba(255,255,255,0.16); }

.wac-topbar-dots { display: flex; gap: 5px; align-items: center; flex-shrink: 0; }
.wac-topbar-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: currentColor; opacity: 0.35;
    cursor: pointer; border: 0; padding: 0;
    transition: opacity 0.3s, width 0.3s;
}
.wac-topbar-dot.is-active { opacity: 1; width: 14px; border-radius: 3px; }

.wac-topbar-close {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    width: 26px; height: 26px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: currentColor; opacity: 0.6;
    transition: opacity 0.2s, background 0.2s;
    border: 0; cursor: pointer; background: rgba(255,255,255,0.08);
}
.wac-topbar-close:hover { opacity: 1; }

/* ============================================================
   HEADER LAYOUT VARIANTS
============================================================ */
/* Default: logo-left (già il default CSS — nessun override necessario) */

/* Logo centro: menu sotto */
.wac-header--logo-center .wac-header-inner {
    flex-direction: column;
    gap: 0;
    align-items: center;
    padding-top: 10px;
    padding-bottom: 0;
}
.wac-header--logo-center .wac-logo { order: 0; }
.wac-header--logo-center .wac-nav { order: 1; width: 100%; justify-content: center; }
.wac-header--logo-center .wac-header-actions { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); }
.wac-header--logo-center .wac-nav-menu { justify-content: center; }

/* Logo centro split: menu diviso sx/dx */
.wac-header--logo-center-split .wac-header-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
}
.wac-header--logo-center-split .wac-nav { order: -1; justify-content: flex-end; }
.wac-header--logo-center-split .wac-logo { order: 0; text-align: center; }
.wac-header--logo-center-split .wac-header-actions { order: 1; justify-content: flex-end; }

/* Logo sinistra inline: tutto su una riga compatta */
.wac-header--logo-left-inline .wac-header-inner { gap: 24px; }
.wac-header--logo-left-inline .wac-nav { margin-right: auto; }

/* Logo immagine dal builder */
.wac-logo-img {
    max-height: 42px;
    width: auto;
    display: block;
}

/* ============================================================
   FOOTER LAYOUT VARIANTS
============================================================ */
/* 4-col: default, no override */

/* 3-col */
/* Varianti layout footer rimosse: ora le colonne sono dinamiche dal builder. */

/* ============================================================
   STICKY PURCHASE BAR — single product
============================================================ */
.wac-sticky-bar {
    position: fixed;
    bottom: 20px; left: 0; right: 0;
    z-index: 99;
    transform: translateY(140%);
    opacity: 0;
    transition: transform 0.45s var(--wac-ease-out), opacity 0.35s;
    pointer-events: none;
}
.wac-sticky-bar.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

/* Card fluttuante centrata (stile Velasca): non occupa tutta la larghezza */
.wac-sticky-bar-inner {
    max-width: 640px;
    margin: 0 auto;
    padding: 12px 14px 12px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: var(--wac-sticky-bg, var(--wac-paper));
    border: 1px solid var(--wac-line);
    border-radius: var(--wac-sticky-radius, 999px);
    box-shadow: 0 12px 40px -8px rgba(15,14,12,0.22);
}

/* Prodotto info */
.wac-sticky-bar-product {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1;
    min-width: 0;
}
.wac-sticky-bar-thumb {
    width: 44px; height: 44px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.wac-sticky-bar-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.wac-sticky-bar-title {
    font-family: var(--wac-display);
    font-size: 13px;
    font-weight: 600;
    color: var(--wac-sticky-title, var(--wac-night));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wac-sticky-bar-price {
    font-size: 16px;
    font-weight: 700;
    color: var(--wac-sticky-price, var(--wac-gold-deep));
}

/* Actions */
.wac-sticky-bar-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.wac-sticky-bar-variant {
    padding: 10px 14px;
    border: 1px solid var(--wac-line-strong);
    border-radius: 999px;
    font-size: 13px;
    background: var(--wac-cream);
    cursor: pointer;
    min-width: 130px;
    transition: border-color 0.3s;
}
.wac-sticky-bar-variant:focus {
    border-color: var(--wac-gold-deep);
    outline: none;
}
.wac-sticky-bar-add {
    padding: 13px 30px !important;
    font-size: 14px !important;
    white-space: nowrap;
    gap: 10px;
    border-radius: var(--wac-sticky-btn-radius, 999px) !important;
}
.wac-sticky-bar-add .wac-icon { width: 16px; height: 16px; }
.wac-sticky-bar-add i { font-size: 16px; line-height: 1; }

/* Mobile: solo il pulsante "Aggiungi al carrello" a tutta larghezza */
@media (max-width: 768px) {
    .wac-sticky-bar {
        bottom: 0;
    }
    .wac-sticky-bar-inner {
        max-width: 100%;
        margin: 0;
        padding: 12px 16px;
        border-radius: 0;
        border-left: 0; border-right: 0; border-bottom: 0;
        box-shadow: 0 -8px 30px -10px rgba(15,14,12,0.18);
    }
    .wac-sticky-bar-product { display: none; }
    .wac-sticky-bar-actions { flex: 1; gap: 10px; }
    .wac-sticky-bar-variant { flex: 0 0 auto; }
    .wac-sticky-bar-add {
        flex: 1;
        justify-content: center;
        /* Ripete il raggio del desktop: va letta la stessa variabile, altrimenti
           su telefono il pulsante resta a pillola qualunque cosa si imposti.
           La barra invece resta a spigoli: è attaccata al bordo dello schermo. */
        border-radius: var(--wac-sticky-btn-radius, 999px) !important;
    }
}

/* Mobile: solo bottone, no info prodotto */

/* Animazione entrata mobile: dal basso con bounce */

/* Spazio extra in fondo al body per non coprire il contenuto */
body.has-sticky-bar .wac-footer { padding-bottom: 80px; }

/* ============================================================
   MOBILE HEADER: hamburger + search | logo | cart
============================================================ */

/* Product gallery: NO sticky su mobile */

/* Topbar hidden: assicuro che scompaia */

/* Mobile-left: nascosto su desktop, visibile su mobile */
.wac-header-mobile-left { display: none; }

/* Search trigger mobile: stile come la search desktop */
.wac-search-trigger-m {
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    border: 0; background: none; cursor: pointer;
    color: var(--wac-night);
    padding: 0;
    -webkit-tap-highlight-color: transparent;
}
.wac-search-trigger-m .wac-icon { width: 20px; height: 20px; }

/* ============================================================
   MOBILE MENU — fullscreen, navbar resta sopra per chiudere
============================================================ */
.wac-mobile-menu {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 98; /* sotto l'header (100) cosi la navbar resta sopra */
    background: var(--wac-paper);
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s 0.4s, opacity 0.4s;
    display: flex;
    flex-direction: column;
    padding-top: var(--wac-header-h);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
body.has-topbar .wac-mobile-menu {
    padding-top: calc(var(--wac-header-h) + var(--wac-topbar-h, 0px));
}
.wac-mobile-menu.is-open {
    visibility: visible;
    opacity: 1;
    transition: visibility 0s 0s, opacity 0.35s;
}

.wac-mobile-menu-inner {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0 24px 40px;
}

.wac-mobile-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.wac-mobile-menu-list li {
    border-bottom: 1px solid var(--wac-line);
}
.wac-mobile-menu-list li a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 0;
    font-family: var(--wac-body);
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--wac-night);
    text-decoration: none;
    transition: color 0.2s;
}
.wac-mobile-menu-list li a:hover,
.wac-mobile-menu-list li a:active { color: var(--wac-gold-deep); }
.wac-mm-arrow {
    font-size: 22px;
    font-weight: 300;
    color: var(--wac-mute);
    line-height: 1;
}

/* Footer del menu mobile: account/logout */
.wac-mobile-menu-footer {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-top: 30px;
    margin-top: auto;
}
.wac-mm-footer-link {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
    color: var(--wac-night);
    text-decoration: none;
    font-weight: 500;
}
.wac-mm-footer-link svg { flex-shrink: 0; color: var(--wac-mute); }
.wac-mm-footer-link:hover { color: var(--wac-gold-deep); }
.wac-mm-logout { color: var(--wac-mute); }

/* cart overlay: definito sopra */

/* Hamburger → X per ENTRAMBI i toggle (desktop e mobile-left) */
body.menu-open .wac-menu-toggle span:nth-child(1),
body.menu-open #wac-menu-toggle-m span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
}
body.menu-open .wac-menu-toggle span:nth-child(2),
body.menu-open #wac-menu-toggle-m span:nth-child(2) { opacity: 0; }
body.menu-open .wac-menu-toggle span:nth-child(3),
body.menu-open #wac-menu-toggle-m span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
}

/* Menu toggle mobile-left: stesso stile dell'hamburger */
#wac-menu-toggle-m {
    width: 44px; height: 44px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 0;
    background: none;
    cursor: pointer;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
}
#wac-menu-toggle-m span {
    width: 22px; height: 1.5px;
    background: var(--wac-night);
    transition: transform 0.4s var(--wac-ease), opacity 0.3s;
    display: block;
}

/* ============================================================
   RESPONSIVE BLOCKS — Builder content auto-responsive
   I blocchi del live builder ricevono regole responsive automatiche
   senza dover specificare breakpoint manualmente
============================================================ */
@media (max-width: 768px) {
    /* Le dimensioni testo e le colonne sono ora gestite dal sistema responsive
       dedicato (.wac-rfs con --fs/--fs-t/--fs-m e .wac-cols): qui restano solo
       le regole di sicurezza generiche. */
    /* Section: padding ridotto su mobile */
    [data-hb-block] [style*="padding:80px"] { padding-top: 48px !important; padding-bottom: 48px !important; }
    /* Image: mai oltre la larghezza disponibile */
    [data-hb-block] img { max-width: 100% !important; height: auto !important; }
}

/* Focus visibili per accessibilità keyboard */
.wac-hb-block:focus-visible { outline: 3px solid #C8932A; outline-offset: 2px; }

/* ============================================================
   Card varianti — thumbs sotto la card
============================================================ */
.wac-card-variant-label {
    font-size: 12px;
    color: var(--wac-night-2, #555);
    margin: 2px 0 8px;
    letter-spacing: 0.02em;
}
.wac-card-variants {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--wac-cream-2, #efe8d8);
}
.wac-card-variant-thumb {
    width: 36px;
    height: 36px;
    border-radius: 4px;
    border: 1.5px solid transparent;
    background: var(--wac-cream-2, #f5f0e8);
    cursor: pointer;
    padding: 0;
    overflow: hidden;
    transition: border-color 0.2s, transform 0.2s;
    position: relative;
}
.wac-card-variant-thumb:hover { transform: translateY(-1px); border-color: var(--wac-gold-light, #f4d374); }
.wac-card-variant-thumb.is-active {
    border-color: var(--wac-gold, #c8932a);
    box-shadow: 0 0 0 1px var(--wac-gold, #c8932a);
}
.wac-card-variant-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.wac-card-variant-thumb span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%; height: 100%;
    font-size: 10px;
    font-weight: 700;
    color: var(--wac-night, #0f0e0c);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ============================================================
   PRODUCT CARD — Stile editoriale Velasca-like
============================================================ */
.wac-product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: transparent;
    height: 100%;
    transition: opacity 0.2s;
}
.wac-product-card.wac-card-card {
    background: var(--wac-paper);
    border-radius: var(--wac-radius-lg);
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.wac-product-card.wac-card-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}

/* Immagine: SEMPRE quadrata, riempita interamente (cover), sfondo crema */
.wac-product-card-image {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: var(--wac-cream, #F5F0E8);
    overflow: hidden;
    flex-shrink: 0;
}
.wac-product-card-image .wac-card-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    padding: 0;
    transition: opacity 0.5s var(--wac-ease);
}
.wac-card-card .wac-product-card-image { border-radius: var(--wac-radius-lg); }

.wac-product-card-image .wac-card-img-main { opacity: 1; z-index: 1; }
.wac-product-card-image .wac-card-img-hover { opacity: 0; z-index: 2; }
.wac-product-card:hover .wac-card-img-main { opacity: 0; }
.wac-product-card:hover .wac-card-img-hover { opacity: 1; }

.wac-product-card-media,
.wac-card-link {
    display: block;
    cursor: pointer;
    text-decoration: none;
}

.wac-product-card-placeholder {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    opacity: 0.3;
}
.wac-product-card-placeholder svg { width: 50%; height: 50%; }

.wac-product-card-badge {
    position: absolute;
    top: 12px; left: 12px;
    background: var(--wac-night, #0F0E0C);
    color: var(--wac-cream, #F5F0E8);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 5px 10px;
    border-radius: 2px;
    z-index: 3;
}
.wac-product-card-badge-out { background: rgba(15,14,12,0.6); }

/* ============================================================
   Body: layout pulito sotto l'immagine
============================================================ */
.wac-product-card-body {
    padding: 13px 0 0;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 2px;
}
.wac-card-card .wac-product-card-body { padding: 13px 16px 16px; }

/* Categoria/origine: caps spaziato sopra il titolo */
.wac-product-card-origin {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--wac-night-3, #888);
}

/* Headline: titolo (grande) + prezzo affiancato, attaccato alla categoria */
.wac-card-headline {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 1px;
}
.wac-product-card-title { margin: 0; min-width: 0; }
.wac-product-card-title a {
    font-family: var(--wac-serif, 'Fraunces', serif);
    font-size: 20px;
    font-weight: 500;
    color: var(--wac-gold-deep, #9c6b1a);
    text-decoration: none;
    letter-spacing: -0.005em;
    line-height: 1.15;
}
@media (min-width: 900px) { .wac-product-card-title a { font-size: 24px; } }
.wac-product-card-title a:hover { color: var(--wac-night, #0F0E0C); }

.wac-product-card-price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-shrink: 0;
    padding-top: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--wac-night, #0F0E0C);
    white-space: nowrap;
}
/* "A partire da": etichetta piccola sopra il prezzo minimo (leggibile) */
.wac-product-card-price:has(.wac-price-from) {
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 2px;
    line-height: 1.1;
}
.wac-price-from {
    display: block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--wac-mute, #8a8375);
    line-height: 1;
}
.wac-card-price-now {
    font-size: 14px;
    font-weight: 600;
    color: var(--wac-night, #0F0E0C);
    letter-spacing: 0.01em;
}
.wac-card-price-old {
    font-size: 12px;
    color: var(--wac-night-3, #aaa);
    text-decoration: line-through;
}

/* Sottotitolo / variant label: testo grigio leggibile */
.wac-card-variant-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--wac-night, #0F0E0C);
    margin-top: 2px;
    line-height: 1.4;
}

/* ============================================================
   Varianti — thumbs piccoli (foto) e chips testuali
============================================================ */
.wac-card-variants {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid rgba(0,0,0,0.06);
}

/* THUMBS */
.wac-card-variants-thumbs { gap: 8px; padding-top: 14px; }
.wac-card-variant-thumb {
    width: 56px;
    height: 56px;
    border-radius: 2px;
    border: 0;
    background: var(--wac-cream, #F5F0E8);
    cursor: pointer;
    padding: 0;
    overflow: hidden;
    position: relative;
    opacity: 0.7;
    transition: opacity 0.2s;
}
.wac-card-variant-thumb::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: -1px;
    height: 2px;
    background: transparent;
    transition: background 0.2s;
}
.wac-card-variant-thumb:hover,
.wac-card-variant-thumb.is-active { opacity: 1; }
.wac-card-variant-thumb.is-active::after { background: var(--wac-gold-deep, #9c6b1a); }
.wac-card-variant-thumb img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.wac-card-thumb-fallback {
    display: flex;
    align-items: center; justify-content: center;
    width: 100%; height: 100%;
    font-size: 10px;
    font-weight: 700;
    color: var(--wac-night, #0F0E0C);
}

/* CHIPS testuali (250g / 500g) */
.wac-card-variants-chips { gap: 6px; }
.wac-card-variant-chip {
    padding: 7px 16px;
    background: transparent;
    border: 1px solid var(--wac-cream-2, #e5dfd0);
    border-radius: 999px;
    color: var(--wac-night, #0F0E0C);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all 0.18s;
    line-height: 1.2;
    font-family: var(--wac-sans, 'Manrope', sans-serif);
}
.wac-card-variant-chip:hover {
    border-color: var(--wac-night, #0F0E0C);
}
.wac-card-variant-chip.is-active {
    background: var(--wac-night, #0F0E0C);
    border-color: var(--wac-night, #0F0E0C);
    color: var(--wac-cream, #F5F0E8);
}

/* Add to cart prodotti semplici */
.wac-product-card-add {
    margin-top: auto;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    background: var(--wac-night, #0F0E0C);
    border: 1px solid var(--wac-night, #0F0E0C);
    color: var(--wac-cream, #F5F0E8);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    cursor: pointer;
    border-radius: 2px;
    transition: all 0.2s;
    font-family: var(--wac-sans, 'Manrope', sans-serif);
}
.wac-product-card-add:hover {
    background: var(--wac-gold, #C8932A);
    border-color: var(--wac-gold, #C8932A);
    color: #fff;
}
.wac-product-card-add svg,
.wac-product-card-add .wac-icon { width: 14px; height: 14px; flex-shrink: 0; }
.wac-product-card-add i { font-size: 14px; line-height: 1; flex-shrink: 0; }
.wac-product-card-add span { line-height: 1; }

/* Variazioni nella card (pill selezionabili, stile scheda prodotto) */
.wac-card-variants { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 6px; }
.wac-card-variant { position: relative; cursor: pointer; }
.wac-card-variant input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.wac-card-variant span {
    display: inline-block;
    padding: 5px 11px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    color: var(--wac-night, #0F0E0C);
    background: transparent;
    border: 1px solid var(--wac-line, #E7E0D2);
    border-radius: 999px;
    transition: border-color 0.18s, background 0.18s, color 0.18s;
}
.wac-card-variant:hover span { border-color: var(--wac-night, #0F0E0C); }
.wac-card-variant.is-active span {
    background: var(--wac-night, #0F0E0C);
    border-color: var(--wac-night, #0F0E0C);
    color: var(--wac-cream, #F5F0E8);
}
.wac-card-variant.is-out span { opacity: 0.4; text-decoration: line-through; cursor: not-allowed; }

/* ============================================================
   Card: variazioni SOTTO (swatch grandi) come slider con freccetta.
   Niente hover sull'immagine — sempre visibili, cliccabili aggiungono al carrello.
============================================================ */
.wac-product-card-media-wrap { position: relative; }

.wac-card-swatches { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.wac-card-swatches-track {
    display: flex; gap: 8px; flex: 1 1 auto; min-width: 0;
    overflow-x: auto; scroll-behavior: smooth;
    scrollbar-width: none; -ms-overflow-style: none;
}
.wac-card-swatches-track::-webkit-scrollbar { display: none; }
button.wac-card-swatch {
    flex: 0 0 auto; border: 0; background: transparent; margin: 0; padding: 0;
    font: inherit; cursor: pointer; line-height: 1;
}
.wac-card-swatch span {
    display: inline-block;
    padding: 9px 16px;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    color: var(--wac-night, #0F0E0C);
    background: #ECE4D5; /* leggermente più scuro dello sfondo, così non si confonde con la freccia */
    border: 1px solid #E0D7C4;
    border-radius: 999px;
    transition: border-color 0.18s, background 0.18s, color 0.18s;
}
.wac-card-swatch:hover span { background: #E4DAC6; border-color: var(--wac-night, #0F0E0C); }
.wac-card-swatch.is-added span { background: var(--wac-gold); border-color: var(--wac-gold); color: var(--wac-night); }
.wac-card-swatch.is-out { pointer-events: none; }
.wac-card-swatch.is-out span { opacity: 0.4; text-decoration: line-through; }
.wac-card-swatches-arrow {
    flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%;
    border: 1px solid var(--wac-line, #E7E0D2); background: transparent;
    color: var(--wac-night, #0F0E0C);
    display: flex; align-items: center; justify-content: center; cursor: pointer;
    transition: border-color 0.18s, background 0.18s;
}
.wac-card-swatches-arrow svg { width: 16px; height: 16px; }
.wac-card-swatches-arrow:hover { border-color: var(--wac-night, #0F0E0C); background: var(--wac-cream-2, #F2ECE0); }
.wac-card-swatches-arrow[hidden] { display: none; }

/* Prodotto semplice: pulsante "Aggiungi al carrello" sotto, sempre visibile */
.wac-card-simple-add {
    display: block;
    width: 100%;
    text-align: center;
    margin-top: 12px;
    border: 1px solid var(--wac-night, #0F0E0C);
    background: var(--wac-night, #0F0E0C);
    color: var(--wac-cream, #F5F0E8);
    border-radius: 3px;
    padding: 12px 18px;
    font-family: var(--wac-sans, 'Manrope', sans-serif);
    font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}
.wac-card-simple-add:hover { background: var(--wac-gold, #C8932A); border-color: var(--wac-gold, #C8932A); color: #fff; }
.wac-card-simple-add.is-added { background: var(--wac-gold); border-color: var(--wac-gold); color: var(--wac-night); }

/* ============================================================
   Hover-mode (SOLO pannello carrello vuoto / visti di recente):
   pulsante "Aggiungi al carrello" + variazioni a comparsa sulla foto.
============================================================ */
.wac-card-hovermode .wac-product-card-media-wrap { overflow: hidden; }
.wac-card-hover {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 4;
    display: flex; flex-direction: column;
    transform: translateY(100%);
    transition: transform 0.4s var(--wac-ease-out, cubic-bezier(0.22,1,0.36,1));
    background: rgba(255, 255, 255, 0.55);
    -webkit-backdrop-filter: blur(10px) saturate(1.05);
    backdrop-filter: blur(10px) saturate(1.05);
    border-top: 1px solid rgba(255,255,255,0.6);
}
.wac-product-card-media-wrap:hover .wac-card-hover,
.wac-product-card-media-wrap:focus-within .wac-card-hover { transform: translateY(0); }
.wac-card-hover-add {
    order: 0; display: block; width: 100%; border: 0; background: transparent; cursor: pointer;
    padding: 13px 12px; font-family: var(--wac-sans, 'Manrope', sans-serif);
    font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--wac-night, #0F0E0C); text-align: center; transition: color 0.2s;
}
.wac-card-hover-add:hover { color: var(--wac-gold-deep, #9c6b1a); }
.wac-card-hover-label { cursor: default; }
.wac-card-hover-variants {
    order: 1; display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; padding: 0 10px;
    max-height: 0; opacity: 0; overflow: hidden;
    transition: max-height 0.4s var(--wac-ease-out, cubic-bezier(0.22,1,0.36,1)), opacity 0.28s ease, padding 0.4s;
}
.wac-card-hover:hover .wac-card-hover-variants,
.wac-card-hover:focus-within .wac-card-hover-variants { max-height: 130px; opacity: 1; padding: 0 10px 13px; }
button.wac-card-variant { flex: 0 0 auto; border: 0; background: transparent; margin: 0; padding: 0; font: inherit; cursor: pointer; line-height: 1; }
.wac-card-variant span {
    display: inline-block; padding: 5px 11px; font-size: 11px; font-weight: 600; line-height: 1; white-space: nowrap;
    color: var(--wac-night, #0F0E0C); border: 1px solid var(--wac-line, #E7E0D2); border-radius: 999px;
    transition: border-color 0.18s, background 0.18s, color 0.18s;
}
.wac-card-variant:hover span { border-color: var(--wac-night, #0F0E0C); }
.wac-card-variant.is-added span { background: var(--wac-gold); border-color: var(--wac-gold); color: var(--wac-night); }
.wac-card-variant.is-out { pointer-events: none; }
.wac-card-variant.is-out span { opacity: 0.4; text-decoration: line-through; }

/* Grid: altezze uniformi */
.wac-products-grid { align-items: stretch; }
.wac-products-grid > * { display: flex; flex-direction: column; height: 100%; }

/* ============================================================
   Trust badges (riutilizzabili: prodotto singolo + carrello)
============================================================ */
.wac-trust-badges {
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.wac-trust-badge {
    display: flex;
    align-items: center;
    gap: 12px;
}
/* Misure dal pannello (v1.2.173). Il quadratino si ricava dal glifo invece di
   avere una misura sua: così ingrandendo l'icona non si ritrova stretta dentro
   una scatola rimasta di 38px. I valori arrivano già dentro i limiti dal PHP. */
.wac-trust-badge-icon {
    --wac-trust-ico: var(--wac-trust-icon, 19px);
    width: calc(var(--wac-trust-ico) + 19px);
    height: calc(var(--wac-trust-ico) + 19px);
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: var(--wac-cream-2);
    color: var(--wac-gold-deep);
    border-radius: 10px;
    font-size: var(--wac-trust-ico);
}
.wac-trust-badge-text {
    color: var(--wac-night);
    line-height: 1.4;
    font-size: var(--wac-trust-text, inherit);
}
.wac-trust-badge-text strong, .wac-trust-badge-text b { font-weight: 700; }
.wac-trust-badge-text em, .wac-trust-badge-text i { font-style: italic; }

/* Nel prodotto singolo: box con sfondo (come prima) */
.wac-product-trust.wac-trust-badges {
    padding: 24px;
    background: var(--wac-cream-2);
    border-radius: var(--wac-radius);
    margin-bottom: 24px;
}
.wac-product-trust .wac-trust-badge-icon {
    background: var(--wac-paper);
}

/* Disposizione IN LINEA (v1.2.162) — icona sopra, testo centrato sotto.
   Griglia, non flex: il numero di colonne arriva dal PHP in --wac-trust-cols
   ed è quello a ogni larghezza. Col flex le colonne si riorganizzavano da sole
   appena la riga si stringeva, ed è proprio quello che non deve succedere:
   quattro badge impostati restano quattro anche sul telefono.
   minmax(0, 1fr) invece di 1fr perché la misura minima di default di una
   colonna è il suo contenuto: senza lo 0 una parola lunga allargherebbe la
   colonna e manderebbe la griglia fuori dal riquadro. */
.wac-product-trust.wac-trust-badges--row {
    display: grid;
    grid-template-columns: repeat(var(--wac-trust-cols, 4), minmax(0, 1fr));
    align-items: start;
    gap: 22px 14px;
}
.wac-product-trust.wac-trust-badges--row .wac-trust-badge {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    min-width: 0;
}
.wac-product-trust.wac-trust-badges--row .wac-trust-badge-text {
    font-size: var(--wac-trust-text, 13px);
    line-height: 1.35;
    text-wrap: balance;
    /* Testi come "Personalizzazione" non stanno in una colonna stretta: meglio
       spezzarli con il trattino che farli uscire dal riquadro. */
    overflow-wrap: break-word;
    hyphens: auto;
}

/* Nel carrello: separatore + badge compatti sotto i totali */
.wac-cart-trust-sep {
    height: 1px;
    background: var(--wac-line);
    margin: 18px 0;
}
.wac-cart-trust.wac-trust-badges {
    margin-bottom: 18px;
    gap: 10px;
}
.wac-cart-trust .wac-trust-badge-icon {
    width: 32px; height: 32px;
    font-size: 16px;
}
.wac-cart-trust .wac-trust-badge-text {
    font-size: 13px;
}

/* Nota spedizione "calcolata dopo" */
.wac-cart-shipping-note {
    font-style: italic;
    color: var(--wac-mute);
    font-size: 0.92em;
    /* La riga era gia' allineata a destra dal flex, ma il testo va a capo e
       dentro al suo riquadro restava allineato a sinistra: le due righe
       risultavano sfalsate rispetto a tutti gli altri importi. Su mobile il
       text-align c'era gia', su desktop no. */
    text-align: right;
}

/* Nota consegna sotto "Aggiungi al carrello" (minimal, stile Velasca) */
.wac-product-delivery-note {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 10px 0 28px;
    font-size: 13px;
    color: var(--wac-mute);
    text-align: center;
}

/* Prodotto singolo: impilato su mobile, gallery non sticky */
@media (max-width: 900px) {
    .wac-product-layout {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .wac-product-gallery {
        position: static;
        top: auto;
    }
}

/* ============================================================
   Related products — slider orizzontale con frecce
============================================================ */
.wac-related-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}
.wac-related-nav { display: flex; gap: 10px; flex-shrink: 0; }
.wac-related-arrow {
    width: 46px; height: 46px;
    border-radius: 50%;
    border: 1px solid var(--wac-line-strong);
    background: transparent;
    color: var(--wac-night);
    font-size: 18px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.3s var(--wac-ease);
}
.wac-related-arrow:hover { background: var(--wac-night); color: var(--wac-cream); border-color: var(--wac-night); }
.wac-related-arrow:disabled { opacity: 0.3; cursor: default; }
.wac-related-arrow:disabled:hover { background: transparent; color: var(--wac-night); border-color: var(--wac-line-strong); }

.wac-related-slider {
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin-top: 40px;
    scroll-snap-type: x mandatory;
}
.wac-related-slider::-webkit-scrollbar { display: none; }
.wac-related-track {
    display: flex;
    gap: 24px;
}
.wac-related-slide {
    flex: 0 0 calc((100% - 52px) / 2.6); /* card grandi su desktop, con anteprima della successiva */
    scroll-snap-align: start;
}
@media (max-width: 1100px) { .wac-related-slide { flex-basis: calc((100% - 36px) / 2.2); } }
@media (max-width: 768px)  { .wac-related-slide { flex-basis: calc((100% - 18px) / 1.7); } }
@media (max-width: 480px)  { .wac-related-slide { flex-basis: 78%; } .wac-related-nav { display: none; } }

/* Header trasparente: quando diventa solido allo scroll ripristina lo sfondo */
body.wac-has-transparent-header .wac-header.is-solid {
    background: rgba(251, 247, 240, 0.85);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom-color: var(--wac-line);
}
body.wac-has-transparent-header .wac-header {
    transition: background 0.5s var(--wac-ease), border-color 0.5s var(--wac-ease), transform 0.4s var(--wac-ease);
}
/* Transizione morbida di testo, link, icone e logo tra trasparente e solido */
body.wac-has-transparent-header .wac-header .wac-nav-menu a,
body.wac-has-transparent-header .wac-header .wac-logo-name,
body.wac-has-transparent-header .wac-header .wac-logo-text,
body.wac-has-transparent-header .wac-header .wac-logo-symbol,
body.wac-has-transparent-header .wac-header .wac-header-login,
body.wac-has-transparent-header .wac-header .wac-header-actions a,
body.wac-has-transparent-header .wac-header .wac-header-actions button,
body.wac-has-transparent-header .wac-header .wac-header-actions i,
body.wac-has-transparent-header .wac-header .wac-icon {
    transition: color 0.5s var(--wac-ease), stroke 0.5s var(--wac-ease), fill 0.5s var(--wac-ease), opacity 0.5s var(--wac-ease);
}
body.wac-has-transparent-header .wac-header .wac-logo-img {
    transition: opacity 0.5s var(--wac-ease), filter 0.5s var(--wac-ease);
}

/* ============================================================
   Countdown widget — animazioni cifre
============================================================ */
.wac-countdown .wac-cd-num { display: inline-block; }
.wac-cd-anim-flip   { animation: wac-cd-flip 0.5s var(--wac-ease); transform-origin: 50% 100%; }
.wac-cd-anim-fade   { animation: wac-cd-fade 0.5s ease; }
.wac-cd-anim-slide  { animation: wac-cd-slide 0.4s var(--wac-ease); }
.wac-cd-anim-bounce { animation: wac-cd-bounce 0.5s var(--wac-ease); }

@keyframes wac-cd-flip {
    0%   { transform: rotateX(-90deg); opacity: 0; }
    100% { transform: rotateX(0); opacity: 1; }
}
@keyframes wac-cd-fade {
    0%   { opacity: 0; transform: translateY(-6px); }
    100% { opacity: 1; transform: translateY(0); }
}
@keyframes wac-cd-slide {
    0%   { transform: translateY(-100%); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}
@keyframes wac-cd-bounce {
    0%   { transform: scale(0.6); opacity: 0; }
    60%  { transform: scale(1.15); opacity: 1; }
    100% { transform: scale(1); }
}

/* ============================================================
   MEGA MENU (desktop) — pannello a colonne + immagine hover
============================================================ */
.wac-nav-item { position: static; }
.wac-nav-link { display: inline-flex; align-items: center; gap: 5px; }
.wac-nav-caret { display: inline-flex; transition: transform 0.3s var(--wac-ease); }
.wac-has-mega:hover > .wac-nav-link .wac-nav-caret,
.wac-has-mega.wac-mega-open > .wac-nav-link .wac-nav-caret { transform: rotate(180deg); }

.wac-mega {
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--wac-cream, #FBF7F0);
    border-top: 1px solid var(--wac-line, #e8e1d5);
    box-shadow: 0 26px 50px rgba(20, 14, 6, 0.10);
    opacity: 0; visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.28s var(--wac-ease), transform 0.28s var(--wac-ease), visibility 0.28s;
    z-index: 90;
    pointer-events: none;
}
.wac-has-mega:hover > .wac-mega,
.wac-has-mega.wac-mega-open > .wac-mega {
    opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto;
}
.wac-mega-inner {
    max-width: var(--wac-container, 1280px);
    margin: 0 auto;
    padding: 42px 32px 46px;
    display: flex;
    gap: 52px;
    align-items: flex-start;
}
.wac-mega-cols {
    flex: 1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 34px 40px;
    list-style: none; margin: 0; padding: 0;
}
.wac-mega-col { list-style: none; min-width: 0; }
.wac-mega-col-title {
    display: block;
    font-size: 13px; font-weight: 600; text-transform: none;
    letter-spacing: 0.01em; color: #0F0E0C;
    margin-bottom: 15px; padding-bottom: 9px;
    border-bottom: 1px solid var(--wac-line, #e8e1d5);
    transition: color 0.2s;
}
a.wac-mega-col-title:hover { color: #555; }
.wac-mega-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.wac-mega-link-item { list-style: none; }
.wac-mega-link {
    display: inline-block;
    font-size: 14px; font-weight: 400; color: var(--wac-night, #1a1a1a);
    text-decoration: none;
    transition: color 0.2s var(--wac-ease);
}
.wac-mega-link:hover { color: var(--wac-gold, #C8932A); text-decoration: underline; text-underline-offset: 3px; }
/* Neutralizza l'underline animato ereditato dal menu principale */
.wac-mega a::after { content: none !important; display: none !important; }
.wac-mega-col--plain .wac-mega-col-title { border-bottom-color: transparent; margin-bottom: 0; }

/* Riquadro immagine feature (compare solo se ci sono immagini) */
.wac-mega-feature { display: none; flex: 0 0 300px; width: 300px; flex-direction: column; gap: 12px; text-decoration: none; }
.wac-mega.has-feature .wac-mega-feature { display: flex; }
.wac-mega-feature-img {
    display: block;
    width: 100%; aspect-ratio: 4 / 3; border-radius: 14px;
    background-size: cover; background-position: center; background-repeat: no-repeat;
    background-color: var(--wac-cream-2, #F0E9DC);
    transition: background-image 0.35s var(--wac-ease), transform 0.4s var(--wac-ease);
    box-shadow: 0 12px 34px rgba(20,14,6,0.12);
}
.wac-mega-feature:hover .wac-mega-feature-img { transform: scale(1.02); }
.wac-mega-feature-label {
    font-size: 12px; letter-spacing: 0.09em; text-transform: uppercase;
    color: var(--wac-gray, #8a8375);
}

@media (max-width: 980px) {
    .wac-mega { display: none !important; }
    .wac-nav-caret { display: none; }
}

/* ============================================================
   MENU MOBILE — sottomenu a fisarmonica con toggle +/−
============================================================ */
.wac-mm-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wac-mobile-menu-list .wac-mm-link {
    display: block; flex: 1;
    padding: 20px 0;
    font-family: var(--wac-body); font-size: 16px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--wac-night); text-decoration: none; transition: color 0.2s;
}
.wac-mobile-menu-list .wac-mm-link:hover,
.wac-mobile-menu-list .wac-mm-link:active { color: var(--wac-gold-deep); }
.wac-mm-child .wac-mm-link {
    font-size: 14px; font-weight: 500; text-transform: none; letter-spacing: 0.01em;
    padding: 13px 0; color: var(--wac-gray, #6b6459);
}

/* Bordo separatore solo sulle voci di primo livello */
.wac-mobile-menu-list > .wac-mm-item { border-bottom: 1px solid var(--wac-line); }
.wac-mm-sub .wac-mm-item { border-bottom: none; }

/* Toggle + / − minimal: nessun bordo, piccolo */
.wac-mm-toggle {
    flex: 0 0 auto; width: 28px; height: 28px; margin-left: 4px;
    border: 0; border-radius: 50%;
    background: transparent; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: opacity 0.2s;
    opacity: 0.65;
}
.wac-mm-toggle:hover { opacity: 1; }
.wac-mm-item.is-open > .wac-mm-row > .wac-mm-toggle { opacity: 1; }
.wac-mm-plus { position: relative; width: 13px; height: 13px; display: block; }
.wac-mm-plus::before, .wac-mm-plus::after {
    content: ""; position: absolute; background: var(--wac-night);
    transition: transform 0.3s var(--wac-ease), opacity 0.3s;
}
.wac-mm-plus::before { left: 0; right: 0; top: 50%; height: 1.5px; transform: translateY(-50%); }
.wac-mm-plus::after  { top: 0; bottom: 0; left: 50%; width: 1.5px; transform: translateX(-50%); }
.wac-mm-item.is-open > .wac-mm-row .wac-mm-plus::after { transform: translateX(-50%) scaleY(0); opacity: 0; }

/* Sottomenu collassabile */
.wac-mm-sub {
    list-style: none; margin: 0; padding: 0 0 6px 16px;
    max-height: 0; overflow: hidden;
    transition: max-height 0.4s var(--wac-ease);
    border-left: 1px solid var(--wac-line);
}
.wac-mm-item.is-open > .wac-mm-sub { max-height: 1600px; }

/* ============================================================
   GALLERIA PRODOTTO — slider mobile full-bleed + thumb a lato (desktop)
============================================================ */
.wac-product-mobile-slider { display: none; }

/* Struttura: thumbs + mainwrap (immagine singola oppure stack) */
.wac-product-gallery-mainwrap { display: flex; flex-direction: column; gap: 14px; min-width: 0; flex: 1; }
.wac-product-gallery-stack { display: none; flex-direction: column; gap: 14px; }
.wac-product-stack-img { position: relative; border-radius: var(--wac-radius-lg); overflow: hidden; background: var(--wac-cream-2); }
.wac-product-stack-img img { display: block; width: 100%; height: auto; }

/* Modalità "sotto" (default): immagine singola + miniature sotto */
.wac-product-gallery--bottom { flex-direction: column; }
.wac-product-gallery--bottom .wac-product-gallery-thumbs { order: 2; }
.wac-product-gallery--bottom .wac-product-gallery-mainwrap { order: 1; }
.wac-product-gallery--bottom .wac-product-gallery-stack { display: none; }

/* Modalità "lato": miniature a sinistra + TUTTE le immagini impilate (rif. Velasca) */
.wac-product-gallery--side { position: static; flex-direction: row; align-items: flex-start; gap: 16px; }
.wac-product-gallery--side .wac-product-gallery-thumbs {
    order: 0; display: flex; flex-direction: column; flex: 0 0 78px; width: 78px;
    grid-template-columns: none; gap: 10px;
    position: sticky; top: calc(var(--wac-header-h) + 24px); align-self: flex-start;
}
.wac-product-gallery--side .wac-product-gallery-thumbs button { width: 100%; aspect-ratio: 1; }
.wac-product-gallery--side .wac-product-gallery-mainwrap { order: 1; }
.wac-product-gallery--side .wac-product-gallery-main { display: none; }
.wac-product-gallery--side .wac-product-gallery-stack { display: flex; }

/* Cursore "+" cerchiato che segue il mouse sulle immagini zoomabili (desktop).
   Niente icona statica centrata: è il cursore stesso a diventare il "+".
   Cerchio di solo bordo, senza riempimento. Le righe sono disegnate due volte,
   prima spesse e scure e poi sottili e bianche: così il contorno resta leggibile
   sia sulle foto chiare sia su quelle scure, cosa che un bordo bianco puro non
   farebbe su uno sfondo panna. */
.wac-zoom-hint { display: none; }
@media (hover: hover) {
    /* Il "body" davanti non è decorativo: il cursore personalizzato del tema,
       quando è acceso, impone "cursor: none !important" con il selettore
       "body.wac-cursor-on *", che da solo batterebbe un ".wac-zoom-trigger"
       nudo e lascerebbe la cornice della foto senza cursore. */
    body .wac-zoom-trigger,
    body .wac-zoom-trigger img,
    body .wac-zoom-trigger picture,
    body .wac-zoom-trigger svg {
        cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2744%27%20height%3D%2744%27%20viewBox%3D%270%200%2044%2044%27%3E%3Cg%20fill%3D%27none%27%20stroke-linecap%3D%27round%27%3E%3Ccircle%20cx%3D%2722%27%20cy%3D%2722%27%20r%3D%2718%27%20stroke%3D%27%23000%27%20stroke-opacity%3D%27.42%27%20stroke-width%3D%274.5%27%2F%3E%3Cpath%20d%3D%27M22%2015v14M15%2022h14%27%20stroke%3D%27%23000%27%20stroke-opacity%3D%27.42%27%20stroke-width%3D%274.5%27%2F%3E%3Ccircle%20cx%3D%2722%27%20cy%3D%2722%27%20r%3D%2718%27%20stroke%3D%27%23fff%27%20stroke-width%3D%272%27%2F%3E%3Cpath%20d%3D%27M22%2015v14M15%2022h14%27%20stroke%3D%27%23fff%27%20stroke-width%3D%272%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 22 22, zoom-in !important;
    }
    /* Col cursore personalizzato acceso, il pallino del tema sparisce sulle
       foto: resterebbero due cursori sovrapposti. */
    body:has(.wac-zoom-trigger:hover) .wac-cursor { opacity: 0; }
}

/* ---- Lightbox zoom ---- */
.wac-zoom {
    position: fixed; inset: 0; z-index: 300;
    background: rgba(12, 9, 5, 0.92);
    display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden; transition: opacity 0.28s ease, visibility 0.28s;
}
.wac-zoom.is-open { opacity: 1; visibility: visible; }
body.wac-zoom-open { overflow: hidden; }
.wac-zoom-track { display: flex; width: 100%; height: 100%; transition: transform 0.4s cubic-bezier(.22,1,.36,1); }
.wac-zoom-slide { flex: 0 0 100%; height: 100%; display: flex; align-items: center; justify-content: center; padding: 40px 16px; box-sizing: border-box; }
.wac-zoom-slide img { max-width: 100%; max-height: 100%; object-fit: contain; }
.wac-zoom-close, .wac-zoom-arrow {
    position: absolute; z-index: 4; border: 0; cursor: pointer;
    background: rgba(255,255,255,0.12); color: #fff; border-radius: 50%;
    width: 48px; height: 48px; display: flex; align-items: center; justify-content: center;
    transition: background 0.2s;
}
.wac-zoom-close:hover, .wac-zoom-arrow:hover { background: rgba(255,255,255,0.25); }
.wac-zoom-close { top: 18px; right: 18px; }
.wac-zoom-close svg { width: 22px; height: 22px; }
.wac-zoom-arrow { top: 50%; transform: translateY(-50%); }
.wac-zoom-arrow svg { width: 24px; height: 24px; }
.wac-zoom-arrow.prev { left: 18px; }
.wac-zoom-arrow.next { right: 18px; }

@media (max-width: 900px) {
    .wac-product-layout { grid-template-columns: 1fr; gap: 6px; }
    .wac-product-gallery { display: none; }
    .wac-product-mobile-slider {
        display: block;
        width: 100vw !important;  /* vince su .wac-slider{width:100%} caricato dopo */
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        margin-bottom: 18px;
        background: var(--wac-cream-2);
    }
    .wac-product-mobile-slider .wac-slide { aspect-ratio: 3 / 4; height: auto; }
    .wac-product-mobile-slider .wac-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .wac-product-mobile-slider .wac-slider-arrow { color: #fff; }
    .wac-product-mobile-slider .wac-slider-dots { bottom: 16px; gap: 6px; }
    .wac-product-mobile-slider .wac-slider-dot { width: 22px; height: 3px; border-radius: 2px; background: rgba(255,255,255,.55); }
    .wac-product-mobile-slider .wac-slider-dot.active { background: #fff; transform: none; }
}

/* ============================================================
   FIX MOBILE — breadcrumb, quantità, griglia shop 2-per-riga
============================================================ */
@media (max-width: 900px) {
    /* Breadcrumb: non mostrarlo su mobile */
    .wac-breadcrumbs { display: none; }

    /* Quantità a tutta larghezza, impilata sopra "Aggiungi al carrello" */
    .wac-product-purchase { flex-direction: column; align-items: stretch; gap: 12px; }
    .wac-product-purchase .wac-qty-control-large { width: 100%; justify-content: space-between; }
    .wac-product-purchase .wac-qty-control-large input { flex: 1; width: auto; text-align: center; }
    .wac-product-purchase .wac-product-add-btn,
    .wac-product-purchase .wac-btn-large { width: 100%; flex: 0 0 auto; }

    /* Badge in linea su telefono: le colonne restano quelle impostate (v1.2.162),
       si stringono solo spazi, riquadro, icona e corpo del testo. */
    .wac-product-trust.wac-trust-badges--row { gap: 18px 8px; }
    .wac-product-trust.wac-trust-badges--row.wac-product-trust { padding: 18px 12px; }
    /* In linea su telefono le colonne sono strette: icona e testo scendono in
       proporzione invece che a misura fissa, così la scelta fatta nel pannello
       si sente ancora ma non sfonda la colonna. */
    .wac-product-trust.wac-trust-badges--row .wac-trust-badge-icon {
        --wac-trust-ico: calc(var(--wac-trust-icon, 19px) * .8);
        width: calc(var(--wac-trust-ico) + 14px);
        height: calc(var(--wac-trust-ico) + 14px);
    }
    .wac-product-trust.wac-trust-badges--row .wac-trust-badge-text {
        font-size: calc(var(--wac-trust-text, 13px) * .85);
    }

    /* Shop: 2 prodotti per riga → nome leggermente più piccolo, prezzo SOTTO il nome */
    .wac-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
    .wac-products-grid .wac-card-headline { flex-direction: column !important; align-items: flex-start !important; gap: 3px; }
    .wac-products-grid .wac-product-card-title a { font-size: 17px; line-height: 1.2; }
    .wac-products-grid .wac-product-card-price { padding-top: 0; }
}

/* Telefoni stretti: 1 prodotto per riga ("intera") */
@media (max-width: 460px) {
    .wac-products-grid { grid-template-columns: 1fr; gap: 22px; }
    .wac-products-grid .wac-product-card-title a { font-size: 18px; }
}

/* ============================================================
   FIX MOBILE — overlay ricerca (niente ESC né scroll laterale)
============================================================ */
.wac-search-overlay-inner { overflow-x: hidden; }
@media (max-width: 700px) {
    .wac-search-close kbd { display: none; }           /* "ESC" inutile su mobile */
    .wac-search-bar { padding: 14px 16px; gap: 10px; }
    .wac-search-bar-input-wrap { min-width: 0; }
    .wac-search-close { flex: 0 0 auto; white-space: nowrap; }
}

/* ============================================================
   PRODOTTO — contesto immagine + niente spazio sotto header (mobile)
============================================================ */
.wac-product-gallery-main { position: relative; }

@media (max-width: 900px) {
    /* Immagine attaccata subito sotto l'header */
    .wac-product-mobile-slider { margin-top: 0; }
}

/* ============================================================
   PRODOTTO — info sticky in modalità "lato" + flush mobile
============================================================ */
/* Quando le immagini sono impilate, la colonna info segue lo scroll
   restando in alto finché non finisce il suo contenitore. */
@media (min-width: 901px) {
    .wac-product-layout--side { align-items: flex-start; }
    .wac-product-layout--side .wac-product-info {
        position: sticky;
        top: calc(var(--wac-header-h) + 24px);
        align-self: start;
    }
}

/* Mobile: immagine subito attaccata all'header (nessuno spazio residuo) */
@media (max-width: 900px) {
    .wac-product-mobile-slider { margin-top: 0 !important; }
}

/* Link "Scopri di più" sotto la descrizione prodotto */
.wac-product-more {
    display: inline-block;
    margin-top: 10px;
    font-size: 14px;
    font-weight: 500;
    color: var(--wac-night, #0F0E0C);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    transition: color 0.2s;
}
.wac-product-more:hover { color: var(--wac-gold-deep, #9C6F1B); }

/* ============================================================
   SCHEDE DETTAGLIO PRODOTTO — card aperte con sfondo, immagine a sinistra
============================================================ */
.wac-product-details {
    display: flex; flex-direction: column; gap: 16px;
    margin: 44px 0 96px;
}
/* I valori personalizzabili passano da variabili, non da regole che devono
   vincere per ordine o specificità: così il pannello del tema può cambiarli
   senza dipendere da dove finisce il CSS inline. Il secondo argomento resta
   l'aspetto di fabbrica. */
.wac-dcard {
    background: var(--wac-dcard-bg, var(--wac-cream-2, #F0E9DC));
    border-radius: var(--wac-dcard-radius, 16px);
    overflow: hidden;
}
.wac-dcard > summary {
    list-style: none; cursor: pointer;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 22px 26px;
    font-size: 18px; font-weight: 600; color: var(--wac-dcard-title, var(--wac-night, #0F0E0C));
    font-family: var(--wac-serif, 'Fraunces', serif);
}
.wac-dcard > summary::-webkit-details-marker { display: none; }
.wac-dcard-toggle { position: relative; width: 18px; height: 18px; flex: 0 0 auto; }
.wac-dcard-toggle::before, .wac-dcard-toggle::after {
    content: ""; position: absolute; background: var(--wac-dcard-icon, var(--wac-gold-deep, #9C6F1B));
    transition: transform .25s, opacity .25s;
}
.wac-dcard-toggle::before { left: 0; right: 0; top: 50%; height: 2px; transform: translateY(-50%); }
.wac-dcard-toggle::after  { top: 0; bottom: 0; left: 50%; width: 2px; transform: translateX(-50%); }
.wac-dcard[open] .wac-dcard-toggle::after { transform: translateX(-50%) scaleY(0); opacity: 0; }

.wac-dcard-body { display: flex; gap: 26px; padding: 0 26px 26px; align-items: flex-start; }
.wac-dcard.has-img .wac-dcard-media {
    flex: 0 0 240px; width: 240px; border-radius: 12px; overflow: hidden;
    background: rgba(0,0,0,0.04);
}
.wac-dcard-media img { display: block; width: 100%; height: auto; }
.wac-dcard-content { flex: 1; min-width: 0; line-height: 1.75; color: var(--wac-dcard-text, var(--wac-night-2, #555)); }
.wac-dcard-content p { margin: 0 0 0.6em; }
.wac-dcard-content p:last-child { margin-bottom: 0; }

@media (max-width: 700px) {
    .wac-product-details { margin: 28px 0 60px; }
    .wac-dcard > summary { padding: 18px 18px; font-size: 16px; }
    .wac-dcard-body { flex-direction: column; gap: 16px; padding: 0 18px 20px; }
    .wac-dcard.has-img .wac-dcard-media { flex: none; width: 100%; }
}

/* "Scopri di più": spazio bilanciato sopra/sotto, attaccato alla descrizione */
.wac-product-excerpt > p:last-child { margin-bottom: 0; }
.wac-product-excerpt:has(+ .wac-product-more) { margin-bottom: 16px; }
.wac-product-more { display: inline-block; margin: 0 0 16px; }

/* Badge "In offerta" elegante, in alto a sinistra sull'immagine */
.wac-product-mainwrap-rel { position: relative; }
.wac-sale-badge {
    position: absolute; top: 16px; left: 16px; z-index: 4;
    background: rgba(15, 14, 12, 0.92);
    color: #F7F2E9;
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.14em; text-transform: uppercase;
    padding: 7px 14px; border-radius: 999px;
    backdrop-filter: blur(2px);
    box-shadow: 0 4px 14px rgba(15,14,12,0.18);
    pointer-events: none;
}

/* ---- Stripe checkout (Payment Element + BNPL) ---- */
#wac-stripe-payment { margin-top: 16px; }
#wac-stripe-element { margin-top: 6px; }
.wac-stripe-errors { color: #b71c1c; background: #fdecea; border: 1px solid #f5c6cb; border-radius: 8px; padding: 10px 12px; font-size: 14px; margin-top: 10px; }
.wac-bnpl-wrap { margin-top: 12px; }
.wac-bnpl-note { font-size: 13px; color: #555; background: #faf6ef; border: 1px solid #ece0cc; border-radius: 8px; padding: 10px 12px; margin-top: 8px; }

/* =========================================================================
   INTELLIGENT WEBSITE — overlay ricerca a schermo intero (stile Velasca)
   ========================================================================= */
/* Copre TUTTO lo schermo */
.wac-search-overlay-inner { height: 100vh !important; max-height: 100vh !important; }
.wac-search-results-wrap { padding: 20px clamp(20px,4vw,48px) 60px; }

/* Pannelli iniziali: sinistra (categorie + più cercati) / centro (collezioni + recenti) */
.wac-iw-panels { display: grid; grid-template-columns: 280px 1fr; gap: clamp(28px,5vw,64px); max-width: 1280px; margin: 6px auto 0; }
.wac-iw-empty { color: var(--wac-mute); font-size: 16px; text-align: center; padding: 40px 0; }
.wac-iw-block { margin-bottom: 32px; }
.wac-iw-title { font-family: var(--wac-display); font-size: 20px; font-weight: 500; color: var(--wac-night); margin: 0 0 16px; }

/* Chip (categorie a colonna / più cercati a griglia) */
.wac-iw-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.wac-iw-chips-col { flex-direction: column; align-items: flex-start; }
.wac-iw-chip { display: inline-block; background: var(--wac-cream-2); border: 1px solid var(--wac-line); border-radius: 8px; padding: 8px 14px; font-size: 14px; color: var(--wac-night); text-decoration: none; transition: background .2s var(--wac-ease), border-color .2s var(--wac-ease); }
.wac-iw-chip:hover { background: var(--wac-paper); border-color: var(--wac-gold); }

/* Collezioni: card grandi */
.wac-iw-collections { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.wac-iw-collection { text-decoration: none; display: block; }
.wac-iw-collection-media { display: block; aspect-ratio: 16/10; border-radius: var(--wac-radius-lg); overflow: hidden; background: var(--wac-cream-2); }
.wac-iw-collection-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--wac-ease-out); }
.wac-iw-collection:hover .wac-iw-collection-media img { transform: scale(1.04); }
.wac-iw-collection-title { display: inline-block; margin-top: 12px; font-weight: 600; color: var(--wac-night); text-decoration: underline; text-underline-offset: 4px; letter-spacing: .02em; }

/* Visti di recente: slider orizzontale */
.wac-iw-recent { display: flex; gap: 18px; overflow-x: auto; padding-bottom: 8px; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.wac-iw-recent::-webkit-scrollbar { height: 6px; }
.wac-iw-recent::-webkit-scrollbar-thumb { background: var(--wac-line-strong); border-radius: 999px; }
.wac-iw-recent-card { flex: 0 0 150px; text-decoration: none; }
.wac-iw-recent-media { display: block; aspect-ratio: 1/1; border-radius: var(--wac-radius); overflow: hidden; background: var(--wac-cream-2); }
.wac-iw-recent-media img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; }
.wac-iw-recent-name { display: block; margin-top: 8px; font-size: 13px; color: var(--wac-night); font-weight: 500; line-height: 1.3; }

/* Risultati ricerca → prodotti a slider orizzontale + "Vedi tutti" */
.wac-search-results-grid { max-width: 1280px; margin: 0 auto; }
#wac-search-products .wac-search-col-head,
#wac-search-pages .wac-search-col-head { display: flex; align-items: baseline; justify-content: space-between; margin: 6px 0 16px; }
.wac-search-product-list {
	display: flex; gap: 20px; overflow-x: auto; padding-bottom: 10px;
	-webkit-overflow-scrolling: touch; scrollbar-width: thin;
}
.wac-search-product-list::-webkit-scrollbar { height: 6px; }
.wac-search-product-list::-webkit-scrollbar-thumb { background: var(--wac-line-strong); border-radius: 999px; }
.wac-search-product-item { flex: 0 0 210px; display: block; text-decoration: none; }
#wac-search-all-products { white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; color: var(--wac-night); font-size: 14px; }

/* ===== Mobile ===== */
@media (max-width: 900px) {
	.wac-iw-panels { grid-template-columns: 1fr; gap: 26px; }
	.wac-iw-collections { display: flex; gap: 16px; overflow-x: auto; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
	.wac-iw-collection { flex: 0 0 78%; }
	.wac-search-product-item { flex: 0 0 62%; }
}

/* =========================================================================
   INTELLIGENT WEBSITE — rifiniture v1.2.31
   ========================================================================= */
/* Bottone chiudi = X tonda (chiusura già animata come l'apertura) */
.wac-search-close { width: 46px; height: 46px; min-width: 46px; padding: 0; display: flex; align-items: center; justify-content: center; border: 0; background: transparent; color: var(--wac-night); border-radius: 50%; cursor: pointer; transition: background .2s var(--wac-ease); }
.wac-search-close svg { width: 24px; height: 24px; }
.wac-search-close:hover { background: var(--wac-cream-2); }
.wac-search-close kbd, .wac-search-close span { display: none; }

/* Tutto allineato a sinistra */
.wac-search-state-hint, .wac-iw-panels, .wac-iw-block, .wac-iw-collection { text-align: left; }
.wac-iw-title, .wac-iw-collection-title, .wac-iw-recent-name { text-align: left; }

/* Riempi la larghezza: niente centratura, colonne piene */
.wac-iw-panels { max-width: none; margin: 14px 0 0; grid-template-columns: 300px minmax(0,1fr); }

/* Categorie + Più cercati: chip in colonna, una sotto l'altra */
.wac-iw-col-left .wac-iw-chips { flex-direction: column; align-items: flex-start; gap: 8px; }

/* respiro contenuto tra la barra di ricerca (sticky) e i primi titoli */
.wac-search-results-wrap { padding-top: 12px; }

/* =========================================================================
   RICERCA — scende da dietro la navbar + chiusura animata + foto grandi (v1.2.32)
   ========================================================================= */
/* L'overlay sta SOTTO l'header (che resta sempre visibile e in primo piano) */
/* Overlay SOPRA la top bar (110) ma SOTTO la navbar (120): così durante l'apertura
   la navbar copre la top bar e il pannello non lascia trasparire scritte sotto. */
.wac-search-overlay { z-index: 115 !important; }
#wac-header { z-index: 120 !important; }
/* Header solido quando la ricerca è aperta (così l'overlay dietro non trapela) */
body.search-open #wac-header { background: var(--wac-cream) !important; border-bottom-color: var(--wac-line) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }

/* RICERCA: alla apertura la navbar sale a top:0 (coprendo la top bar) e resta
   sempre visibile e solida; la top bar scivola su. Chiudendo, tutto torna. */
body.search-open .wac-header { top: 0 !important; transform: none !important; }
body.has-topbar.search-open .wac-topbar { transform: translateY(-100%); opacity: 0; pointer-events: none; }

/* Il pannello copre l'intera viewport; il contenuto parte sotto la navbar
   (padding-top = altezza navbar). La barra è FISSA in alto (non sticky), i risultati
   scorrono sotto in modo indipendente: niente più sovrapposizioni con i titoli. */
.wac-search-overlay-inner {
	top: 0 !important;
	padding-top: var(--wac-header-h) !important;
	height: 100vh !important;
	max-height: 100vh !important;
	display: flex !important;
	flex-direction: column !important;
	overflow: hidden !important;
	overscroll-behavior: contain;
}
.wac-search-bar { position: static !important; flex: 0 0 auto; padding: 18px 32px !important; }
.wac-search-results-wrap { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }

/* Chiusura ANIMATA: la visibilità si spegne solo a fine slide */
.wac-search-overlay { transition: visibility 0s linear .45s; }
.wac-search-overlay.is-open { transition-delay: 0s; }

/* Contenuto non a larghezza massima: contenuto contenuto e centrato */
.wac-search-bar,
.wac-search-results-wrap { max-width: 1560px; margin-left: auto; margin-right: auto; width: 100%; box-sizing: border-box; }

/* Collezioni: 2 card GRANDI affiancate */
.wac-iw-collections { grid-template-columns: 1fr 1fr; gap: 20px; }
.wac-iw-collection-media { aspect-ratio: 3 / 2.05; border-radius: 4px; }

/* Visti di recente: 4 card grandi che riempiono la larghezza (slider se di più) */
.wac-iw-recent { gap: 20px; }
.wac-iw-recent-card { flex: 0 0 calc(25% - 15px); }
.wac-iw-recent-media { aspect-ratio: 1 / 1; border-radius: 4px; }

@media (max-width: 900px) {
	.wac-iw-recent-card { flex: 0 0 46%; }
}

/* =========================================================================
   RICERCA — navbar leggibile all'apertura + fix MOBILE (v1.2.33)
   ========================================================================= */
/* Con la search aperta l'header va in stato "solido": testo/icone scuri e logo normale */
body.search-open .wac-header,
body.search-open .wac-header .wac-nav-menu a,
body.search-open .wac-header .wac-logo-name,
body.search-open .wac-header .wac-logo-text,
body.search-open .wac-header .wac-header-ph-icon,
body.search-open .wac-header .wac-header-login,
body.search-open .wac-header svg { color: var(--wac-night) !important; }
body.search-open .wac-header .wac-logo-normal { opacity: 1 !important; }
body.search-open .wac-header .wac-logo-transparent { opacity: 0 !important; }

/* ===== MOBILE overlay ricerca ===== */
@media (max-width: 900px) {
	.wac-search-bar { max-width: none !important; padding: 14px 18px !important; }
	.wac-search-results-wrap { max-width: none !important; padding: 12px 18px 60px !important; }

	/* Una sola colonna: categorie → più cercati → collezioni → visti di recente */
	.wac-iw-panels { grid-template-columns: 1fr !important; gap: 24px !important; }
	.wac-iw-col-left, .wac-iw-col-main { min-width: 0; }

	/* Chip a griglia che va a capo (non più incolonnate strette) */
	.wac-iw-col-left .wac-iw-chips { flex-direction: row !important; flex-wrap: wrap; gap: 8px; }

	/* Collezioni: slider orizzontale a card grandi */
	.wac-iw-collections { display: flex !important; grid-template-columns: none !important; gap: 14px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; }
	.wac-iw-collection { flex: 0 0 82% !important; }
	.wac-iw-collection-media { aspect-ratio: 16/10; }

	/* Visti di recente: slider a card medie */
	.wac-iw-recent { display: flex !important; }
	.wac-iw-recent-card { flex: 0 0 44% !important; }
}

/* =========================================================================
   RICERCA — risultati prodotto stile Velasca (foto grandi, cat + nome) v1.2.34
   ========================================================================= */
.wac-search-results-grid { display: block; max-width: 1560px; margin: 0 auto; }
#wac-search-products { position: relative; margin-bottom: 40px; }
#wac-search-products .wac-search-col-title { font-family: var(--wac-display); font-size: 20px; font-weight: 500; color: var(--wac-night); margin: 0 0 20px; }
#wac-search-all-products { position: absolute; top: 4px; right: 0; text-decoration: underline; text-underline-offset: 3px; color: var(--wac-night); font-size: 14px; }

/* Griglia card grandi */
.wac-search-product-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; overflow: visible; padding: 0; margin: 0; list-style: none; }
.wac-search-product-item { display: block; text-decoration: none; }
.wac-search-prod-thumb { display: block; aspect-ratio: 1/1; background: var(--wac-cream-2); border-radius: 4px; overflow: hidden; }
.wac-search-prod-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wac-search-thumb-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 40px; }
.wac-search-prod-cat { display: block; margin-top: 12px; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: var(--wac-mute); }
.wac-search-prod-title { display: block; margin-top: 3px; font-family: var(--wac-display); font-size: 18px; color: var(--wac-night); line-height: 1.2; }
.wac-search-prod-title mark { background: rgba(200,147,42,.22); color: inherit; }
.wac-search-prod-price { display: none !important; }

/* Pagine: sotto, discreto */
#wac-search-pages { max-width: 1560px; margin: 0 auto; }

@media (max-width: 900px) {
	.wac-search-product-list { grid-template-columns: 1fr 1fr; gap: 16px; }
	#wac-search-products .wac-search-col-title { font-size: 17px; }
}

/* =========================================================================
   RICERCA — override finali v1.2.35 (foto giganti, no linea, no scrollbar,
   navbar scura anche mobile)
   ========================================================================= */
/* Via la linea sotto "Prodotti" + titolo pulito */
#wac-search-products .wac-search-col-title,
.wac-search-col-title {
	border-bottom: 0 !important; padding-bottom: 0 !important;
	text-transform: none !important; letter-spacing: 0 !important;
	font-family: var(--wac-display) !important; font-size: 22px !important; font-weight: 500 !important;
	color: var(--wac-night) !important;
}

/* Card prodotto: annulla la vecchia riga (thumb 64px) → card verticale grande */
.wac-search-product-list { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 28px !important; flex-direction: unset !important; }
.wac-search-product-item {
	display: block !important; grid-template-columns: none !important;
	padding: 0 !important; border-radius: 0 !important; background: transparent !important;
}
.wac-search-product-item:hover, .wac-search-product-item:focus { background: transparent !important; }
.wac-search-prod-thumb {
	width: 100% !important; height: auto !important; aspect-ratio: 1/1 !important;
	border-radius: 4px !important; display: block !important; background: var(--wac-cream-2) !important;
}
.wac-search-prod-thumb img { width: 100% !important; height: 100% !important; object-fit: cover !important; }

/* Nascondi le scrollbar su tutti gli slider orizzontali */
.wac-iw-recent, .wac-iw-collections, .wac-search-product-list,
.wac-search-results-wrap { scrollbar-width: none !important; -ms-overflow-style: none !important; }
.wac-iw-recent::-webkit-scrollbar,
.wac-iw-collections::-webkit-scrollbar,
.wac-search-product-list::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }

/* Navbar leggibile all'apertura ANCHE su mobile (hamburger + icone mobile) */
body.search-open .wac-header .wac-menu-toggle span,
body.search-open .wac-header #wac-menu-toggle-m span { background: var(--wac-night) !important; }
body.search-open .wac-header .wac-header-mobile-left .wac-header-ph-icon,
body.search-open .wac-header .wac-header-mobile-left svg,
body.search-open .wac-header .wac-search-trigger-m svg { color: var(--wac-night) !important; }

/* ===== Dimensioni foto: desktop grande / mobile 2 col ===== */
@media (min-width: 1200px) { .wac-search-product-list { grid-template-columns: repeat(4, 1fr) !important; } }
@media (max-width: 1199px) and (min-width: 901px) { .wac-search-product-list { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 900px) { .wac-search-product-list { grid-template-columns: 1fr 1fr !important; gap: 16px !important; } }

/* =========================================================================
   MEGA MENU — allineamento Velasca (v1.2.37)
   ========================================================================= */
/* Titoli colonna: BOLD, niente linea divisoria */
.wac-mega-col-title {
	font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .04em !important;
	font-size: 12px !important; color: var(--wac-night) !important;
	border-bottom: 0 !important; padding-bottom: 0 !important; margin-bottom: 14px !important;
}
a.wac-mega-col-title:hover { color: var(--wac-night) !important; }
.wac-mega-col--plain .wac-mega-col-title { margin-bottom: 14px !important; }

/* Sotto-voci più vicine tra loro (come Velasca) */
.wac-mega-links { gap: 5px !important; }
.wac-mega-link-item { margin: 0 !important; padding: 0 !important; }
.wac-mega-link { font-size: 14px; line-height: 1.5; padding: 2px 0; }

/* Foto feature: meno raggio, NIENTE ombra, NIENTE zoom, dissolvenza morbida */
.wac-mega-feature-img {
	border-radius: 4px !important; box-shadow: none !important;
	transition: opacity .22s var(--wac-ease) !important;
}
.wac-mega-feature:hover .wac-mega-feature-img { transform: none !important; }

/* ============================================================
   Footer — responsive
============================================================ */
@media (max-width: 900px) {
    .wac-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
}
@media (max-width: 600px) {
    .wac-footer { padding: 56px 0 28px; }
    /* Tutto allineato a sinistra e impilato */
    .wac-footer-grid { grid-template-columns: 1fr; gap: 28px; text-align: left; }
    .wac-footer-col { text-align: left; }
    .wac-footer-text { max-width: none; }
    .wac-footer-payments { justify-content: flex-start; padding: 4px 0 28px; }
    .wac-footer-payments img { max-width: 300px; }
    .wac-footer-bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
    .wac-footer-bottom-left,
    .wac-footer-bottom-right { align-items: flex-start; gap: 10px; }
    .wac-footer-links-inline { flex-direction: column; gap: 10px; }
}

/* ============================================================
   Pre-footer (newsletter) — stile Velasca
============================================================ */
.wac-prefooter { width: 100%; }
.wac-prefooter--cols-2.has-image {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
}
.wac-prefooter-media { position: relative; overflow: hidden; min-height: 320px; }
.wac-prefooter-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.wac-prefooter-body {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 80px 32px;
}
.wac-prefooter-inner { width: 100%; max-width: 460px; text-align: center; }
.wac-prefooter--cols-1 .wac-prefooter-inner { max-width: 520px; margin: 0 auto; }
.wac-prefooter-title {
    font-family: var(--wac-display);
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
    margin: 0 0 16px;
    font-weight: 500;
}
.wac-prefooter-sub {
    font-size: 15px;
    line-height: 1.6;
    opacity: 0.8;
    margin: 0 0 26px;
}
.wac-prefooter-field {
    display: flex;
    align-items: stretch;
    gap: 10px;
    max-width: 420px;
    margin: 0 auto;
}
.wac-prefooter-field input[type="email"] {
    flex: 1;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.12);
    color: #1a1a1a;
    padding: 0 18px;
    height: 52px;
    font-size: 15px;
    outline: none;
    border-radius: 2px;
}
.wac-prefooter-field input::placeholder { color: rgba(0,0,0,0.45); }
.wac-prefooter-btn {
    flex: 0 0 52px;
    width: 52px; height: 52px;
    background: var(--wac-pf-btn, #1F3A5F);
    color: #fff;
    border: 0;
    border-radius: 2px;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px;
    cursor: pointer;
    transition: filter 0.25s, transform 0.25s;
}
.wac-prefooter-btn:hover { filter: brightness(1.12); transform: translateX(2px); }
.wac-prefooter-feedback { min-height: 1em; margin: 12px 0 0; font-size: 13px; }
.wac-prefooter-feedback.is-ok  { color: #1c7c3f; }
.wac-prefooter-feedback.is-err { color: #b3261e; }
.wac-prefooter-privacy {
    font-size: 12px;
    line-height: 1.5;
    opacity: 0.7;
    margin: 18px 0 0;
}
.wac-prefooter-privacy a { color: inherit; text-decoration: underline; }

@media (max-width: 800px) {
    .wac-prefooter--cols-2.has-image { grid-template-columns: 1fr; }
    .wac-prefooter-media { min-height: 220px; }
    .wac-prefooter-body { padding: 48px 24px; }
    .wac-prefooter-inner { max-width: none; }
}

/* Icone social nella barra inferiore del footer (auto dai link impostati) */
.wac-footer-socials { display: inline-flex; align-items: center; gap: 14px; }
.wac-footer-social {
    display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 1px solid var(--wac-line-cream);
    color: rgba(251,247,240,0.75);
    font-size: 17px;
    transition: color 0.25s, border-color 0.25s, background 0.25s;
}
/* Specificità alzata per battere ".wac-footer-bottom a:hover" → icona bianca, cerchio oro */
.wac-footer-bottom .wac-footer-social:hover,
.wac-footer-socials .wac-footer-social:hover {
    color: #fff;
    background: var(--wac-gold);
    border-color: var(--wac-gold);
}
@media (max-width: 600px) {
    .wac-footer-bottom-right .wac-footer-socials { justify-content: flex-start; }
}

/* Blocca lo scroll della pagina quando il carrello laterale è aperto */
body.wac-cart-open { overflow: hidden; }

/* Riduci lo spazio tra "Potrebbero piacerti" e "Visti di recente" */
.wac-product-related:has(+ .wac-product-recent) { padding-bottom: 20px; }
.wac-product-recent.wac-section { padding-top: 24px; }

/* ============================================================
   Barra admin di WordPress — compensazione degli elementi fissi
   ------------------------------------------------------------
   PERCHÉ SERVE: gli elementi in position:fixed sono ancorati al
   viewport, non al documento. WordPress fa spazio alla sua barra
   con "html { margin-top: 32px !important }", che sposta il flusso
   della pagina ma NON gli elementi fissi: header, topbar e cart
   drawer restano incollati a top:0 e finiscono sotto la barra.

   NOTA PER CHI TOCCHERÀ QUESTO FILE:
   blocco puramente ADDITIVO. Ogni regola è agganciata a
   body.admin-bar, classe che esiste solo per gli utenti loggati:
   per i visitatori non cambia nulla. Le regole originali di
   header e topbar (più su) non sono state modificate, e la logica
   di scroll in JS lavora su classi e transform, non su "top",
   quindi non viene sfiorata. Per annullare tutto basta cancellare
   questo blocco.
============================================================ */
body.admin-bar { --wac-adminbar-h: 32px; }

/* Header */
body.admin-bar .wac-header { top: var(--wac-adminbar-h); }
body.admin-bar.has-topbar .wac-header { top: calc(var(--wac-topbar-h, 0px) + var(--wac-adminbar-h)); }
body.admin-bar.has-topbar.topbar-scrolled .wac-header { top: var(--wac-adminbar-h); }
body.admin-bar.has-topbar[data-topbar-sticky="all"].topbar-scrolled .wac-header { top: calc(var(--wac-topbar-h, 0px) + var(--wac-adminbar-h)); }

/* Topbar: va scalata solo quando è davvero fixed. Quando scorre via
   diventa position:absolute e il suo top:0 è già corretto, perché
   parte dal body, cioè sotto il margine che WordPress ha aggiunto. */
body.admin-bar .wac-topbar { top: var(--wac-adminbar-h); }
body.admin-bar.has-topbar.topbar-scrolled .wac-topbar { top: 0; }
body.admin-bar.has-topbar[data-topbar-sticky="all"].topbar-scrolled .wac-topbar { top: var(--wac-adminbar-h); }

/* Pannello carrello (position:fixed inset:0): senza questo il titolo
   "Il tuo carrello" resta mezzo coperto dalla barra. */
body.admin-bar .wac-cart-drawer { top: var(--wac-adminbar-h); }

@media (min-width: 769px) {
    body.admin-bar.has-topbar[data-topbar-sticky="desktop"].topbar-scrolled .wac-header { top: calc(var(--wac-topbar-h, 0px) + var(--wac-adminbar-h)); }
    body.admin-bar.has-topbar[data-topbar-sticky="desktop"].topbar-scrolled .wac-topbar { top: var(--wac-adminbar-h); }
}
@media (max-width: 768px) {
    body.admin-bar.has-topbar[data-topbar-sticky="mobile"].topbar-scrolled .wac-header { top: calc(var(--wac-topbar-h, 0px) + var(--wac-adminbar-h)); }
    body.admin-bar.has-topbar[data-topbar-sticky="mobile"].topbar-scrolled .wac-topbar { top: var(--wac-adminbar-h); }
}

/* Sotto gli 783px WordPress porta la barra a 46px; sotto i 601px la
   rende position:absolute, quindi scorre via con la pagina: lì
   l'offset va azzerato, altrimenti resterebbe un vuoto fisso. */
@media screen and (max-width: 782px) { body.admin-bar { --wac-adminbar-h: 46px; } }
@media screen and (max-width: 600px) { body.admin-bar { --wac-adminbar-h: 0px; } }

/* ============================================================
   Galleria prodotto "miniature a lato" con UNA sola immagine
   ------------------------------------------------------------
   PERCHÉ SERVE: in modalità --side lo sticky NON è sul contenitore
   (che è position:static, riga ~4841) ma sulla colonna delle
   miniature. Le miniature però vengono stampate solo se il prodotto
   ha immagini in galleria oltre alla principale: con una foto sola
   non esiste nessun elemento sticky e la galleria scorre via.
   Qui, solo in quel caso, lo sticky torna sul contenitore.

   Blocco ADDITIVO: nessuna regola esistente è stata modificata.
============================================================ */
.wac-product-gallery--side:not(:has(.wac-product-gallery-thumbs)) {
    position: sticky;
    top: calc(var(--wac-header-h) + 24px);
    align-self: flex-start;
}

/* ============================================================
   Barra acquisto sticky — click "rubati" al tasto Torna in alto
   ------------------------------------------------------------
   PERCHÉ SERVE: .wac-sticky-bar è larga tutta la finestra
   (left:0; right:0) e nasce con pointer-events:none, ma la regola
   .is-visible lo riportava ad "auto" SUL CONTENITORE. Così, a barra
   aperta, l'intera striscia in fondo alla pagina intercettava i
   click, anche nella parte trasparente ai lati della card — cioè
   proprio dove sta il pulsante "Torna in alto".

   La card vera è .wac-sticky-bar-inner (max 640px, centrata):
   i pointer-events vanno riattivati lì, non sul contenitore.
   Lo stacking resta invariato: la card ha comunque z-index 99 e
   vince sul pulsante (90) se si sovrappongono davvero.

   Blocco ADDITIVO: nessuna regola esistente è stata modificata.
============================================================ */
.wac-sticky-bar.is-visible { pointer-events: none; }
.wac-sticky-bar.is-visible .wac-sticky-bar-inner { pointer-events: auto; }

/* ============================================================
   Blocco Mappa (Live Builder)
   Altezza, raggio e ombra arrivano inline dal blocco; qui stanno
   struttura ed effetti. Il link trasparente sopra l'iframe serve
   perché un iframe intercetta i click: senza, né il click verso
   Google Maps né gli hover funzionerebbero sull'intero riquadro.
============================================================ */
.wac-map {
    position: relative;
    overflow: hidden;
    height: var(--wac-map-h, 420px);
    background: var(--wac-cream-2, #F5EFE2);
}
.wac-map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    transition: filter 0.45s var(--wac-ease, ease), transform 0.6s var(--wac-ease, ease);
}
.wac-map.is-gray iframe { filter: grayscale(1) contrast(1.03); }
.wac-map.is-gray:hover iframe { filter: grayscale(0) contrast(1); }
.wac-map.is-zoom:hover iframe { transform: scale(1.06); }

.wac-map-link {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    padding: 16px;
    text-decoration: none;
}
.wac-map-cta {
    background: var(--wac-paper, #FBF7F0);
    color: var(--wac-night, #0F0E0C);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    padding: 12px 20px;
    border-radius: 999px;
    box-shadow: 0 8px 22px -8px rgba(15, 14, 12, 0.45);
    transition: transform 0.3s var(--wac-ease, ease), background 0.3s;
}
.wac-map:hover .wac-map-cta { transform: translateY(-2px); }

@media (prefers-reduced-motion: reduce) {
    .wac-map iframe, .wac-map-cta { transition: none; }
    .wac-map.is-zoom:hover iframe { transform: none; }
}

/* Schede dettaglio: formattazione del testo (v1.2.139) */
.wac-dcard-content strong,
.wac-dcard-content b { font-weight: 700; color: var(--wac-dcard-text, var(--wac-night)); }
.wac-dcard-content em,
.wac-dcard-content i { font-style: italic; }
.wac-dcard-content ul,
.wac-dcard-content ol { margin: 0 0 0.6em; padding-left: 1.25em; }
.wac-dcard-content ul { list-style: disc; }
.wac-dcard-content ol { list-style: decimal; }
.wac-dcard-content li { margin-bottom: 0.3em; }
.wac-dcard-content li:last-child { margin-bottom: 0; }
.wac-dcard-content ul:last-child,
.wac-dcard-content ol:last-child { margin-bottom: 0; }
.wac-dcard-content a { color: var(--wac-gold-deep); text-decoration: underline; text-underline-offset: 3px; }
.wac-dcard-content a:hover { color: var(--wac-night); }

/* ============================================================
   Avviso "pagina non ancora costruita con Honey"
   Lo vede solo chi amministra, sopra al contenuto della pagina.
   Centrato e con la stessa grafica del tema: prima il contenuto
   dell'editor usciva nudo, senza contenitore, appiccicato al bordo.
============================================================ */
.wac-avviso-pagina {
    padding: 48px 24px 8px;
    display: flex;
    justify-content: center;
}
.wac-avviso-pagina-box {
    max-width: 640px;
    width: 100%;
    text-align: center;
    background: var(--wac-cream-2);
    border: 1px solid var(--wac-line);
    border-radius: 18px;
    padding: 36px 32px 32px;
}
.wac-avviso-pagina-occhiello {
    margin: 0 0 10px;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--wac-gold-deep);
}
.wac-avviso-pagina-titolo {
    margin: 0 0 12px;
    font-family: var(--wac-display);
    font-size: 26px;
    line-height: 1.25;
    color: var(--wac-night);
}
.wac-avviso-pagina-testo {
    margin: 0 auto 22px;
    max-width: 52ch;
    font-size: 15px;
    line-height: 1.65;
    color: var(--wac-mute);
}
.wac-avviso-pagina-azioni { margin: 0 0 14px; }
.wac-avviso-pagina-btn {
    display: inline-block;
    padding: 12px 26px;
    border-radius: 999px;
    background: var(--wac-gold);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s;
}
.wac-avviso-pagina-btn:hover { background: var(--wac-gold-deep); color: #fff; }
.wac-avviso-pagina-nota {
    margin: 0;
    font-size: 12.5px;
    color: var(--wac-mute);
    opacity: 0.85;
}
@media (max-width: 600px) {
    .wac-avviso-pagina { padding: 32px 16px 4px; }
    .wac-avviso-pagina-box { padding: 28px 20px 24px; }
    .wac-avviso-pagina-titolo { font-size: 22px; }
}

/* ============================================================
   Slider prodotti — [honey_prodotti]
   Scorrimento nativo con scroll-snap: nessuna libreria, nessun
   calcolo in JavaScript sulla posizione. Le frecce spostano di una
   schermata di schede e basta.
============================================================ */
.wac-slider-sezione { padding: 84px 0; }
.wac-slider-testata {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 30px;
}
.wac-slider-occhiello {
    margin: 0 0 8px;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--wac-gold-deep);
}
.wac-slider-titolo {
    margin: 0;
    font-family: var(--wac-display);
    font-size: clamp(26px, 3.4vw, 40px);
    line-height: 1.1;
    color: var(--wac-coffee);
}
.wac-slider-comandi { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.wac-slider-tutto {
    font-size: 13px;
    letter-spacing: 0.04em;
    text-decoration: none;
    color: var(--wac-night);
    border-bottom: 1px solid var(--wac-line-strong);
    padding-bottom: 2px;
    margin-right: 6px;
}
.wac-slider-tutto:hover { color: var(--wac-gold-deep); border-color: var(--wac-gold); }
.wac-slider-freccia {
    width: 40px; height: 40px;
    border: 1px solid var(--wac-line-strong);
    border-radius: 50%;
    background: transparent;
    color: var(--wac-night);
    font-size: 19px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.wac-slider-freccia:hover {
    background: var(--wac-night);
    border-color: var(--wac-night);
    color: var(--wac-cream);
}

.wac-slider-pista {
    list-style: none;
    margin: 0;
    padding: 0 0 10px;
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
}
.wac-slider-pista::-webkit-scrollbar { display: none; }
.wac-slider-pista:focus-visible { outline: 2px solid var(--wac-gold); outline-offset: 4px; }
.wac-slider-item {
    flex: 0 0 auto;
    width: calc((100% - 60px) / 4);
    min-width: 220px;
    scroll-snap-align: start;
}
.wac-slider-item > .wac-product-card { height: 100%; }

@media (max-width: 1024px) { .wac-slider-item { width: calc((100% - 40px) / 3); } }
@media (max-width: 768px) {
    .wac-slider-sezione { padding: 56px 0; }
    .wac-slider-item { width: calc((100% - 20px) / 2); min-width: 0; }
    .wac-slider-testata { flex-direction: column; align-items: flex-start; gap: 14px; }
}

/* Schede segnaposto: solo disegnate, nessun prodotto finto nel database. */
.wac-slider-finto { display: block; }
.wac-slider-finto-img {
    display: block;
    aspect-ratio: 3 / 4;
    border-radius: 10px;
    background: var(--wac-cream-2) center/cover no-repeat;
    filter: grayscale(100%) opacity(0.45);
}
.wac-slider-finto-riga {
    display: block;
    height: 10px;
    margin-top: 14px;
    border-radius: 5px;
    background: var(--wac-line);
}
.wac-slider-finto-riga--corta { width: 45%; margin-top: 8px; }
.wac-slider-nota-admin {
    margin: 18px 0 0;
    padding: 12px 16px;
    border-left: 3px solid var(--wac-gold);
    background: var(--wac-cream-2);
    font-size: 13px;
    line-height: 1.6;
    color: var(--wac-mute);
}
