/* ═══════════════════════════════════════════════════════════════════════════
   Kronocare Shop — main.css  |  Palette: Ivory Noir (1:1 Astro)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Tokens ─────────────────────────────────────────────────────────────── */
:root {
  --color-bg:          #F5F2EC;
  --color-paper:       #EDEAE2;
  --color-surface:     #FFFFFF;
  --color-text:        #111010;
  --color-muted:       #5C5850;
  --color-primary:     #111010;
  --color-border:      #DEDAD2;
  --color-border-soft: #E8E4DC;
  --color-champagne:   #C4AB85;
  --color-taupe:       #8C7A5E;
  --color-copper:      #B08050;
  --color-copper-text: #8A5A38;
  --color-rust:        #7A3E2E;
  --color-sage:        #5A6A5C;
  --color-botanical:   #1A221A;
  --color-sand:        #EAE0CE;
  --color-ink:         #080808;
  --shadow-soft:       0 20px 60px rgba(8,8,8,.09);
  --font-display:      'Cormorant Garamond', Georgia, serif;
  --font-body:         'Inter', system-ui, sans-serif;
  --radius-sm:         12px;
  --radius-md:         18px;
  --radius-lg:         24px;
  --radius-xl:         32px;
  --radius-pill:       999px;
  --max-width:         1280px;
  /* Blocksy palette map */
  --theme-palette-color-1: #111010;
  --theme-palette-color-2: #B08050;
  --theme-palette-color-3: #5C5850;
  --theme-palette-color-4: #8C7A5E;
  --theme-palette-color-5: #F5F2EC;
  --theme-palette-color-6: #EDEAE2;
  --theme-palette-color-7: #DEDAD2;
  --theme-palette-color-8: #FFFFFF;
}

/* ── Reset ──────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { background-color: var(--color-bg) !important; color: var(--color-text) !important; font-family: var(--font-body) !important; font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-display) !important; font-weight: 500 !important; line-height: 1.05 !important; letter-spacing: -0.015em !important; color: var(--color-ink); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
p { line-height: 1.65; color: var(--color-muted); }

/* Focus visibile coerente con la palette, al posto del ring blu di default del browser.
   Blocksy definisce `a:focus-visible,button:focus-visible {...}` (specificità 0,1,1),
   più alta della semplice `:focus-visible` (0,1,0): serve pareggiare la specificità
   e forzare con !important per garantire la precedenza. */
:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--color-copper) !important;
  outline-offset: 2px !important;
  border-radius: 2px;
}
#header,.header-wrapper,[data-id="header"] { background-color: var(--color-bg) !important; border-bottom: 1px solid var(--color-border) !important; }
#footer,.footer-wrapper,[data-id="footer"] { background-color: var(--color-botanical) !important; color: var(--color-paper) !important; }

/* ── Layout ─────────────────────────────────────────────────────────────── */
.kc-container { width: min(100% - 48px, var(--max-width)); margin-inline: auto; }
.kc-page-wrap { min-height: 100vh; }
.kc-section { padding: 72px 0; }
@media (min-width: 768px) { .kc-section { padding: 120px 0; } }
.kc-bg-bg { background-color: var(--color-bg); }
.kc-bg-paper { background-color: var(--color-paper); }
.kc-text-center { text-align: center; }
.kc-section-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 56px; flex-wrap: wrap; }
.kc-section-sub { font-size: .9375rem; color: var(--color-muted); line-height: 1.55; max-width: 36ch; }

/* ── Typography ─────────────────────────────────────────────────────────── */
.kc-eyebrow { display: block; font-family: var(--font-body); font-size: .75rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--color-copper); margin-bottom: 12px; }
.kc-h1 { font-family: var(--font-display); font-size: clamp(3rem,6vw,5rem); font-weight: 500; line-height: 1.02; letter-spacing: -.02em; color: var(--color-ink); margin-bottom: 20px; }
.kc-h1 em { font-style: italic; color: var(--color-copper); font-weight: 400; }
.kc-h2 { font-family: var(--font-display); font-size: clamp(2.2rem,3.5vw,2.875rem); font-weight: 500; line-height: 1.05; letter-spacing: -.015em; color: var(--color-ink); margin-bottom: 40px; }
.kc-h2 em { font-style: italic; color: var(--color-copper); font-weight: 400; }
.kc-h3 { font-family: var(--font-display); font-size: clamp(1.5rem,2.2vw,2rem); font-weight: 500; line-height: 1.1; letter-spacing: -.01em; color: var(--color-ink); }

/* ── Buttons ────────────────────────────────────────────────────────────── */
.kc-btn { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 28px; border-radius: var(--radius-pill); font-family: var(--font-body); font-size: .875rem; font-weight: 500; cursor: pointer; transition: opacity .18s ease; border: none; white-space: nowrap; }
.kc-btn:hover { opacity: .82; }
.kc-btn--primary { background: var(--color-ink); color: var(--color-surface); }
.kc-btn--primary:hover { color: var(--color-surface) !important; }
.kc-btn--outline { background: transparent; color: var(--color-ink); border: 1px solid var(--color-border); }
.kc-btn--outline:hover { color: var(--color-ink) !important; border-color: var(--color-ink); opacity: 1; }
.kc-btn--light { background: var(--color-surface); color: var(--color-ink); }
.kc-btn--whatsapp { background: #25D366; color: #fff; border: none; }
.kc-btn--whatsapp:hover { color: #fff !important; opacity: .88; }
.kc-btn--sm { height: 40px; padding: 0 20px; font-size: .8125rem; }
.kc-link-copper { font-size: .8125rem; font-weight: 500; color: var(--color-copper); border-bottom: 1px solid rgba(165,106,91,.4); padding-bottom: 2px; transition: border-color .15s; }
.kc-link-copper:hover { color: var(--color-copper) !important; border-color: var(--color-copper); }

/* ── Header ──────────────────────────────────────────────────────────────── */
.kc-header { position: sticky; top: 0; z-index: 100; background: var(--color-bg); border-bottom: 1px solid var(--color-border); }
.kc-header__bar { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 68px; }
.kc-header__inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 68px; }
.kc-header__logo { font-family: var(--font-display); font-size: 1.75rem; font-weight: 500; letter-spacing: -.01em; text-transform: none; color: var(--color-ink); flex-shrink: 0; transition: opacity .18s; position: relative; z-index: 3; }
.kc-header__logo:hover { opacity: .7; }
.kc-header__logo em { font-style: normal; color: var(--color-copper); }
.kc-nav-list { display: flex; align-items: center; gap: 6px; list-style: none; margin: 0; padding: 0; padding-inline-start: 0; }
.kc-header__nav .kc-nav-list { margin-block: 0; margin-block-end: 0 !important; }
.kc-header__nav .kc-nav-list > li { margin: 0; padding: 0; }
.kc-nav-link { display: block; padding: 8px 18px; font-size: .8125rem; font-weight: 500; color: var(--color-muted); border-radius: var(--radius-pill); transition: color .15s, background .15s; }
.kc-nav-link:hover { color: var(--color-ink); }
.kc-nav-link--active { color: var(--color-ink); background: var(--color-border-soft); }
.kc-nav-cta { display: inline-flex; align-items: center; height: 36px; padding: 0 20px; margin-left: 6px; border-radius: var(--radius-pill); font-family: var(--font-body); font-size: .8125rem; font-weight: 500; background: var(--color-ink); color: var(--color-surface) !important; transition: opacity .18s; white-space: nowrap; }
.kc-nav-cta:hover { opacity: .82; color: var(--color-surface) !important; }
.kc-nav-cta--active { opacity: .75; }
.kc-header__actions { display: flex; align-items: center; gap: 10px; position: relative; z-index: 3; }
.kc-user-badge { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; transition: opacity .18s; flex-shrink: 0; }
.kc-user-badge:hover { opacity: .72; }
.kc-user-badge--in { background: var(--color-ink); color: var(--color-surface); }
.kc-user-badge--in svg { stroke: var(--color-surface); }
.kc-user-badge--out { background: transparent; border: 1px solid var(--color-border); color: var(--color-muted); }
.kc-user-badge--out:hover { border-color: var(--color-ink); color: var(--color-ink); opacity: 1; }
.kc-cart-btn { position: relative; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; color: var(--color-ink); transition: opacity .18s; }
.kc-cart-btn:hover { opacity: .65; }
.kc-cart-count { position: absolute; top: -2px; right: -2px; background: var(--color-copper); color: #fff; font-size: 9px; font-weight: 700; width: 16px; height: 16px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
/* Cart wrap (header) — contiene bottone + dropdown */
#kc-cart-wrap { position: relative; }
/* Dropdown mini-cart */
.kc-cart-dropdown { position: absolute; top: calc(100% + 12px); right: 0; width: 280px; background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); box-shadow: 0 12px 40px rgba(27,22,18,.12); padding: 16px; display: flex; flex-direction: column; gap: 14px; visibility: hidden; opacity: 0; transform: translateY(-6px); transition: opacity .2s ease, transform .2s ease, visibility .2s; pointer-events: none; z-index: 200; }
.kc-cart-dropdown::before { content: ''; position: absolute; top: -6px; right: 10px; width: 11px; height: 11px; background: var(--color-surface); border-left: 1px solid var(--color-border-soft); border-top: 1px solid var(--color-border-soft); transform: rotate(45deg); }
.kc-cart-dropdown.is-open { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
.kc-cart-dropdown__inner { display: flex; align-items: center; gap: 12px; }
.kc-cart-dropdown__check { width: 32px; height: 32px; border-radius: 50%; background: var(--color-sage); color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.kc-cart-dropdown__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kc-cart-dropdown__label { font-size: .8125rem; font-weight: 600; color: var(--color-ink); }
.kc-cart-dropdown__name { font-size: .8rem; color: var(--color-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kc-cart-dropdown__btn { display: flex; align-items: center; justify-content: center; height: 38px; background: var(--color-ink); color: var(--color-surface) !important; border-radius: var(--radius-pill); font-size: .8125rem; font-weight: 500; text-decoration: none; transition: opacity .15s; }
.kc-cart-dropdown__btn:hover { opacity: .82; }
.kc-nav-toggle { display: none; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 34px; height: 34px; background: none; border: none; cursor: pointer; padding: 4px; }
.kc-nav-toggle span { display: block; width: 20px; height: 1.5px; background: var(--color-ink); transition: transform .25s ease, opacity .2s ease; }
/* Hamburger → X quando il menu è aperto */
.kc-nav-toggle.is-active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.kc-nav-toggle.is-active span:nth-child(2) { opacity: 0; }
.kc-nav-toggle.is-active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.kc-mobile-menu-eyebrow, .kc-mobile-menu-cta { display: none; }

/* Desktop: nav centrata sopra la barra header */
@media (min-width: 861px) {
  .kc-header {
    position: sticky;
  }
  .kc-header__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    height: 68px;
  }
  .kc-header__nav {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 68px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 2;
    width: auto;
    max-width: none;
    margin: 0;
    border: none;
    background: transparent;
    overflow: visible;
    max-height: none;
  }
  .kc-header__nav-inner {
    padding: 0;
    width: auto;
  }
  .kc-header__nav .kc-nav-list,
  .kc-header__nav .kc-nav-link {
    pointer-events: auto;
  }
  .kc-nav-list {
    flex-wrap: nowrap;
  }
  .kc-nav-link {
    padding: 8px 14px;
    white-space: nowrap;
  }
  .kc-nav-toggle {
    display: none !important;
  }
  .kc-mobile-menu-eyebrow,
  .kc-mobile-menu-cta {
    display: none !important;
  }
}

/* Nascondi header Blocksy quando usiamo #kc-header (no :has() richiesto) */
body.has-kc-header #header.ct-header,
body.has-kc-header .header-wrapper[data-id="header"],
body.has-kc-header header.ct-header,
body.has-kc-header [data-header] {
  display: none !important;
}

@media (max-width: 860px) {
  body.kc-nav-open { overflow: hidden; }
  .kc-nav-toggle { display: flex; }
  /* Overlay indipendente dal documento: l'apertura non deve spostare il checkout. */
  .kc-header__nav {
    position: fixed;
    inset: 68px 0 0;
    display: block;
    height: calc(100dvh - 68px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    overscroll-behavior: contain;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    transform: translateY(-8px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
    z-index: 101;
  }
  .kc-header__nav.is-open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
  .kc-header__nav-inner {
    padding: 24px 0 32px;
  }
  .kc-header__nav .kc-mobile-menu-eyebrow { display: block; padding: 0 0 8px; }
  .kc-header__nav .kc-nav-list { flex-direction: column; align-items: stretch; gap: 0; padding: 0; }
  .kc-header__nav .kc-nav-link { padding: 14px 0; border-bottom: 1px solid var(--color-border-soft); border-radius: 0; font-size: 1rem; }
  .kc-header__nav .kc-nav-link--active { background: none; color: var(--color-copper); }
  .kc-header__nav .kc-mobile-menu-cta { display: block; margin-top: 20px; }
}

/* ── Footer ──────────────────────────────────────────────────────────────── */
.kc-footer { background: var(--color-botanical); color: var(--color-paper); padding: 64px 0 32px; margin-top: 0; }
.kc-footer__top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; align-items: start; padding-bottom: 48px; border-bottom: 1px solid rgba(239,231,218,.1); }
@media (max-width: 768px) { .kc-footer__top { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (max-width: 480px) {
  .kc-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px 20px; }
  .kc-footer__brand { grid-column: 1 / -1; }
}
.kc-footer__top > * { min-width: 0; }
.kc-footer__nav-col a { overflow-wrap: anywhere; }
.kc-footer__logo { font-family: var(--font-display); font-size: 20px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--color-paper); display: block; margin-bottom: 6px; }
.kc-footer__tagline { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--color-champagne); margin-bottom: 20px; }
.kc-footer__address { font-style: normal; font-size: 14px; color: rgba(239,231,218,.55); line-height: 1.6; margin-bottom: 12px; }
.kc-footer__contacts { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.kc-footer__contacts a { font-size: 14px; color: var(--color-champagne); }
.kc-footer__col-title { display: block; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--color-champagne); margin-bottom: 16px; }
.kc-footer__nav-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.kc-footer__nav-col a { font-size: 14px; color: rgba(239,231,218,.6); transition: color .15s; }
.kc-footer__nav-col a:hover { color: var(--color-paper); }
.kc-footer__bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 24px; gap: 16px; flex-wrap: wrap; }
.kc-footer__copy { font-size: 12px; color: rgba(239,231,218,.35); }
.kc-footer__social { display: flex; gap: 16px; }
.kc-footer__social a { color: rgba(239,231,218,.45); transition: color .15s; }
.kc-footer__social a:hover { color: var(--color-paper); }

/* ── Catalog page ─────────────────────────────────────────────────────────── */
.kc-catalog-wrap { padding-bottom: 100px; }

/* Header split layout */
.kc-catalog-header { background: var(--color-paper); padding: 64px 0 52px; border-bottom: 1px solid var(--color-border); }
@media (min-width: 768px) { .kc-catalog-header { padding: 80px 0 64px; } }
.kc-catalog-header__inner { display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 768px) { .kc-catalog-header__inner { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 48px; } }
.kc-catalog-title { font-family: var(--font-display); font-size: clamp(2.75rem,5vw,4rem); font-weight: 500; letter-spacing: -.02em; color: var(--color-ink); margin: 0; line-height: 1.05; }
.kc-catalog-desc { font-size: .9375rem; color: var(--color-muted); max-width: 42ch; line-height: 1.65; flex-shrink: 0; }
@media (min-width: 768px) { .kc-catalog-desc { text-align: right; } }

/* Trust strip */
.kc-catalog-trust-strip { background: var(--color-surface); border-bottom: 1px solid var(--color-border-soft); padding: 14px 0; overflow-x: clip; }
.kc-catalog-trust-list { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; }
.kc-catalog-trust-list li { display: flex; align-items: center; gap: 7px; font-size: .8125rem; color: var(--color-muted); }
.kc-catalog-trust-list svg { color: var(--color-copper); flex-shrink: 0; }

@media (max-width: 767px) {
  .kc-catalog-trust-strip { padding: 16px 0; }
  .kc-catalog-trust-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
    align-items: start;
  }
  .kc-catalog-trust-list li {
    min-width: 0;
    align-items: flex-start;
    line-height: 1.35;
  }
  .kc-catalog-trust-list li svg { margin-top: 2px; }
}

@media (max-width: 359px) {
  .kc-catalog-trust-list {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

/* Body + topbar */
.kc-catalog-body { display: flex; flex-direction: column; gap: 28px; padding-top: 48px; }
.kc-catalog-topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* Filter pills */
.kc-catalog-filters { flex: 1; }
.kc-filter-list { display: flex; gap: 8px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; }
.kc-filter-item a { display: inline-flex; align-items: center; height: 36px; padding: 0 18px; border-radius: var(--radius-pill); font-size: .8125rem; font-weight: 500; color: var(--color-muted); border: 1px solid var(--color-border); transition: color .15s, border-color .15s, background .15s; white-space: nowrap; }
.kc-filter-item a:hover { color: var(--color-ink); border-color: var(--color-ink); opacity: 1; }
.kc-filter-item.is-active a { color: var(--color-surface) !important; background: var(--color-ink); border-color: var(--color-ink); }

@media (max-width: 767px) {
  .kc-catalog-filters {
    flex: 1;
    min-width: 0;
    margin-inline: -24px;
    padding-inline: 24px;
  }
  .kc-filter-list {
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    padding-bottom: 2px;
  }
  .kc-filter-list::-webkit-scrollbar { display: none; }
  .kc-filter-item { flex-shrink: 0; scroll-snap-align: start; }
}

/* Result count */
.kc-catalog-meta { font-size: .8125rem; color: var(--color-muted); flex-shrink: 0; }
.kc-catalog-meta p, .kc-catalog-meta .woocommerce-result-count { font-size: .8125rem; color: var(--color-muted); margin: 0; padding: 0; }

/* Bottom CTA */
.kc-catalog-bottom-cta { background: var(--color-botanical); border-radius: var(--radius-lg); margin-top: 32px; overflow: hidden; }
.kc-catalog-bottom-cta__inner { padding: 56px 48px; display: flex; flex-direction: column; gap: 16px; max-width: 520px; }
.kc-catalog-bottom-cta .kc-eyebrow { color: var(--color-champagne); }
.kc-catalog-bottom-cta__title { font-family: var(--font-display); font-size: clamp(1.625rem, 3vw, 2.25rem); font-weight: 500; color: var(--color-paper); line-height: 1.1; margin: 0; }
.kc-catalog-bottom-cta__sub { font-size: .9375rem; color: rgba(239,231,218,.65); line-height: 1.6; max-width: 44ch; }
.kc-catalog-bottom-cta .kc-btn--light { margin-top: 8px; width: fit-content; }

/* Empty state */
.kc-catalog-empty { text-align: center; padding: 80px 24px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.kc-catalog-empty__title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; color: var(--color-ink); }

/* ── Product card (archive) ───────────────────────────────────────────────── */
/* Badge saldo */
.kc-product-card__sale-badge { position: absolute; top: 12px; left: 12px; background: var(--color-copper); color: #fff; font-size: .7rem; font-weight: 700; letter-spacing: .04em; padding: 3px 9px; border-radius: var(--radius-pill); }
/* Lab badge */
.kc-product-card__lab-badge { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: var(--radius-pill); font-size: .65rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--color-taupe); background: var(--color-sand); border: 1px solid var(--color-border); }
/* Meta row (tag + lab badge) */
.kc-product-card__meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
/* Excerpt */
.kc-product-card__excerpt { font-size: .8125rem; color: var(--color-muted); line-height: 1.55; margin-top: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.kc-product-card__footer { margin-top: auto; }

/* Overlay premium — velo caldo centrato + CTA scale-up */
.kc-product-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(27,38,32,.38);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .3s ease;
  border-radius: inherit;
  pointer-events: none;
}
.kc-product-card__img:hover .kc-product-card__overlay { opacity: 1; }
.kc-product-card__overlay-cta {
  font-family: var(--font-body);
  font-size: .8125rem;
  font-weight: 500;
  letter-spacing: .08em;
  color: var(--color-botanical);
  background: var(--color-champagne);
  border: none;
  padding: 10px 24px;
  border-radius: var(--radius-pill);
  transform: scale(.92);
  transition: transform .3s ease;
}
.kc-product-card__overlay-cta::after { content: ' →'; }
.kc-product-card__img:hover .kc-product-card__overlay-cta { transform: scale(1); }

/* ── WooCommerce product grid ────────────────────────────────────────────── */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; list-style: none; padding: 0; margin: 0; align-items: stretch; }
@media (max-width: 860px) { .woocommerce ul.products { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 480px) { .woocommerce ul.products { grid-template-columns: 1fr; } }

/* li.product — altezza 100% della cella grid per uniformare le card */
.woocommerce ul.products li.product { background: transparent !important; border: none !important; border-radius: 0 !important; overflow: visible !important; padding: 0 !important; box-shadow: none !important; display: flex; flex-direction: column; height: 100%; }
.woocommerce ul.products li.product:hover { border: none !important; box-shadow: none !important; transform: none !important; }

/* Price inside kc-product-card */
.kc-product-card__price { font-size: .875rem; color: var(--color-muted); line-height: 1; }
.kc-product-card__price .amount { font-family: var(--font-body); color: var(--color-muted); }
.kc-product-card__price ins { text-decoration: none; color: var(--color-ink); font-weight: 500; }
.kc-product-card__price del { opacity: .5; margin-right: 4px; }

/* WC Pagination — Blocksy sovrascrive il markup di woocommerce_pagination() con
   <nav class="ct-pagination"> e <a class="page-numbers">/<span class="page-numbers">
   diretti (niente <ul class="woocommerce-pagination">), quindi i selettori vanno
   allineati a quel markup reale.
   Blocksy carica pagination.min.css in modo "lazy" via JS quando rileva .ct-pagination
   in pagina: finisce nel <head> DOPO il nostro main.css, quindi vince lui in cascata
   nonostante l'ordine di enqueue. Serve !important per garantire la precedenza. */
.ct-pagination { display: flex !important; align-items: center; justify-content: center; gap: 6px; list-style: none; padding: 0; margin: 48px 0 0; }
.ct-pagination .ct-hidden-sm { display: flex; align-items: center; gap: 6px; }
.ct-pagination .page-numbers { display: inline-flex !important; align-items: center !important; justify-content: center !important; min-width: 38px !important; height: 38px !important; padding: 0 12px !important; border-radius: var(--radius-pill) !important; font-size: .8125rem !important; font-weight: 500 !important; color: var(--color-muted) !important; border: 1px solid var(--color-border) !important; text-decoration: none !important; text-transform: none !important; background: transparent !important; transition: color .15s,border-color .15s,background .15s; }
.ct-pagination .page-numbers:hover { color: var(--color-ink) !important; border-color: var(--color-ink) !important; opacity: 1; }
.ct-pagination .page-numbers.current { color: var(--color-surface) !important; background: var(--color-ink) !important; border-color: var(--color-ink) !important; }
.ct-pagination .page-numbers.next,.ct-pagination .page-numbers.prev { gap: 6px; }

/* ── WooCommerce single product ──────────────────────────────────────────── */
.woocommerce div.product { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; padding: 60px 0; }
@media (max-width: 768px) { .woocommerce div.product { grid-template-columns: 1fr; gap: 32px; } }
.kc-product-badge { display: inline-block; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--color-taupe); background: var(--color-sand); padding: 4px 14px; border-radius: var(--radius-pill); text-decoration: none; transition: background .15s, color .15s; }
a.kc-product-badge:hover { background: var(--color-champagne); color: var(--color-ink); }
.kc-product-stock-chip { display: inline-flex; align-items: center; font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; padding: 4px 14px; border-radius: var(--radius-pill); border: 1px solid var(--color-border); }
.kc-product-stock-chip.is-in-stock { color: var(--color-sage); background: rgba(94, 110, 94, .08); border-color: rgba(94, 110, 94, .25); }
.kc-product-stock-chip.is-out-of-stock { color: var(--color-rust); background: rgba(140, 74, 60, .08); border-color: rgba(140, 74, 60, .25); }

/* Descrizione lunga prodotto (dentro il summary, sopra al prezzo) */
.kc-product-description__inner { font-size: .9375rem; line-height: 1.7; color: var(--color-muted); margin-bottom: 20px; }
.kc-product-description__inner p { margin-bottom: .9em; }
.kc-product-description__inner p:last-child { margin-bottom: 0; }
.kc-product-description__inner h2,.kc-product-description__inner h3 { font-family: var(--font-display); color: var(--color-ink); margin: 1.2em 0 .4em; }
.kc-product-description__inner ul,.kc-product-description__inner ol { padding-left: 1.4em; margin-bottom: .9em; }
.kc-product-description__inner li { margin-bottom: .3em; }
.woocommerce div.product .product_title { font-family: var(--font-display) !important; font-size: clamp(2rem,4vw,3rem) !important; font-weight: 500 !important; letter-spacing: -.02em !important; margin-bottom: 8px !important; }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 1.25rem !important; color: var(--color-muted) !important; margin-bottom: 24px !important; }
.woocommerce div.product .single_add_to_cart_button { background: var(--color-ink) !important; color: var(--color-surface) !important; border: none !important; border-radius: var(--radius-pill) !important; padding: 0 32px !important; height: 52px !important; font-family: var(--font-body) !important; font-size: .9375rem !important; font-weight: 500 !important; transition: opacity .18s !important; }
.woocommerce div.product .single_add_to_cart_button:hover { opacity: .82 !important; }
.kc-add-to-cart .single_add_to_cart_button { width: auto !important; }

/* ── Product tabs ─────────────────────────────────────────────────────────
   Desktop: ul.tabs (sidebar sinistra) + panel (contenuto destra)
   Mobile: tab bar orizzontale sopra il contenuto
   ─────────────────────────────────────────────────────────────────────── */

.kc-product-tabs-wrap .woocommerce-tabs { margin: 0; border: none; padding: 0; }

/* Ordine fisso tab: Cos'è → Per chi è → Modo d'uso → Ingredienti → Come abbinarlo */
.kc-product-tabs-wrap li.cose_tab,
.kc-product-tabs-wrap #tab-title-cose { order: 1 !important; }
.kc-product-tabs-wrap li.per_chi_tab,
.kc-product-tabs-wrap #tab-title-per_chi { order: 2 !important; }
.kc-product-tabs-wrap li.modo-duso_tab,
.kc-product-tabs-wrap #tab-title-modo-duso { order: 3 !important; }
.kc-product-tabs-wrap li.come_si_usa_tab,
.kc-product-tabs-wrap #tab-title-come_si_usa { order: 3 !important; }
.kc-product-tabs-wrap li.ingredienti_tab,
.kc-product-tabs-wrap #tab-title-ingredienti { order: 4 !important; }
.kc-product-tabs-wrap li.abbinalo_tab,
.kc-product-tabs-wrap #tab-title-abbinalo { order: 5 !important; }

/* ── Desktop sidebar layout ──────────────────────────────────────────── */
@media (min-width: 768px) {
  .kc-product-tabs-wrap .woocommerce-tabs {
    display: grid;
    grid-template-columns: 200px 1fr;
    grid-template-rows: auto;
    align-items: start;
  }
  .kc-product-tabs-wrap ul.tabs,
  .kc-product-tabs-wrap ul.wc-tabs {
    grid-column: 1;
    grid-row: 1 / 99;
    display: flex !important;
    flex-direction: column !important;
    list-style: none !important;
    padding: 48px 0 !important;
    margin: 0 !important;
    gap: 0;
    border: none !important;
    border-right: 1px solid var(--color-border) !important;
    background: none;
    position: sticky;
    top: 88px;
    align-self: start;
  }
  .kc-product-tabs-wrap ul.tabs li,
  .kc-product-tabs-wrap ul.wc-tabs li {
    display: block !important;
    float: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .kc-product-tabs-wrap ul.tabs li::before,
  .kc-product-tabs-wrap ul.tabs li::after { display: none !important; }
  .kc-product-tabs-wrap ul.tabs li a,
  .kc-product-tabs-wrap ul.wc-tabs li a {
    display: block;
    padding: 12px 24px 12px 0;
    font-family: var(--font-body) !important;
    font-size: .75rem !important;
    font-weight: 500 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: var(--color-muted) !important;
    border-left: 2px solid transparent !important;
    border-bottom: none !important;
    transition: color .15s, border-color .15s, padding-left .15s;
    background: none !important;
    margin: 0;
  }
  .kc-product-tabs-wrap ul.tabs li a:hover {
    color: var(--color-ink) !important;
    padding-left: 8px;
  }
  .kc-product-tabs-wrap ul.tabs li.active a,
  .kc-product-tabs-wrap ul.wc-tabs li.active a {
    color: var(--color-ink) !important;
    border-left-color: var(--color-copper) !important;
    border-bottom: none !important;
    padding-left: 16px;
    background: none !important;
  }
  .kc-product-tabs-wrap .woocommerce-Tabs-panel {
    grid-column: 2;
    display: none;
    padding: 48px 0 72px 56px;
  }
  .kc-product-tabs-wrap .woocommerce-Tabs-panel.active { display: block; }
}

/* ── Mobile: tab bar orizzontale ─────────────────────────────────────── */
@media (max-width: 767px) {
  .kc-product-tabs-wrap ul.tabs,
  .kc-product-tabs-wrap ul.wc-tabs {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    list-style: none !important;
    padding: 0 16px !important;
    margin: 0 !important;
    gap: 0;
    border: none !important;
    border-bottom: 1px solid var(--color-border) !important;
    background: var(--color-surface);
    position: sticky;
    top: 68px;
    z-index: 10;
    /* Scorrimento con "aggancio" alle tab intere, mai tagliate a metà parola */
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 16px;
    /* Sfumatura ai bordi: segnala visivamente che c'è altro contenuto scorrendo */
    -webkit-mask-image: linear-gradient(to right, transparent, black 20px, black calc(100% - 20px), transparent);
    mask-image: linear-gradient(to right, transparent, black 20px, black calc(100% - 20px), transparent);
  }
  .kc-product-tabs-wrap ul.tabs::-webkit-scrollbar { display: none; }
  .kc-product-tabs-wrap ul.tabs li,
  .kc-product-tabs-wrap ul.wc-tabs li {
    display: block !important;
    float: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0;
    scroll-snap-align: center;
  }
  .kc-product-tabs-wrap ul.tabs li::before,
  .kc-product-tabs-wrap ul.tabs li::after { display: none !important; }
  .kc-product-tabs-wrap ul.tabs li a,
  .kc-product-tabs-wrap ul.wc-tabs li a {
    display: block;
    padding: 14px 20px;
    font-family: var(--font-body) !important;
    font-size: .75rem !important;
    font-weight: 500 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: var(--color-muted) !important;
    border-bottom: 2px solid transparent !important;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color .15s, border-color .15s;
    background: none !important;
  }
  .kc-product-tabs-wrap ul.tabs li a:hover { color: var(--color-ink) !important; }
  .kc-product-tabs-wrap ul.tabs li.active a,
  .kc-product-tabs-wrap ul.wc-tabs li.active a {
    color: var(--color-ink) !important;
    border-bottom-color: var(--color-copper) !important;
    background: none !important;
  }
  .kc-product-tabs-wrap .woocommerce-Tabs-panel { display: none; padding: 40px 0 56px; }
  .kc-product-tabs-wrap .woocommerce-Tabs-panel.active { display: block; }
}

/* Panel h2 auto-generato da WC — nascosto */
.kc-product-tabs-wrap .woocommerce-Tabs-panel h2 { display: none !important; }
.kc-product-tabs-wrap .woocommerce-Tabs-panel > * { padding-left: 0 !important; margin-left: 0 !important; }

/* ── Tab: Cos'è ───────────────────────────────────────────────────────────── */
.kc-tab-cose { display: grid; grid-template-columns: 1fr; gap: 48px; }
@media (min-width: 768px) { .kc-tab-cose { grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: start; } }
.kc-tab-cose__text { display: flex; flex-direction: column; gap: 20px; }
.kc-tab-cose__eyebrow { font-size: .75rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--color-copper); }
.kc-tab-cose__heading { font-family: var(--font-display); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 500; color: var(--color-ink); line-height: 1.08; letter-spacing: -.015em; max-width: 22ch; }
.kc-tab-cose__body { font-size: .9375rem; color: var(--color-muted); line-height: 1.75; max-width: 56ch; }
.kc-tab-cose__body p { margin-bottom: 1em; }
.kc-tab-cose__body p:last-child { margin-bottom: 0; }
.kc-tab-cose__aside { background: var(--color-paper); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: 36px 40px; display: flex; flex-direction: column; gap: 24px; }
.kc-tab-cose__aside-label { font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--color-copper); }
.kc-tab-cose__aside-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; color: var(--color-ink); line-height: 1.1; }
.kc-tab-cose__aside-body { font-size: .875rem; color: var(--color-muted); line-height: 1.65; }
.kc-tab-cose__aside-link { font-size: .8125rem; font-weight: 500; color: var(--color-copper); border-bottom: 1px solid rgba(165,106,91,.35); padding-bottom: 1px; width: fit-content; transition: border-color .15s; }
.kc-tab-cose__aside-link:hover { border-color: var(--color-copper); }

/* ── Tab: Come si usa ─────────────────────────────────────────────────────── */
.kc-tab-come { display: flex; flex-direction: column; gap: 32px; }
.kc-tab-come__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.kc-tab-come__intro { font-size: .9375rem; color: var(--color-muted); line-height: 1.7; max-width: 52ch; margin: 0; }
.kc-tab-come__steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 480px) { .kc-tab-come__steps { grid-template-columns: 1fr; } }
.kc-step-card { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: 28px; display: flex; flex-direction: column; gap: 16px; transition: border-color .18s, box-shadow .18s; }
.kc-step-card:hover { border-color: var(--color-champagne); box-shadow: 0 4px 20px rgba(27,22,18,.06); }
.kc-step-card__top { display: flex; align-items: center; justify-content: space-between; }
.kc-step-card__num { font-family: var(--font-display); font-size: 3rem; font-weight: 500; color: var(--color-sand); line-height: 1; letter-spacing: -.03em; }
.kc-step-card__icon { width: 36px; height: 36px; border-radius: var(--radius-sm); background: var(--color-paper); display: flex; align-items: center; justify-content: center; color: var(--color-copper); flex-shrink: 0; }
.kc-step-card__text { font-size: .9375rem; color: var(--color-muted); line-height: 1.65; margin: 0; }

/* Tab Per chi è */
.kc-tab-perchi { display: flex; flex-direction: column; gap: 32px; max-width: 680px; padding: 0; margin: 0; }
.kc-tab-perchi__header { display: flex; flex-direction: column; gap: 8px; }
.kc-tab-perchi__title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; color: var(--color-ink); margin: 0; }
.kc-tab-perchi__sub { font-size: .9rem; color: var(--color-muted); margin: 0; }
.kc-tab-perchi__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0; }
.kc-tab-perchi__item { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--color-border-soft); font-size: .9375rem; font-weight: 500; color: var(--color-ink); }
.kc-tab-perchi__item:first-child { border-top: 1px solid var(--color-border-soft); }
.kc-tab-perchi__check { width: 24px; height: 24px; border-radius: 50%; background: var(--color-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #fff; }
.kc-tab-perchi__disclaimer { font-size: .75rem; color: var(--color-border); margin: 0; }

/* Fallback: se il contenuto non è strutturato in step */
.kc-tab-content { font-size: .9375rem; line-height: 1.75; color: var(--color-muted); max-width: 680px; }
.kc-tab-content p { margin-bottom: 1em; }
.kc-tab-content p:last-child { margin-bottom: 0; }

/* ── Tab: Abbinalo a ─────────────────────────────────────────────────────── */
.kc-tab-abbinalo { display: flex; flex-direction: column; gap: 32px; }
.kc-tab-abbinalo__intro { font-size: .9375rem; color: var(--color-muted); max-width: 48ch; line-height: 1.6; }
.kc-abbinalo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; }
.kc-abbinalo-card { display: flex; flex-direction: column; gap: 0; background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); overflow: hidden; transition: border-color .2s, transform .2s, box-shadow .2s; }
.kc-abbinalo-card:hover { border-color: rgba(165,106,91,.4); transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.kc-abbinalo-card__img { aspect-ratio: 3/4; overflow: hidden; background: var(--color-paper); }
.kc-abbinalo-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.16,1,.3,1); }
.kc-abbinalo-card:hover img { transform: scale(1.04); }
.kc-abbinalo-card__body { padding: 16px 20px; display: flex; flex-direction: column; gap: 4px; border-top: 1px solid var(--color-border-soft); }
.kc-abbinalo-name { font-family: var(--font-display); font-size: 1.0625rem; font-weight: 500; color: var(--color-ink); line-height: 1.2; }
.kc-abbinalo-price { font-size: .8125rem; color: var(--color-muted); margin-top: 2px; }
.kc-abbinalo-price .amount { color: var(--color-muted); }
.kc-abbinalo-card__cta { margin-top: 10px; font-size: .8125rem; font-weight: 500; color: var(--color-copper); display: flex; align-items: center; gap: 4px; }

/* Nasconde titolo E hero Blocksy su carrello/checkout/thank-you */
.woocommerce-cart .entry-title,
.woocommerce-cart .page-title,
.woocommerce-cart h1.page-title,
.woocommerce-checkout .entry-title,
.woocommerce-checkout .page-title,
.woocommerce-checkout h1.page-title,
.woocommerce-order-received .entry-title,
.woocommerce-order-received .page-title { display: none !important; }

/* Rimuove il container hero/banner di Blocksy (rimane vuoto ma occupa spazio) */
.woocommerce-cart .hero-section,
.woocommerce-cart .page-hero,
.woocommerce-cart [class*="hero-container"],
.woocommerce-cart [class*="page-header"],
.woocommerce-cart .ct-breadcrumbs-container,
.woocommerce-checkout .hero-section,
.woocommerce-checkout [class*="hero-container"],
.woocommerce-checkout [class*="page-header"],
.woocommerce-checkout .ct-breadcrumbs-container,
.woocommerce-order-received [class*="hero-container"],
.woocommerce-order-received [class*="page-header"] { display: none !important; }

/* Azzera padding/margin e rimuove vincoli Blocksy su queste pagine */
.woocommerce-cart .site-main > article,
.woocommerce-cart .entry-content,
.woocommerce-checkout .site-main > article,
.woocommerce-checkout .entry-content,
.woocommerce-order-received .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

/* Rimuove TUTTI i vincoli max-width (Gutenberg is-layout-constrained + Blocksy theme-block-max-width) */
.woocommerce-cart .entry-content > *,
.woocommerce-cart .entry-content.is-layout-constrained > *,
.woocommerce-cart .entry-content .kc-cart-wrap,
.woocommerce-checkout .entry-content > *,
.woocommerce-checkout .entry-content.is-layout-constrained > *,
.woocommerce-checkout .entry-content .kc-checkout-wrap,
.woocommerce-order-received .entry-content > *,
.woocommerce-order-received .entry-content.is-layout-constrained > * {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  box-sizing: border-box;
}

/* Rimuove padding dal container article di Blocksy e da ct-container-full */
.woocommerce-cart .ct-container-full,
.woocommerce-checkout .ct-container-full,
.woocommerce-order-received .ct-container-full {
  --theme-content-vertical-spacing: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.woocommerce-cart .ct-container-full > article,
.woocommerce-checkout .ct-container-full > article,
.woocommerce-order-received .ct-container-full > article {
  padding: 0 !important;
}

/* Se Blocksy usa un .page-title-alignment wrapper */
.woocommerce-cart .page-title-alignment,
.woocommerce-checkout .page-title-alignment,
.woocommerce-order-received .page-title-alignment { display: none !important; }

/* ── Cart / Checkout ─────────────────────────────────────────────────────── */
.woocommerce button[type=submit], .woocommerce input[type=submit] { background: var(--color-ink) !important; color: var(--color-surface) !important; border: none !important; border-radius: var(--radius-pill) !important; font-family: var(--font-body) !important; font-weight: 500 !important; padding: 14px 28px !important; transition: opacity .18s !important; }
.woocommerce button[type=submit]:hover, .woocommerce input[type=submit]:hover { opacity: .82 !important; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { border: 1px solid var(--color-border) !important; border-radius: var(--radius-sm) !important; background: var(--color-surface) !important; font-family: var(--font-body) !important; padding: 12px 16px !important; color: var(--color-text) !important; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { border-color: var(--color-copper) !important; outline: none !important; box-shadow: none !important; }

/* ══════════════════════════════════════════════════════════════════════════
   Select2 — override completo per palette Kronocare
   ══════════════════════════════════════════════════════════════════════════ */

/* Container: larghezza piena */
.select2-container { width: 100% !important; }

/* Pulsante selection (la "box" visibile) */
.select2-container--default .select2-selection--single {
  height: 48px !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--color-surface) !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color .15s !important;
}

/* Testo selezionato */
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--color-ink) !important;
  font-family: var(--font-body) !important;
  font-size: .9375rem !important;
  line-height: 48px !important;
  padding: 0 44px 0 16px !important;
}

/* Placeholder */
.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--color-muted) !important;
}

/* Area freccia */
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 46px !important;
  top: 0 !important;
  right: 2px !important;
  width: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Freccia — triangolo CSS → copper */
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: var(--color-copper) transparent transparent transparent !important;
  border-width: 5px 4px 0 4px !important;
  margin-top: -2px !important;
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  border-color: transparent transparent var(--color-copper) transparent !important;
  border-width: 0 4px 5px 4px !important;
  margin-top: -3px !important;
}

/* Focus / aperto */
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--color-copper) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Angoli quando aperto in basso */
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}

/* Panel dropdown */
.select2-dropdown {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-copper) !important;
  border-radius: 0 !important;
  box-shadow: 0 8px 32px rgba(14,11,8,.1) !important;
}
.select2-container--default.select2-container--open.select2-container--below .select2-dropdown {
  border-top: none !important;
  border-bottom-left-radius: var(--radius-sm) !important;
  border-bottom-right-radius: var(--radius-sm) !important;
}
.select2-container--default.select2-container--open.select2-container--above .select2-dropdown {
  border-bottom: none !important;
  border-top-left-radius: var(--radius-sm) !important;
  border-top-right-radius: var(--radius-sm) !important;
}

/* Campo ricerca nel dropdown */
.select2-search--dropdown { padding: 8px 10px !important; background: var(--color-bg) !important; }
.select2-search--dropdown .select2-search__field {
  border: 1px solid var(--color-border) !important;
  border-radius: 6px !important;
  font-family: var(--font-body) !important;
  font-size: .875rem !important;
  color: var(--color-ink) !important;
  padding: 8px 12px !important;
  background: var(--color-surface) !important;
  outline: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.select2-search--dropdown .select2-search__field:focus { border-color: var(--color-copper) !important; }

/* Lista opzioni */
.select2-results__option {
  font-family: var(--font-body) !important;
  font-size: .9rem !important;
  color: var(--color-text) !important;
  padding: 10px 16px !important;
  transition: background .1s !important;
}
.select2-results__option[aria-disabled=true] { color: var(--color-muted) !important; }
.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option[data-selected=true] {
  background: var(--color-sand) !important;
  color: var(--color-ink) !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
  background: var(--color-paper) !important;
  color: var(--color-ink) !important;
}

/* Scrollbar sottile nelle opzioni */
.select2-container--default .select2-results > .select2-results__options {
  max-height: 220px !important;
  overflow-y: auto !important;
}

/* ── Shop home ───────────────────────────────────────────────────────────── */
.kc-shop-hero-v2 { background: var(--color-paper); padding: 72px 0 80px; border-bottom: 1px solid var(--color-border); }
.kc-shop-hero-v2__sub { font-size: 1.125rem; color: var(--color-muted); max-width: 480px; margin: 0 auto 32px; line-height: 1.6; }
.kc-hero-ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.kc-why-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
@media (max-width: 768px) { .kc-why-grid { grid-template-columns: 1fr; } }
.kc-why-card { position: relative; background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 32px; overflow: hidden; display: flex; flex-direction: column; gap: 16px; }
.kc-why-num { position: absolute; top: 20px; right: 24px; font-family: var(--font-display); font-size: 3.5rem; line-height: 1; font-weight: 500; color: var(--color-border); pointer-events: none; user-select: none; }
.kc-why-line { width: 28px; height: 1.5px; background: var(--color-copper); border-radius: 2px; }
.kc-why-label { font-family: var(--font-display); font-size: 1.25rem; font-weight: 500; color: var(--color-ink); padding-right: 32px; line-height: 1.2; }
.kc-why-body { font-size: .9rem; color: var(--color-muted); line-height: 1.65; padding-right: 24px; }
.kc-concern-rows { display: flex; flex-direction: column; gap: 20px; }
.kc-concern-row { display: grid; grid-template-columns: minmax(240px,1.25fr) repeat(3,minmax(0,1fr)); gap: 20px; align-items: stretch; }
@media (max-width: 900px) { .kc-concern-row { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .kc-concern-row { grid-template-columns: 1fr; } }
.kc-concern-intro { background: var(--color-bg); border-radius: var(--radius-sm); padding: 32px 40px; display: flex; flex-direction: column; gap: 16px; min-height: 460px; justify-content: space-between; }
.kc-concern-header { display: flex; align-items: center; gap: 10px; }
.kc-concern-icon-wrap { width: 32px; height: 32px; border-radius: 8px; background: var(--color-sand); border: 1px solid var(--color-border); display: flex; align-items: center; justify-content: center; color: var(--color-copper); flex-shrink: 0; }
.kc-concern-tag { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: var(--radius-pill); background: var(--color-sand); border: 1px solid var(--color-border); font-size: .68rem; font-weight: 500; letter-spacing: .07em; text-transform: uppercase; color: var(--color-taupe); }
.kc-concern-title { font-family: var(--font-display); font-size: 2rem; font-weight: 500; color: var(--color-ink); line-height: 1.05; letter-spacing: -.01em; }
.kc-concern-body { font-size: .9rem; color: var(--color-muted); line-height: 1.65; flex: 1; }
.kc-concern-actions { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.kc-product-card { display: flex; flex-direction: column; background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); overflow: hidden; height: 100%; transition: border-color .2s,transform .2s,box-shadow .2s; }
.kc-product-card:hover { border-color: rgba(165,106,91,.4); transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.kc-product-card__img { flex: 0 0 340px; height: 340px; overflow: hidden; background: #fff; position: relative; display: flex; align-items: center; justify-content: center; padding: 24px; }
.kc-product-card__img img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s cubic-bezier(.16,1,.3,1); }
.kc-product-card:hover .kc-product-card__img img { transform: scale(1.03); }
.kc-product-card__body { flex: 1; padding: 16px 20px 20px; display: flex; flex-direction: column; gap: 4px; }
.kc-product-card__tag { font-size: .67rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--color-copper); }
.kc-product-card__name-link { text-decoration: none; }
.kc-product-card__name { font-family: var(--font-display); font-size: 1.125rem; font-weight: 500; color: var(--color-ink); line-height: 1.2; margin: 0; }
.kc-product-card__name-link:hover .kc-product-card__name { color: var(--color-copper); }
.kc-product-card__footer { display: flex; align-items: center; justify-content: space-between; padding-top: 12px; margin-top: 4px; border-top: 1px solid var(--color-border-soft); }
a.kc-product-card .kc-product-card__footer,
.kc-bundle-card .kc-product-card__footer { justify-content: flex-end; }
.kc-product-card__cta { font-size: .8125rem; font-weight: 500; color: var(--color-copper); transition: transform .15s; text-decoration: none; }
.kc-product-card:hover .kc-product-card__cta { transform: translateX(3px); }
/* Add-to-cart button in card */
.kc-product-card__atc { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 14px; border-radius: var(--radius-pill); font-size: .8125rem; font-weight: 500; color: var(--color-surface); background: var(--color-ink); border: none; cursor: pointer; text-decoration: none; transition: opacity .15s; white-space: nowrap; }
.kc-product-card__atc:hover { opacity: .82; color: var(--color-surface); }
.kc-product-card__atc.loading { opacity: .6; pointer-events: none; }
.kc-product-card__atc.added { background: var(--color-sage); }
.kc-mid-cta { background: var(--color-botanical); border-radius: var(--radius-lg); padding: 56px 48px; }
.kc-mid-cta .kc-eyebrow { color: var(--color-champagne); }
.kc-mid-cta__title { font-family: var(--font-display); font-size: clamp(1.5rem,3vw,2.25rem); font-weight: 400; color: var(--color-paper); margin: 12px 0 16px; max-width: 28ch; }
.kc-mid-cta__sub { font-size: 15px; color: rgba(239,231,218,.65); max-width: 48ch; margin-bottom: 28px; line-height: 1.6; }
.kc-bundles { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--color-border); }
.kc-bundles__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 32px; flex-wrap: wrap; }
.kc-bundle-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
@media (max-width: 768px) { .kc-bundle-grid { grid-template-columns: 1fr; } }
.kc-bundle-card { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 24px; display: flex; flex-direction: column; gap: 12px; transition: border-color .2s,transform .2s,box-shadow .2s; }
.kc-bundle-card:hover { border-color: rgba(165,106,91,.5); transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.kc-bundle-card__img { height: 200px; border-radius: 4px; overflow: hidden; flex-shrink: 0; }
.kc-bundle-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.kc-bundle-card:hover .kc-bundle-card__img img { transform: scale(1.03); }
.kc-bundle-card__name { font-family: var(--font-display); font-size: 1.25rem; font-weight: 500; color: var(--color-ink); line-height: 1.2; }
.kc-shop-bottom-cta { display: flex; align-items: center; gap: 24px; margin-top: 40px; flex-wrap: wrap; }

/* ── Routine CPT ─────────────────────────────────────────────────────────── */
.kc-routine-single { padding: 80px 0; }
.kc-routine-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; margin-bottom: 80px; }
@media (max-width: 768px) { .kc-routine-hero { grid-template-columns: 1fr; gap: 32px; } }
.kc-routine-hero__image img { border-radius: var(--radius-lg); aspect-ratio: 4/5; object-fit: cover; width: 100%; }
.kc-routine-title { font-family: var(--font-display); font-size: clamp(2rem,5vw,3.5rem); font-weight: 500; margin-bottom: 16px; }
.kc-routine-excerpt { font-size: 18px; color: var(--color-muted); line-height: 1.6; }
.kc-routine-steps__grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 20px; margin-bottom: 48px; }
.kc-routine-step-card { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.kc-step-number { font-family: var(--font-display); font-size: 2.25rem; color: var(--color-champagne); line-height: 1; }
.kc-step-label { font-size: 11px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: var(--color-taupe); }
.kc-step-product { display: flex; flex-direction: column; gap: 8px; }
.kc-step-product img { border-radius: 8px; aspect-ratio: 1; object-fit: cover; }
.kc-step-product__name { font-family: var(--font-display); font-size: 18px; color: var(--color-ink); }
.kc-step-product__price { font-size: 14px; color: var(--color-muted); }
.kc-routine-bundle-cta { text-align: center; padding: 48px; background: var(--color-paper); border-radius: var(--radius-lg); border: 1px solid var(--color-border); }
.kc-routine-bundle-cta__note { font-family: var(--font-display); font-size: 1.375rem; color: var(--color-muted); margin-bottom: 20px; }

/* ── Hair Spa ────────────────────────────────────────────────────────────── */
.hs-hero { background: var(--color-bg); border-bottom: 1px solid var(--color-border); padding: 72px 0 80px; }
.hs-hero__inner { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: center; }
@media (max-width: 860px) { .hs-hero__inner { grid-template-columns: 1fr; } }
.hs-hero__sub { font-size: 1.125rem; color: var(--color-muted); line-height: 1.6; margin-bottom: 32px; max-width: 48ch; }
.hs-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 28px; }
.hs-hero__meta { display: flex; gap: 24px; flex-wrap: wrap; }
.hs-meta-item { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--color-muted); }
.hs-meta-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--color-copper); flex-shrink: 0; }
.hs-hero__visual { border-radius: var(--radius-md); overflow: hidden; aspect-ratio: 5/6; }
.hs-hero__visual svg { width: 100%; height: 100%; display: block; }
.hs-perchi { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
@media (max-width: 768px) { .hs-perchi { grid-template-columns: 1fr; gap: 32px; } }
.hs-perchi__intro { font-size: 16px; color: var(--color-muted); line-height: 1.65; margin-bottom: 24px; }
.hs-check-list { list-style: none; display: flex; flex-direction: column; gap: 14px; }
.hs-check-list li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; color: var(--color-text); line-height: 1.5; }
.hs-check-list li::before { content: '✦'; color: var(--color-copper); font-size: 10px; flex-shrink: 0; margin-top: 4px; }
.hs-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
@media (max-width: 860px) { .hs-steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .hs-steps { grid-template-columns: 1fr; } }
.hs-step { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.hs-step__num { font-family: var(--font-display); font-size: 2.625rem; color: var(--color-border); line-height: 1; font-weight: 500; }
.hs-step__label { font-family: var(--font-display); font-size: 1.125rem; font-weight: 500; color: var(--color-ink); }
.hs-step__body { font-size: 14px; color: var(--color-muted); line-height: 1.6; }
.hs-benefits-wrap { display: grid; grid-template-columns: 1fr 360px; gap: 64px; align-items: start; }
@media (max-width: 860px) { .hs-benefits-wrap { grid-template-columns: 1fr; } }
.hs-benefits { list-style: none; display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }
.hs-benefit-item { display: flex; align-items: center; gap: 14px; font-size: 16px; color: var(--color-text); padding-bottom: 16px; border-bottom: 1px solid var(--color-border); }
.hs-benefit-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--color-copper); flex-shrink: 0; }
.hs-cta-card { background: var(--color-paper); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 32px; display: flex; flex-direction: column; gap: 16px; position: sticky; top: 88px; }
.hs-cta-card__title { font-family: var(--font-display); font-size: 1.625rem; font-weight: 500; color: var(--color-ink); line-height: 1.2; }
.hs-cta-card__meta { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.hs-cta-card__meta li { font-size: 13px; color: var(--color-muted); display: flex; align-items: center; gap: 8px; }
.hs-cta-card__meta li::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--color-copper); flex-shrink: 0; }
.hs-products { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
@media (max-width: 900px) { .hs-products { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .hs-products { grid-template-columns: 1fr; } }
.hs-faq-wrap { display: grid; grid-template-columns: 1fr 2fr; gap: 64px; align-items: start; }
@media (max-width: 768px) { .hs-faq-wrap { grid-template-columns: 1fr; gap: 32px; } }
.hs-faq { display: flex; flex-direction: column; }
.hs-faq__item { border-bottom: 1px solid var(--color-border); padding: 20px 0; }
.hs-faq__item:first-child { border-top: 1px solid var(--color-border); }
.hs-faq__question { font-family: var(--font-display); font-size: 1.125rem; font-weight: 500; color: var(--color-ink); cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.hs-faq__question::-webkit-details-marker { display: none; }
.hs-faq__question::after { content: '+'; font-family: var(--font-body); font-size: 1.25rem; font-weight: 300; color: var(--color-copper); flex-shrink: 0; transition: transform .2s; }
details[open] .hs-faq__question::after { transform: rotate(45deg); }
.hs-faq__answer { font-size: 15px; color: var(--color-muted); line-height: 1.65; padding-top: 14px; max-width: 62ch; }
.hs-final-cta { background: var(--color-botanical); padding: 96px 0; }
.hs-final-cta__title { font-family: var(--font-display); font-size: clamp(2rem,5vw,3.5rem); font-weight: 500; color: var(--color-paper); margin: 16px 0 20px; }
.hs-final-cta__sub { font-size: 1.0625rem; color: rgba(239,231,218,.65); max-width: 44ch; margin: 0 auto 36px; line-height: 1.6; }

/* ── Hair Lab page ───────────────────────────────────────────────────────── */
.hl-hero { background: var(--color-bg); border-bottom: 1px solid var(--color-border); padding: 72px 0 80px; }
@media (min-width: 768px) { .hl-hero { padding: 88px 0 100px; } }
.hl-hero__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: center; }
@media (max-width: 860px) { .hl-hero__grid { grid-template-columns: 1fr; } }
.hl-hero__tagline { font-family: var(--font-display); font-style: italic; font-size: 1.1rem; color: var(--color-copper); margin: 14px 0 18px; }
.hl-hero__sub { font-size: 1.125rem; color: var(--color-muted); line-height: 1.6; margin-bottom: 32px; max-width: 48ch; }
.hl-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 28px; }
.hl-hero__meta { display: flex; gap: 20px; flex-wrap: wrap; }
.hl-meta-item { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--color-muted); }
.hl-meta-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--color-copper); flex-shrink: 0; }
.hl-hero__visual { border-radius: var(--radius-md); overflow: hidden; aspect-ratio: 4/5; }
.hl-hero__visual svg { width: 100%; height: 100%; display: block; }

.hl-intro-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
@media (max-width: 768px) { .hl-intro-grid { grid-template-columns: 1fr; } }
.hl-intro-card { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 32px; display: flex; flex-direction: column; gap: 12px; }
.hl-intro-card--dark { background: var(--color-botanical); }
.hl-intro-card--dark .hl-intro-card__eyebrow { color: var(--color-champagne); }
.hl-intro-card--dark .hl-intro-card__title { color: var(--color-paper); }
.hl-intro-card--dark .hl-intro-card__body { color: rgba(239,231,218,.65); }
.hl-intro-card--dark .hl-intro-card__cta { color: var(--color-champagne); border-bottom-color: rgba(212,188,120,.4); }
.hl-intro-card__eyebrow { font-size: .75rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--color-copper); }
.hl-intro-card__title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; color: var(--color-ink); }
.hl-intro-card__body { font-size: 14px; color: var(--color-muted); line-height: 1.65; flex: 1; }
.hl-intro-card__cta { font-size: .8125rem; font-weight: 500; color: var(--color-copper); border-bottom: 1px solid rgba(165,106,91,.4); padding-bottom: 2px; width: fit-content; margin-top: auto; }

.hl-team-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; margin-top: 32px; }
@media (max-width: 640px) { .hl-team-grid { grid-template-columns: repeat(2,1fr); } }
.hl-team-member { display: flex; flex-direction: column; gap: 12px; }
.hl-team-member__img { overflow: hidden; border-radius: var(--radius-sm); background: var(--color-sand); aspect-ratio: 3/4; }
.hl-team-member__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.16,1,.3,1); }
.hl-team-member:hover .hl-team-member__img img { transform: scale(1.03); }
.hl-team-member__name { font-family: var(--font-display); font-size: 1.25rem; color: var(--color-ink); line-height: 1; margin-bottom: 0 !important; }
.hl-team-member__role { font-size: .75rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--color-copper); }
.hl-team-member__body { font-size: .8125rem; color: var(--color-muted); line-height: 1.6; }

/* Concern cards header split (eyebrow+h2 left / sub right) */
.hl-concerns-header { display: flex; flex-direction: column; gap: 20px; margin-bottom: 56px; }
@media (min-width: 768px) { .hl-concerns-header { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 32px; } }
.hl-concerns-header .kc-section-sub { flex-shrink: 0; max-width: 38ch; }

/* Grid */
.hl-concerns-grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; }
@media (min-width: 560px) { .hl-concerns-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .hl-concerns-grid { grid-template-columns: repeat(3,1fr); } }

/* Card — horizontal row matching Astro */
.hl-concern-card { display: flex; align-items: center; gap: 16px; background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 24px; transition: border-color .2s, transform .2s; text-decoration: none; }
.hl-concern-card:hover { border-color: var(--color-ink); transform: translateY(-2px); }

/* Icon bubble */
.hl-concern-icon { width: 44px; height: 44px; border-radius: 12px; background: var(--color-paper); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--color-copper); }

/* Text block */
.hl-concern-body { flex: 1; min-width: 0; }
.hl-concern-body h3 { font-family: var(--font-body); font-weight: 500; font-size: 1rem; color: var(--color-ink); line-height: 1.3; margin: 0 0 2px; }
.hl-concern-body p { font-size: .8125rem; color: var(--color-muted); line-height: 1.4; margin: 0; }

/* Arrow */
.hl-concern-arrow { color: var(--color-muted); font-size: 1.125rem; flex-shrink: 0; transition: color .2s, transform .2s; }
.hl-concern-card:hover .hl-concern-arrow { color: var(--color-copper); transform: translateX(2px); }

/* CTA banner below grid */
.hl-concerns-banner { margin-top: 48px; background: var(--color-paper); border-radius: var(--radius-sm); padding: 28px 32px; display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 560px) { .hl-concerns-banner { flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; } }
.hl-concerns-banner__title { font-family: var(--font-display); font-size: 1.375rem; font-weight: 500; font-style: italic; color: var(--color-ink); margin: 0 0 4px; }
.hl-concerns-banner__sub { font-size: .875rem; color: var(--color-muted); margin: 0; }

/* Reset margin-bottom on kc-h2 when inside section-intro (avoids flex misalignment) */
.kc-section-intro .kc-h2 { margin-bottom: 0 !important; }

.hl-equipment-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 24px; }
@media (max-width: 1100px) { .hl-equipment-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .hl-equipment-grid { grid-template-columns: 1fr; } }

.hl-equipment-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-sm); overflow: hidden; display: flex; flex-direction: column; transition: border-color .2s; }
.hl-equipment-card:hover { border-color: rgba(165,106,91,.3); }

.hl-equipment-card__img { aspect-ratio: 4/3; overflow: hidden; flex-shrink: 0; }
.hl-equipment-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s cubic-bezier(.16,1,.3,1); }
.hl-equipment-card:hover .hl-equipment-card__img img { transform: scale(1.03); }

.hl-equipment-card__body { padding: 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.hl-equipment-card__body > * { margin-top: 0 !important; margin-bottom: 0 !important; }

.hl-equipment-card__label { font-family: var(--font-display) !important; font-size: 1.25rem !important; font-weight: 500 !important; color: var(--color-ink) !important; line-height: 1.2 !important; letter-spacing: -.01em !important; }
.hl-equipment-card__text { font-size: .875rem !important; color: var(--color-muted) !important; line-height: 1.65 !important; flex: 1; }
.hl-equipment-card__link { font-size: .875rem; font-weight: 500; font-family: var(--font-body); color: var(--color-copper) !important; transition: opacity .18s; text-decoration: none !important; border: none !important; padding: 0 !important; }
.hl-equipment-card__link:hover { opacity: .7; color: var(--color-copper) !important; }

.hl-cta-block { background: var(--color-ink); border-radius: var(--radius-xl); padding: 48px 56px; display: flex; flex-direction: column; gap: 32px; }
@media (min-width: 768px) { .hl-cta-block { flex-direction: row; align-items: center; justify-content: space-between; } }
.hl-cta-block__eyebrow { font-size: .6875rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--color-copper); margin-bottom: 16px; }
.hl-cta-block__title { font-family: var(--font-display); font-size: clamp(1.75rem,3vw,2.5rem); line-height: 1.08; letter-spacing: -.02em; color: var(--color-surface); margin-bottom: 12px; max-width: 26rem; }
.hl-cta-block__sub { font-size: .9375rem; color: rgba(255,254,249,.5); line-height: 1.6; }
.hl-cta-block__actions { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }

.hl-wa-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 24px; border-radius: var(--radius-pill); background: #25D366; color: #fff; font-family: var(--font-body); font-size: .9375rem; font-weight: 600; transition: background .18s; }
.hl-wa-btn:hover { background: #1da851; opacity: 1; }
.hl-wa-btn--sm { height: 40px; padding: 0 20px; font-size: .875rem; }

.hl-location-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
@media (max-width: 768px) { .hl-location-grid { grid-template-columns: 1fr; } }
.hl-location-map { border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 4/3; border: 1px solid var(--color-border); }

.hl-lang-badge { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: var(--radius-pill); font-size: .75rem; font-weight: 500; font-family: var(--font-body); }
.hl-lang-badge--it { background: var(--color-sand); color: var(--color-taupe); }
.hl-lang-badge--en { background: rgba(110,106,90,.1); color: var(--color-sage); }

/* ══════════════════════════════════════════════════════════════════════════
   Single Product — full custom template
   ══════════════════════════════════════════════════════════════════════════ */

/* Breadcrumb */
.kc-product-breadcrumb { padding: 20px 0; border-bottom: 1px solid var(--color-border); background: var(--color-bg); }
.kc-breadcrumb-list { display: flex; align-items: center; gap: 8px; list-style: none; padding: 0; margin: 0; flex-wrap: wrap; }
.kc-breadcrumb-list li { font-size: .8125rem; color: var(--color-muted); }
.kc-breadcrumb-list li + li::before { content: '/'; margin-right: 8px; opacity: .4; }
.kc-breadcrumb-list li:last-child { color: var(--color-ink); font-weight: 500; }
.kc-breadcrumb-list a { color: var(--color-muted); transition: color .15s; }
.kc-breadcrumb-list a:hover { color: var(--color-ink); }

/* Product layout */
.kc-single-product { padding: 56px 0 80px; background: var(--color-bg); }
@media (min-width: 768px) { .kc-single-product { padding: 72px 0 100px; } }
.kc-single-product__layout { display: grid; grid-template-columns: 1fr; gap: 48px; }
@media (min-width: 860px) { .kc-single-product__layout { grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; } }
@media (min-width: 1100px) { .kc-single-product__layout { grid-template-columns: 1.1fr 1fr; gap: 80px; } }

/* Gallery */
.kc-product-gallery { display: flex; flex-direction: column; gap: 12px; }
@media (min-width: 860px) { .kc-product-gallery { position: sticky; top: 88px; } }
.kc-gallery-main { border-radius: var(--radius-md); overflow: hidden; background: var(--color-paper); border: 1px solid var(--color-border-soft); aspect-ratio: 4/5; }
.kc-gallery-main__img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; transition: opacity .2s; }
.kc-gallery-main__placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: var(--color-paper); }
.kc-gallery-thumbs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.kc-gallery-thumbs::-webkit-scrollbar { display: none; }
.kc-gallery-thumb { flex-shrink: 0; width: 72px; height: 90px; border-radius: 8px; overflow: hidden; border: 1.5px solid var(--color-border-soft); background: var(--color-paper); cursor: pointer; transition: border-color .15s; padding: 0; }
.kc-gallery-thumb.is-active { border-color: var(--color-ink); }
.kc-gallery-thumb:hover { border-color: var(--color-taupe); }
.kc-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Summary */
.kc-product-summary { display: flex; flex-direction: column; gap: 20px; }
.kc-product-summary__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.kc-product-summary__cat { font-size: .75rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--color-muted); border-bottom: 1px solid transparent; padding-bottom: 1px; transition: color .15s, border-color .15s; }
.kc-product-summary__cat:hover { color: var(--color-ink); border-color: var(--color-muted); }
.kc-product-title { font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 2.75rem); font-weight: 500; letter-spacing: -.02em; color: var(--color-ink); line-height: 1.06; margin: 0 !important; }
.kc-product-heading { display: flex; flex-direction: column; gap: 6px; }
.kc-product-format { font-size: .8125rem; color: var(--color-muted); letter-spacing: .04em; margin: 0; }
.kc-product-excerpt { font-size: 1rem; color: var(--color-muted); line-height: 1.65; max-width: 44ch; }
.kc-product-excerpt p { margin: 0; }
.kc-product-traits { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.kc-product-traits li {
  display: inline-flex; align-items: center; height: 28px; padding: 0 12px;
  border-radius: var(--radius-pill); font-size: .6875rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; color: var(--color-taupe);
  background: var(--color-sand); border: 1px solid var(--color-border);
}

/* Rating */
.kc-product-rating { display: flex; align-items: center; gap: 8px; }
.kc-stars { display: flex; gap: 1px; }
.kc-star { font-size: 14px; color: var(--color-champagne); line-height: 1; }
.kc-star--full { color: var(--color-copper); }
.kc-star--empty { color: var(--color-border); }
.kc-product-rating__count { font-size: .8125rem; color: var(--color-muted); border-bottom: 1px solid var(--color-border); padding-bottom: 1px; }
.kc-product-rating__count:hover { color: var(--color-ink); border-color: var(--color-ink); }

/* Price */
.kc-product-price { line-height: 1; }
.kc-product-price .price { font-family: var(--font-display) !important; font-size: 3.25rem !important; font-weight: 500 !important; color: var(--color-ink) !important; }
.kc-product-price .price del { font-size: 1rem !important; color: var(--color-muted) !important; opacity: .55; margin-right: 6px; }
.kc-product-price .price ins { text-decoration: none !important; color: var(--color-copper) !important; }

/* Variabili: prezzo duplicato sotto al selettore — aggiorniamo #kc-product-price via JS */
.kc-add-to-cart .woocommerce-variation-price,
.kc-add-to-cart .woocommerce-variation-description,
.kc-add-to-cart .stock { display: none !important; }
.kc-add-to-cart .reset_variations { display: none !important; }

/* Selettore formato / varianti */
.kc-add-to-cart .variations {
  margin: 0 0 16px !important;
  width: 100%;
}
.kc-add-to-cart .variations tr {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
}
.kc-add-to-cart .variations .label {
  padding: 0 !important;
  font-size: .75rem !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--color-muted) !important;
}
.kc-add-to-cart .variations .label label {
  margin: 0 !important;
  font-weight: 600 !important;
}
.kc-add-to-cart .variations .value {
  padding: 0 !important;
}
.kc-add-to-cart .variations select {
  width: 100% !important;
  height: 48px !important;
  padding: 0 40px 0 16px !important;
  border: 1.5px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--color-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B6258' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  font-family: var(--font-body) !important;
  font-size: .9375rem !important;
  color: var(--color-ink) !important;
  appearance: none !important;
  cursor: pointer !important;
}
.kc-add-to-cart .variations select:focus {
  outline: none !important;
  border-color: var(--color-copper) !important;
}
.kc-add-to-cart .reset_variations {
  font-size: .8125rem !important;
  color: var(--color-muted) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}
.kc-add-to-cart .reset_variations:hover { color: var(--color-ink) !important; }

/* Per chi è */
.kc-product-perchi { border-top: 1px solid var(--color-border-soft); padding-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.kc-product-perchi__label { font-size: .75rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--color-muted); }
.kc-product-perchi__list { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 0; }
.kc-product-perchi__list li { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: var(--radius-pill); font-size: .8125rem; font-weight: 500; color: var(--color-taupe); background: var(--color-sand); border: 1px solid var(--color-border); }
.kc-product-perchi__list li::before { content: '✦'; font-size: 8px; margin-right: 6px; color: var(--color-copper); }

/* ── Quantity stepper ─────────────────────────────────────────────────────
   Selettori universali > * per coprire qualsiasi variante Blocksy/WC.
   ─────────────────────────────────────────────────────────────────────── */

/* Wrapper */
.quantity {
  display: inline-flex !important;
  align-items: stretch !important;
  border: 1.5px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--color-surface) !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
  min-width: 136px !important;
  width: auto !important;
  height: 48px !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* Qualsiasi bottone/link figlio diretto = pulsante stepper (include classi Blocksy) */
.quantity > button,
.quantity > a,
.quantity > span[class*="minus"],
.quantity > span[class*="plus"],
.quantity > span[class*="decrement"],
.quantity > span[class*="increment"],
.quantity > .ct-decrease,
.quantity > .ct-increase {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  height: 100% !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: 1.1rem !important;
  font-weight: 300 !important;
  color: var(--color-ink) !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
  box-shadow: none !important;
  outline: none !important;
  text-decoration: none !important;
  -webkit-appearance: none !important;
  transition: background .15s !important;
}
.quantity > button:first-child,
.quantity > a:first-child,
.quantity > span:first-child {
  border-right: 1px solid var(--color-border) !important;
  border-left: none !important;
  border-top: none !important;
  border-bottom: none !important;
}
.quantity > button:last-child,
.quantity > a:last-child,
.quantity > span:last-child {
  border-left: 1px solid var(--color-border) !important;
  border-right: none !important;
  border-top: none !important;
  border-bottom: none !important;
}
.quantity > button:hover,
.quantity > a:hover { background: var(--color-paper) !important; opacity: 1 !important; }

/* Reset TUTTI i bordi (include ct-decrease/ct-increase Blocksy) */
.quantity > button,
.quantity > a,
.quantity > span[class*="minus"],
.quantity > span[class*="plus"],
.quantity > span[class*="decrement"],
.quantity > span[class*="increment"],
.quantity > .ct-decrease,
.quantity > .ct-increase {
  border-top: none !important;
  border-bottom: none !important;
  border-right: none !important;
  border-left: none !important;
}
/* Separatori interni */
.quantity > .ct-decrease,
.quantity > button:first-child,
.quantity > a:first-child { border-right: 1px solid var(--color-border-soft) !important; }
.quantity > .ct-increase,
.quantity > button:last-child,
.quantity > a:last-child  { border-left: 1px solid var(--color-border-soft) !important; }

/* Reset esplicito Blocksy ct-* — outline, box-shadow, border extra */
.quantity .ct-decrease,
.quantity .ct-increase {
  all: unset !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  min-width: 40px !important;
  height: 100% !important;
  cursor: pointer !important;
  font-size: 1.1rem !important;
  color: var(--color-ink) !important;
  background: none !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  flex-shrink: 0 !important;
}
.quantity .ct-decrease { order: 1 !important; border: none !important; }
.quantity > input { order: 2 !important; }
.quantity .ct-increase { order: 3 !important; border: none !important; border-right: none !important; }
.quantity > .ct-increase { border-right: none !important; }
/* Forza border-right none su ct-increase con specificity massima */
html body .quantity .ct-increase,
html body .quantity > .ct-increase {
  border-right: none !important;
  border-inline-end: none !important;
  box-shadow: none !important;
  outline: none !important;
}
.quantity .ct-decrease:hover,
.quantity .ct-increase:hover { background: var(--color-bg) !important; }

/* Input numerico — figlio diretto, qualsiasi classe */
.quantity > input {
  flex: 1 !important;
  min-width: 0 !important;
  width: 0 !important; /* si espande con flex:1 */
  height: 100% !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  text-align: center !important;
  font-size: .9375rem !important;
  font-family: var(--font-body) !important;
  color: var(--color-ink) !important;
  padding: 0 4px !important;
  margin: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  -moz-appearance: textfield !important;
  appearance: textfield !important;
}
.quantity > input::-webkit-inner-spin-button,
.quantity > input::-webkit-outer-spin-button { -webkit-appearance: none !important; }

/* Variante più piccola nel carrello */
.kc-qty-wrap .quantity { height: 32px !important; min-width: 96px !important; }
.kc-qty-wrap .quantity > button,
.kc-qty-wrap .quantity > a,
.kc-qty-wrap .quantity > span { width: 28px !important; min-width: 28px !important; max-width: 28px !important; font-size: .875rem !important; }

/* Add to cart form layout */
.kc-add-to-cart form.cart { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.kc-add-to-cart .woocommerce-variation-add-to-cart {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
}
.kc-add-to-cart .single_add_to_cart_button {
  flex: 1;
  min-width: 160px;
  height: 48px !important;
  background: var(--color-ink) !important;
  color: var(--color-surface) !important;
  border: none !important;
  border-radius: var(--radius-pill) !important;
  font-family: var(--font-body) !important;
  font-size: .9375rem !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  transition: opacity .18s !important;
}
.kc-add-to-cart .single_add_to_cart_button:hover { opacity: .82 !important; }

/* Stripe Express Checkout (Apple Pay, Link, Google Pay) */
.kc-add-to-cart #wc-stripe-express-checkout-element,
.kc-add-to-cart .wc-stripe-express-checkout {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 16px 0 0 !important;
  padding-top: 4px !important;
}
.kc-add-to-cart #wc-stripe-express-checkout-element > div {
  flex: none !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
.kc-add-to-cart #wc-stripe-express-checkout-element iframe {
  width: 100% !important;
  max-width: 100% !important;
}

@media (max-width: 859px) {
  .kc-add-to-cart form.cart,
  .kc-add-to-cart .woocommerce-variation-add-to-cart,
  .kc-add-to-cart .single_variation_wrap .woocommerce-variation-add-to-cart {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    flex-wrap: nowrap !important;
    gap: 16px !important;
  }

  .kc-add-to-cart .quantity {
    align-self: flex-start;
    order: 1;
  }

  .kc-add-to-cart .single_add_to_cart_button {
    flex: none !important;
    width: 100% !important;
    min-width: 0 !important;
    order: 2;
    margin-top: 0 !important;
  }

  .kc-add-to-cart #wc-stripe-express-checkout-element,
  .kc-add-to-cart .wc-stripe-express-checkout {
    order: 3;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 24px !important;
    padding-top: 8px !important;
    border-top: 1px solid var(--color-border-soft);
  }
}

/* Trust strip */
.kc-product-trust { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--color-border-soft); padding-top: 20px; }
.kc-product-trust li { display: flex; align-items: center; gap: 10px; font-size: .875rem; color: var(--color-muted); }
.kc-product-trust svg { color: var(--color-copper); flex-shrink: 0; }

/* Consultation nudge */
.kc-product-nudge { background: var(--color-paper); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 20px 24px; display: flex; flex-direction: column; gap: 12px; }
.kc-product-nudge__label { font-size: .875rem; font-weight: 500; color: var(--color-ink); margin-bottom: 6px; }
.kc-product-nudge__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.kc-product-nudge__wa { display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 18px; border-radius: var(--radius-pill); background: #25D366; color: #fff; font-size: .8125rem; font-weight: 600; transition: background .18s; flex-shrink: 0; }
.kc-product-nudge__wa:hover { background: #1da851; opacity: 1; }
.kc-product-nudge__wa svg { flex-shrink: 0; }
.kc-product-nudge__checkup { font-size: .8125rem; font-weight: 500; color: var(--color-copper); border-bottom: 1px solid rgba(165,106,91,.35); padding-bottom: 1px; transition: border-color .15s; }
.kc-product-nudge__checkup:hover { border-color: var(--color-copper); }

/* Tabs wrap */
.kc-product-tabs-wrap { background: var(--color-surface); padding: 0; }
.kc-product-tabs-wrap .kc-container { padding-top: 0; padding-bottom: 72px; }

/* Reviews wrap */
.kc-product-reviews-wrap { background: var(--color-bg); padding: 72px 0; border-top: 1px solid var(--color-border); }
.kc-product-reviews-wrap #reviews { max-width: 720px; }
.kc-product-reviews-wrap #reviews h2 { font-family: var(--font-display); font-size: 2rem; font-weight: 500; color: var(--color-ink); margin-bottom: 32px; }
.kc-product-reviews-wrap .comment-respond { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--color-border); }
.kc-product-reviews-wrap .woocommerce-Reviews-title { font-family: var(--font-display) !important; font-size: 1.625rem !important; }
.kc-product-reviews-wrap .comment-reply-title { font-family: var(--font-display) !important; font-size: 1.25rem !important; color: var(--color-ink) !important; }
.kc-product-reviews-wrap .commentlist { list-style: none; padding: 0; margin: 0 0 32px; display: flex; flex-direction: column; gap: 24px; }
.kc-product-reviews-wrap .comment_container { display: flex; gap: 16px; background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 24px; }
.kc-product-reviews-wrap .comment-text { flex: 1; }
.kc-product-reviews-wrap .star-rating { color: var(--color-copper) !important; }
.kc-product-reviews-wrap .woocommerce-review__author { font-family: var(--font-display); font-size: 1rem; font-weight: 500; color: var(--color-ink); }
.kc-product-reviews-wrap .review p { font-size: .9375rem; color: var(--color-muted); line-height: 1.65; margin-top: 10px; }

/* ══════════════════════════════════════════════════════════════════════════
   Cart page
   ══════════════════════════════════════════════════════════════════════════ */

.kc-cart-wrap { padding: 0 0 100px; background: var(--color-bg); }

/* Header */
.kc-cart-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 24px 0 24px; }
.kc-cart-title { font-family: var(--font-display); font-size: clamp(2rem,4vw,3rem); font-weight: 500; letter-spacing: -.02em; color: var(--color-ink); margin: 0; line-height: 1.05; }
.kc-cart-back { font-size: .8125rem; font-weight: 500; color: var(--color-muted); border-bottom: 1px solid var(--color-border); padding-bottom: 1px; transition: color .15s, border-color .15s; flex-shrink: 0; }
.kc-cart-back:hover { color: var(--color-ink); border-color: var(--color-ink); }

/* Free shipping bar */
.kc-shipping-bar {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm);
  padding: 16px 20px;
  margin-bottom: 32px;
}
.kc-shipping-bar__progress { display: flex; align-items: center; width: 100%; }
.kc-shipping-bar__icon {
  position: absolute; right: 0; top: 50%; transform: translate(50%, -50%);
  flex-shrink: 0; stroke: var(--color-copper); background: var(--color-surface);
  border-radius: 50%; padding: 2px;
}
.kc-shipping-bar--reached { color: var(--color-sage); }
.kc-shipping-bar--reached .kc-shipping-bar__icon { stroke: var(--color-sage); }
.kc-shipping-bar--reached .kc-shipping-bar__fill { background: var(--color-sage); }
.kc-shipping-bar__track { flex: 1; height: 4px; background: var(--color-border); border-radius: 2px; min-width: 0; position: relative; overflow: visible; }
.kc-shipping-bar__fill {
  position: relative; height: 100%; min-width: 18px; background: var(--color-copper);
  border-radius: 2px; transition: width .4s ease;
}
.kc-shipping-bar__label { font-size: .875rem; color: var(--color-muted); margin: 0; line-height: 1.45; width: 100%; }
.kc-shipping-bar__label strong { color: var(--color-ink); }
.kc-shipping-bar--reached .kc-shipping-bar__label strong { color: var(--color-sage); }

/* 2-column layout */
.kc-cart-layout { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
@media (min-width: 860px) { .kc-cart-layout { grid-template-columns: 1fr 360px; gap: 48px; } }
@media (min-width: 1100px) { .kc-cart-layout { grid-template-columns: 1fr 400px; gap: 60px; } }

/* Cart items */
.kc-cart-items { display: flex; flex-direction: column; gap: 1px; }

.kc-cart-item { display: grid; grid-template-columns: 88px minmax(0, 1fr); grid-template-areas: "img head" "img info"; gap: 8px 20px; align-items: start; background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 20px; transition: border-color .2s; }
.kc-cart-item + .kc-cart-item { margin-top: 12px; }
.kc-cart-item:hover { border-color: var(--color-border); }

.kc-cart-item__img { grid-area: img; border-radius: 8px; overflow: hidden; background: var(--color-paper); aspect-ratio: 3/4; }
.kc-cart-item__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kc-cart-item__img a { display: block; height: 100%; }

.kc-cart-item__head { grid-area: head; display: flex; flex-direction: column; gap: 4px; min-width: 0; padding-top: 2px; }
.kc-cart-item__info { grid-area: info; display: flex; flex-direction: column; gap: 0; min-width: 0; }
.kc-cart-item__tag { font-size: .68rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--color-copper); line-height: 1.2; margin: 0; }
.kc-cart-item__name { font-family: var(--font-display); font-size: 1.125rem; font-weight: 500; color: var(--color-ink); line-height: 1.2; margin: 0; }
.kc-cart-item__name a { color: inherit; }
.kc-cart-item__name a:hover { color: var(--color-copper); }
.kc-cart-item__format { font-size: .8125rem; color: var(--color-muted); letter-spacing: .04em; margin: 0; line-height: 1.3; }

.kc-cart-item__price { font-family: var(--font-display); font-size: 1.375rem; font-weight: 500; color: var(--color-ink); white-space: nowrap; margin: 8px 0 0; line-height: 1.1; }
.kc-cart-item__price .amount { font-family: var(--font-display); color: var(--color-ink); }

/* Qty input */
.kc-qty-wrap .quantity { display: flex; align-items: center; }

/* Riga qty + rimuovi sotto la descrizione */
.kc-cart-item__bottom { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.kc-cart-item__desc { font-size: .8rem; color: var(--color-muted); line-height: 1.45; margin: 2px 0 0; }
.kc-cart-item__remove { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; border: 1px solid var(--color-border-soft); color: var(--color-muted); font-size: .875rem; line-height: 1; transition: border-color .15s, color .15s; background: var(--color-surface); }
.kc-cart-item__remove:hover { border-color: var(--color-rust); color: var(--color-rust); opacity: 1; }

/* Coupon */
.kc-coupon-wrap { margin-top: 20px; }
/* Pulsante update_cart nascosto ma presente nel DOM per il submit via JS */
.kc-update-cart-hidden { display: none !important; }

.kc-coupon-toggle { display: inline-flex; align-items: center; gap: 8px; font-size: .8125rem; font-weight: 500; color: var(--color-muted); background: none; border: none; cursor: pointer; padding: 10px 0; transition: color .15s; }
.kc-coupon-toggle:hover { color: var(--color-ink); }
.kc-coupon-toggle__arrow { font-size: .75rem; transition: transform .2s; }
.kc-coupon-toggle[aria-expanded="true"] .kc-coupon-toggle__arrow { transform: rotate(180deg); }
.kc-coupon-form { margin-top: 12px; }
.kc-coupon-form form { display: flex; gap: 10px; flex-wrap: wrap; }
.kc-coupon-input { height: 44px; padding: 0 16px; border: 1px solid var(--color-border) !important; border-radius: var(--radius-sm) !important; font-size: .875rem !important; font-family: var(--font-body) !important; background: var(--color-surface) !important; color: var(--color-ink) !important; flex: 1; min-width: 160px; }
.kc-coupon-input:focus { border-color: var(--color-copper) !important; outline: none !important; box-shadow: none !important; }

/* Order summary panel */
.kc-cart-summary { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: 28px; display: flex; flex-direction: column; gap: 0; }
@media (min-width: 860px) { .kc-cart-summary { position: sticky; top: 88px; } }

.kc-totals-panel__title { font-family: var(--font-display); font-size: 1.375rem; font-weight: 500; color: var(--color-ink); margin: 0 0 20px; }

.kc-totals-rows { display: flex; flex-direction: column; border-top: 1px solid var(--color-border-soft); }
.kc-totals-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 0; }
.kc-cart-total .kc-totals-row,
.kc-totals-panel .kc-totals-row,
.kc-checkout-totals .kc-totals-row { border-bottom: 1px solid var(--color-border-soft); }
.kc-checkout-totals .kc-totals-row--total { border-bottom: none; }
.kc-checkout-summary .kc-totals-row { border-bottom: none !important; }
.kc-checkout-summary .kc-totals-row--total { border-top: 1px solid var(--color-border-soft); padding-top: 16px; margin-top: 4px; }
.kc-totals-row__label { font-size: .875rem; color: var(--color-muted); }
.kc-totals-row__value { font-size: .9375rem; color: var(--color-ink); font-weight: 500; text-align: right; }
.kc-totals-row--discount .kc-totals-row__value { color: var(--color-sage); }
.kc-totals-row:has(+ .kc-totals-row--shipping) { border-bottom: none !important; }
.kc-totals-row--shipping { padding-top: 0 !important; }
.kc-shipping--free { color: var(--color-sage) !important; font-style: italic; }
.kc-shipping--calc { color: var(--color-muted) !important; font-style: italic; }
.kc-totals-row--total {
  padding-top: 16px;
  border-bottom: none;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  column-gap: 12px;
  row-gap: 4px;
}
.kc-totals-row--total .kc-totals-row__label { grid-column: 1; grid-row: 1; font-size: 1rem; font-weight: 600; color: var(--color-ink); }
.kc-totals-row--total .kc-totals-row__value { display: contents; }
.kc-totals-row--total .kc-totals-row__value > :not(.includes_tax) {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--color-ink);
  line-height: 1.2;
}
.kc-totals-row--total .amount { font-family: var(--font-display); }

/* IVA inclusa — riga sotto il totale, allineata a destra */
.kc-totals-row--total .includes_tax,
.kc-checkout-totals .kc-totals-row--total .includes_tax,
.woocommerce-checkout-review-order-table .order-total .includes_tax {
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
  display: block;
  margin: 0;
  padding: 0;
  text-align: right;
  white-space: nowrap;
  font-family: var(--font-body) !important;
  font-size: .625rem !important;
  font-weight: 400 !important;
  color: var(--color-muted) !important;
  line-height: 1.3;
  letter-spacing: 0;
}
.kc-totals-row--total .includes_tax .amount,
.kc-totals-row--total .includes_tax .woocommerce-Price-amount,
.kc-checkout-totals .includes_tax .amount,
.kc-checkout-totals .includes_tax .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table .order-total .includes_tax .amount,
.woocommerce-checkout-review-order-table .order-total .includes_tax .woocommerce-Price-amount {
  font-family: var(--font-body) !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
}

/* WC shipping table inside totals */
.kc-totals-rows table { width: 100%; }
.kc-totals-rows .shipping th, .kc-totals-rows .shipping td { padding: 12px 0; font-size: .875rem; color: var(--color-muted); }
.kc-totals-rows .shipping td { text-align: right; }

/* Proceed CTA */
.kc-proceed-wrap { margin-top: 20px; margin-bottom: 20px; }
.kc-proceed-wrap #wc-stripe-express-checkout-element,
.kc-proceed-wrap .wc-stripe-express-checkout {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  width: 100%;
  margin-bottom: 12px;
}
.kc-proceed-wrap #wc-stripe-express-checkout-element > div,
.kc-proceed-wrap .wc-stripe-express-checkout > div {
  width: 100%;
  max-width: 100%;
}
.kc-proceed-wrap #wc-stripe-express-checkout-element iframe,
.kc-proceed-wrap .wc-stripe-express-checkout iframe {
  width: 100% !important;
  max-width: 100% !important;
}
.kc-proceed-wrap .checkout-button,
.wc-proceed-to-checkout a.checkout-button { display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; height: 52px !important; background: var(--color-ink) !important; color: var(--color-surface) !important; border: none !important; border-radius: var(--radius-pill) !important; font-family: var(--font-body) !important; font-size: .9375rem !important; font-weight: 500 !important; cursor: pointer !important; transition: opacity .18s !important; text-decoration: none !important; }
.kc-proceed-wrap .checkout-button:hover,
.wc-proceed-to-checkout a.checkout-button:hover { opacity: .82 !important; }

/* Payment logos */
.kc-payment-logos { display: flex; align-items: center; gap: 10px; margin-top: 16px; flex-wrap: wrap; }
.kc-payment-logos__label { font-size: .75rem; color: var(--color-muted); flex-shrink: 0; }
.kc-payment-logos__icons { display: flex; gap: 6px; flex-wrap: wrap; }
.kc-pay-badge { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border: 1px solid var(--color-border); border-radius: 4px; font-size: .65rem; font-weight: 600; color: var(--color-muted); letter-spacing: .03em; background: var(--color-bg); }

/* Trust mini-strip */
.kc-cart-trust { list-style: none; padding: 0; margin: 20px 0 0; display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--color-border-soft); padding-top: 16px; }
.kc-cart-trust li { display: flex; align-items: center; gap: 8px; font-size: .8125rem; color: var(--color-muted); }
.kc-cart-trust svg { color: var(--color-copper); flex-shrink: 0; }
.kc-product-trust li,
.kc-cart-trust li { flex-wrap: wrap; }

/* Help */
.kc-cart-help { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--color-border-soft); display: flex; flex-direction: column; gap: 10px; }
.kc-cart-help p { font-size: .8125rem; color: var(--color-muted); margin-block-end: 0; }
.kc-cart-help__wa { display: flex; align-items: center; justify-content: center; gap: 8px; height: 42px; border-radius: var(--radius-pill); background: #25D366; color: #fff; font-size: .875rem; font-weight: 600; transition: opacity .15s; }
.kc-cart-help__wa:hover { opacity: .88; }

/* Empty cart */
.kc-cart-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 16px; padding: 80px 24px 120px; }
.kc-cart-empty__icon { color: var(--color-border); }
.kc-cart-empty__title { font-family: var(--font-display); font-size: 2rem; font-weight: 500; color: var(--color-ink); }
.kc-cart-empty__sub { font-size: 1rem; color: var(--color-muted); max-width: 40ch; line-height: 1.65; }
.kc-cart-empty__actions { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 8px; }

/* Upsell contestuale */
.kc-cart-upsell { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--color-border-soft); }
.kc-cart-upsell__title { font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--color-muted); margin-bottom: 14px; }
.kc-cart-upsell__grid { display: flex; flex-direction: column; gap: 8px; }
.kc-upsell-card { display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center; padding: 12px 16px; background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); transition: border-color .2s, transform .15s; }
.kc-upsell-card:hover { border-color: rgba(165,106,91,.4); transform: translateX(2px); opacity: 1; }
.kc-upsell-card__img { width: 52px; height: 64px; border-radius: 6px; overflow: hidden; background: var(--color-paper); flex-shrink: 0; }
.kc-upsell-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kc-upsell-card__info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.kc-upsell-card__name { font-size: .875rem; font-weight: 500; color: var(--color-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kc-upsell-card__price { font-size: .8125rem; color: var(--color-muted); }
.kc-upsell-card__price .amount { color: var(--color-muted); }
.kc-upsell-card__arrow { font-size: .875rem; color: var(--color-copper); flex-shrink: 0; transition: transform .15s; }
.kc-upsell-card:hover .kc-upsell-card__arrow { transform: translateX(3px); }

/* ── Toast "aggiunto al carrello" ────────────────────────────────────────── */
#kc-cart-toast {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 99999;
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--color-botanical);
  color: var(--color-paper);
  padding: 14px 18px;
  border-radius: var(--radius-md);
  box-shadow: 0 12px 40px rgba(10,8,5,.3);
  max-width: 400px;
  font-family: var(--font-body);
  font-size: .875rem;
  line-height: 1.4;
  transform: translateY(16px);
  opacity: 0;
  transition: transform .3s cubic-bezier(.16,1,.3,1), opacity .3s ease;
  pointer-events: auto;
}
#kc-cart-toast.is-visible { transform: translateY(0); opacity: 1; }
#kc-cart-toast svg { stroke: var(--color-champagne); flex-shrink: 0; }
.kc-toast__text { flex: 1; color: rgba(239,231,218,.85); }
.kc-toast__text strong { color: var(--color-paper); font-weight: 500; }
.kc-toast__btn {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 14px;
  border-radius: var(--radius-pill);
  background: var(--color-champagne);
  color: var(--color-botanical);
  font-size: .75rem;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  transition: opacity .15s;
}
.kc-toast__btn:hover { opacity: .85; }
.kc-toast__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  background: none;
  border: none;
  color: rgba(239,231,218,.4);
  font-size: 1rem;
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
  line-height: 1;
  transition: color .15s;
}
.kc-toast__close:hover { color: var(--color-paper); }
@media (max-width: 480px) {
  #kc-cart-toast { bottom: 16px; right: 16px; left: 16px; max-width: none; }
}

/* ── Font prezzi uniforme — usa sempre Inter (body), mai display ─────────── */
.kc-cart-item__price .amount,
.kc-cart-item__price .woocommerce-Price-amount,
.kc-totals-row__value .amount,
.kc-totals-row__value .woocommerce-Price-amount,
.kc-totals-row--total .amount,
.kc-checkout-item__price .amount,
.kc-order-item__price .amount,
.kc-order-meta__value .amount,
.woocommerce-Price-amount { font-family: var(--font-body) !important; }

.kc-product-price .woocommerce-Price-amount,
.kc-product-price .price,
.kc-product-price .amount { font-size: 2.5rem !important; }

/* ── My Account — design completo palette Kronocare ──────────────────────── */

/* Reset totale Blocksy sul nav */
.woocommerce-MyAccount-navigation ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.woocommerce-MyAccount-navigation li { margin: 0 !important; padding: 0 !important; }

/* Tutti i link nav — stato default */
.woocommerce-MyAccount-navigation a {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 13px 18px !important;
  font-family: var(--font-body) !important;
  font-size: .9rem !important;
  font-weight: 500 !important;
  color: var(--color-muted) !important;
  background: transparent !important;
  border-bottom: 1px solid var(--color-border-soft) !important;
  border-radius: 0 !important;
  transition: color .15s, background .15s !important;
  text-decoration: none !important;
}
.woocommerce-MyAccount-navigation li:first-child a { border-top: 1px solid var(--color-border-soft) !important; }
.woocommerce-MyAccount-navigation a:hover {
  color: var(--color-ink) !important;
  background: var(--color-bg) !important;
}

/* Stato attivo — aria-current e is-active */
.woocommerce-MyAccount-navigation a[aria-current="page"],
.woocommerce-MyAccount-navigation li.is-active > a,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--active > a,
.woocommerce-MyAccount-navigation li[class*="current"] > a {
  color: var(--color-ink) !important;
  background: var(--color-paper) !important;
  border-left: 2.5px solid var(--color-copper) !important;
  padding-left: 15.5px !important;
  /* Azzera qualsiasi background Blocksy */
  background-color: var(--color-paper) !important;
}

/* Reset aggressivo su qualsiasi pseudo-elemento Blocksy che porta il blu */
.woocommerce-MyAccount-navigation li::before,
.woocommerce-MyAccount-navigation li::after,
.woocommerce-MyAccount-navigation a::before,
.woocommerce-MyAccount-navigation a::after { display: none !important; }

/* Icone inline nel nav (se Blocksy le aggiunge via CSS content) */
.woocommerce-MyAccount-navigation svg { color: inherit !important; width: 16px !important; height: 16px !important; flex-shrink: 0 !important; }

/* Contenuto account — link */
.woocommerce-MyAccount-content a {
  color: var(--color-copper) !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(165,106,91,.3) !important;
  padding-bottom: 1px !important;
  transition: border-color .15s !important;
}
.woocommerce-MyAccount-content a:hover { border-bottom-color: var(--color-copper) !important; }

/* Pulsanti account */
.woocommerce-account .button,
.woocommerce-account .woocommerce-Button,
.woocommerce-account input[type="submit"] {
  background: var(--color-ink) !important;
  color: var(--color-surface) !important;
  border: none !important;
  border-radius: var(--radius-pill) !important;
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  transition: opacity .18s !important;
}
.woocommerce-account .button:hover,
.woocommerce-account input[type="submit"]:hover { opacity: .82 !important; background: var(--color-ink) !important; }

/* Tabelle ordini account */
.woocommerce-account table.shop_table { border-collapse: collapse !important; width: 100% !important; }
.woocommerce-account table.shop_table th { font-size: .75rem !important; font-weight: 600 !important; letter-spacing: .08em !important; text-transform: uppercase !important; color: var(--color-muted) !important; padding: 10px 16px !important; border-bottom: 1px solid var(--color-border) !important; background: none !important; }
.woocommerce-account table.shop_table td { padding: 14px 16px !important; border-bottom: 1px solid var(--color-border-soft) !important; font-size: .9rem !important; color: var(--color-text) !important; vertical-align: middle !important; }
.woocommerce-account table.shop_table .button { height: 32px !important; padding: 0 14px !important; font-size: .75rem !important; }

/* ── WooCommerce notices (globali) ───────────────────────────────────────── */
/* Reset stile Blocksy e applica palette Kronocare */
.woocommerce-notices-wrapper { position: fixed; bottom: 24px; right: 24px; z-index: 9999; display: flex; flex-direction: column; gap: 10px; max-width: 420px; pointer-events: none; }
.woocommerce-notices-wrapper > * { pointer-events: auto; }

/* ── Notices globali (toast fissi) ───────────────────────────────── */
.woocommerce-message,
.woocommerce-info,
.wc-block-components-notice-banner {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  background: var(--color-botanical) !important;
  color: var(--color-paper) !important;
  border: none !important;
  border-radius: var(--radius-sm) !important;
  padding: 14px 18px !important;
  font-family: var(--font-body) !important;
  font-size: .875rem !important;
  line-height: 1.4 !important;
  box-shadow: 0 8px 32px rgba(10,8,5,.25) !important;
  margin: 0 !important;
  list-style: none !important;
}
.woocommerce-message::before,
.woocommerce-info::before { display: none !important; }

.woocommerce-message .button,
.woocommerce-info .button {
  display: inline-flex !important;
  align-items: center !important;
  height: 32px !important;
  padding: 0 14px !important;
  border-radius: var(--radius-pill) !important;
  background: var(--color-champagne) !important;
  color: var(--color-botanical) !important;
  font-family: var(--font-body) !important;
  font-size: .75rem !important;
  font-weight: 600 !important;
  border: none !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  margin-left: auto !important;
  text-decoration: none !important;
  transition: opacity .15s !important;
}
.woocommerce-message .button:hover,
.woocommerce-info .button:hover { opacity: .82 !important; }

/* ── woocommerce-error (lista errori validazione checkout) ────────── */
.woocommerce-error {
  display: block !important;
  list-style: none !important;
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border-soft) !important;
  border-left: 3px solid var(--color-copper) !important;
  border-radius: var(--radius-sm) !important;
  padding: 16px 20px !important;
  margin: 0 0 24px !important;
  box-shadow: none !important;
}
.woocommerce-error::before { display: none !important; }
.woocommerce-error li {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  padding: 5px 0 !important;
  font-family: var(--font-body) !important;
  font-size: .875rem !important;
  line-height: 1.5 !important;
  color: var(--color-text) !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.woocommerce-error li::before {
  content: '' !important;
  display: inline-block !important;
  width: 5px !important;
  height: 5px !important;
  border-radius: 50% !important;
  background: var(--color-copper) !important;
  flex-shrink: 0 !important;
  margin-top: 6px !important;
}
.woocommerce-error li strong { font-weight: 600 !important; color: var(--color-ink) !important; }

/* Prevent Blocksy duplicate — nasconde la seconda istanza se identica */
.woocommerce-notices-wrapper .woocommerce-message + .woocommerce-message { display: none !important; }

/* Notice inline dentro il blocco pagamento: stile light, non dark notification */
#payment .woocommerce-info,
.kc-checkout-payment-block .woocommerce-info {
  background: var(--color-paper) !important;
  color: var(--color-muted) !important;
  border: 1px solid var(--color-border-soft) !important;
  box-shadow: none !important;
  font-size: .875rem !important;
  padding: 12px 16px !important;
  border-radius: var(--radius-sm) !important;
}
#payment .woocommerce-info::before { display: none !important; }

/* WC notices inside cart (posizione normale, non fixed) */
.kc-cart-wrap .woocommerce-notices-wrapper,
.kc-checkout-wrap .woocommerce-notices-wrapper {
  position: static !important;
  max-width: 100% !important;
  margin-bottom: 20px !important;
}
/* Sul carrello/checkout i toast di sistema non servono: il copy inline lo comunica già.
   La rimozione di un articolo dal checkout reindirizza al checkout stesso (non al
   carrello, vedi inc/woocommerce.php), quindi il notice va nascosto su entrambi. */
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info { display: none !important; }

/* Snackbar globale di WooCommerce Blocks ("Prodotto rimosso." / "Annullare?"):
   stile Gutenberg scuro fuori palette, non richiesto dal design del sito. */
.wc-block-components-notice-snackbar-list { display: none !important; }

/* Mobile adjustments */
@media (max-width: 560px) {
  .kc-shipping-bar { padding: 16px; margin-bottom: 16px; gap: 8px; }
  .kc-shipping-bar__label { font-size: .8125rem; }
  .kc-shipping-bar__progress { gap: 0; }

  .kc-cart-item {
    grid-template-columns: 72px minmax(0, 1fr);
    grid-template-areas: "img head" "img info";
    gap: 6px 14px;
    padding: 16px;
  }
  .kc-cart-item__img { align-self: start; }
  .kc-cart-item__head { gap: 3px; padding-top: 0; }
  .kc-cart-item__price { font-size: 1.25rem; margin-top: 6px; }
  .kc-cart-item__desc { margin-top: 2px; }
  .kc-cart-item__bottom { margin-top: 10px; }

  .kc-totals-row--total .kc-totals-row__value > :not(.includes_tax) { font-size: 1.375rem; }
  .kc-totals-row--total .includes_tax,
  .kc-checkout-totals .kc-totals-row--total .includes_tax {
    font-size: .5625rem !important;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   Checkout page
   ══════════════════════════════════════════════════════════════════════════ */

.kc-checkout-wrap { background: var(--color-bg); min-height: 100vh; padding-bottom: 100px; width: 100%; max-width: 100%; overflow-x: clip; }

/* Blocksy: shell checkout/carrello centrata (evita shift a destra da grid/padding tema) */
.woocommerce-checkout main.site-main,
.woocommerce-checkout #main,
.woocommerce-checkout .site-main > article,
.woocommerce-checkout .entry-content,
.woocommerce-cart main.site-main,
.woocommerce-cart .site-main > article,
.woocommerce-cart .entry-content {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}
.woocommerce-checkout [class*="ct-container"],
.woocommerce-cart [class*="ct-container"] {
  width: 100% !important;
  max-width: 100% !important;
  padding-inline: 0 !important;
  display: block !important;
}
.kc-checkout-wrap .kc-container,
.kc-cart-wrap .kc-container {
  margin-inline: auto;
  box-sizing: border-box;
}

/* Evita striscia bianca / scroll orizzontale su carrello, checkout e thank-you */
html.kc-html-transactional,
html.kc-html-transactional body {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  background-color: var(--color-bg) !important;
}

/* WooCommerce LYS / coming soon può imporre min-width al body (solo admin loggato) */
html.kc-html-transactional body.woocommerce-checkout,
html.kc-html-transactional body.woocommerce-cart,
html.kc-html-transactional body.woocommerce-order-received {
  min-width: 0 !important;
}

/* Admin bar WP: min-width 600px (desktop) forza documento più largo del telefono */
html.kc-html-transactional #wpadminbar {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

html.kc-html-transactional .kc-header,
html.kc-html-transactional .kc-page-wrap,
html.kc-html-transactional .kc-checkout-wrap,
html.kc-html-transactional .kc-cart-wrap,
html.kc-html-transactional .kc-footer {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body.woocommerce-checkout .kc-page-wrap,
body.woocommerce-cart .kc-page-wrap,
body.woocommerce-order-received .kc-page-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body.woocommerce-checkout #main-container,
body.woocommerce-checkout #main,
body.woocommerce-checkout #page,
body.woocommerce-checkout .site,
body.woocommerce-checkout main.site-main,
body.woocommerce-cart #main-container,
body.woocommerce-cart #main,
body.woocommerce-cart #page,
body.woocommerce-cart .site,
body.woocommerce-cart main.site-main,
body.woocommerce-order-received #main-container,
body.woocommerce-order-received #main,
body.woocommerce-order-received #page,
body.woocommerce-order-received .site,
body.woocommerce-order-received main.site-main {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
  overflow-x: clip;
  --theme-container-edge-spacing: 100% !important;
}

/* Blocksy: margini negativi sul payment box (mobile) → overflow */
@media (max-width: 689.98px) {
  body.woocommerce-checkout .woocommerce-checkout-payment,
  body.woocommerce-cart .woocommerce-checkout-payment,
  #payment.woocommerce-checkout-payment {
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    max-width: 100% !important;
  }

  body.woocommerce-checkout .woocommerce-checkout-payment .place-order,
  #payment .place-order {
    padding-inline: 0 !important;
  }
}

body.woocommerce-checkout form.ct-woocommerce-checkout,
body.woocommerce-checkout .ct-woocommerce-checkout {
  display: block !important;
  grid-template-columns: none !important;
  width: 100% !important;
  max-width: 100% !important;
}

.kc-footer {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Banner WooCommerce "Prossimamente" (solo admin loggato) */
#coming-soon-footer-banner {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  left: 0 !important;
  right: 0 !important;
  overflow-x: hidden !important;
}

html.kc-html-transactional #coming-soon-footer-banner {
  position: fixed !important;
  inset-inline: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  transform: none !important;
}

#coming-soon-footer-banner .coming-soon-footer-banner__content {
  box-sizing: border-box;
  max-width: 100%;
  padding-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right));
  overflow-wrap: anywhere;
}

/* Modali plugin (YITH, Photoswipe) possono forzare overflow oltre il viewport */
body.woocommerce-checkout #yith-quick-view-modal,
body.woocommerce-cart #yith-quick-view-modal,
body.woocommerce-checkout #photoswipe-fullscreen-dialog,
body.woocommerce-cart #photoswipe-fullscreen-dialog,
body.woocommerce-checkout .wa__btn_popup,
body.woocommerce-cart .wa__btn_popup,
body.woocommerce-checkout .wa__popup_chat_box,
body.woocommerce-cart .wa__popup_chat_box {
  display: none !important;
}

/* Header checkout */
.kc-checkout-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 24px 0 24px; border-bottom: 1px solid var(--color-border); margin-bottom: 32px; flex-wrap: wrap; }
.kc-checkout-header__left { display: flex; flex-direction: column; gap: 4px; }
.kc-checkout-page-title { font-family: var(--font-display); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 500; letter-spacing: -.02em; color: var(--color-ink); margin: 0; line-height: 1.05; }
.kc-checkout-header__right { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.kc-checkout-back { font-size: .8125rem; font-weight: 500; color: var(--color-muted); border-bottom: 1px solid var(--color-border); padding-bottom: 1px; transition: color .15s, border-color .15s; }
.kc-checkout-back:hover { color: var(--color-ink); border-color: var(--color-ink); }

/* Steps breadcrumb */
.kc-checkout-steps { display: flex; align-items: center; gap: 6px; list-style: none; padding: 0; margin: 0; flex-wrap: nowrap; }
.kc-checkout-steps li { font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--color-muted); display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.kc-checkout-steps li.is-done { color: var(--color-sage); }
.kc-checkout-steps li.is-done svg { stroke: var(--color-sage); flex-shrink: 0; }
.kc-checkout-steps li.is-active { color: var(--color-ink); font-weight: 600; }
.kc-checkout-steps li + li::before { content: '·'; color: var(--color-border); margin: 0 2px; font-weight: 300; flex-shrink: 0; }

@media (max-width: 859px) {
  .kc-checkout-wrap .kc-container {
    width: min(100% - 28px, var(--max-width));
  }

  .kc-checkout-header {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 20px 0 18px;
    margin-bottom: 24px;
  }

  .kc-checkout-page-title { font-size: clamp(1.5rem, 6.5vw, 1.875rem); }

  .kc-checkout-steps {
    width: 100%;
    justify-content: space-between;
    gap: 0;
  }

  .kc-checkout-steps li {
    font-size: .625rem;
    letter-spacing: .05em;
    gap: 4px;
  }

  .kc-checkout-steps li svg { width: 10px; height: 10px; }

  .kc-checkout-steps li + li::before { display: none; }

  .kc-checkout-wrap .kc-form-section { padding-block: 24px; }

  .kc-checkout-wrap .kc-checkout-login-nudge {
    padding: 16px;
  }

  .kc-checkout-wrap .kc-checkout-payment-block {
    padding: 0;
  }

  .kc-checkout-wrap .kc-summary-toggle { padding: 14px 16px; }

  .kc-checkout-wrap .kc-checkout-summary {
    padding-block: 16px;
    padding-inline: 0;
  }

  .kc-checkout-wrap .kc-checkout-summary__title,
  .kc-checkout-wrap .kc-checkout-coupon,
  .kc-checkout-wrap .kc-checkout-totals,
  .kc-checkout-wrap .kc-checkout-summary > .kc-cart-trust {
    padding-inline: 16px;
  }

  .kc-checkout-wrap .kc-checkout-summary > .kc-checkout-items {
    padding-inline: 16px !important;
    padding-bottom: 12px;
    margin-bottom: 12px;
  }

  .kc-checkout-wrap .kc-checkout-gate__card { padding: 18px 16px; }

  .kc-checkout-wrap .woocommerce-billing-fields__field-wrapper,
  .kc-checkout-wrap .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: 1fr !important;
  }

  .kc-checkout-wrap .form-row-first,
  .kc-checkout-wrap .form-row-last {
    grid-column: 1 !important;
  }
}

/* Mobile summary accordion */
.kc-checkout-summary-mobile { display: block; margin-bottom: 24px; }
@media (min-width: 860px) { .kc-checkout-summary-mobile { display: none; } }

.kc-summary-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 14px 16px;
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-family: var(--font-body);
  text-align: left;
  transition: border-color .15s, box-shadow .15s;
}
.kc-summary-toggle[aria-expanded="true"] {
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  border-bottom-color: transparent;
}
.kc-summary-toggle__left { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.kc-summary-toggle__label { display: flex; align-items: center; gap: 8px; font-size: .875rem; font-weight: 500; color: var(--color-copper); }
.kc-summary-toggle__text { line-height: 1.2; }
.kc-summary-toggle__count { font-size: .75rem; color: var(--color-muted); letter-spacing: .02em; padding-left: 23px; }
.kc-summary-toggle__right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.kc-summary-toggle__total { font-family: var(--font-display); font-size: 1.125rem; font-weight: 500; color: var(--color-ink); line-height: 1; }
.kc-summary-toggle__chev { color: var(--color-muted); transition: transform .2s ease; flex-shrink: 0; }
.kc-summary-toggle[aria-expanded="true"] .kc-summary-toggle__chev { transform: rotate(180deg); }

.kc-summary-mobile-panel {
  background: var(--color-paper);
  border: 1px solid var(--color-border-soft);
  border-top: none;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}
.kc-summary-mobile-panel__inner { padding: 12px 16px 16px; display: flex; flex-direction: column; gap: 14px; }

.kc-checkout-items--mobile {
  padding: 0 16px;
  margin: 0;
  border: none;
  gap: 10px;
}
.kc-summary-mobile-panel .kc-checkout-items--mobile .kc-checkout-item {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  position: relative;
  padding: 14px 14px 16px !important;
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: none !important;
}
.kc-summary-mobile-panel .kc-checkout-item__thumb { align-self: center; }
.kc-summary-mobile-panel .kc-checkout-item__info {
  gap: 4px;
  padding: 0;
  min-width: 0;
}
.kc-summary-mobile-panel .kc-checkout-item__remove {
  position: static;
  align-self: center;
  margin: 0;
}
.kc-summary-mobile-panel .kc-checkout-item__remove:hover {
  border-color: var(--color-rust);
  color: var(--color-rust);
}

.kc-summary-mobile-panel__totals {
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm);
  padding: 4px 16px 12px;
  margin-inline: 16px;
}
.kc-summary-mobile-panel__totals .kc-checkout-totals { margin: 0; }
.kc-summary-mobile-panel__totals .kc-totals-row {
  padding: 10px 0;
  border-bottom: none !important;
  border-top: none !important;
}
.kc-summary-mobile-panel__totals .kc-totals-row--total {
  padding-top: 14px;
  margin-top: 0;
}
.kc-summary-mobile-panel__totals .kc-totals-row--total .kc-totals-row__value > :not(.includes_tax) {
  font-size: 1.375rem;
}
.kc-summary-mobile-panel__totals .kc-totals-row--total .includes_tax {
  font-size: .6875rem;
}

/* ── Annulla grid Blocksy sul form checkout ───────────────────────────── */
/* Blocksy applica repeat(2,1fr) al form: il layout finisce in metà pagina/spostato. */
.woocommerce-checkout form.checkout,
form.ct-woocommerce-checkout,
#kc-checkout-form.kc-checkout-form {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  grid-template-columns: none !important;
  grid-template-areas: none !important;
  float: none !important;
}

/* ── Reset layout Blocksy/WooCommerce nel checkout custom ─────────────── */
/* Rimuove float e griglie di Blocksy che interferiscono col nostro layout */
.kc-checkout-wrap .col2-set,
.kc-checkout-wrap #customer_details,
.kc-checkout-wrap .kc-billing-wrap,
.kc-checkout-wrap .kc-shipping-wrap,
.kc-checkout-wrap .woocommerce-billing-fields,
.kc-checkout-wrap .woocommerce-shipping-fields,
.kc-checkout-wrap .woocommerce-checkout-review-order {
  display: block !important;
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  grid-column: auto !important;
}
.kc-checkout-wrap .col2-set .col-1,
.kc-checkout-wrap .col2-set .col-2 {
  float: none !important;
  width: 100% !important;
  display: block !important;
  padding: 0 !important;
}
/* Clearfix residui */
.kc-checkout-wrap .col2-set::after { display: none !important; }

/* 2-column layout */
.kc-checkout-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 40px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
}
@media (min-width: 860px) {
  .kc-checkout-layout {
    grid-template-columns: minmax(0, 1fr) 380px !important;
    gap: 56px !important;
  }
}
@media (min-width: 1200px) {
  .kc-checkout-layout { grid-template-columns: minmax(0, 1fr) 420px !important; }
}

.kc-checkout-form-col,
.kc-checkout-right-col {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.kc-checkout-form-col {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

.kc-checkout-login-nudge { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 14px 20px; margin-bottom: 24px; }
.kc-checkout-login-nudge p { font-size: .875rem; color: var(--color-muted); margin: 0; }

/* Form sections */
.kc-form-section { padding: 32px 0; border-bottom: 1px solid var(--color-border); }
.kc-form-section:last-child { border-bottom: none; }
.kc-form-section__title { font-family: var(--font-display); font-size: 1.375rem; font-weight: 500; color: var(--color-ink); margin: 0; letter-spacing: -.01em; }

/* Griglia 2 colonne per i campi billing/shipping */
.kc-checkout-wrap .woocommerce-billing-fields__field-wrapper,
.kc-checkout-wrap .woocommerce-shipping-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 16px !important;
  padding-top: 20px;
}
/* Campi wide (email, indirizzo, telefono…) occupano entrambe le colonne */
.kc-checkout-wrap .form-row-wide {
  grid-column: 1 / -1 !important;
}
/* Primo del paio → colonna 1, Ultimo → colonna 2 */
.kc-checkout-wrap .form-row-first { grid-column: 1 !important; width: 100% !important; float: none !important; }
.kc-checkout-wrap .form-row-last  { grid-column: 2 !important; width: 100% !important; float: none !important; }

/* WooCommerce form fields */
.kc-checkout-form .form-row { margin-bottom: 16px !important; }
.kc-checkout-form .form-row label { font-size: .8125rem; font-weight: 500; color: var(--color-muted); margin-bottom: 6px; display: block; letter-spacing: .02em; }
.kc-checkout-form .form-row .required { color: var(--color-copper); }
.kc-checkout-form .form-row input.input-text,
.kc-checkout-form .form-row select,
.kc-checkout-form .form-row textarea {
  width: 100% !important;
  height: 48px !important;
  padding: 0 16px !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--color-surface) !important;
  font-family: var(--font-body) !important;
  font-size: .9375rem !important;
  color: var(--color-ink) !important;
  transition: border-color .15s !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
}
.kc-checkout-form .form-row textarea { height: auto !important; padding: 12px 16px !important; resize: vertical; }
.kc-checkout-form .form-row input.input-text:focus,
.kc-checkout-form .form-row select:focus,
.kc-checkout-form .form-row textarea:focus { border-color: var(--color-copper) !important; outline: none !important; box-shadow: none !important; }
.kc-checkout-form .form-row.woocommerce-invalid input.input-text { border-color: var(--color-rust) !important; }
.kc-checkout-form p.form-row { margin: 0 0 16px !important; }
.kc-checkout-form .col2-set .col-1,
.kc-checkout-form .col2-set .col-2 { width: 100% !important; float: none !important; }
.kc-checkout-form .col2-set { display: grid; gap: 0; }

/* Note ordine — stesso pattern toggle di fattura / spedizione */
.kc-notes-toggle-wrap {
  border-top: 1px solid var(--color-border-soft);
  padding: 20px 0 0;
  margin-top: 8px;
}
.kc-notes-field[hidden] { display: none !important; }
.kc-notes-field:not([hidden]) {
  display: block !important;
  margin-top: 20px;
}
.kc-notes-field textarea.input-text {
  width: 100% !important;
  height: auto !important;
  min-height: 96px;
  padding: 12px 16px !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--color-surface) !important;
  font-family: var(--font-body) !important;
  font-size: .9375rem !important;
  color: var(--color-ink) !important;
  resize: vertical;
  box-sizing: border-box;
}
.kc-notes-field textarea.input-text:focus {
  border-color: var(--color-copper) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Payment section — card unica: express + Stripe UPE + Satispay */
.kc-checkout-payment-block__title { margin: 0 0 16px !important; }

.kc-checkout-pay-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
  overflow-y: visible;
}

/* Express: Apple Pay, Link */
.kc-checkout-express {
  padding: 14px 12px;
  border-bottom: 1px solid var(--color-border-soft);
}
.kc-checkout-express:not(:has(#wc-stripe-express-checkout-element > *)):not(:has(.wc-stripe-express-checkout > *)) {
  display: none;
  padding: 0;
  border: none;
}
.kc-checkout-express #wc-stripe-express-checkout-element,
.kc-checkout-express .wc-stripe-express-checkout {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  width: 100%;
}
.kc-checkout-express #wc-stripe-express-checkout-element > div,
.kc-checkout-express .wc-stripe-express-checkout > div {
  width: 100%;
  max-width: 100%;
}
.kc-checkout-express #wc-stripe-express-checkout-element iframe,
.kc-checkout-express .wc-stripe-express-checkout iframe {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}
/* Separatore duplicato del plugin Stripe */
.kc-checkout-express #wc-stripe-express-checkout-button-separator,
.kc-checkout-express .wc-stripe-express-checkout-button-separator {
  display: none !important;
}

.kc-checkout-pay-card #order_review,
.kc-checkout-pay-card .woocommerce-checkout-review-order {
  margin: 0;
  padding: 0;
}

#payment.woocommerce-checkout-payment {
  margin-inline: 0 !important;
  background: none !important;
  border: none !important;
}

#payment ul.wc_payment_methods,
.woocommerce-checkout-review-order #payment ul.payment_methods {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  background: none !important;
  border: none !important;
}

#payment ul.wc_payment_methods li,
.woocommerce-checkout-review-order #payment ul.payment_methods li {
  border: none !important;
  border-radius: 0 !important;
  border-top: 1px solid var(--color-border-soft) !important;
  padding: 14px 12px !important;
  background: var(--color-surface) !important;
  margin: 0 !important;
  transition: none !important;
}
#payment ul.wc_payment_methods li:first-child,
.woocommerce-checkout-review-order #payment ul.payment_methods li:first-child {
  border-top: none !important;
}

/* Stripe — UPE senza radio "Opzioni di pagamento" */
#payment li.kc-pay-stripe {
  padding: 14px 12px 16px !important;
  background: var(--color-surface) !important;
}
#payment li.kc-pay-stripe:has(.kc-pay-stripe__radio:checked) {
  background: var(--color-surface) !important;
}
#payment li.kc-pay-stripe .kc-pay-stripe__radio {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
#payment li.kc-pay-stripe .kc-pay-stripe__switch {
  display: none;
  align-items: center;
  gap: 10px;
  font-size: .9375rem;
  font-weight: 500;
  color: var(--color-ink);
  cursor: pointer;
  margin: 0 0 8px;
}
#payment li.kc-pay-stripe:not(:has(.kc-pay-stripe__radio:checked)) .kc-pay-stripe__switch {
  display: flex;
}
#payment li.kc-pay-stripe:not(:has(.kc-pay-stripe__radio:checked)) .payment_box {
  display: none !important;
}
#payment li.kc-pay-stripe .payment_box {
  padding: 0 !important;
  margin: 0 !important;
}

/* Satispay — riga alternativa in fondo */
#payment li.kc-pay-satispay {
  padding: 14px 12px !important;
}
#payment li.kc-pay-satispay:has(input:checked) {
  background: var(--color-surface) !important;
}
#payment li.kc-pay-satispay > label {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  width: 100%;
  margin: 0 !important;
  cursor: pointer !important;
}
#payment li.kc-pay-satispay .kc-pay-satispay__label {
  font-size: .9375rem;
  font-weight: 500;
  color: var(--color-ink);
}
#payment li.kc-pay-satispay > label img {
  max-height: 22px;
  width: auto;
  margin-left: auto;
}

#payment ul.wc_payment_methods li label,
#payment ul.payment_methods li label {
  font-size: .9375rem !important;
  font-weight: 500 !important;
  color: var(--color-ink) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
}

#payment .payment_box {
  padding: 0 !important;
  font-size: .875rem;
  color: var(--color-muted);
  line-height: 1.6;
  background: none !important;
  border: none !important;
  margin-inline: 0 !important;
}
#payment .payment_box fieldset,
#payment .payment_box .wc-upe-form,
#payment .payment_box .wc-saved-payment-methods,
#payment .payment_box #wc-stripe-currency-selector,
#payment .payment_box .woocommerce-SavedPaymentMethods-saveNew {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  border: none !important;
}
#payment .payment_box fieldset { min-width: 0; }

#payment .payment_box .woocommerce-SavedPaymentMethods-saveNew {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin-top: 12px !important;
  font-size: .8125rem !important;
  line-height: 1.45 !important;
  color: var(--color-muted) !important;
}
#payment .payment_box .woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] {
  width: 15px !important;
  height: 15px !important;
  margin: 2px 0 0 !important;
  flex-shrink: 0 !important;
  accent-color: var(--color-ink);
}
#payment .payment_box .woocommerce-SavedPaymentMethods-saveNew label {
  display: block !important;
  flex: 1 1 0 !important;
  min-width: 0 !important;
  font-size: inherit !important;
  font-weight: 400 !important;
  color: inherit !important;
  cursor: pointer;
  line-height: inherit !important;
  margin: 0 !important;
}

/*
 * Blocksy (woocommerce.min.css):
 * .woocommerce-checkout.processing > * { pointer-events: none; opacity: .2 }
 * Ripristina interazione solo sul blocco pagamento (non su tutto il form).
 */
form.woocommerce-checkout.processing > .kc-checkout-layout {
  pointer-events: auto !important;
  opacity: 1 !important;
}
form.woocommerce-checkout.processing .kc-checkout-pay-card,
form.woocommerce-checkout.processing .kc-checkout-pay-card *,
form.woocommerce-checkout.processing #payment,
form.woocommerce-checkout.processing #payment * {
  pointer-events: auto !important;
  opacity: 1 !important;
}

#payment.processing,
#payment.processing .payment_box,
#payment.processing .wc-stripe-upe-element,
#payment.processing .wc-stripe-upe-element iframe {
  pointer-events: auto !important;
}

/* Overlay WC su #payment — invisibile e non intercetta tap (iframe Stripe sotto) */
#payment > .blockUI.blockOverlay {
  pointer-events: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

#payment li.kc-pay-stripe:has(.kc-pay-stripe__radio:checked) .kc-pay-stripe__switch {
  display: none !important;
  pointer-events: none !important;
}
#payment li.kc-pay-stripe .kc-pay-stripe__radio {
  pointer-events: none !important;
}

/* Stripe UPE — iframe cliccabile su iOS; overflow-x clip evita spazio bianco a destra da iframe larghi */
#payment .payment_box,
#payment .payment_box fieldset,
#payment .payment_box .wc-upe-form,
#payment .payment_box .wc-stripe-upe-element,
#payment .payment_box .__PrivateStripeElement {
  position: relative;
  z-index: 2;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: clip !important;
  overflow-y: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
  touch-action: manipulation;
  box-sizing: border-box !important;
}
#payment .payment_box .wc-stripe-upe-element iframe,
#payment .payment_box .__PrivateStripeElement iframe,
#wc-stripe-express-checkout-element iframe,
.wc-stripe-express-checkout iframe {
  pointer-events: auto !important;
  touch-action: manipulation;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* blockUI (WC/Stripe) non deve allargare il documento oltre il viewport */
body.woocommerce-checkout .blockUI,
body.woocommerce-checkout .blockOverlay,
body.woocommerce-checkout form.checkout.processing .blockUI {
  max-width: 100% !important;
  width: 100% !important;
  left: 0 !important;
  right: auto !important;
  box-sizing: border-box !important;
}

/* Satispay — nasconde copy promozionale nel payment box */
#payment .payment_method_satispay .payment_box > p,
#payment .payment_box.payment_method_satispay > p {
  display: none !important;
}

@media (min-width: 860px) {
  #payment .payment_box {
    padding-inline: 8px !important;
  }

  #payment .payment_box .wc-stripe-upe-element {
    padding-inline: 4px;
  }
}

@media (max-width: 859px) {
  #payment .payment_box .wc-stripe-upe-element {
    padding-inline: 0;
  }
}
#payment input[type="radio"] { accent-color: var(--color-ink); width: 16px; height: 16px; flex-shrink: 0; }

/* Place order CTA */
#payment .place-order,
.woocommerce-checkout-review-order #payment .place-order {
  padding: 16px 12px 20px !important;
  background: none !important;
  border: none !important;
  border-top: 1px solid var(--color-border-soft) !important;
  margin-top: 0 !important;
}
#payment #place_order,
#place_order {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 56px !important;
  background: var(--color-ink) !important;
  color: var(--color-surface) !important;
  border: none !important;
  border-radius: var(--radius-pill) !important;
  font-family: var(--font-body) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  transition: opacity .18s !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
  padding: 0 !important;
}
#place_order:hover { opacity: .82 !important; }

/* SSL + support sotto il bottone */
.kc-place-order__footer { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: .8125rem; color: var(--color-muted); flex-wrap: wrap; margin-top: 12px; text-align: center; }
@media (min-width: 860px) {
  .kc-place-order__footer { justify-content: flex-start; text-align: left; }
}
.kc-place-order__footer svg { color: var(--color-copper); flex-shrink: 0; }
.kc-place-order__sep { color: var(--color-border); }

/* Privacy/terms renderati da WC — margin-top per staccarlo dal box "nessun metodo di
   pagamento" sopra (senza, i due blocchi si toccavano) */
.woocommerce-privacy-policy-text { font-size: .8125rem !important; color: var(--color-muted) !important; line-height: 1.6 !important; margin: 20px 0 12px !important; }
.woocommerce-privacy-policy-text a { color: var(--color-copper); border-bottom: 1px solid rgba(165,106,91,.3); text-decoration: none; }
.woocommerce-privacy-policy-text a:hover { border-color: var(--color-copper); }

.woocommerce-terms-and-conditions-wrapper { margin: 0; padding: 0; }
.woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text { margin-top: 0 !important; }

/* Termini — stesso look del testo privacy, con checkbox inline */
.kc-terms-consent { margin: 12px 0 0 !important; }
.kc-terms-consent__label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-weight: 400;
  margin: 0;
}
.kc-terms-consent__input {
  width: 15px;
  height: 15px;
  margin: 3px 0 0;
  accent-color: var(--color-ink);
  flex-shrink: 0;
}
.kc-terms-consent__text,
.woocommerce-terms-and-conditions-checkbox-text {
  font-size: inherit;
  color: inherit;
  line-height: inherit;
}
.kc-terms-consent a,
.woocommerce-terms-and-conditions-checkbox-text a {
  color: var(--color-copper);
  border-bottom: 1px solid rgba(165,106,91,.3);
  text-decoration: none;
}
.kc-terms-consent a:hover,
.woocommerce-terms-and-conditions-checkbox-text a:hover {
  border-color: var(--color-copper);
}
.kc-terms-consent .required {
  color: var(--color-copper);
  text-decoration: none;
  border: none;
  margin-left: 2px;
}

/* Summary sidebar */
.kc-checkout-summary-col { display: none !important; }
@media (min-width: 860px) { .kc-checkout-summary-col { display: block !important; min-width: 0 !important; } }

/* Colonna destra checkout: summary + pagamento */
/* Colonna destra: due card separati in flex column */
.kc-checkout-right-col { display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 860px) { .kc-checkout-right-col { position: sticky; top: 88px; align-self: start; } }
/* Payment block: card separato */
.kc-checkout-payment-block { background: none; border: none; border-radius: 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.kc-checkout-back-link { font-size: .8125rem; color: var(--color-muted); border-bottom: 1px solid var(--color-border); padding-bottom: 1px; transition: color .15s; width: fit-content; }
.kc-checkout-back-link:hover { color: var(--color-ink); }
.kc-checkout-summary { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: 20px 0; display: flex; flex-direction: column; gap: 0; }

.kc-checkout-summary__title,
.kc-checkout-summary > .kc-checkout-coupon,
.kc-checkout-summary > .kc-checkout-totals,
.kc-checkout-summary > .kc-cart-trust {
  padding-inline: 20px;
}

.kc-checkout-summary__title { font-family: var(--font-display); font-size: 1.25rem; font-weight: 500; color: var(--color-ink); margin: 0 0 20px; }

/* Item list in summary */
.kc-checkout-summary > .kc-checkout-items {
  list-style: none;
  padding: 0 20px 16px;
  margin: 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-bottom: 1px solid var(--color-border-soft);
}
.kc-checkout-items {
  list-style: none;
  padding: 0 0 16px;
  margin: 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-bottom: 1px solid var(--color-border-soft);
}
.kc-checkout-summary .kc-checkout-items .kc-checkout-item {
  gap: 12px !important;
}
.kc-checkout-summary .kc-checkout-item__info {
  min-width: 0;
  padding-right: 4px;
}
.kc-checkout-summary .kc-checkout-item__remove {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--color-border-soft);
  color: var(--color-muted);
  background: var(--color-surface);
  flex-shrink: 0;
}
.kc-checkout-summary .kc-checkout-item__remove:hover {
  border-color: var(--color-rust);
  color: var(--color-rust);
}
.kc-checkout-wrap ul.kc-checkout-items > li.kc-checkout-item,
.kc-checkout-wrap li.kc-checkout-item {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
}

/* Mobile summary accordion — prodotto | testo | pulsante */
.kc-checkout-wrap .kc-summary-mobile-panel ul.kc-checkout-items--mobile > li.kc-checkout-item {
  display: grid !important;
  grid-template-columns: 72px minmax(0, 1fr) auto !important;
  grid-template-rows: auto !important;
  align-items: center !important;
  gap: 12px !important;
  position: relative !important;
  padding: 14px 14px 16px !important;
  margin: 0 !important;
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border-soft) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: none !important;
}
.kc-checkout-wrap .kc-summary-mobile-panel .kc-checkout-item__thumb {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: center !important;
}
.kc-checkout-wrap .kc-summary-mobile-panel .kc-checkout-item__img-wrap {
  width: 72px !important;
  height: 90px !important;
  border-radius: 8px !important;
}
.kc-checkout-wrap .kc-summary-mobile-panel .kc-checkout-item__info {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 4px !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: auto !important;
  min-width: 0 !important;
  padding: 0 !important;
}
.kc-checkout-wrap .kc-summary-mobile-panel .kc-checkout-item__name {
  font-family: var(--font-display) !important;
  font-size: 1rem !important;
  line-height: 1.25 !important;
}
.kc-checkout-wrap .kc-summary-mobile-panel .kc-checkout-item__price {
  font-family: var(--font-display) !important;
  font-size: 1.0625rem !important;
}
.kc-checkout-wrap .kc-summary-mobile-panel .kc-checkout-item__remove {
  position: static !important;
  grid-column: 3 !important;
  grid-row: 1 !important;
  align-self: center !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
}

.kc-checkout-wrap .kc-summary-mobile-panel__totals .kc-checkout-totals .kc-totals-row {
  border-bottom: none !important;
  border-top: none !important;
}
.kc-checkout-wrap .kc-summary-mobile-panel__totals .kc-totals-row--total {
  border-top: 1px solid var(--color-border-soft) !important;
  border-bottom: none !important;
  padding-top: 14px !important;
  margin-top: 0 !important;
}
.kc-checkout-item__thumb { position: relative; flex-shrink: 0; align-self: center; }
.kc-checkout-item__img-wrap { width: 52px; height: 66px; border-radius: 6px; overflow: hidden; background: var(--color-paper); }
.kc-checkout-item__img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.kc-checkout-item__img-placeholder { width: 100%; height: 100%; background: var(--color-paper); }
.kc-checkout-item__qty { position: absolute; top: -6px; right: -6px; background: var(--color-muted); color: #fff; font-size: 10px; font-weight: 700; width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 2; }
.kc-checkout-item__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 0; }
.kc-checkout-item__name { font-size: .9375rem; font-weight: 500; color: var(--color-ink); line-height: 1.35; }
.kc-checkout-item__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  padding: 0;
  color: var(--color-border);
  text-decoration: none;
  transition: color .15s;
  flex-shrink: 0;
}
.kc-checkout-item__remove:hover { color: var(--color-rust); }
.kc-checkout-item__price { font-size: .875rem; font-weight: 500; color: var(--color-ink); line-height: 1.2; }
.kc-checkout-item__price .amount { color: var(--color-ink); }

/* Coupon in summary */
.kc-checkout-coupon { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--color-border-soft); min-width: 0; }
.kc-checkout-coupon__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}
.kc-checkout-coupon__row .kc-coupon-input {
  flex: none;
  min-width: 0;
  width: 100%;
}
.kc-checkout-coupon__row .kc-btn {
  white-space: nowrap;
  flex-shrink: 0;
}
.kc-checkout-coupon__form { padding-top: 8px; min-width: 0; }
.kc-checkout-discount { color: var(--color-sage); font-weight: 500; }
.kc-checkout-coupon__applied { list-style: none; padding: 0; margin: 8px 0 0; font-size: .8125rem; color: var(--color-muted); display: flex; flex-direction: column; gap: 4px; }

/* Totals in summary */
.kc-checkout-totals { display: flex; flex-direction: column; }
.kc-free-badge { font-size: .8125rem; font-weight: 500; color: var(--color-sage); }
.kc-totals-row__pending { font-size: .8125rem; color: var(--color-muted); font-weight: 400; font-style: italic; }
.kc-btn--full { width: 100%; justify-content: center; }

/* ── Toggle fattura / indirizzo diverso ──────────────────────────── */
/* THWCFE: duplicati del toggle custom sotto i dati di fatturazione */
#billing_question_field,
#billing_type_field,
#billing_user_id_field,
#billing_business_field,
#billing_vat_field,
#billing_company_id_field,
p.form-row:has(#billing_question),
p.form-row:has(#billing_type) { display: none !important; }

/* Mailchimp checkout — fallback se il plugin ignora il filtro PHP */
.mailchimp-newsletter,
p.form-row.mailchimp-newsletter,
#mailchimp_woocommerce_newsletter_field { display: none !important; }

.kc-invoice-toggle-wrap,
.kc-shipping-toggle-wrap {
  border-top: 1px solid var(--color-border-soft);
  padding: 20px 0 0;
  margin-top: 8px;
}
.kc-toggle-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: .9375rem;
  color: var(--color-text);
  user-select: none;
  line-height: 1.35;
}
.kc-toggle-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.kc-toggle-box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  border: 1.5px solid var(--color-border);
  border-radius: 5px;
  background: var(--color-surface);
  flex-shrink: 0;
  transition: border-color .15s, background .15s;
}
.kc-toggle-label input[type="checkbox"] { display: none; }
.kc-toggle-box svg { opacity: 0; transition: opacity .15s; stroke: var(--color-surface); }
.kc-toggle-label input:checked ~ .kc-toggle-box {
  background: var(--color-ink);
  border-color: var(--color-ink);
}
.kc-toggle-label input:checked ~ .kc-toggle-box svg { opacity: 1; }
.kc-toggle-optional { font-size: .8125rem; color: var(--color-muted); margin: 0; }

/* Campi toggle: hidden per default, grid quando aperti */
/* IMPORTANTE: display:grid esplicito sovrascrive l'attributo [hidden] —
   usiamo [hidden] per nascondere e :not([hidden]) per mostrare */
.kc-invoice-fields[hidden],
.kc-shipping-fields[hidden] { display: none !important; }

.kc-invoice-fields:not([hidden]),
.kc-shipping-fields:not([hidden]) {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
  margin-top: 20px;
}
.kc-invoice-fields .form-row-wide,
.kc-shipping-fields .form-row-wide { grid-column: 1 / -1; }
.kc-invoice-fields .form-row-first,
.kc-shipping-fields .form-row-first { grid-column: 1; width: 100% !important; float: none !important; }
.kc-invoice-fields .form-row-last,
.kc-shipping-fields .form-row-last  { grid-column: 2; width: 100% !important; float: none !important; }

/* ══════════════════════════════════════════════════════════════════════════
   Thank you page
   ══════════════════════════════════════════════════════════════════════════ */

.kc-thankyou-wrap { background: var(--color-bg); padding: 60px 0 100px; }

/* Hero */
.kc-thankyou-hero { text-align: center; max-width: 560px; margin: 0 auto 64px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.kc-thankyou-hero__icon { width: 60px; height: 60px; border-radius: 50%; background: var(--color-sage); display: flex; align-items: center; justify-content: center; color: #fff; margin-bottom: 8px; }
.kc-thankyou-hero__eyebrow { font-size: .75rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--color-sage); }
.kc-thankyou-hero__title { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 500; color: var(--color-ink); letter-spacing: -.02em; line-height: 1.06; margin: 0; }
.kc-thankyou-hero__sub { font-size: 1rem; color: var(--color-muted); line-height: 1.65; max-width: 44ch; }

/* Layout */
.kc-thankyou-layout { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
@media (min-width: 860px) { .kc-thankyou-layout { grid-template-columns: 1fr 360px; gap: 56px; } }

/* Order details */
.kc-thankyou-details { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: 32px; display: flex; flex-direction: column; gap: 28px; }
.kc-thankyou-details__title { font-family: var(--font-display); font-size: 1.375rem; font-weight: 500; color: var(--color-ink); margin: 0; }

/* Order meta */
.kc-order-meta { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0; border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); overflow: hidden; }
.kc-order-meta li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; background: var(--color-bg); border-bottom: 1px solid var(--color-border-soft); }
.kc-order-meta li:last-child { border-bottom: none; }
.kc-order-meta__label { font-size: .8125rem; color: var(--color-muted); }
.kc-order-meta__value { font-family: var(--font-display); font-size: 1rem; font-weight: 500; color: var(--color-ink); text-align: right; }

/* Order items */
.kc-order-items { display: flex; flex-direction: column; gap: 12px; }
.kc-order-item { display: grid; grid-template-columns: 56px 1fr auto; gap: 14px; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--color-border-soft); }
.kc-order-item:last-child { border-bottom: none; padding-bottom: 0; }
.kc-order-item__img { width: 56px; height: 70px; border-radius: 6px; overflow: hidden; background: var(--color-paper); }
.kc-order-item__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kc-order-item__info { display: flex; flex-direction: column; gap: 2px; }
.kc-order-item__name { font-size: .875rem; font-weight: 500; color: var(--color-ink); line-height: 1.3; }
.kc-order-item__qty { font-size: .8125rem; color: var(--color-muted); }
.kc-order-item__price { font-size: .9375rem; font-weight: 500; color: var(--color-ink); white-space: nowrap; }
.kc-order-item__price .amount { color: var(--color-ink); }

/* Next steps sidebar */
.kc-thankyou-next { display: flex; flex-direction: column; gap: 24px; position: sticky; top: 88px; }
.kc-thankyou-next__card { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: 28px; }
.kc-next-steps { list-style: none; padding: 0; margin: 16px 0 0; display: flex; flex-direction: column; gap: 20px; }
.kc-next-steps li { display: grid; grid-template-columns: 32px 1fr; gap: 12px; align-items: start; }
.kc-next-steps__num { font-family: var(--font-display); font-size: 1.375rem; font-weight: 500; color: var(--color-border); line-height: 1.2; }
.kc-next-steps li strong { font-size: .9rem; font-weight: 600; color: var(--color-ink); display: block; margin-bottom: 3px; }
.kc-next-steps li p { font-size: .8125rem; color: var(--color-muted); line-height: 1.55; margin: 0; }

.kc-thankyou-next__cta { background: var(--color-paper); border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.kc-thankyou-next__cta-label { font-size: .875rem; font-weight: 500; color: var(--color-ink); }
/* "← Torna allo shop": fuori dalla card, sotto, con un margine ridotto */
.kc-thankyou-next__back { display: inline-block; align-self: center; margin-top: 16px; }
.kc-thankyou-wa { margin-top: 4px; }

/* Failed order */
.kc-thankyou-failed { text-align: center; max-width: 500px; margin: 80px auto; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.kc-thankyou-failed__title { font-family: var(--font-display); font-size: 2rem; font-weight: 500; color: var(--color-ink); }
.kc-thankyou-failed__sub { font-size: 1rem; color: var(--color-muted); }

/* ══════════════════════════════════════════════════════════════════════════
   Prenota — page-prenota.php
   ══════════════════════════════════════════════════════════════════════════ */

/* Hero */
.pr-hero { padding: 72px 0 56px; }
@media (min-width: 768px) { .pr-hero { padding: 112px 0 80px; } }
.pr-hero__intro { font-size: 1.0625rem; color: var(--color-muted); line-height: 1.65; max-width: 56ch; margin-top: 16px; }

/* Booking options grid */
.pr-options-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 32px; }
@media (min-width: 900px) { .pr-options-grid { grid-template-columns: repeat(4, 1fr); } }
.pr-option-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 28px 24px; display: flex; flex-direction: column; gap: 12px; }
.pr-option-card__icon { font-size: 1.5rem; color: var(--color-copper); }
.pr-option-card__title { font-family: var(--font-display); font-size: 1.25rem; font-weight: 500; color: var(--color-ink); line-height: 1.1; }
.pr-option-card__desc { font-size: .875rem; color: var(--color-muted); line-height: 1.55; margin: 0; }

/* Contact grid */
.pr-contact-grid { display: grid; gap: 56px; }
@media (min-width: 768px) { .pr-contact-grid { grid-template-columns: 1fr 1fr; gap: 64px; } }

/* Contact channels (left column) */
.pr-contact-channels { display: flex; flex-direction: column; gap: 12px; }
.pr-contact-channels .kc-eyebrow { margin-bottom: 8px; }

.pr-contact-row { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border-radius: var(--radius-md); border: 1px solid var(--color-border); text-decoration: none; transition: border-color .15s, background .15s; }
.pr-contact-row:hover { border-color: var(--color-copper); background: color-mix(in srgb, var(--color-copper) 4%, transparent); }
.pr-contact-row__icon { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.pr-contact-row__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pr-contact-row__label { font-family: var(--font-body); font-size: .9375rem; font-weight: 500; color: var(--color-ink); }
.pr-contact-row__value { font-size: .875rem; color: var(--color-muted); }
.pr-contact-row__arrow { color: var(--color-muted); flex-shrink: 0; }

/* WA row */
.pr-contact-row--wa { background: rgba(37,211,102,.04); border-color: rgba(37,211,102,.2); }
.pr-contact-row--wa:hover { background: rgba(37,211,102,.08); border-color: rgba(37,211,102,.35); }
.pr-contact-row__icon--wa { background: #25D366; color: #fff; }

/* IG row */
.pr-contact-row__icon--ig { background: linear-gradient(135deg, #f09433, #e6683c, #bc1888); color: #fff; }

/* Phone row */
.pr-contact-row__icon--phone { background: var(--color-sand); color: var(--color-taupe); }

/* Email row */
.pr-contact-row__icon--email { background: var(--color-paper); color: var(--color-copper); }

/* Contact info (right column) */
.pr-contact-info { display: flex; flex-direction: column; gap: 24px; }
.pr-contact-info .kc-eyebrow { margin-bottom: 0; }

.pr-address { font-style: normal; display: flex; flex-direction: column; gap: 4px; }
.pr-address__name { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; color: var(--color-ink); margin-bottom: 4px; }
.pr-address__line { font-size: .9375rem; color: var(--color-muted); }

.pr-map { border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--color-border); height: 220px; }

.pr-divider { height: 1px; background: var(--color-border); }

.pr-lang-badges { display: flex; gap: 10px; margin-top: 12px; }
.pr-lang-badge { display: inline-flex; align-items: center; padding: 7px 18px; border-radius: var(--radius-pill); font-family: var(--font-body); font-size: .875rem; font-weight: 500; }
.pr-lang-badge--it { background: var(--color-sand); color: var(--color-taupe); }
.pr-lang-badge--en { background: rgba(94,110,94,.1); color: var(--color-sage); }

.pr-alt-lang-link { font-size: .875rem; color: var(--color-muted); font-family: var(--font-body); transition: color .15s; margin-top: 4px; display: inline-block; }
.pr-alt-lang-link:hover { color: var(--color-ink); }

/* FAQ — 2-col grid */
.pr-faq-grid { display: grid; gap: 48px; align-items: start; }
@media (min-width: 1024px) { .pr-faq-grid { grid-template-columns: 3fr 2fr; gap: 64px; } }

/* FAQ accordion */
.pr-faq { display: flex; flex-direction: column; }
.pr-faq__item { border-top: 1px solid var(--color-border); }
.pr-faq__border-bottom { border-top: 1px solid var(--color-border); }
.pr-faq__q { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 0; cursor: pointer; list-style: none; user-select: none; }
.pr-faq__q::-webkit-details-marker { display: none; }
.pr-faq__q-inner { display: flex; align-items: flex-start; gap: 16px; flex: 1; min-width: 0; }
.pr-faq__num { font-family: var(--font-display); font-size: 1.375rem; line-height: 1.2; font-weight: 500; color: var(--color-copper); width: 28px; flex-shrink: 0; padding-top: 2px; }
.pr-faq__dt { font-family: var(--font-body); font-size: .9375rem; font-weight: 500; color: var(--color-ink); line-height: 1.45; padding-top: 2px; }
.pr-faq__icon { flex-shrink: 0; margin-top: 3px; color: var(--color-muted); }
.pr-faq__icon-plus { display: block; }
.pr-faq__icon-minus { display: none; }
details[open] .pr-faq__icon-plus { display: none; }
details[open] .pr-faq__icon-minus { display: block; }
.pr-faq__a { font-size: .875rem; color: var(--color-muted); line-height: 1.8; padding: 0 0 20px 44px; margin: -4px 0 0; }

/* FAQ sticky sidebar card */
.pr-faq-sidebar { position: static; }
@media (min-width: 1024px) { .pr-faq-sidebar { position: sticky; top: 40px; } }
.pr-faq-card { background: var(--color-botanical); border-radius: var(--radius-xl); overflow: hidden; padding: 36px 32px; display: flex; flex-direction: column; gap: 28px; }
.pr-faq-card__top { display: flex; flex-direction: column; gap: 16px; }
.pr-faq-card__eyebrow { font-family: var(--font-body); font-size: .625rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--color-champagne); }
.pr-faq-card__title { font-family: var(--font-display); font-size: 2rem; font-weight: 500; line-height: 1.1; color: var(--color-paper); margin: 0; }
.pr-faq-card__sub { font-size: .875rem; color: var(--color-paper); line-height: 1.75; font-family: var(--font-body); margin: 0; opacity: .8; }
.pr-faq-card__divider { height: 1px; background: rgba(255,255,255,.1); }
.pr-faq-card__actions { display: flex; flex-direction: column; gap: 12px; }
.pr-faq-card__wa { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 24px; border-radius: var(--radius-pill); background: rgba(37,211,102,.18); color: #5fda8a; font-family: var(--font-body); font-size: .875rem; font-weight: 500; transition: opacity .18s; }
.pr-faq-card__wa:hover { opacity: .82; color: #5fda8a; }
.pr-faq-card__secondary { font-size: .8125rem; color: rgba(255,253,248,.55); text-align: center; text-decoration: none; transition: color .15s; }
.pr-faq-card__secondary:hover { color: var(--color-champagne); }
.kc-thankyou-failed__actions { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; margin-top: 8px; }

/* ══════════════════════════════════════════════════════════════════════════
   Hair Lab page — v2 (ported from Astro 1:1)
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Hero image column ────────────────────────────────────────────────────── */
.hl-hero__img { display: none; position: relative; background: var(--color-ink); border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 4/5; }
@media (min-width: 768px) { .hl-hero__img { display: block; } }
.hl-hero__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hl-hero__img-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(26,22,16,.6), rgba(26,22,16,.1) 50%, transparent); pointer-events: none; }

/* ── kc-section-sm ────────────────────────────────────────────────────────── */
.kc-section-sm { padding: 40px 0; }
@media (min-width: 768px) { .kc-section-sm { padding: 56px 0; } }

/* ── Chi siamo — KronocareIntro port ─────────────────────────────────────── */
.hl-intro-split { display: grid; gap: 40px; margin-bottom: 56px; }
@media (min-width: 768px) { .hl-intro-split { grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; } }
.hl-intro-headline { font-family: var(--font-display); font-size: clamp(2.5rem,4.5vw,3.75rem); font-weight: 500; line-height: 1.05; letter-spacing: -.02em; color: var(--color-ink); }
.hl-intro-headline em { font-style: italic; color: var(--color-copper); font-weight: 400; }
.hl-intro-body { display: flex; flex-direction: column; gap: 20px; padding-top: 4px; }
.hl-intro-body p { font-size: 1.0625rem; color: var(--color-muted); line-height: 1.65; margin: 0; }

.hl-pillar-grid { display: grid; gap: 16px; margin-bottom: 16px; }
@media (min-width: 560px) { .hl-pillar-grid { grid-template-columns: repeat(3,1fr); } }
.hl-pillar-card { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 32px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; min-height: 220px; transition: border-color .2s; text-decoration: none; }
.hl-pillar-card:hover { border-color: rgba(165,106,91,.4); }
.hl-pillar-card__label { display: block; font-family: var(--font-display); font-size: 2rem; font-weight: 500; color: var(--color-copper); margin-bottom: 12px; line-height: 1; }
.hl-pillar-card__body { display: block; font-size: .875rem; color: var(--color-muted); line-height: 1.6; }
.hl-pillar-card__cta { align-self: flex-start; font-size: .875rem; font-weight: 500; font-family: var(--font-body); color: var(--color-ink); border-bottom: 1px solid rgba(165,106,91,.4); transition: border-color .2s; padding-bottom: 2px; }
.hl-pillar-card:hover .hl-pillar-card__cta { border-color: var(--color-copper); }

.hl-trust-grid { display: grid; gap: 16px; }
@media (min-width: 560px) { .hl-trust-grid { grid-template-columns: repeat(3,1fr); } }
.hl-trust-card { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: var(--radius-sm); padding: 28px; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; }
.hl-trust-card--en { background: var(--color-copper); border-color: var(--color-copper); }
.hl-trust-card__rating-row { display: flex; align-items: center; gap: 8px; font-size: .875rem; font-weight: 500; color: var(--color-muted); }
.hl-trust-card--en .hl-trust-card__rating-row { color: rgba(255,254,249,.85); }
.hl-trust-stars { color: var(--color-champagne); letter-spacing: 1px; }
.hl-trust-card__source { color: var(--color-muted); }
.hl-trust-card__score { font-family: var(--font-display); font-size: 4rem; font-weight: 500; color: var(--color-ink); line-height: 1; letter-spacing: -.02em; margin: 0; }
.hl-trust-card__score em { font-style: normal; color: var(--color-copper); }
.hl-trust-card__score--en { font-family: var(--font-display); font-size: 2.75rem; font-weight: 500; color: var(--color-surface); line-height: 1.05; }
.hl-trust-card p { font-size: .875rem; color: var(--color-muted); line-height: 1.45; margin: 0; }
.hl-trust-card--en p { color: rgba(255,254,249,.75); }
.hl-trust-card__tag { font-size: .75rem; font-weight: 500; color: var(--color-copper); }
.hl-trust-card__tag--en { color: rgba(255,254,249,.9); }

/* ── Pagine legali ────────────────────────────────────────────────────────── */
.kc-legal-page { background: var(--color-bg); }

.kc-legal-hero { padding: 56px 0 40px; border-bottom: 1px solid var(--color-border); background: var(--color-paper); }
.kc-legal-breadcrumb { display: flex; align-items: center; gap: 8px; font-size: .8125rem; color: var(--color-muted); margin-bottom: 20px; }
.kc-legal-breadcrumb a { color: var(--color-muted); transition: color .15s; }
.kc-legal-breadcrumb a:hover { color: var(--color-ink); }
.kc-legal-breadcrumb span[aria-hidden] { opacity: .4; }
.kc-legal-title { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 400; color: var(--color-ink); letter-spacing: -.02em; line-height: 1.05; margin: 0 0 12px; }
.kc-legal-updated { font-size: .8125rem; color: var(--color-muted); letter-spacing: .06em; text-transform: uppercase; }

.kc-legal-body { padding: 64px 0 80px; }
.kc-legal-layout { display: grid; grid-template-columns: 240px 1fr; gap: 64px; align-items: start; }
@media (max-width: 900px) { .kc-legal-layout { grid-template-columns: 1fr; gap: 40px; } }

/* TOC */
.kc-legal-toc { position: sticky; top: 100px; grid-column: 1; }
.kc-legal-content { grid-column: 2; }
@media (max-width: 900px) { .kc-legal-content { grid-column: 1; } }
.kc-legal-toc__title { font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--color-muted); margin-bottom: 14px; }
.kc-toc-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.kc-toc-list__item { }
.kc-toc-list__item--sub { padding-left: 14px; }
.kc-toc-list__link { display: block; font-size: .8125rem; color: var(--color-muted); padding: 5px 0 5px 12px; border-left: 2px solid transparent; line-height: 1.4; transition: color .15s, border-color .15s; text-decoration: none; }
.kc-toc-list__link:hover { color: var(--color-ink); border-left-color: var(--color-border); }
.kc-toc-list__link--active { color: var(--color-ink); border-left-color: var(--color-copper); font-weight: 500; }
@media (max-width: 900px) { .kc-legal-toc { position: static; } }

/* Contenuto */
.kc-legal-content h2 { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; color: var(--color-ink); margin: 48px 0 14px; padding-top: 8px; }
.kc-legal-content h2:first-child { margin-top: 0; }
.kc-legal-content h3 { font-family: var(--font-body); font-size: 1rem; font-weight: 600; color: var(--color-ink); margin: 28px 0 10px; letter-spacing: .01em; }
.kc-legal-content p { font-size: .9375rem; color: var(--color-muted); line-height: 1.75; margin: 0 0 14px; }
.kc-legal-content ul, .kc-legal-content ol { padding-left: 20px; margin: 0 0 14px; display: flex; flex-direction: column; gap: 6px; }
.kc-legal-content li { font-size: .9375rem; color: var(--color-muted); line-height: 1.7; }
.kc-legal-content strong { color: var(--color-ink); font-weight: 600; }
.kc-legal-content a { color: var(--color-copper); text-decoration: underline; text-underline-offset: 3px; }
.kc-legal-content a:hover { color: var(--color-rust); }
.kc-legal-content em { color: var(--color-muted); font-style: italic; font-size: .875rem; }

/* Nav strip */
.kc-legal-nav-strip { background: var(--color-paper); border-top: 1px solid var(--color-border); padding: 40px 0; }
.kc-legal-nav-strip__label { font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--color-muted); margin-bottom: 20px; }
.kc-legal-nav-strip__list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.kc-legal-nav-strip__link { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 18px; border-radius: var(--radius-pill); font-size: .875rem; font-weight: 500; color: var(--color-muted); border: 1px solid var(--color-border); background: var(--color-surface); transition: color .15s, border-color .15s; text-decoration: none; }
.kc-legal-nav-strip__link:hover { color: var(--color-ink); border-color: var(--color-ink); }

/* ── Gallery fotografica ──────────────────────────────────────────────────── */
.hl-gallery-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media (min-width: 768px) { .hl-gallery-grid { grid-template-columns: 1fr 1fr 1fr; gap: 12px; } }
.hl-gallery-item { overflow: hidden; border-radius: 8px; background: var(--color-sand); }
.hl-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4/3; transition: transform .5s cubic-bezier(.16,1,.3,1); }
.hl-gallery-item:hover img { transform: scale(1.03); }
.hl-gallery-item--tall { grid-column: span 2; }
@media (min-width: 768px) { .hl-gallery-item--tall { grid-column: 1; grid-row: span 2; } }
.hl-gallery-item--tall img { aspect-ratio: 3/4; }

/* ── Checkout gate: ospite vs login ──────────────────────────────────────── */

/* Quando il gate è attivo (classe su <html> aggiunta dal JS inline):
   nasconde billing, payment e summary mobile; mostra il gate */
.kc-show-gate #kc-checkout-billing-fields { display: none !important; }
.kc-show-gate #kc-checkout-payment-block  { display: none !important; }
.kc-show-gate .kc-checkout-summary-mobile { display: none !important; }

/* Il gate è visibile solo se la classe kc-show-gate è presente sull'html */
.kc-checkout-gate { display: none; }
.kc-show-gate .kc-checkout-gate { display: block; }

.kc-checkout-gate {
  padding-top: 8px;
}
.kc-checkout-gate__title {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 500;
  letter-spacing: -.02em;
  color: var(--color-ink);
  margin: 0 0 10px;
  line-height: 1.1;
}
.kc-checkout-gate__sub {
  font-size: .9rem;
  color: var(--color-muted);
  margin: 0 0 28px;
  line-height: 1.6;
}
.kc-checkout-gate__cards {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.kc-checkout-gate__card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto auto;
  column-gap: 16px;
  row-gap: 2px;
  align-items: center;
  padding: 20px 22px;
  background: var(--color-surface);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  cursor: pointer;
  text-align: left;
  text-decoration: none;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  transition: border-color .18s, box-shadow .18s, transform .18s;
  position: relative;
  overflow: hidden;
}
.kc-checkout-gate__card:hover {
  border-color: var(--color-copper);
  box-shadow: 0 8px 32px rgba(27,22,18,.1);
  transform: translateY(-2px);
}
.kc-checkout-gate__card--accent {
  background: var(--color-champagne);
  border-color: var(--color-champagne);
  color: var(--color-ink);
}
.kc-checkout-gate__card--accent:hover {
  border-color: var(--color-taupe);
  background: var(--color-sand);
  color: var(--color-ink);
}
.kc-checkout-gate__card--accent .kc-checkout-gate__card-desc { color: var(--color-taupe); }
.kc-checkout-gate__card--accent .kc-checkout-gate__card-arrow { color: var(--color-rust); }
.kc-checkout-gate__card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--color-paper);
  border-radius: var(--radius-sm);
  flex-shrink: 0;
  grid-row: 1 / 3;
}
.kc-checkout-gate__card--accent .kc-checkout-gate__card-icon {
  background: rgba(255,253,248,.35);
}
.kc-checkout-gate__card-label {
  font-size: 1rem;
  font-weight: 600;
  color: inherit;
  line-height: 1.2;
  grid-column: 2;
  grid-row: 1;
}
.kc-checkout-gate__card-desc {
  font-size: .8125rem;
  color: var(--color-muted);
  line-height: 1.4;
  grid-column: 2;
  grid-row: 2;
}
.kc-checkout-gate__card-arrow {
  font-size: 1.125rem;
  color: var(--color-copper);
  grid-column: 3;
  grid-row: 1 / 3;
  transition: transform .15s;
}
.kc-checkout-gate__card:hover .kc-checkout-gate__card-arrow { transform: translateX(4px); }

/* Login nudge bar (sopra ai dati di fatturazione, solo ospiti) */
.kc-checkout-login-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  background: var(--color-ink);
  border-radius: var(--radius-sm);
  margin-bottom: 24px;
  text-decoration: none;
  color: var(--color-surface);
  font-size: .875rem;
  font-weight: 500;
  transition: background .15s;
}
.kc-checkout-login-bar:hover { background: var(--color-botanical); }
.kc-checkout-login-bar span:first-child { color: rgba(255,253,248,.75); }
.kc-checkout-login-bar span:last-child  { color: var(--color-champagne); white-space: nowrap; }
@media (min-width: 768px) { .hl-gallery-item--tall img { aspect-ratio: auto; height: 100%; } }

/* ── My Account — Login / Registrazione ─────────────────────────────────── */

.kc-login-wrap { background: var(--color-bg); min-height: 70vh; padding: 60px 0 80px; }
.kc-login-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 960px;
  margin: 0 auto;
  min-height: 560px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
}
@media (max-width: 700px) {
  .kc-login-grid { grid-template-columns: 1fr; max-width: 480px; }
  .kc-login-editorial { display: none; }
}

/* Colonna form */
.kc-login-form-col {
  background: var(--color-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 44px;
}
.kc-login-form-inner { width: 100%; max-width: 360px; }

/* Brand logo — riusa .kc-header__logo (stesso logo testuale dell'header) */
.kc-login-brand { margin-bottom: 36px; }

/* Tabs */
.kc-login-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1.5px solid var(--color-border);
  margin-bottom: 32px;
}
.kc-login-tab {
  flex: 1;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1.5px;
  padding: 10px 0 12px;
  font-family: var(--font-body);
  font-size: .9375rem;
  font-weight: 500;
  color: var(--color-muted);
  cursor: pointer;
  transition: color .15s, border-color .15s;
}
.kc-login-tab.is-active { color: var(--color-ink); border-bottom-color: var(--color-ink); }
.kc-login-tab:hover { color: var(--color-ink); }

/* Heading */
.kc-login-heading { margin-bottom: 28px; }
.kc-login-heading--tab { margin-bottom: 24px; }
.kc-login-title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 500;
  letter-spacing: -.02em;
  color: var(--color-ink);
  margin: 6px 0 8px;
  line-height: 1.1;
}
.kc-login-sub { font-size: .875rem; color: var(--color-muted); margin: 0; line-height: 1.55; }

/* Form fields */
.kc-login-form .kc-form-field { margin-bottom: 18px; }
.kc-login-form .kc-form-field label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: .8125rem;
  font-weight: 500;
  color: var(--color-muted);
  margin-bottom: 7px;
  letter-spacing: .02em;
}
.kc-login-forgot {
  font-size: .75rem;
  font-weight: 400;
  color: var(--color-copper);
  text-decoration: none;
}
.kc-login-forgot:hover { text-decoration: underline; }
.kc-required { color: var(--color-rust); }
.kc-login-form .kc-input {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  background: var(--color-bg);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: .9375rem;
  color: var(--color-ink);
  transition: border-color .15s;
  display: block;
}
.kc-login-form .kc-input:focus { border-color: var(--color-copper); outline: none; }
.kc-login-form .kc-input::placeholder { color: var(--color-border); }

/* Checkbox */
.kc-checkbox-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .8125rem;
  color: var(--color-muted);
  cursor: pointer;
  margin-bottom: 24px;
  user-select: none;
}
.kc-checkbox { position: absolute; opacity: 0; width: 0; height: 0; }
.kc-checkbox-box {
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--color-border);
  border-radius: 5px;
  background: var(--color-bg);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .15s, background .15s;
}
.kc-checkbox-box svg { opacity: 0; transition: opacity .12s; stroke: var(--color-surface); }
.kc-checkbox:checked + .kc-checkbox-box { background: var(--color-ink); border-color: var(--color-ink); }
.kc-checkbox:checked + .kc-checkbox-box svg { opacity: 1; }

/* Submit button */
.kc-btn--full { width: 100%; justify-content: center; }

/* Switch link */
.kc-login-switch {
  margin-top: 20px;
  text-align: center;
  font-size: .8125rem;
  color: var(--color-muted);
}
.kc-login-switch__btn {
  background: none;
  border: none;
  padding: 0;
  font-family: var(--font-body);
  font-size: inherit;
  color: var(--color-copper);
  cursor: pointer;
  font-weight: 500;
}
.kc-login-switch__btn:hover { text-decoration: underline; }

/* Note */
.kc-login-note { font-size: .8125rem; color: var(--color-muted); margin-bottom: 18px; line-height: 1.5; }

/* Pannello editoriale */
.kc-login-editorial {
  background: var(--color-ink);
  display: flex;
  align-items: flex-end;
  padding: 48px 44px;
  position: relative;
  overflow: hidden;
}
.kc-login-editorial::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(165,106,91,.15) 0%, transparent 65%);
  pointer-events: none;
}
.kc-login-editorial__inner { position: relative; }
.kc-login-editorial__quote {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: 400;
  font-style: italic;
  color: var(--color-surface);
  line-height: 1.45;
  margin: 0 0 16px;
  letter-spacing: -.01em;
  border-left: 2px solid var(--color-champagne);
  padding-left: 20px;
}
.kc-login-editorial__brand {
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-champagne);
  margin: 0 0 32px;
}
.kc-login-editorial__features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.kc-login-editorial__features li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .8125rem;
  color: rgba(255,253,248,.65);
  line-height: 1.3;
}
.kc-login-editorial__features li svg { stroke: var(--color-champagne); flex-shrink: 0; }

/* ── Tab Ingredienti ─────────────────────────────────────────────────────── */
.kc-tab-ingredienti { max-width: 680px; padding: 0; margin: 0; }
.kc-tab-ingredienti__label { font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--color-taupe); margin-bottom: 12px; }
.kc-tab-ingredienti__text { font-size: .875rem; color: var(--color-muted); line-height: 1.7; }

/* ── Product FAQ ─────────────────────────────────────────────────────────── */
.kc-product-faq { padding: 64px 0; margin-top: 0; }
.kc-product-faq__inner { max-width: 720px; }
.kc-product-faq__title { font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 500; letter-spacing: -.02em; color: var(--color-ink); margin: 0 0 40px; }
.kc-faq-list { display: flex; flex-direction: column; gap: 0; }
.kc-faq-item { border-bottom: 1px solid var(--color-border-soft); }
.kc-faq-item:first-child { border-top: 1px solid var(--color-border-soft); }
.kc-faq-item__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  background: none;
  border: none;
  padding: 20px 0;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  color: var(--color-ink);
  cursor: pointer;
  text-align: left;
  transition: color .15s;
}
.kc-faq-item__btn:hover { color: var(--color-copper); }
.kc-faq-item__icon { flex-shrink: 0; transition: transform .2s; }
.kc-faq-item__btn[aria-expanded="true"] .kc-faq-item__icon { transform: rotate(180deg); }
.kc-faq-item__a { padding: 0 0 20px; }
.kc-faq-item__a p { font-size: .9375rem; color: var(--color-muted); line-height: 1.65; margin: 0; }

/* ── Related products slider ─────────────────────────────────────────────── */
.kc-product-related { padding: 64px 0; }
.kc-product-related__title { font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 500; letter-spacing: -.02em; color: var(--color-ink); margin: 0 0 32px; }
.kc-related-slider-wrap { overflow: hidden; }
.kc-related-slider {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 4px 0 20px;
  scrollbar-width: thin;
  scrollbar-color: var(--color-border) transparent;
}
.kc-related-slider::-webkit-scrollbar { height: 4px; }
.kc-related-slider::-webkit-scrollbar-track { background: transparent; }
.kc-related-slider::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 4px; }
/* indent first/last card to align with container */
.kc-related-slider { padding-left: max(20px, calc((100vw - 1280px) / 2 + 20px)); padding-right: 40px; }
.kc-related-card {
  flex-shrink: 0;
  width: 220px;
  scroll-snap-align: start;
  background: var(--color-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: box-shadow .18s, transform .18s;
}
.kc-related-card:hover { box-shadow: 0 8px 32px rgba(27,22,18,.1); transform: translateY(-2px); }
.kc-related-card__img { aspect-ratio: 4/5; overflow: hidden; background: var(--color-paper); }
.kc-related-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.kc-related-card:hover .kc-related-card__img img { transform: scale(1.04); }
.kc-related-card__img-placeholder { width: 100%; height: 100%; background: var(--color-paper); }
.kc-related-card__body { padding: 16px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.kc-related-card__cat { font-size: .6875rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--color-taupe); }
.kc-related-card__name { font-size: .9rem; font-weight: 500; color: var(--color-ink); line-height: 1.3; }
.kc-related-card__price { font-size: .875rem; color: var(--color-copper); font-weight: 500; margin-top: auto; padding-top: 8px; }
