/* Primotaglio Theme — migrated from HTML templates */

/* ── CSS VARIABLES ──────────────────────────────────────────────── */
:root {
  --verde: #1a4a3a;
  --verde2: #22604d;
  --verde3: #2d7a60;
  --verde-light: rgba(26, 74, 58, 0.08);
  --verde-dark: #0f2e24;
  --oro: #b8860b;
  --oro2: #d4a017;
  --oro3: #f0c040;
  --oro-light: rgba(184, 134, 11, 0.6);
  --crema: #faf7f2;
  --crema2: #f3ede3;
  --crema3: #ede4d4;
  --avorio: #e8dcc8;
  --avorio2: #c8b898;
  --testo: #2c2416;
  --testo2: #5a4e3a;
  --testo3: #8a7a62;
  --testo4: #a89880;
  --bordo: rgba(184, 134, 11, 0.18);
  --bordo2: rgba(26, 74, 58, 0.15);
  --ombra: 0 2px 20px rgba(44, 36, 22, 0.08);
  --ombra2: 0 8px 40px rgba(44, 36, 22, 0.12);
}

/* ── BASE ── */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
}
body {
  background: var(--crema);
  color: var(--testo);
  font-family: 'Nunito', sans-serif;
  overflow-x: hidden;
}
.serif {
  font-family: 'Cormorant Garamond', serif;
}
h1,
h2,
h3,
h4 {
  font-family: 'Cormorant Garamond', serif;
}
body::after {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9998;
  opacity: 0.018;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.geo-pattern {
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='rgba(184,134,11,0.07)' stroke-width='0.8'%3E%3Cpolygon points='30,5 55,20 55,40 30,55 5,40 5,20'/%3E%3Cpolygon points='30,12 48,22 48,38 30,48 12,38 12,22'/%3E%3Cline x1='30' y1='5' x2='30' y2='12'/%3E%3Cline x1='55' y1='20' x2='48' y2='22'/%3E%3Cline x1='55' y1='40' x2='48' y2='38'/%3E%3Cline x1='30' y1='55' x2='30' y2='48'/%3E%3Cline x1='5' y1='40' x2='12' y2='38'/%3E%3Cline x1='5' y1='20' x2='12' y2='22'/%3E%3C/g%3E%3C/svg%3E");
}

/* ── KILL OLD THEME VISUAL ARTIFACTS ── */
.luci {
  display: none !important;
}
body::after {
  display: none !important;
}

/* ── TOPBAR (ticker) ── */
.topbar,
.topbar.ticker {
  background: var(--verde-dark) !important;
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  padding: 0.42rem 0 !important;
  text-align: center !important;
  overflow: hidden !important;
  border: none !important;
}
.topbar strong {
  color: var(--oro3) !important;
}

/* ── HEADER / NAV — override old CSS that uses #site-navigation, .nav-item etc ── */
header.site-header,
header.site-header#site-navigation,
header#site-navigation {
  background: rgba(250, 247, 242, 0.97) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border-bottom: 2px solid var(--avorio) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 500 !important;
  box-shadow: 0 2px 16px rgba(44, 36, 22, 0.07) !important;
  overflow: visible !important;
}
.admin-bar header.site-header,
.admin-bar header#site-navigation {
  top: 32px !important;
}
@media screen and (max-width: 782px) {
  .admin-bar header.site-header,
  .admin-bar header#site-navigation {
    top: 46px !important;
  }
}

.nav-inner {
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 0 1.5rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  height: 116px !important;
  overflow: visible !important;
}

/* Logo */
.nav-logo-link {
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  flex-shrink: 0 !important;
  text-decoration: none !important;
}
.nav-logo-link img,
.nav-logo-link .custom-logo,
.nav-logo-img,
.logo-img,
.custom-logo-link img {
  height: 100px !important;
  width: auto !important;
  object-fit: contain !important;
  max-width: none !important;
}
/* Brand text next to logo image */
.nav-logo-brand {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  flex-shrink: 0;
}
.nav-logo-name {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--verde);
  white-space: nowrap;
}
.nav-logo-sub {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--oro);
  margin-top: 1px;
}

/* Nav menu (category links) */
.nav-menu,
.nav-menu.nav-cats {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.35rem !important;
  flex-wrap: nowrap !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
  flex: 0 1 auto !important;
  overflow: visible !important;
}

/* Nav dropdown wrapper (replaces old .nav-item) */
.nav-menu .nav-dropdown,
.nav-cats .nav-dropdown {
  position: relative !important;
  padding: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
  display: flex !important;
  align-items: center !important;
  transform: none !important;
  pointer-events: auto !important;
  min-width: 0 !important;
  flex-shrink: 0 !important;
}
/* Override old .nav-item styles that may bleed via .nav-dropdown */
.nav-menu .nav-dropdown::after {
  display: none !important;
  content: none !important;
}

/* Nav link (category pill) */
.nav-link,
.nav-menu .nav-dropdown > a.nav-link {
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  color: var(--testo2) !important;
  padding: 0.4rem 0.65rem !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  transition: all 0.18s !important;
  border: none !important;
  background: none !important;
  position: relative !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  white-space: nowrap !important;
}
.nav-link::after {
  content: '' !important;
  position: absolute !important;
  bottom: 4px !important;
  left: 0.9rem !important;
  right: 0.9rem !important;
  height: 2px !important;
  background: var(--verde) !important;
  transform: scaleX(0) !important;
  transition: transform 0.2s !important;
  border-radius: 1px !important;
}
.nav-link:hover::after,
.nav-link.active::after,
.nav-dropdown.active > .nav-link::after {
  transform: scaleX(1) !important;
}
.nav-link:hover,
.nav-link.active,
.nav-dropdown.active > .nav-link {
  color: var(--verde) !important;
}

/* Nav actions (right side icons) */
.nav-actions,
.nav-actions.nav-right {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  flex-shrink: 0 !important;
}

/* Nav button (icon buttons) */
.nav-btn {
  width: 40px !important;
  height: 40px !important;
  border-radius: 10px !important;
  border: 1.5px solid var(--avorio) !important;
  background: transparent !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--testo2) !important;
  transition: all 0.18s !important;
  position: relative !important;
  text-decoration: none !important;
  padding: 0 !important;
}
.nav-btn:hover {
  background: var(--verde-light) !important;
  border-color: var(--bordo2) !important;
  color: var(--verde) !important;
}

/* Admin button (navbar — visible for admins only) */
.pt-admin-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  height: 40px !important;
  padding: 0 0.85rem !important;
  border-radius: 10px !important;
  border: 1.5px solid var(--verde3) !important;
  background: var(--verde-light) !important;
  color: var(--verde) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all 0.18s !important;
  white-space: nowrap !important;
}
.pt-admin-link:hover {
  background: var(--verde) !important;
  color: #fff !important;
  border-color: var(--verde) !important;
}
.cart-badge {
  position: absolute !important;
  top: -5px !important;
  right: -5px !important;
  background: var(--oro) !important;
  color: #fff !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  font-size: 0.6rem !important;
  font-weight: 900 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Dropdown menu (the panel that appears on hover) */
.nav-dropdown > .nav-dropdown-menu {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 40px rgba(44, 36, 22, 0.14) !important;
  min-width: 200px !important;
  opacity: 0 !important;
  transform: translateY(-6px) !important;
  pointer-events: none !important;
  transition: all 0.2s !important;
  z-index: 200 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: hidden !important;
}
/* Invisible bridge to prevent hover gap — needs overflow:visible to work */
.nav-dropdown > .nav-dropdown-menu::before {
  content: '' !important;
  position: absolute !important;
  top: -20px !important;
  left: 0 !important;
  right: 0 !important;
  height: 20px !important;
  background: transparent !important;
}
.nav-dropdown:hover > .nav-dropdown-menu {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: all !important;
}

/* Dropdown items */
.dd-item {
  display: block !important;
  padding: 0.55rem 1rem !important;
  font-size: 0.83rem !important;
  font-weight: 600 !important;
  color: var(--testo2) !important;
  transition:
    background 0.15s,
    color 0.15s !important;
  text-decoration: none !important;
}
.dd-item:hover {
  background: var(--verde-light) !important;
  color: var(--verde) !important;
}
.dd-item:first-child {
  border-radius: 10px 10px 0 0;
}
.dd-item:last-child {
  border-radius: 0 0 10px 10px;
}

/* Search bar in header — pill shape, grows to fill space between menu and actions */
.nav-search {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  background: var(--crema2) !important;
  border: 1.5px solid var(--bordo) !important;
  border-radius: 999px !important;
  padding: 0.45rem 1rem !important;
  transition:
    border-color 0.2s,
    box-shadow 0.2s !important;
  flex: 1 1 180px !important;
  min-width: 180px !important;
  max-width: 340px !important;
  box-sizing: border-box !important;
}
.nav-search:focus-within {
  border-color: var(--verde) !important;
  box-shadow: 0 0 0 3px rgba(26, 74, 58, 0.08) !important;
}
.nav-search input[type='search'] {
  border: none !important;
  background: transparent !important;
  outline: none !important;
  font-size: 0.85rem !important;
  font-family: 'Nunito', sans-serif !important;
  color: var(--testo) !important;
  flex: 1 !important;
  min-width: 0 !important;
  width: 100% !important;
}
.nav-search input[type='search']::placeholder {
  color: var(--testo3) !important;
}
.nav-search svg {
  flex-shrink: 0 !important;
  color: var(--testo3) !important;
}

/* Language switcher — dropdown */
.nav-lang-dropdown {
  position: relative;
  font-size: 0.78rem;
  font-weight: 700;
}
.nav-lang-current {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.25rem 0.5rem;
  border-radius: 5px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--testo3);
  font-size: 0.78rem;
  font-weight: 700;
  transition: color 0.18s;
}
.nav-lang-current:hover {
  color: var(--verde);
}
.nav-lang-chevron {
  transition: transform 0.18s;
  flex-shrink: 0;
}
.nav-lang-dropdown.open .nav-lang-chevron {
  transform: rotate(180deg);
}
.nav-lang-menu {
  display: none;
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  background: var(--crema);
  border: 1.5px solid var(--bordo2);
  border-radius: 8px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
  list-style: none;
  margin: 0;
  padding: 0;
  min-width: 70px;
  z-index: 9999;
  overflow: hidden;
}
.nav-lang-dropdown.open .nav-lang-menu {
  display: block;
}
.nav-lang-menu li {
  padding: 0;
}
.nav-lang-menu li a,
.nav-lang-menu li span {
  display: block;
  padding: 0.4rem 0.85rem;
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--testo3);
  white-space: nowrap;
  transition:
    background 0.12s,
    color 0.12s;
  background-color: var(--crema);
}
.nav-lang-menu li a:hover {
  background: var(--verde-light);
  color: var(--verde);
}
.nav-lang-menu li[aria-selected='true'] span {
  color: var(--verde);
}

/* ── MOBILE NAV ── */
/* Hamburger button — hidden on desktop, shown on mobile */
.nav-hamburger {
  display: none !important;
}

/* Mobile menu panel */
.nav-mobile-menu {
  display: none;
  overflow: hidden;
  background: rgba(250, 247, 242, 0.98) !important;
  border-top: 1px solid var(--avorio) !important;
  box-shadow: 0 8px 24px rgba(44, 36, 22, 0.1);
}
.nav-mobile-menu.is-open {
  display: block;
}
.mobile-menu-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1rem 1.5rem 1.5rem;
}

/* Mobile search inside the panel */
.mobile-search-form {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--crema2);
  border: 1.5px solid var(--avorio);
  border-radius: 10px;
  padding: 0.5rem 0.85rem;
  margin-bottom: 1rem;
  transition: border-color 0.2s;
}
.mobile-search-form:focus-within {
  border-color: var(--verde);
}
.mobile-search-form svg {
  flex-shrink: 0;
  color: var(--testo3);
}
.mobile-search-form input[type='search'] {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  font-size: 0.9rem;
  font-family: 'Nunito', sans-serif;
  color: var(--testo);
}
.mobile-search-form input::placeholder {
  color: var(--testo4);
}

/* Mobile nav links */
.mobile-nav-links {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.mobile-nav-link {
  display: block;
  padding: 0.65rem 0.9rem;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--testo2);
  text-decoration: none;
  transition:
    background 0.15s,
    color 0.15s;
}
.mobile-nav-link:hover {
  background: var(--verde-light);
  color: var(--verde);
}

@media (max-width: 1000px) {
  /* Hide search bar before it starts compressing nav items */
  .nav-search {
    display: none !important;
  }
}
@media (max-width: 900px) {
  /* Switch to 2-col nav: logo + right actions */
  .nav-inner {
    grid-template-columns: auto auto !important;
    justify-content: space-between !important;
    gap: 0.5rem !important;
  }
  /* Hide desktop-only nav elements */
  .nav-menu.nav-cats {
    display: none !important;
  }
  .nav-search {
    display: none !important;
  }
  /* Show hamburger */
  .nav-hamburger {
    display: flex !important;
  }
}

/* ── BREADCRUMB ── */
.wc-breadcrumb {
  background: var(--crema2);
  border-bottom: 1px solid var(--avorio);
  padding: 0.65rem 0;
  font-size: 0.8rem;
  color: var(--testo3);
}
.wc-breadcrumb .inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.wc-breadcrumb a {
  color: var(--verde);
  text-decoration: none;
  font-weight: 700;
}
.wc-breadcrumb a:hover {
  text-decoration: underline;
}
.wc-breadcrumb .sep {
  margin: 0 0.45rem;
  color: var(--avorio2);
}

/* ── LAYOUT ── */
.wc-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2.5rem 0;
  grid-column: 1/-1 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.wc-2col {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 2rem;
  align-items: start;
}
.wc-checkout-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 2rem;
  align-items: start;
}
@media (max-width: 960px) {
  .wc-2col {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 860px) {
  .wc-checkout-grid {
    grid-template-columns: 1fr;
  }
}

/* ── BUTTONS ── */
.btn-verde,
.btn-primary {
  background: var(--verde);
  color: #fff;
  font-family: 'Nunito', sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  border: none;
  border-radius: 12px;
  padding: 11px 22px;
  cursor: pointer;
  transition:
    background 0.2s,
    transform 0.18s,
    box-shadow 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  text-decoration: none;
}
.btn-verde:hover,
.btn-primary:hover {
  background: var(--verde2);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(26, 74, 58, 0.25);
}
.btn-oro {
  background: linear-gradient(135deg, var(--oro), var(--oro2));
  color: #fff;
  font-family: 'Nunito', sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  border: none;
  border-radius: 12px;
  padding: 11px 22px;
  cursor: pointer;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.btn-oro:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(184, 134, 11, 0.35);
}
.btn-outline {
  background: transparent;
  border: 1.5px solid var(--bordo2);
  color: var(--verde);
  font-family: 'Nunito', sans-serif;
  font-weight: 600;
  font-size: 0.82rem;
  border-radius: 10px;
  padding: 9px 20px;
  cursor: pointer;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  text-decoration: none;
}
.btn-outline:hover {
  background: var(--verde-light);
  border-color: var(--verde);
}
.btn-ghost {
  background: transparent;
  border: 1.5px solid var(--avorio);
  color: var(--testo2);
  font-family: 'Nunito', sans-serif;
  font-weight: 600;
  font-size: 0.78rem;
  border-radius: 8px;
  padding: 6px 14px;
  cursor: pointer;
  transition: all 0.2s;
}
.btn-ghost:hover {
  background: var(--crema2);
  border-color: var(--testo3);
}
.btn-full {
  width: 100%;
  justify-content: center;
  padding: 13px 24px;
  font-size: 0.92rem;
}

/* ── WC BADGES ── */
.wc-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.6rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
}
.badge-halal {
  background: linear-gradient(135deg, var(--verde), var(--verde2));
  color: #fff;
}
.badge-new {
  background: linear-gradient(135deg, var(--oro), var(--oro2));
  color: #fff;
}
.badge-sale {
  background: #dc2626;
  color: #fff;
}

/* ── SIDEBAR ── */
.wc-sidebar .widget,
.wc-sidebar .pt-widget {
  background: #fff;
  border: 1.5px solid var(--avorio);
  border-radius: 16px;
  padding: 1.3rem;
  margin-bottom: 1.2rem;
}
/* Sidebar search — matches nav-search style with icon on left */
.sidebar-search-form {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--crema2);
  border: 1.5px solid var(--avorio);
  border-radius: 10px;
  padding: 0.45rem 0.85rem;
  transition: border-color 0.2s;
}
.sidebar-search-form:focus-within {
  border-color: var(--verde);
}
.sidebar-search-icon {
  flex-shrink: 0;
  color: var(--testo3);
}
.sidebar-search-input {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  font-size: 0.85rem;
  font-family: 'Nunito', sans-serif;
  color: var(--testo);
  min-width: 0;
}
.sidebar-search-input::placeholder {
  color: var(--testo4);
}
.widget-title,
.pt-widget-title {
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--verde);
  margin-bottom: 0.9rem;
  padding-bottom: 0.6rem;
  border-bottom: 1.5px solid var(--crema3);
}
.filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.3rem 0;
  font-size: 0.85rem;
  cursor: pointer;
  color: var(--testo2);
}
.filter-row input[type='checkbox'] {
  accent-color: var(--verde);
  width: 14px;
  height: 14px;
  margin-right: 0.5rem;
}
.filter-count {
  background: var(--crema3);
  color: var(--testo3);
  font-size: 0.68rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 99px;
}
input[type='range'] {
  -webkit-appearance: none;
  width: 100%;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--verde) 65%, var(--avorio) 65%);
  outline: none;
  cursor: pointer;
}
input[type='range']::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: var(--verde);
  border: 2px solid #fff;
  box-shadow: 0 1px 6px rgba(26, 74, 58, 0.4);
}

/* ── WC TOOLBAR (woocommerce_before_shop_loop output) ── */
.wc-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.wc-result-count {
  font-size: 0.85rem;
  color: var(--testo3);
}
.wc-select {
  border: 1.5px solid var(--avorio);
  border-radius: 8px;
  padding: 0.45rem 0.85rem;
  font-size: 0.83rem;
  font-family: 'Nunito', sans-serif;
  color: var(--testo2);
  background: var(--crema2);
  outline: none;
  cursor: pointer;
}
.wc-select:focus {
  border-color: var(--verde);
}
/* WooCommerce toolbar — wc-hooks.php wraps result-count + ordering in .pt-shop-toolbar */
.pt-shop-toolbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 1.5rem !important;
  flex-wrap: wrap !important;
  gap: 0.75rem !important;
}
.pt-shop-toolbar .woocommerce-result-count {
  font-size: 0.85rem !important;
  color: var(--testo3) !important;
  font-family: 'Nunito', sans-serif !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.pt-shop-toolbar .woocommerce-ordering {
  float: none !important;
  margin: 0 !important;
}
.pt-shop-toolbar .woocommerce-ordering select {
  border: 1.5px solid var(--avorio) !important;
  border-radius: 8px !important;
  padding: 0.45rem 0.85rem !important;
  font-size: 0.83rem !important;
  font-family: 'Nunito', sans-serif !important;
  color: var(--testo2) !important;
  background: var(--crema2) !important;
  outline: none !important;
  cursor: pointer !important;
}
/* Content wrapper from wc-hooks.php */
.pt-main {
  background: transparent !important;
  position: relative;
  z-index: 0;
}
.pt-wc-container {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* wc-main layout */
.wc-main {
  display: block;
}
.wc-main > .woocommerce-notices-wrapper {
  margin-bottom: 1rem;
}

/* ── WC PRODUCTS HEADER (category title/description) ── */
/* Header is rendered OUTSIDE .wc-container by WooCommerce hook (woocommerce_shop_loop_header).
   Must replicate .wc-container's max-width and centering explicitly. */
.woocommerce-products-header {
  background: var(--crema2) !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 16px !important;
  padding: 1.3rem 1.5rem !important;
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
  max-width: 1280px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}
.woocommerce-products-header__title {
  font-size: 1.4rem !important;
  color: var(--verde) !important;
  padding-top: 0 !important;
  margin-bottom: 0.3rem !important;
  font-family: 'Cormorant Garamond', serif !important;
}
.woocommerce-products-header .term-description p {
  font-size: 0.88rem !important;
  color: var(--testo2) !important;
  margin: 0 !important;
}

/* ── WC CONTENT WRAPPER (from woocommerce_output_content_wrapper hook) ── */
/* The wrapper contains woocommerce-products-header + .wc-container.
   Must constrain to 1280px and add horizontal padding so header and content align. */
.woocommerce .content-area,
.site-main {
  background: transparent !important;
}
#primary.pt-main {
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}
/* Ensure .wc-container fills wrapper width (no extra padding needed since wrapper has it) */
.wc-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* woocommerce-products-header fills the wrapper width */
.woocommerce-products-header {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

/* ── PRODUCT LOOP (ul.products from woocommerce_product_loop_start) ── */
.wc-loop {
  display: grid;
  gap: 1.4rem;
}
.cols-3 {
  grid-template-columns: repeat(3, 1fr);
}
.cols-2 {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 680px) {
  .cols-3,
  .cols-2 {
    grid-template-columns: 1fr;
  }
  .nav-logo-brand {
    display: none !important;
  }
}
/* WooCommerce product grid — ul.products generated by the loop */
.woocommerce ul.products,
.woocommerce-page ul.products,
.wc-main ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.4rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
  width: 100% !important;
}
.wc-main ul.products::before,
.wc-main ul.products::after {
  display: none !important;
}
.woocommerce ul.products li.product {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
@media (max-width: 960px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .wc-main ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .wc-main ul.products {
    grid-template-columns: 1fr !important;
  }
}
.product-card {
  background: #fff;
  border: 1.5px solid var(--avorio);
  border-radius: 16px;
  overflow: hidden;
  transition:
    transform 0.28s cubic-bezier(0.22, 0.68, 0, 1.2),
    box-shadow 0.28s,
    border-color 0.22s;
  position: relative;
  cursor: pointer;
}
/* Beat primo-taglio.css "border-radius:0 !important; overflow:visible !important; background:none !important" on ul.products li.product (0,3,2 + !important) */
.woocommerce ul.products li.product.product-card,
.woocommerce-page ul.products li.product.product-card {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  position: relative !important;
  cursor: pointer !important;
  transition:
    transform 0.28s cubic-bezier(0.22, 0.68, 0, 1.2),
    box-shadow 0.28s,
    border-color 0.22s !important;
  display: flex !important;
  flex-direction: column !important;
}
.product-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 20px 50px rgba(44, 36, 22, 0.22) !important;
  border-color: var(--bordo) !important;
}
.woocommerce ul.products li.product.product-card:hover,
.woocommerce-page ul.products li.product.product-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 20px 50px rgba(44, 36, 22, 0.22) !important;
  border-color: var(--bordo) !important;
}
.pc-thumb {
  position: relative;
  overflow: hidden;
  background: var(--crema2);
}
.pc-thumb img {
  width: 100%;
  display: block;
  transition: transform 0.45s;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.product-card:hover .pc-thumb img {
  transform: scale(1.06) !important;
}
.woocommerce ul.products li.product.product-card:hover .pc-thumb img,
.woocommerce-page ul.products li.product.product-card:hover .pc-thumb img {
  transform: scale(1.06) !important;
}
.pc-badges {
  position: absolute;
  top: 10px;
  left: 10px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.pc-wishlist {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  border: 1.5px solid var(--avorio);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.18s;
  color: var(--testo3);
  font-size: 1rem;
}
.pc-wishlist:hover {
  background: var(--verde);
  border-color: var(--verde);
  color: #fff;
}
.pc-wishlist.active {
  background: var(--verde) !important;
  border-color: var(--verde) !important;
  color: #fff !important;
}
.pc-wishlist.active:hover {
  background: var(--verde-scuro, #0f3328) !important;
  border-color: var(--verde-scuro, #0f3328) !important;
}
@keyframes pt-wish-pop {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.45);
  }
  70% {
    transform: scale(0.9);
  }
  100% {
    transform: scale(1);
  }
}
.pc-wishlist.pt-wish-pop {
  animation: pt-wish-pop 0.38s ease;
}
.pt-wishlist-page {
  padding: 0.5rem 0;
}
.pt-wishlist-page h2 {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--testo);
  margin-bottom: 1.5rem;
}
.pt-wishlist-empty {
  color: var(--testo3);
  font-size: 1rem;
}
.pc-body {
  padding: 1rem;
}
.pc-cat {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--verde);
  margin-bottom: 0.3rem;
  display: block;
}
.pc-name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--testo);
  margin-bottom: 0.3rem;
  line-height: 1.3;
  transition: color 0.15s;
}
.pc-name a {
  color: inherit;
  text-decoration: none;
}
.product-card:hover .pc-name,
.product-card:hover .pc-name a {
  color: var(--verde);
}
.pc-price {
  font-size: 0.96rem;
  font-weight: 800;
  line-height: 1.25;
  color: var(--oro);
  margin-bottom: 0.6rem;
  font-family: 'Cormorant Garamond', serif;
}
.pc-price del {
  color: var(--testo4);
  font-size: 0.82rem;
  font-weight: 400;
  margin-right: 0.3rem;
  font-family: 'Nunito', sans-serif;
}
.pc-stock {
  font-size: 0.72rem;
  font-weight: 700;
  margin-bottom: 0.6rem;
}
.stock-ok {
  color: #16a34a;
}
.stock-low {
  color: #d97706;
}
.stock-no {
  color: #dc2626;
}
.pc-sku {
  font-size: 0.68rem;
  color: var(--testo4);
  margin-top: 0.4rem;
}
.pc-add,
.product-card .button,
.product-card .add_to_cart_button,
.product-card a.button.add_to_cart_button,
.woocommerce ul.products li.product-card .button,
.woocommerce ul.products li.product-card a.button,
.woocommerce ul.products li.product-card .add_to_cart_button,
.woocommerce ul.products li.product.product-card .button.add_to_cart_button,
.woocommerce ul.products li.product.product-card a.button.add_to_cart_button {
  width: 100% !important;
  padding: 0.7rem !important;
  border-radius: 8px !important;
  border: none !important;
  background: var(--verde) !important;
  color: #fff !important;
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.83rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition:
    background 0.18s,
    transform 0.15s !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}
.pc-add:hover,
.product-card .button:hover,
.product-card .add_to_cart_button:hover,
.woocommerce ul.products li.product-card .button:hover,
.woocommerce ul.products li.product-card a.button:hover {
  background: var(--verde2) !important;
  transform: translateY(-1px) !important;
}

/* ── PAGINATION ── */
.wc-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin-top: 2rem;
}
.page-n {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  border: 1.5px solid var(--avorio);
  background: transparent;
  cursor: pointer;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--testo2);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.18s;
  font-family: 'Nunito', sans-serif;
}
.page-n:hover {
  border-color: var(--verde);
  color: var(--verde);
  background: var(--verde-light);
}
.page-n.current {
  background: var(--verde);
  color: #fff;
  border-color: var(--verde);
}

/* ── FORMS ── */
.wc-input {
  width: 100%;
  padding: 0.7rem 1rem;
  border: 1.5px solid var(--avorio);
  border-radius: 10px;
  font-size: 0.9rem;
  font-family: 'Nunito', sans-serif;
  color: var(--testo);
  background: var(--crema2);
  outline: none;
  transition:
    border-color 0.2s,
    box-shadow 0.2s;
}
.wc-input:focus {
  border-color: var(--verde);
  box-shadow: 0 0 0 3px rgba(26, 74, 58, 0.1);
}
.wc-input::placeholder {
  color: var(--testo4);
}
.wc-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--testo2);
  margin-bottom: 0.4rem;
}
.wc-label .req {
  color: #dc2626;
}
.field-group {
  margin-bottom: 0.9rem;
}
.field-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.8rem;
}

/* ── RADIO CARD ── */
.r-card {
  border: 1.5px solid var(--avorio);
  border-radius: 12px;
  padding: 0.85rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  cursor: pointer;
  margin-bottom: 0.5rem;
  transition: all 0.18s;
}
.r-card:hover {
  border-color: var(--bordo2);
  background: var(--verde-light);
}
.r-card.sel {
  border-color: var(--verde);
  background: rgba(26, 74, 58, 0.06);
}
.r-card input[type='radio'] {
  accent-color: var(--verde);
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}
.r-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}

/* ── PAYMENT BOX ── */
.pay-box {
  border: 1.5px solid var(--avorio);
  border-radius: 12px;
  padding: 0.85rem 1rem;
  cursor: pointer;
  margin-bottom: 0.5rem;
  transition: all 0.18s;
}
.pay-box.sel {
  border-color: var(--verde);
  background: rgba(26, 74, 58, 0.06);
}
.pay-box label {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  cursor: pointer;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--testo);
}
.pay-box input[type='radio'] {
  accent-color: var(--verde);
}
.pay-detail {
  display: none;
  padding: 0.8rem 0 0 1.6rem;
  font-size: 0.82rem;
  color: var(--testo3);
  line-height: 1.6;
}
.pay-box.sel .pay-detail {
  display: block;
}

/* ── ORDER BOX (right column) ── */
.order-box {
  background: #fff;
  border: 1.5px solid var(--avorio);
  border-radius: 18px;
  padding: 1.5rem;
  position: sticky;
  top: 96px;
}
.order-box h3 {
  font-size: 1.1rem;
  color: var(--verde);
  margin-bottom: 1rem;
  padding-bottom: 0.7rem;
  border-bottom: 1.5px solid var(--crema3);
}
.order-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--crema3);
}
.order-item:last-of-type {
  border-bottom: none;
}
.order-item img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 9px;
  border: 1.5px solid var(--avorio);
  flex-shrink: 0;
}
.order-item .item-info {
  flex: 1;
  min-width: 0;
}
.order-item .item-name {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--testo);
}
.order-item .item-meta {
  font-size: 0.72rem;
  color: var(--testo3);
  margin-top: 2px;
}
.order-item .item-price {
  font-weight: 800;
  color: var(--oro);
  font-family: 'Cormorant Garamond', serif;
  flex-shrink: 0;
}
.order-totals-row {
  display: flex;
  justify-content: space-between;
  padding: 0.5rem 0;
  font-size: 0.88rem;
  color: var(--testo2);
  border-bottom: 1px solid var(--crema3);
}
.order-totals-row:last-of-type {
  border-bottom: none;
  padding-top: 0.8rem;
  margin-top: 0.2rem;
}

/* ── CART TABLE ── */
.cart-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  border: 1.5px solid var(--avorio);
}
.cart-table th {
  background: var(--crema2);
  padding: 0.8rem 1.2rem;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--testo3);
  text-align: left;
  border-bottom: 2px solid var(--avorio);
}
.cart-table td {
  padding: 0.9rem 1.2rem;
  border-bottom: 1px solid var(--crema3);
  vertical-align: middle;
}
.cart-table tr:last-child td {
  border-bottom: none;
}
.cart-qty {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--avorio);
  border-radius: 9px;
  overflow: hidden;
  background: #fff;
}
.cart-qty button {
  width: 32px;
  height: 34px;
  border: none;
  background: transparent;
  cursor: pointer;
  color: var(--verde);
  font-size: 1rem;
  transition: background 0.15s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cart-qty button:hover {
  background: var(--verde-light);
}
.cart-qty input {
  width: 42px;
  border: none;
  text-align: center;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--testo);
  font-family: 'Nunito', sans-serif;
  outline: none;
  background: transparent;
}
.cart-price {
  font-weight: 800;
  color: var(--oro);
  font-family: 'Cormorant Garamond', serif;
}
.remove-btn {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--crema2);
  border: 1.5px solid var(--avorio);
  color: var(--testo3);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.18s;
  font-size: 0.82rem;
}
.remove-btn:hover {
  background: #dc2626;
  border-color: #dc2626;
  color: #fff;
}

/* ── TOTALS SIDEBAR ── */
.cart-totals {
  background: #fff;
  border: 1.5px solid var(--avorio);
  border-radius: 18px;
  padding: 1.5rem;
  position: sticky;
  top: 96px;
}
.cart-totals h3 {
  font-size: 1.1rem;
  color: var(--verde);
  margin-bottom: 1rem;
  padding-bottom: 0.7rem;
  border-bottom: 1.5px solid var(--crema3);
}
.totals-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.55rem 0;
  font-size: 0.88rem;
  color: var(--testo2);
  border-bottom: 1px solid var(--crema3);
}
.totals-row:last-of-type {
  border-bottom: none;
}

/* ── CART 2-COLUMN LAYOUT ── */
.pt-cart-2col {
  display: grid !important;
  grid-template-columns: 1fr 360px !important;
  gap: 2rem !important;
  align-items: start !important;
}
.pt-cart-main {
  min-width: 0 !important;
}
.pt-cart-sidebar .woocommerce .cart_totals,
.pt-cart-sidebar .cart_totals {
  position: sticky !important;
  top: 96px !important;
}
@media (max-width: 860px) {
  .pt-cart-2col {
    grid-template-columns: 1fr !important;
  }
}

/* ── SINGLE PRODUCT ── */

/* 2-column grid: gallery + info */
.sp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 860px) {
  .sp-grid {
    grid-template-columns: 1fr;
  }
}

/* Override old WC product flex/grid layout */
.woocommerce div.product.pt-single-product,
.woocommerce div.product.pt-single-product.product {
  display: block !important;
  gap: 0 !important;
  flex-wrap: nowrap !important;
  grid-template-columns: none !important;
}
.woocommerce div.product.pt-single-product .woocommerce-product-gallery {
  grid-column: unset !important;
  max-width: 100% !important;
  width: 100% !important;
  float: none !important;
}
.woocommerce div.product.pt-single-product .summary {
  grid-column: unset !important;
  width: 100% !important;
  float: none !important;
}

/* Gallery column */
.sp-gallery {
  position: relative;
}
.sp-gallery .woocommerce-product-gallery {
  width: 100% !important;
  float: none !important;
  max-width: 100% !important;
  margin: 0 !important;
}
.sp-gallery .woocommerce-product-gallery__wrapper {
  margin: 0 !important;
}
.sp-gallery .woocommerce-product-gallery .woocommerce-product-gallery__image img,
.sp-gallery .woocommerce-product-gallery img {
  width: 100% !important;
  display: block !important;
  border-radius: 16px !important;
  border: 1.5px solid var(--avorio) !important;
  aspect-ratio: 1 !important;
  object-fit: cover !important;
}
.sp-gallery .flex-control-thumbs {
  display: flex !important;
  gap: 0.6rem !important;
  margin-top: 0.7rem !important;
  list-style: none !important;
  padding: 0 !important;
  flex-wrap: wrap !important;
}
.sp-gallery .flex-control-thumbs li {
  width: 70px !important;
  height: 70px !important;
  border-radius: 9px !important;
  overflow: hidden !important;
  border: 2px solid transparent !important;
  cursor: pointer !important;
  transition: border-color 0.18s !important;
  flex-shrink: 0 !important;
}
.sp-gallery .flex-control-thumbs li:hover,
.sp-gallery .flex-control-thumbs li .flex-active {
  border-color: var(--verde) !important;
}
.sp-gallery .flex-control-thumbs li img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
/* Hide WC gallery nav arrows */
.sp-gallery .flex-direction-nav {
  display: none !important;
}
/* Sale flash inside gallery */
.sp-gallery .onsale {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  z-index: 5 !important;
  background: #dc2626 !important;
  border-radius: 4px !important;
  padding: 3px 8px !important;
  font-size: 0.6rem !important;
  min-height: unset !important;
  min-width: unset !important;
  line-height: 1.6 !important;
}

/* Standalone gallery classes */
.gallery-main {
  border-radius: 16px;
  overflow: hidden;
  border: 1.5px solid var(--avorio);
  background: var(--crema2);
}
.gallery-main img {
  width: 100%;
  display: block;
  aspect-ratio: 1;
  object-fit: cover;
}
.gallery-thumbs {
  display: flex;
  gap: 0.6rem;
  margin-top: 0.7rem;
  flex-wrap: wrap;
}
.g-thumb {
  width: 70px;
  height: 70px;
  border-radius: 9px;
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
  transition: border-color 0.18s;
  flex-shrink: 0;
}
.g-thumb:hover,
.g-thumb.active {
  border-color: var(--verde);
}
.g-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Info column */
.sp-info {
  padding: 0 !important;
  width: 100% !important;
  float: none !important;
  flex: none !important;
}
.sp-badges-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.7rem;
  flex-wrap: wrap;
}
.sp-cat-link {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--verde);
  text-decoration: none;
  letter-spacing: 0.04em;
}
.sp-cat-link:hover {
  text-decoration: underline;
}
.sp-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--testo);
  margin-bottom: 0.5rem;
  line-height: 1.2;
}
.sp-rating-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.sp-rating-row .star-rating {
  color: var(--oro);
  letter-spacing: 0.05em;
  font-size: 0.9rem;
}
.sp-price {
  margin-bottom: 1rem;
}
.sp-price .price {
  font-size: 2.1rem !important;
  font-weight: 800 !important;
  color: var(--oro) !important;
  font-family: 'Cormorant Garamond', serif !important;
}
.sp-price .price del {
  font-size: 1.2rem !important;
  color: var(--testo4) !important;
  font-weight: 400 !important;
  margin-right: 0.5rem !important;
}
.sp-excerpt {
  border-top: 1px solid var(--crema3);
  border-bottom: 1px solid var(--crema3);
  padding: 1rem 0;
  margin: 1rem 0;
}
.sp-excerpt p,
.sp-excerpt .woocommerce-product-details__short-description p {
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--testo2);
  margin: 0;
}
.sp-meta {
  margin: 0.5rem 0;
}
.sp-meta-row {
  font-size: 0.82rem;
  color: var(--testo3);
  margin: 0.3rem 0;
}
.sp-meta-row strong {
  color: var(--testo2);
}
.sp-meta-row a {
  color: var(--verde);
  text-decoration: none;
  font-weight: 600;
}
.sp-meta-row a:hover {
  text-decoration: underline;
}
.sp-divider {
  height: 1px;
  background: var(--avorio);
  margin: 0.9rem 0;
}

/* Stock status in single product — hide WC default, we show our own */
.sp-info .pc-stock,
.pt-single-product .pc-stock {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  margin: 0.6rem 0 !important;
}
.sp-info .stock-ok {
  color: #16a34a !important;
}
.sp-info .stock-low {
  color: #d97706 !important;
}
.sp-info .stock-no {
  color: #dc2626 !important;
}
.sp-info > p.stock,
.woocommerce div.product.pt-single-product > .wc-container p.stock,
.pt-single-product .sp-info > p.stock {
  display: none !important;
}

/* Add to cart form in single product */
.sp-info .cart,
.sp-info form.cart,
.woocommerce div.product.pt-single-product form.cart {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.8rem !important;
  margin-bottom: 1rem !important;
  flex-wrap: wrap !important;
}
.sp-info .quantity,
.woocommerce div.product.pt-single-product .quantity {
  display: flex !important;
  align-items: center !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: #fff !important;
  float: none !important;
}
.sp-info .quantity .qty,
.woocommerce div.product.pt-single-product .quantity .qty {
  width: 52px !important;
  border: none !important;
  text-align: center !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--testo) !important;
  font-family: 'Nunito', sans-serif !important;
  outline: none !important;
  background: transparent !important;
  height: 44px !important;
  line-height: 44px !important;
  -moz-appearance: textfield !important;
  padding: 0 !important;
}
.sp-info .quantity .qty::-webkit-inner-spin-button,
.sp-info .quantity .qty::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}
/* Qty stepper −/+ buttons injected via JS */
.sp-info .quantity .pt-qty-btn,
.woocommerce div.product.pt-single-product .quantity .pt-qty-btn {
  width: 42px !important;
  height: 44px !important;
  border: none !important;
  background: transparent !important;
  font-size: 1.2rem !important;
  cursor: pointer !important;
  color: var(--verde) !important;
  transition: background 0.15s !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 400 !important;
}
.sp-info .quantity .pt-qty-btn:hover,
.woocommerce div.product.pt-single-product .quantity .pt-qty-btn:hover {
  background: var(--verde-light) !important;
}
.sp-info .single_add_to_cart_button,
.woocommerce div.product.pt-single-product .single_add_to_cart_button {
  flex: 1 !important;
  justify-content: center !important;
  padding: 0.82rem 1.2rem !important;
  font-size: 0.9rem !important;
  background: var(--verde) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 12px !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition:
    background 0.2s,
    transform 0.18s !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}
.sp-info .single_add_to_cart_button:hover,
.woocommerce div.product.pt-single-product .single_add_to_cart_button:hover {
  background: var(--verde2) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(26, 74, 58, 0.25) !important;
}

/* Trust badges */
.sp-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  font-size: 0.72rem;
  color: var(--testo3);
  font-weight: 700;
  margin-top: 0.5rem;
}
.sp-trust-item {
  display: flex;
  align-items: center;
  gap: 0.3rem;
}

/* Star rating */
.star-rating,
.woocommerce .star-rating {
  color: var(--oro);
  letter-spacing: 0.05em;
}

/* ── Tabs ── */
.woocommerce-tabs {
  margin-top: 3rem !important;
  width: 100% !important;
  clear: both !important;
  display: block !important;
  flex-direction: unset !important;
  border-bottom: none !important;
  margin-bottom: 0 !important;
}
.wc-tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs {
  border-bottom: 2px solid var(--avorio) !important;
  display: flex !important;
  gap: 0 !important;
  margin-bottom: 1.5rem !important;
  padding: 0 !important;
  list-style: none !important;
  background: none !important;
}
.wc-tabs::before,
.wc-tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
  display: none !important;
}
.wc-tab,
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: none !important;
  border-radius: 0 !important;
}
.wc-tab,
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 0.65rem 1.3rem !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  color: var(--testo3) !important;
  border-bottom: 3px solid transparent !important;
  margin-bottom: -2px !important;
  transition: all 0.18s !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  background: none !important;
  font-family: 'Nunito', sans-serif !important;
  text-decoration: none !important;
  display: block !important;
  outline: none !important;
  box-shadow: none !important;
}
.wc-tab.active,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--verde) !important;
  border-bottom-color: var(--verde) !important;
}
.wc-tab:hover,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--verde) !important;
}
.woocommerce div.product .woocommerce-tabs .panel,
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
}
/* Tab panels — only show active (toggled by JS below) */
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel {
  display: none !important;
}
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel.pt-active {
  display: block !important;
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  color: var(--testo);
  margin-bottom: 1rem;
}
.woocommerce div.product .woocommerce-tabs .panel p {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--testo2);
  margin-bottom: 0.8rem;
}
.tab-panel {
  display: none;
}
.tab-panel.active {
  display: block;
}

/* Related products */
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products {
  margin-top: 3rem !important;
  width: 100% !important;
  border-top: none !important;
  padding-top: 0 !important;
}
.woocommerce div.product .related.products > h2,
.woocommerce div.product .upsells.products > h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.6rem !important;
  color: var(--testo) !important;
  margin-bottom: 1.5rem !important;
  font-weight: 700 !important;
}
.tab-panel p {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--testo2);
  margin-bottom: 0.8rem;
}
.attr-table,
.woocommerce div.product .woocommerce-tabs .shop_attributes {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 0.88rem !important;
  border: none !important;
}
.attr-table th,
.attr-table td,
.woocommerce div.product .woocommerce-tabs .shop_attributes th,
.woocommerce div.product .woocommerce-tabs .shop_attributes td {
  padding: 0.6rem 0.9rem !important;
  text-align: left !important;
  border-bottom: 1px solid var(--crema3) !important;
  border-top: none !important;
}
.attr-table th,
.woocommerce div.product .woocommerce-tabs .shop_attributes th {
  background: var(--crema2) !important;
  font-weight: 700 !important;
  color: var(--testo2) !important;
  width: 35% !important;
}
.attr-table td,
.woocommerce div.product .woocommerce-tabs .shop_attributes td {
  color: var(--testo3) !important;
  background: transparent !important;
}
.qty-group {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--avorio);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
.qty-group button {
  width: 42px;
  height: 44px;
  border: none;
  background: transparent;
  font-size: 1.1rem;
  cursor: pointer;
  color: var(--verde);
  transition: background 0.15s;
}
.qty-group button:hover {
  background: var(--verde-light);
}
.qty-group input {
  width: 52px;
  border: none;
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  color: var(--testo);
  font-family: 'Nunito', sans-serif;
  outline: none;
  background: transparent;
}

/* ── MY ACCOUNT ── */
.account-nav {
  background: #fff;
  border: 1.5px solid var(--avorio);
  border-radius: 16px;
  overflow: hidden;
}
.account-nav-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.82rem 1.2rem;
  cursor: pointer;
  border-bottom: 1px solid var(--crema3);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--testo2);
  transition: all 0.18s;
  border-left: 3px solid transparent;
}
.account-nav-item:last-child {
  border-bottom: none;
}
.account-nav-item:hover,
.account-nav-item.active {
  background: var(--verde-light);
  color: var(--verde);
  border-left-color: var(--verde);
}
.account-content {
  background: #fff;
  border: 1.5px solid var(--avorio);
  border-radius: 16px;
  padding: 1.6rem;
}
.account-section {
  display: none;
}
.account-section.active {
  display: block;
}
.orders-table {
  width: 100%;
  border-collapse: collapse;
}
.orders-table th {
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--testo3);
  padding: 0.7rem 0.9rem;
  text-align: left;
  border-bottom: 2px solid var(--avorio);
}
.orders-table td {
  padding: 0.8rem 0.9rem;
  border-bottom: 1px solid var(--crema3);
  font-size: 0.86rem;
  color: var(--testo2);
  vertical-align: middle;
}
.orders-table tr:last-child td {
  border-bottom: none;
}
.orders-table tbody tr:hover {
  background: var(--crema2);
}
.order-status {
  display: inline-flex;
  align-items: center;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 4px;
  white-space: nowrap;
}
.os-comp {
  background: #dcfce7;
  color: #14532d;
}
.os-ship {
  background: #dbeafe;
  color: #1e3a8a;
}
.os-wait {
  background: #fef9c3;
  color: #713f12;
}
.os-can {
  background: #fee2e2;
  color: #7f1d1d;
}

/* ── ORDER CONFIRM ── */
.confirm-icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--verde);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
  box-shadow: 0 8px 24px rgba(26, 74, 58, 0.3);
}
.confirm-detail-box {
  background: var(--crema2);
  border: 1.5px solid var(--avorio);
  border-radius: 12px;
  padding: 1rem;
}
.confirm-detail-box h4 {
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--testo3);
  margin-bottom: 0.5rem;
  font-family: 'Nunito', sans-serif;
}

/* ── FOOTER ── */
.site-footer {
  background: var(--verde) !important;
  color: rgba(255, 255, 255, 0.8) !important;
  padding: 3.5rem 1.5rem 1.5rem !important;
  margin-top: 0 !important;
  border-top: none !important;
}
.footer-inner {
  max-width: 1280px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: 1.6fr 1fr 1fr 1fr !important;
  gap: 2.5rem !important;
  margin-bottom: 2.5rem !important;
  padding: 0 !important;
}
@media (max-width: 900px) {
  .footer-inner {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 540px) {
  .footer-inner {
    grid-template-columns: 1fr !important;
  }
}
.footer-col-title {
  font-size: 0.78rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--oro3) !important;
  margin-bottom: 0.9rem !important;
  font-family: 'Nunito', sans-serif !important;
}
.footer-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin-bottom: 0.85rem !important;
}
.footer-brand-desc {
  font-size: 0.83rem !important;
  line-height: 1.6 !important;
  color: rgba(255, 255, 255, 0.7) !important;
  margin-bottom: 1rem !important;
}
.footer-link {
  display: block !important;
  font-size: 0.83rem !important;
  padding: 0.22rem 0 !important;
  color: rgba(255, 255, 255, 0.6) !important;
  cursor: pointer !important;
  transition: color 0.15s !important;
  text-decoration: none !important;
}
.footer-link:hover {
  color: var(--oro3) !important;
}
.footer-links {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.footer-links li {
  margin-bottom: 0.4rem !important;
}
.footer-links li a {
  color: rgba(255, 255, 255, 0.6) !important;
  font-size: 0.83rem !important;
  transition: color 0.15s !important;
  text-decoration: none !important;
  display: block !important;
  padding: 0.22rem 0 !important;
}
.footer-links li a:hover {
  color: var(--oro3) !important;
  padding-left: 0 !important;
}
.footer-badge-wrap {
  margin-top: 1rem !important;
}
.foot-badge,
.foot-halal-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 8px !important;
  padding: 5px 12px !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.8) !important;
}
.footer-social {
  display: flex !important;
  gap: 0.5rem !important;
  margin-top: 1rem !important;
}
.footer-social-btn,
.soc-btn {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: rgba(255, 255, 255, 0.55) !important;
  transition: all 0.18s !important;
  text-decoration: none !important;
  background: transparent !important;
}
.footer-social-btn:hover,
.soc-btn:hover {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  color: #fff !important;
}
.footer-store-block {
  font-size: 0.83rem !important;
  line-height: 1.6 !important;
  color: rgba(255, 255, 255, 0.7) !important;
  margin-bottom: 1.2rem !important;
}
.footer-store-block strong {
  color: #fff !important;
}
.footer-stores {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.5rem !important;
}
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
  padding-top: 1.2rem !important;
  padding-bottom: 1.2rem !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}
.footer-bottom-inner {
  max-width: 1280px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
  font-size: 0.75rem !important;
  color: rgba(255, 255, 255, 0.35) !important;
}
.footer-credit-link {
  color: var(--oro2) !important;
  text-decoration: none !important;
}
.footer-credit-link:hover {
  color: var(--oro3) !important;
}
@media (max-width: 900px) {
  .footer-bottom-inner {
    flex-direction: column !important;
    text-align: center !important;
  }
}

/* ── TOAST ── */
#toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(80px);
  background: var(--verde);
  border-radius: 999px;
  padding: 11px 22px;
  font-size: 0.83rem;
  font-weight: 700;
  color: #fff;
  z-index: 600;
  transition: transform 0.35s cubic-bezier(0.22, 0.68, 0, 1.2);
  white-space: nowrap;
  box-shadow: 0 8px 28px rgba(26, 74, 58, 0.4);
}
#toast.show {
  transform: translateX(-50%) translateY(0);
}

/* ── MINI CART DRAWER ── */
.minicart {
  position: fixed;
  top: 0;
  right: 0;
  width: min(420px, 100vw);
  height: 100vh;
  background: #fff;
  border-left: 2px solid var(--avorio);
  z-index: 500;
  transform: translateX(100%);
  transition: transform 0.42s cubic-bezier(0.22, 0.68, 0, 1.15);
  display: flex;
  flex-direction: column;
  box-shadow: -8px 0 40px rgba(44, 36, 22, 0.12);
}
.minicart.open {
  transform: translateX(0);
}
.minicart-ov {
  position: fixed;
  inset: 0;
  background: rgba(44, 36, 22, 0.35);
  z-index: 499;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.minicart-ov.open {
  opacity: 1;
  pointer-events: all;
}
.mc-item {
  display: flex;
  gap: 0.9rem;
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--crema3);
}
.mc-item img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 9px;
  border: 1.5px solid var(--avorio);
  flex-shrink: 0;
}

/* ── UTILS ── */
.divider {
  height: 1px;
  background: var(--avorio);
  margin: 1rem 0;
}
.trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 0.8rem;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  color: var(--testo3);
  font-weight: 700;
}
::-webkit-scrollbar {
  width: 5px;
}
::-webkit-scrollbar-track {
  background: var(--crema2);
}
::-webkit-scrollbar-thumb {
  background: var(--avorio2);
  border-radius: 3px;
}

/* ── HERO SLIDER (index.html) ── */
.hero {
  position: relative;
  width: 100%;
  height: 90vh;
  min-height: 520px;
  overflow: hidden;
}
.slides {
  display: flex;
  height: 100%;
  transition: transform 0.85s cubic-bezier(0.77, 0, 0.175, 1);
}
.slide {
  min-width: 100%;
  height: 100%;
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
}
.slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 8s ease;
}
.slide.active img {
  transform: scale(1);
}
.slide-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    110deg,
    rgba(15, 46, 36, 0.82) 0%,
    rgba(15, 46, 36, 0.38) 55%,
    rgba(15, 46, 36, 0.08) 100%
  );
}
.slide-c {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 8vw;
  max-width: 760px;
}
.s-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--oro3);
  margin-bottom: 1rem;
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.6s 0.3s,
    transform 0.6s 0.3s;
}
.slide.active .s-tag {
  opacity: 1;
  transform: translateY(0);
}
.s-h {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  line-height: 1.02;
  color: #fff;
  margin-bottom: 0.9rem;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.6s 0.44s,
    transform 0.6s 0.44s;
}
.slide.active .s-h {
  opacity: 1;
  transform: translateY(0);
}
.s-p {
  font-size: 0.97rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.72);
  max-width: 460px;
  margin-bottom: 1.6rem;
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.6s 0.56s,
    transform 0.6s 0.56s;
}
.slide.active .s-p {
  opacity: 1;
  transform: translateY(0);
}
.s-cta {
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 0.6s 0.66s,
    transform 0.6s 0.66s;
}
.slide.active .s-cta {
  opacity: 1;
  transform: translateY(0);
}
.slide-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(250, 247, 242, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.25s;
  color: #fff;
  border: none;
}
.slide-arrow:hover {
  background: rgba(250, 247, 242, 0.3);
  transform: translateY(-50%) scale(1.08);
}
.arrow-prev {
  left: 24px;
}
.arrow-next {
  right: 24px;
}
.slide-dots {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
}
.dot {
  width: 26px;
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.3);
  cursor: pointer;
  transition: all 0.35s;
  border: none;
}
.dot.active {
  background: var(--oro3);
  width: 46px;
}
.slide-progress {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--verde3), var(--oro2));
  z-index: 10;
  transition: width linear;
}
.slide-badge {
  position: absolute;
  top: 24px;
  right: 24px;
  background: rgba(250, 247, 242, 0.15);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
}
.trust-bar {
  background: var(--verde-dark);
  padding: 0.75rem 1rem;
}
.cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
}
@media (max-width: 700px) {
  .cat-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.cat-tile {
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
  height: 260px;
  display: block;
  text-decoration: none;
}
.cat-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s;
}
.cat-tile:hover img {
  transform: scale(1.07);
}
.cat-tile .overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(15, 46, 36, 0.85) 0%, transparent 55%);
}
.cat-tile .label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem 0.9rem 0.85rem;
}
.ara-line {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 0.5rem;
}
.ara-line::before,
.ara-line::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--bordo));
}
.ara-line::after {
  background: linear-gradient(90deg, var(--bordo), transparent);
}
.halal-strip {
  background: var(--verde);
  padding: 2.5rem 1.5rem;
  text-align: center;
}
@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.fu1 {
  animation: fadeUp 0.65s 0.06s ease forwards;
  opacity: 0;
}
.fu2 {
  animation: fadeUp 0.65s 0.16s ease forwards;
  opacity: 0;
}

/* ── WOOCOMMERCE OVERRIDES ─────────────────────────────────────── */

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.single_add_to_cart_button {
  background: var(--verde) !important;
  color: #fff !important;
  border-radius: 12px !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 700 !important;
  border: none !important;
  padding: 11px 22px !important;
  transition:
    background 0.2s,
    transform 0.18s !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.single_add_to_cart_button:hover {
  background: var(--verde2) !important;
  transform: translateY(-1px) !important;
}

/* Prices */
.woocommerce .price,
.woocommerce-Price-amount {
  color: var(--oro);
  font-family: 'Cormorant Garamond', serif;
  font-weight: 800;
}

/* Sale badge */
.woocommerce span.onsale {
  background: #dc2626;
  border-radius: 4px;
  min-height: unset;
  min-width: unset;
  padding: 3px 8px;
  line-height: 1.6;
}

/* Form fields */
.woocommerce-input-wrapper input,
.woocommerce-input-wrapper select,
.woocommerce-input-wrapper textarea,
.woocommerce form .input-text {
  border: 1.5px solid var(--avorio) !important;
  border-radius: 10px !important;
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.9rem !important;
  color: var(--testo) !important;
  background: var(--crema2) !important;
  outline: none !important;
  padding: 0.7rem 1rem !important;
}
.woocommerce-input-wrapper input:focus,
.woocommerce form .input-text:focus {
  border-color: var(--verde) !important;
  box-shadow: 0 0 0 3px rgba(26, 74, 58, 0.1) !important;
}

/* Product loop */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (max-width: 960px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: 1fr;
  }
}

/* Product thumbnails in loop */
.woocommerce ul.products li.product .product-card .woocommerce-loop-product__link img,
.product-card .pc-thumb img,
.product-card .pc-thumb .wp-post-image {
  width: 100%;
  display: block;
  aspect-ratio: 4/3;
  object-fit: cover;
  transition: transform 0.45s;
}

/* Notices */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
  border-top-color: var(--verde) !important;
  background: var(--crema2) !important;
  color: var(--testo2) !important;
  border-radius: 12px !important;
  font-family: 'Nunito', sans-serif !important;
}
.woocommerce-error {
  border-top-color: #dc2626 !important;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
  border: none !important;
}
.woocommerce nav.woocommerce-pagination ul li {
  border: none !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  width: 38px;
  height: 38px;
  border-radius: 9px !important;
  border: 1.5px solid var(--avorio) !important;
  background: transparent !important;
  font-weight: 700 !important;
  color: var(--testo2) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Nunito', sans-serif;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--verde) !important;
  color: #fff !important;
  border-color: var(--verde) !important;
}

/* Star ratings */
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before {
  color: var(--oro);
}

/* Breadcrumb */
.woocommerce-breadcrumb,
.woocommerce .woocommerce-breadcrumb {
  font-size: 12px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--testo3);
  background: var(--crema2);
  padding: 0;
  margin: 0;
  border-bottom: 1px solid var(--avorio);
}
/* Inner wrapper aligns breadcrumb text with page content (same as .wc-container) */
.woocommerce-breadcrumb .pt-bc-inner,
.woocommerce .woocommerce-breadcrumb .pt-bc-inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 10px 1.5rem !important;
}
.woocommerce-breadcrumb a,
.woocommerce .woocommerce-breadcrumb a {
  color: var(--verde);
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 700;
  text-decoration: none;
}

/* Ordering select */
.woocommerce-ordering select {
  border: 1.5px solid var(--avorio) !important;
  border-radius: 8px !important;
  padding: 0.45rem 0.85rem !important;
  font-size: 0.83rem !important;
  font-family: 'Nunito', sans-serif !important;
  color: var(--testo2) !important;
  background: var(--crema2) !important;
  outline: none !important;
  cursor: pointer !important;
}

/* Cart table */
.woocommerce table.shop_table {
  border: 1.5px solid var(--avorio) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: #fff !important;
  font-family: 'Nunito', sans-serif !important;
}
.woocommerce table.shop_table th {
  background: var(--crema2) !important;
  padding: 0.8rem 1.2rem !important;
  font-size: 0.72rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--testo3) !important;
  border-bottom: 2px solid var(--avorio) !important;
}
.woocommerce table.shop_table td {
  padding: 0.9rem 1.2rem !important;
  border-bottom: 1px solid var(--crema3) !important;
  vertical-align: middle !important;
}
.woocommerce table.cart .product-thumbnail img {
  width: 72px !important;
  height: 72px !important;
  object-fit: cover !important;
  border-radius: 9px !important;
  border: 1.5px solid var(--avorio) !important;
}

/* Cart totals */
.woocommerce .cart_totals,
.cart-totals {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 18px !important;
  padding: 1.5rem !important;
}
.woocommerce .cart_totals h2,
.cart-totals h3 {
  font-size: 1.1rem !important;
  color: var(--verde) !important;
  margin-bottom: 1rem !important;
  padding-bottom: 0.7rem !important;
  border-bottom: 1.5px solid var(--crema3) !important;
}

/* Checkout */
.woocommerce-checkout #customer_details,
.woocommerce-checkout .woocommerce-checkout-review-order {
  background: #fff;
  border: 1.5px solid var(--avorio);
  border-radius: 18px;
  padding: 1.5rem;
}
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
  background: #fff;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 16px !important;
  padding: 1.5rem !important;
}

/* Checkout form inputs */
.woocommerce-checkout .form-row label {
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  color: var(--testo2) !important;
  margin-bottom: 0.25rem !important;
  display: block !important;
}
.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row select {
  width: 100% !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 10px !important;
  padding: 0.65rem 0.9rem !important;
  font-size: 0.88rem !important;
  font-family: 'Nunito', sans-serif !important;
  color: var(--testo) !important;
  background: #fff !important;
  outline: none !important;
  transition: border-color 0.18s !important;
  box-sizing: border-box !important;
}
.woocommerce-checkout .form-row .input-text:focus,
.woocommerce-checkout .form-row select:focus {
  border-color: var(--verde) !important;
}
.woocommerce-checkout h3 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.2rem !important;
  color: var(--testo) !important;
  margin-bottom: 1rem !important;
}

/* col2-set layout — billing and shipping stack vertically inside .wc-checkout-main */
.woocommerce-checkout .col2-set {
  display: block !important;
}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  width: 100% !important;
  float: none !important;
  margin-bottom: 1.5rem !important;
}

/* Review order table */
.woocommerce-checkout-review-order table {
  border: none !important;
}

/* Order review panel table cells */
.woocommerce-checkout-review-order-table thead tr th {
  font-size: 0.72rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--testo3) !important;
  padding: 0.6rem 0.5rem !important;
  border-bottom: 2px solid var(--crema3) !important;
}
.woocommerce-checkout-review-order-table tbody tr td {
  padding: 0.65rem 0.5rem !important;
  font-size: 0.88rem !important;
  border-bottom: 1px solid var(--crema3) !important;
  vertical-align: middle !important;
}
.woocommerce-checkout-review-order-table tfoot tr th,
.woocommerce-checkout-review-order-table tfoot tr td {
  padding: 0.55rem 0.5rem !important;
  font-size: 0.88rem !important;
  color: var(--testo2) !important;
  border-bottom: 1px solid var(--crema3) !important;
}
.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
  font-size: 1rem !important;
  font-weight: 800 !important;
  color: var(--oro) !important;
  border-bottom: none !important;
  padding-top: 0.8rem !important;
}

/* Place order button */
#place_order {
  width: 100% !important;
  padding: 13px 24px !important;
  font-size: 0.92rem !important;
  justify-content: center !important;
  background: var(--verde) !important;
  border-radius: 12px !important;
}

/* Payment method cards */
#payment .wc_payment_methods {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.6rem !important;
}
#payment .wc_payment_method {
  border: 1.5px solid var(--avorio) !important;
  border-radius: 12px !important;
  padding: 0.85rem 1rem !important;
  cursor: pointer !important;
  transition:
    border-color 0.18s,
    background 0.18s !important;
  background: #fff !important;
}
#payment .wc_payment_method:hover {
  border-color: var(--verde) !important;
}
#payment .wc_payment_method.sel,
#payment .wc_payment_method.payment_method_active {
  border-color: var(--verde) !important;
  background: rgba(26, 74, 58, 0.04) !important;
}
#payment .wc_payment_method label {
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  color: var(--testo) !important;
  cursor: pointer !important;
  margin: 0 !important;
}
#payment .wc_payment_method input[type='radio'] {
  accent-color: var(--verde) !important;
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
}
#payment .payment_box {
  margin-top: 0.6rem !important;
  font-size: 0.82rem !important;
  color: var(--testo2) !important;
  padding: 0.5rem 0.6rem !important;
  background: var(--crema2) !important;
  border-radius: 8px !important;
}
/* Place order button area */
#payment #place_order {
  margin-top: 1rem !important;
}

/* Cancel old primo-taglio.css grid on inner .woocommerce div (lines 3149-3173 conflict) */
.woocommerce-account .woocommerce {
  display: block !important;
  grid-template-columns: none !important;
  padding: 0 !important;
}

/* My account nav */
.woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #fff !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}
.woocommerce-MyAccount-navigation ul li a {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.82rem 1.2rem !important;
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  color: var(--testo2) !important;
  text-decoration: none !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  border-bottom: 1px solid var(--crema3) !important;
  border-left: 3px solid transparent !important;
  transition: all 0.18s !important;
  font-family: 'Nunito', sans-serif !important;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--verde-light) !important;
  color: var(--verde) !important;
  border-left-color: var(--verde) !important;
}
.woocommerce-MyAccount-content {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 16px !important;
  padding: 1.6rem !important;
}

/* Dashboard greeting */
.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-MyAccount-content p:first-child {
  color: var(--testo2) !important;
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.9rem !important;
}
/* Address boxes */
.woocommerce-MyAccount-content .woocommerce-Addresses address {
  background: var(--crema2) !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 12px !important;
  padding: 1rem !important;
  font-size: 0.88rem !important;
  color: var(--testo2) !important;
  line-height: 1.7 !important;
}
/* Edit account form inputs */
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type='text'],
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type='email'],
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type='password'],
.woocommerce-MyAccount-content fieldset input[type='password'] {
  border: 1.5px solid var(--avorio) !important;
  border-radius: 10px !important;
  padding: 0.65rem 0.9rem !important;
  font-family: 'Nunito', sans-serif !important;
  width: 100% !important;
  box-sizing: border-box !important;
  color: var(--testo) !important;
  background: #fff !important;
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input:focus,
.woocommerce-MyAccount-content fieldset input:focus {
  outline: none !important;
  border-color: var(--verde) !important;
  box-shadow: 0 0 0 3px rgba(26, 74, 58, 0.08) !important;
}

/* Orders table in my account */
.woocommerce-orders-table {
  border-collapse: collapse !important;
  width: 100% !important;
  font-family: 'Nunito', sans-serif !important;
}
.woocommerce-orders-table th {
  font-size: 0.72rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  color: var(--testo3) !important;
  padding: 0.7rem 0.9rem !important;
  text-align: left !important;
  border-bottom: 2px solid var(--avorio) !important;
}
.woocommerce-orders-table td {
  padding: 0.8rem 0.9rem !important;
  border-bottom: 1px solid var(--crema3) !important;
  font-size: 0.86rem !important;
  color: var(--testo2) !important;
}
.woocommerce-orders-table tbody tr:hover {
  background: var(--crema2) !important;
}

/* Order status badges — WC 9.5 outputs status class on <tr>, not on cell content */
/* orders.php override adds <span class="order-status os-*"> — these styles back that up */
.woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status span,
.woocommerce-orders-table__row--status-completed .order-status {
  background: #dcfce7 !important;
  color: #14532d !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 3px 9px !important;
  border-radius: 4px !important;
  font-size: 0.68rem !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.07em !important;
  white-space: nowrap !important;
}
.woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status span,
.woocommerce-orders-table__row--status-processing .order-status {
  background: #dbeafe !important;
  color: #1e3a8a !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 3px 9px !important;
  border-radius: 4px !important;
  font-size: 0.68rem !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.07em !important;
  white-space: nowrap !important;
}
.woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status span,
.woocommerce-orders-table__row--status-on-hold .order-status {
  background: #fef9c3 !important;
  color: #713f12 !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 3px 9px !important;
  border-radius: 4px !important;
  font-size: 0.68rem !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.07em !important;
  white-space: nowrap !important;
}
.woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status span,
.woocommerce-orders-table__row--status-cancelled .order-status {
  background: #fee2e2 !important;
  color: #7f1d1d !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 3px 9px !important;
  border-radius: 4px !important;
  font-size: 0.68rem !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.07em !important;
  white-space: nowrap !important;
}

/* Thank you page */
.woocommerce-order .woocommerce-order-overview {
  background: var(--crema2) !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 12px !important;
  padding: 1rem !important;
  list-style: none !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 1rem !important;
}
.woocommerce-order .woocommerce-order-overview li {
  font-size: 0.85rem !important;
  color: var(--testo2) !important;
}
.woocommerce-order .woocommerce-order-overview li strong {
  color: var(--verde) !important;
}

/* WC order details table inside thankyou box */
.woocommerce-order .woocommerce-table--order-details {
  width: 100% !important;
  border-collapse: collapse !important;
  font-family: 'Nunito', sans-serif !important;
  background: transparent !important;
}
.woocommerce-order .woocommerce-table--order-details th,
.woocommerce-order .woocommerce-table--order-details td {
  padding: 0.65rem 0.8rem !important;
  border-bottom: 1px solid var(--crema3) !important;
  font-size: 0.86rem !important;
  color: var(--testo2) !important;
  background: transparent !important;
}
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child td,
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child th {
  font-weight: 900 !important;
  color: var(--oro) !important;
  border-bottom: none !important;
}

/* Order-received notice heading */
.woocommerce-thankyou-order-received {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.6rem !important;
  color: var(--verde) !important;
  font-weight: 700 !important;
  margin-bottom: 0.5rem !important;
}

/* BACS bank details panel */
.woocommerce-bacs-bank-details {
  background: var(--crema2) !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 12px !important;
  padding: 1rem !important;
  margin-top: 1rem !important;
  font-size: 0.88rem !important;
  color: var(--testo2) !important;
}

/* Responsive */
@media (max-width: 768px) {
  .wc-2col {
    grid-template-columns: 1fr !important;
  }
  .wc-checkout-grid {
    grid-template-columns: 1fr !important;
  }
  .wc-container {
    padding: 1.5rem 0 !important;
  }
  .woocommerce ul.products {
    grid-template-columns: 1fr 1fr !important;
  }
  .footer-inner {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 480px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }
  .footer-inner {
    grid-template-columns: 1fr !important;
  }
}

/* ── CLN-01: Dark-theme artefact neutralisation ─────────────────────────── */
/* Source: primo-taglio.css dark vars (--nero/#131110, --nero2/#1b1916, --nero3/#221f1b)
   leaking through CSS cascade. Rules below override only what is visibly dark
   on the 7 production page types. Do NOT edit primo-taglio.css. */

/* CLN-01: Home — "La Nostra Selezione" section dark background */
.section-selezione {
  background: var(--crema) !important;
}

/* Selezione header link + category pills (migrated from legacy monolith) */
.pt-vedi-tutto {
  font-family: var(--font-sans, 'Nunito', sans-serif) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--oro) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  transition: opacity 0.2s !important;
}
.pt-vedi-tutto:hover {
  opacity: 0.78 !important;
}

.pt-sel-filters {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
  margin: 1.75rem 0 1.5rem !important;
}

.pt-sel-pill {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.35rem !important;
  padding: 0.42rem 1.05rem !important;
  border-radius: 999px !important;
  border: 1.5px solid var(--avorio) !important;
  background: #fff !important;
  color: var(--testo2) !important;
  font-family: var(--font-sans, 'Nunito', sans-serif) !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  cursor: pointer !important;
  transition:
    background 0.2s,
    border-color 0.2s,
    color 0.2s,
    box-shadow 0.2s !important;
  white-space: nowrap !important;
}

.pt-sel-pill:hover {
  border-color: var(--bordo2) !important;
  color: var(--verde) !important;
  background: var(--verde-light) !important;
}

.pt-sel-pill--active {
  background: var(--verde) !important;
  border-color: var(--verde) !important;
  color: #fff !important;
  font-weight: 700 !important;
  box-shadow: 0 0 0 2px rgba(45, 106, 79, 0.18) !important;
}

.pt-sel-pill--active:hover {
  background: var(--verde2) !important;
  border-color: var(--verde2) !important;
  color: #fff !important;
}

/* CLN-01: Mini cart and login drawer dark background */
.pt-drawer {
  background: #fff !important;
  border-left: 1.5px solid var(--avorio) !important;
}
.pt-drawer-header {
  background: var(--crema2) !important;
  border-bottom: 1.5px solid var(--avorio) !important;
  color: var(--testo) !important;
}
.pt-drawer-label {
  color: var(--testo3) !important;
}
.pt-drawer-title {
  color: var(--testo) !important;
}
.pt-drawer-footer {
  background: var(--crema2) !important;
  border-top: 1.5px solid var(--avorio) !important;
}
.pt-drawer-close {
  color: var(--testo2) !important;
}

/* CLN-01: My Account — navigation container dark wrapper */
.woocommerce-MyAccount-navigation {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
}

/* ── Account user profile card ───────────────────────────────────────────── */
.pt-account-user-card {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 16px !important;
  padding: 1.4rem !important;
  text-align: center !important;
  margin-bottom: 1rem !important;
}
.pt-account-avatar {
  width: 72px !important;
  height: 72px !important;
  border-radius: 50% !important;
  background: var(--verde) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 0.9rem !important;
  font-size: 1.9rem !important;
  font-weight: 800 !important;
  color: #fff !important;
  font-family: 'Cormorant Garamond', serif !important;
}
.pt-account-name {
  font-weight: 700 !important;
  color: var(--testo) !important;
  font-size: 0.95rem !important;
  font-family: 'Nunito', sans-serif !important;
}
.pt-account-email {
  font-size: 0.78rem !important;
  color: var(--testo3) !important;
  margin-top: 0.2rem !important;
  font-family: 'Nunito', sans-serif !important;
}

/* ── Account nav icons ───────────────────────────────────────────────────── */
.woocommerce-MyAccount-navigation ul li a svg {
  flex-shrink: 0 !important;
}
/* Logout item — red */
.woocommerce-MyAccount-navigation ul li.pt-nav-logout a {
  color: #dc2626 !important;
  border-left-color: transparent !important;
}
.woocommerce-MyAccount-navigation ul li.pt-nav-logout a:hover {
  background: #fee2e2 !important;
  color: #b91c1c !important;
  border-left-color: transparent !important;
}

/* ── Dashboard stat cards ────────────────────────────────────────────────── */
.pt-dashboard-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.6rem !important;
  color: var(--verde) !important;
  margin-bottom: 1rem !important;
}
.pt-dashboard-welcome {
  font-size: 0.9rem !important;
  color: var(--testo2) !important;
  line-height: 1.7 !important;
  margin-bottom: 1.2rem !important;
  font-family: 'Nunito', sans-serif !important;
}
.pt-dashboard-welcome a {
  color: var(--verde) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
.pt-dashboard-welcome a:hover {
  text-decoration: underline !important;
}
.pt-dashboard-stats {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1rem !important;
}
.pt-stat-card {
  background: var(--crema2) !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 12px !important;
  padding: 1.1rem !important;
  text-align: center !important;
}
.pt-stat-num {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 2.2rem !important;
  font-weight: 800 !important;
}
.pt-stat-label {
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  color: var(--testo3) !important;
  margin-top: 0.3rem !important;
  font-family: 'Nunito', sans-serif !important;
}

/* CLN-01: My Account — content headings using dark sabbia-pale variable */
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
  color: var(--verde) !important;
  border-bottom-color: var(--avorio) !important;
}

/* CLN-01: My Account — address box dark background (non-Addresses wrapper context) */
.woocommerce-MyAccount-content address {
  background: var(--crema2) !important;
  border-color: var(--avorio) !important;
  color: var(--testo2) !important;
}

/* CLN-01: Orders table dark header row (th background: --nero3) */
.woocommerce-orders-table th,
.woocommerce-table--order-details th {
  background: var(--crema2) !important;
  color: var(--testo3) !important;
  border-bottom-color: var(--avorio) !important;
}
/* CLN-01: Orders table dark container background */
.woocommerce-orders-table,
.woocommerce-table--order-details {
  background: transparent !important;
  border-color: var(--avorio) !important;
}
/* CLN-01: Orders table cell text colour */
.woocommerce-orders-table td,
.woocommerce-table--order-details td {
  color: var(--testo2) !important;
  border-bottom-color: var(--crema3) !important;
}

/* CLN-01: Product gallery image dark placeholder background */
.woocommerce div.product .woocommerce-product-gallery__wrapper img,
.woocommerce div.product .woocommerce-product-gallery__image {
  background: var(--crema2) !important;
}

/* CLN-01: WC block notices dark background */
.wc-block-store-notice,
.wc-block-checkout__no-payment-methods-notice {
  background: var(--crema2) !important;
  color: var(--testo2) !important;
}

/* CLN-01: WC block order summary dark background (block checkout) */
.wc-block-order-summary,
.wc-block-components-order-summary {
  background: transparent !important;
}

/* CLN-01: Woocommerce info/error in account context dark background
   (overrides old .woocommerce-account rule at 3475 in primo-taglio.css) */
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error {
  background: var(--crema2) !important;
  color: var(--testo2) !important;
  border-top-color: var(--verde) !important;
}

/* CLN-01: select2 dropdown dark background (WC checkout country/state select) */
.select2-dropdown,
.select2-container--default .select2-results__option {
  background: #fff !important;
  color: var(--testo) !important;
}
.select2-container--default .select2-results__option--highlighted {
  background: var(--verde-light) !important;
  color: var(--verde) !important;
}
.select2-container--default .select2-selection--single {
  background: #fff !important;
  border-color: var(--avorio) !important;
}

/* CLN-01: Scrollbar track dark background */
::-webkit-scrollbar-track {
  background: var(--crema2) !important;
}
::-webkit-scrollbar-thumb {
  background: var(--avorio2) !important;
}

/* === Phase 5: Shop Fix-ups === */

/* Product card price — force WC inner spans to inherit gold color */
.pc-price .price,
.pc-price .price span,
.pc-price .woocommerce-Price-amount,
.pc-price bdi {
  color: var(--oro) !important;
  font-size: inherit !important;
  font-family: inherit !important;
  font-weight: inherit !important;
}
.pc-price .price del,
.pc-price .price del .woocommerce-Price-amount {
  color: var(--testo4) !important;
  font-size: 0.82rem !important;
  font-weight: 400 !important;
  font-family: 'Nunito', sans-serif !important;
}

/* Product grid: ensure 3-col layout even when WC adds columns-4 class */
.woocommerce ul.products.columns-4,
.woocommerce-page ul.products.columns-4,
.wc-main ul.products.columns-4 {
  grid-template-columns: repeat(3, 1fr) !important;
}
@media (max-width: 960px) {
  .woocommerce ul.products.columns-4,
  .woocommerce-page ul.products.columns-4,
  .wc-main ul.products.columns-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .woocommerce ul.products.columns-4,
  .woocommerce-page ul.products.columns-4,
  .wc-main ul.products.columns-4 {
    grid-template-columns: 1fr !important;
  }
}

/* Product card placeholder image — maintain 4:3 aspect ratio */
.pc-thumb .woocommerce-placeholder,
.product-card .pc-thumb img.woocommerce-placeholder {
  aspect-ratio: 4/3 !important;
  object-fit: cover !important;
  width: 100% !important;
  display: block !important;
  background: var(--crema2) !important;
}

/* Sidebar availability filter radio inputs — align correctly */
.wc-sidebar .filter-row input[type='radio'] {
  accent-color: var(--verde) !important;
  width: 14px !important;
  height: 14px !important;
  margin-right: 0.5rem !important;
  flex-shrink: 0 !important;
}
.wc-sidebar .filter-row span {
  display: flex !important;
  align-items: center !important;
}

/* === Phase 5: Single Product Fix-ups === */

/* Hide WC default stock text — we render our own .pc-stock inside sp-info */
.sp-info > p.stock,
.sp-info p.stock.in-stock,
.sp-info p.stock.out-of-stock,
.sp-info p.stock.available-on-backorder,
.woocommerce div.product.pt-single-product .sp-info p.stock {
  display: none !important;
}

/* sp-price p.price — WC wraps price in a p tag; remove default p margin */
.sp-price p.price {
  margin: 0 !important;
  padding: 0 !important;
}
.sp-price p.price,
.sp-price p.price .woocommerce-Price-amount,
.sp-price p.price bdi {
  font-size: 2.1rem !important;
  font-weight: 800 !important;
  color: var(--oro) !important;
  font-family: 'Cormorant Garamond', serif !important;
}
.sp-price p.price del,
.sp-price p.price del .woocommerce-Price-amount {
  font-size: 1.2rem !important;
  color: var(--testo4) !important;
  font-weight: 400 !important;
  margin-right: 0.5rem !important;
}

/* Related products grid — 3-col matching shop grid */
.woocommerce div.product .related.products ul.products,
.woocommerce div.product .upsells.products ul.products {
  grid-template-columns: repeat(3, 1fr) !important;
}
@media (max-width: 960px) {
  .woocommerce div.product .related.products ul.products,
  .woocommerce div.product .upsells.products ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .woocommerce div.product .related.products ul.products,
  .woocommerce div.product .upsells.products ul.products {
    grid-template-columns: 1fr !important;
  }
}

/* Single product gallery — ensure placeholder shows correctly */
.sp-gallery .woocommerce-product-gallery__image a img.woocommerce-placeholder {
  aspect-ratio: 1 !important;
  object-fit: cover !important;
  background: var(--crema2) !important;
}

/* === Phase 5: Home Page Fix-ups === */

/* Hero slide: override old horizontal-track (position:relative) layout so the
   opacity-fade transition from new-default-theme.css works correctly.
   primotaglio-theme.css loads last so we must re-assert absolute positioning here. */
.hero-slider .slide {
  position: absolute !important;
  inset: 0 !important;
  min-width: 0 !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 0 !important;
  transition: opacity 0.85s cubic-bezier(0.77, 0, 0.175, 1) !important;
  flex-shrink: unset !important;
}
.hero-slider .slide.active {
  opacity: 1 !important;
}

/* Hero background image div: must fill slide absolutely and scale on active */
.hero-slider .hero-bg {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center top !important;
  transform: scale(1.06) !important;
  transition: transform 8s ease !important;
}
.hero-slider .slide.active .hero-bg {
  transform: scale(1) !important;
}

/* Hero headline: reference design uses clamp font size (missing from .s-h rule) */
.s-h {
  font-size: clamp(2.6rem, 5.5vw, 5rem) !important;
}

/* Category grid: ensure cat-card body text is above the pseudo-element overlay */
.cat-card-body {
  z-index: 2 !important;
}

/* Category section header: match reference title styling */
.pt-cats-title {
  font-size: clamp(1.9rem, 4vw, 3rem) !important;
  color: var(--verde) !important;
}

/* Features trust bar: dark green background matches reference index.html trust-bar */
.trust-bar.features-bar {
  background: var(--verde-dark) !important;
}

/* === Phase 5: My Account Fix-ups === */

/* Order number cell (<th scope="row">) — green monospace link, matching reference template */
.woocommerce-orders-table__cell-order-number {
  font-family: monospace !important;
  font-weight: 700 !important;
  color: var(--verde) !important;
  /* reset header-th styles that bleed in from .woocommerce-orders-table th rule */
  font-size: 0.86rem !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  border-bottom: 1px solid var(--crema3) !important;
  padding: 0.8rem 0.9rem !important;
  vertical-align: middle !important;
}
.woocommerce-orders-table__cell-order-number a {
  color: var(--verde) !important;
  font-family: monospace !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
.woocommerce-orders-table__cell-order-number a:hover {
  text-decoration: underline !important;
}

/* Order total cell — gold Cormorant serif matching reference */
.woocommerce-orders-table__cell-order-total {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 700 !important;
  color: var(--oro) !important;
  vertical-align: middle !important;
}
.woocommerce-orders-table__cell-order-total .woocommerce-Price-amount,
.woocommerce-orders-table__cell-order-total bdi {
  color: var(--oro) !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 700 !important;
}

/* Order table td alignment */
.woocommerce-orders-table td {
  vertical-align: middle !important;
}

/* Action buttons in orders table — btn-ghost style */
.woocommerce-orders-table__cell-order-actions a.button,
.woocommerce-orders-table__cell-order-actions .woocommerce-button {
  background: transparent !important;
  border: 1.5px solid var(--avorio) !important;
  color: var(--testo2) !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.75rem !important;
  border-radius: 8px !important;
  padding: 0.35rem 0.8rem !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
}
.woocommerce-orders-table__cell-order-actions a.button:hover,
.woocommerce-orders-table__cell-order-actions .woocommerce-button:hover {
  background: var(--crema2) !important;
  border-color: var(--testo3) !important;
}

/* Last nav item — remove border-bottom */
.woocommerce-MyAccount-navigation ul li:last-child a {
  border-bottom: none !important;
}

/* Downloads nav icon — add for completeness (downloads endpoint may appear) */
/* Note: icon rendered via navigation.php SVG map; this ensures spacing is correct */
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--downloads a {
  gap: 0.75rem !important;
}

/* === Phase 5: Order Confirmation Fix-ups === */

/* Confirmation heading — clamp font size to match reference template */
.woocommerce-thankyou-order-received {
  font-size: clamp(2rem, 5vw, 3rem) !important;
  color: var(--testo) !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 700 !important;
  margin-bottom: 0.5rem !important;
}

/* Confirmation header area — centered */
.woocommerce-order > div:first-child {
  text-align: center !important;
}

/* Order details table — product name bold */
.woocommerce-order .woocommerce-table--order-details .product-name {
  font-weight: 700 !important;
  color: var(--testo) !important;
}
.woocommerce-order .woocommerce-table--order-details .product-name a {
  color: var(--testo) !important;
  text-decoration: none !important;
  font-weight: 700 !important;
}

/* Order details table — product subtotal (per row price) in gold */
.woocommerce-order .woocommerce-table--order-details .product-subtotal,
.woocommerce-order .woocommerce-table--order-details .product-total {
  font-weight: 700 !important;
  color: var(--oro) !important;
}
.woocommerce-order .woocommerce-table--order-details .product-subtotal .woocommerce-Price-amount,
.woocommerce-order .woocommerce-table--order-details .product-total .woocommerce-Price-amount,
.woocommerce-order .woocommerce-table--order-details .product-subtotal bdi,
.woocommerce-order .woocommerce-table--order-details .product-total bdi {
  color: var(--oro) !important;
  font-weight: 700 !important;
}

/* Order tfoot subtotal/shipping rows — normal style */
.woocommerce-order .woocommerce-table--order-details tfoot tr td,
.woocommerce-order .woocommerce-table--order-details tfoot tr th {
  font-size: 0.88rem !important;
  color: var(--testo2) !important;
  border-bottom: 1px solid var(--crema3) !important;
  padding: 0.6rem 0.8rem !important;
}

/* Order tfoot last row (grand total) — gold serif bold */
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child td,
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child th {
  font-size: 1rem !important;
  font-weight: 900 !important;
  font-family: 'Cormorant Garamond', serif !important;
  color: var(--oro) !important;
  border-bottom: none !important;
  padding-top: 0.7rem !important;
}
.woocommerce-order
  .woocommerce-table--order-details
  tfoot
  tr:last-child
  td
  .woocommerce-Price-amount,
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child td bdi {
  font-size: 1.2rem !important;
  color: var(--oro) !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 900 !important;
}

/* Shipping free label — green */
.woocommerce-order .woocommerce-table--order-details tfoot .shipping td {
  color: #16a34a !important;
  font-weight: 700 !important;
}

/* Product thumbnail in order details table — small rounded */
.woocommerce-order .woocommerce-table--order-details .product-name img {
  width: 48px !important;
  height: 48px !important;
  border-radius: 8px !important;
  object-fit: cover !important;
  margin-right: 0.6rem !important;
  vertical-align: middle !important;
  border: 1px solid var(--avorio) !important;
}

/* === Phase 5: Cart Fix-ups === */

/* Cart page heading */
.woocommerce-cart .wc-container > h1,
.woocommerce-cart h1.page-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(1.8rem, 4vw, 2.8rem) !important;
  color: var(--verde) !important;
  margin-bottom: 1.8rem !important;
  font-weight: 700 !important;
}

/* Remove link — circular button matching .remove-btn in reference */
.woocommerce table.cart td.product-remove a.remove,
.woocommerce-cart table.cart td.product-remove a.remove {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  background: var(--crema2) !important;
  border: 1.5px solid var(--avorio) !important;
  color: var(--testo3) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition:
    background 0.18s,
    border-color 0.18s,
    color 0.18s !important;
  line-height: 1 !important;
}
.woocommerce table.cart td.product-remove a.remove:hover,
.woocommerce-cart table.cart td.product-remove a.remove:hover {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #fff !important;
}

/* Cart table price cells — gold color matching .cart-price */
.woocommerce table.cart .product-price .woocommerce-Price-amount,
.woocommerce table.cart .product-price bdi,
.woocommerce table.cart .product-subtotal .woocommerce-Price-amount,
.woocommerce table.cart .product-subtotal bdi {
  color: var(--oro) !important;
  font-weight: 800 !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1rem !important;
}

/* Product name link in cart */
.woocommerce table.cart .product-name a {
  font-weight: 700 !important;
  color: var(--testo) !important;
  text-decoration: none !important;
  font-size: 0.9rem !important;
}
.woocommerce table.cart .product-name a:hover {
  color: var(--verde) !important;
}

/* Cart actions row — coupon + update button area */
.woocommerce-cart-form .actions {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0.8rem !important;
  padding: 1.2rem 0 0 !important;
  border-bottom: none !important;
  background: transparent !important;
}
.woocommerce-cart-form .actions .coupon {
  display: flex !important;
  gap: 0.6rem !important;
  flex: 1 !important;
  max-width: 420px !important;
  align-items: center !important;
}
.woocommerce-cart-form .actions .coupon input#coupon_code {
  flex: 1 !important;
  padding: 0.65rem 1rem !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 9px !important;
  font-size: 0.85rem !important;
  font-family: 'Nunito', sans-serif !important;
  background: var(--crema2) !important;
  outline: none !important;
  color: var(--testo) !important;
  transition: border-color 0.2s !important;
}
.woocommerce-cart-form .actions .coupon input#coupon_code:focus {
  border-color: var(--verde) !important;
}
/* Coupon apply button — .btn-outline style */
.woocommerce-cart-form .actions .coupon button[name='apply_coupon'] {
  background: transparent !important;
  border: 1.5px solid var(--bordo2) !important;
  color: var(--verde) !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.82rem !important;
  border-radius: 10px !important;
  padding: 0.65rem 1.2rem !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  white-space: nowrap !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  box-shadow: none !important;
}
.woocommerce-cart-form .actions .coupon button[name='apply_coupon']:hover {
  background: var(--verde-light) !important;
  border-color: var(--verde) !important;
}
/* Update cart button — .btn-ghost style */
.woocommerce-cart-form .actions button[name='update_cart'] {
  background: transparent !important;
  border: 1.5px solid var(--testo4) !important;
  color: var(--testo2) !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.82rem !important;
  border-radius: 8px !important;
  padding: 0.65rem 1.4rem !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  box-shadow: none !important;
}
.woocommerce-cart-form .actions button[name='update_cart']:hover {
  background: var(--crema2) !important;
  border-color: var(--testo3) !important;
}

/* Cart totals table rows — match .totals-row pattern */
.woocommerce .cart_totals table.shop_table tr th {
  padding: 0.55rem 0.75rem 0.55rem 0 !important;
  font-size: 0.88rem !important;
  color: var(--testo2) !important;
  border-bottom: 1px solid var(--crema3) !important;
  background: transparent !important;
}
.woocommerce .cart_totals table.shop_table tr td {
  padding: 0.55rem 0 0.55rem 0.5rem !important;
  font-size: 0.88rem !important;
  color: var(--testo2) !important;
  border-bottom: 1px solid var(--crema3) !important;
  background: transparent !important;
}
.woocommerce .cart_totals table.shop_table tr:last-child th,
.woocommerce .cart_totals table.shop_table tr:last-child td {
  border-bottom: none !important;
}
/* Cart totals total row (gold, larger) */
.woocommerce .cart_totals table tr.order-total th,
.woocommerce .cart_totals table tr.order-total td {
  font-size: 1.1rem !important;
  font-weight: 900 !important;
  padding-top: 0.9rem !important;
  color: var(--testo) !important;
}
.woocommerce .cart_totals table tr.order-total td .woocommerce-Price-amount,
.woocommerce .cart_totals table tr.order-total td bdi {
  color: var(--oro) !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.5rem !important;
  font-weight: 800 !important;
}
/* Totals subtotal / shipping amounts — gold serif */
.woocommerce .cart_totals .cart-subtotal .woocommerce-Price-amount,
.woocommerce .cart_totals .cart-subtotal bdi {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: var(--oro) !important;
}

/* Proceed to checkout button — full-width verde */
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce .wc-proceed-to-checkout .checkout-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  background: var(--verde) !important;
  color: #fff !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.92rem !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 13px 24px !important;
  cursor: pointer !important;
  transition:
    background 0.2s,
    transform 0.18s,
    box-shadow 0.2s !important;
  text-decoration: none !important;
  text-align: center !important;
  margin-top: 1rem !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  box-shadow: none !important;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce .wc-proceed-to-checkout .checkout-button:hover {
  background: var(--verde2) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(26, 74, 58, 0.25) !important;
}

/* Empty cart state */
.woocommerce-cart .cart-empty,
.woocommerce-info.woocommerce-cart-is-empty {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.4rem !important;
  color: var(--testo3) !important;
  border: none !important;
  background: transparent !important;
  padding: 3rem 0 !important;
  text-align: center !important;
}

/* Checkout CSS moved to assets/css/pages/checkout.css */

/* ====================================================================
   Phase 5: Admin Dashboard Fix-ups
   Styles all .pt-dash-* / .pt-stat-* / .pt-panel-* / .pt-table /
   .pt-btn-* / .pt-filter-* / .pt-modal-* / .pt-form-* / .pt-toast
   classes used in page-pt-dashboard.php, matching admin.html reference.
   ==================================================================== */

/* ── Page wrapper ───────────────────────────────────────────────────── */
.pt-dashboard {
  background: var(--crema2) !important;
  min-height: 100vh !important;
  font-family: 'Nunito', sans-serif !important;
}

/* ── Dashboard header bar ───────────────────────────────────────────── */
.pt-dash-header {
  background: #fff !important;
  border-bottom: 2px solid var(--avorio) !important;
  box-shadow: 0 2px 12px rgba(44, 36, 22, 0.06) !important;
  padding: 0.45rem 1rem !important;
}
.pt-dash-header-inner {
  max-width: 1300px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
  gap: 0.7rem !important;
}
.pt-dash-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  color: var(--verde) !important;
  line-height: 1 !important;
  margin: 0 !important;
}
.pt-dash-title em {
  color: var(--oro) !important;
  font-style: italic !important;
}
.pt-dash-subtitle {
  font-size: 0.74rem !important;
  color: var(--testo3) !important;
  font-family: 'Nunito', sans-serif !important;
  margin-top: 0.1rem !important;
}
.pt-dash-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0.35rem !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}
.pt-dash-nav::-webkit-scrollbar {
  display: none !important;
}
.pt-dash-tab {
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  padding: 0.42rem 0.8rem !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  border: 1.5px solid var(--avorio) !important;
  background: transparent !important;
  color: var(--testo2) !important;
  transition: all 0.2s !important;
  text-decoration: none !important;
  flex: 0 0 auto !important;
}
.pt-dash-tab.active,
.pt-dash-tab:focus {
  background: var(--verde) !important;
  color: #fff !important;
  border-color: var(--verde) !important;
}
.pt-dash-tab:hover:not(.active) {
  background: var(--verde-light) !important;
  border-color: var(--bordo2) !important;
  color: var(--verde) !important;
}
.pt-dash-back {
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  padding: 0.42rem 0.72rem !important;
  border-radius: 8px !important;
  border: 1.5px solid var(--avorio) !important;
  background: transparent !important;
  color: var(--testo2) !important;
  text-decoration: none !important;
  transition: all 0.2s !important;
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
}
.pt-dash-back:hover {
  background: var(--verde-light) !important;
  border-color: var(--bordo2) !important;
  color: var(--verde) !important;
}

@media (max-width: 1100px) {
  .pt-dash-subtitle {
    display: none !important;
  }
}

@media (max-width: 720px) {
  .pt-dash-header {
    padding: 0.35rem 0.65rem !important;
  }
  .pt-dash-header-inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.45rem !important;
  }
  .pt-dash-nav {
    width: 100% !important;
    justify-content: flex-start !important;
  }
}

/* ── Stats cards row ────────────────────────────────────────────────── */
.pt-dash-stats-wrap {
  max-width: 1300px !important;
  margin: 1.5rem auto !important;
  padding: 0 1.5rem !important;
}
.pt-dash-stats {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1rem !important;
}
@media (max-width: 900px) {
  .pt-dash-stats {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 540px) {
  .pt-dash-stats {
    grid-template-columns: 1fr !important;
  }
}
.pt-stat-card {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 18px !important;
  padding: 1.4rem !important;
  box-shadow: 0 2px 12px rgba(44, 36, 22, 0.06) !important;
}
.pt-stat-label {
  font-size: 0.68rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--testo3) !important;
  font-family: 'Nunito', sans-serif !important;
  margin-bottom: 0.4rem !important;
}
.pt-stat-value {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 2.6rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: var(--verde) !important;
  margin-bottom: 0.3rem !important;
}
.pt-stat-trend {
  font-size: 0.75rem !important;
  color: var(--testo3) !important;
  font-family: 'Nunito', sans-serif !important;
}
.pt-stat-trend.positive {
  color: #16a34a !important;
}

/* ── Main body / panels ─────────────────────────────────────────────── */
.pt-dash-body {
  max-width: 1300px !important;
  margin: 0 auto 3rem !important;
  padding: 0 1.5rem !important;
}
.pt-dash-panel {
  display: none !important;
}
.pt-dash-panel.active {
  display: block !important;
}
.pt-panel-card {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 18px !important;
  box-shadow: 0 2px 12px rgba(44, 36, 22, 0.06) !important;
  overflow: hidden !important;
  margin-bottom: 1.5rem !important;
}
.pt-panel-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 0.75rem !important;
  padding: 1.2rem 1.4rem !important;
  border-bottom: 1.5px solid var(--avorio) !important;
}
.pt-panel-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: var(--verde) !important;
  margin: 0 !important;
}
/* Panel title when not inside .pt-panel-header (e.g. cat stats card) */
.pt-panel-card > .pt-panel-title {
  padding: 1.2rem 1.4rem 0.8rem !important;
  border-bottom: 1.5px solid var(--avorio) !important;
}

/* ── Toast color variants (main.js dynamic toasts) ─────────────────── */
.pt-toast--success {
  background: #1a4a3a !important;
  border: 1px solid rgba(34, 197, 94, 0.35) !important;
  color: #4ade80 !important;
}
.pt-toast--error {
  background: #4a1a1a !important;
  border: 1px solid rgba(239, 68, 68, 0.35) !important;
  color: #f87171 !important;
}
.pt-toast--info {
  background: #1a2535 !important;
  border: 1px solid rgba(96, 165, 250, 0.35) !important;
  color: #93c5fd !important;
}

/* ── Quick-reference guide (collapsible) ────────────────────────────── */
.pt-quick-guide {
  margin: 1rem 1.4rem !important;
  border: 1px solid #e5e0d8 !important;
  border-radius: 8px !important;
  background: #faf9f7 !important;
  overflow: hidden !important;
}
.pt-quick-guide summary {
  padding: 0.55rem 1rem !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  color: var(--verde) !important;
  cursor: pointer !important;
  list-style: none !important;
  user-select: none !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}
.pt-quick-guide summary::-webkit-details-marker {
  display: none !important;
}
.pt-quick-guide[open] summary {
  border-bottom: 1px solid #e5e0d8 !important;
}
.pt-guide-body {
  padding: 0.8rem 1rem !important;
}
.pt-guide-body ul {
  margin: 0 !important;
  padding-left: 1.2rem !important;
  font-size: 0.78rem !important;
  color: #555 !important;
  line-height: 1.7 !important;
}
.pt-guide-body li {
  margin-bottom: 0.2rem !important;
}
.pt-guide-body code {
  background: #eee !important;
  border-radius: 3px !important;
  padding: 0 0.3em !important;
  font-size: 0.88em !important;
  font-family: monospace !important;
}

/* ── Filter bar ─────────────────────────────────────────────────────── */
.pt-panel-filters {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  flex-wrap: wrap !important;
}
.pt-filter-select {
  border: 1.5px solid var(--avorio) !important;
  border-radius: 8px !important;
  padding: 0.45rem 0.85rem !important;
  font-size: 0.83rem !important;
  font-family: 'Nunito', sans-serif !important;
  color: var(--testo2) !important;
  background: var(--crema2) !important;
  outline: none !important;
  cursor: pointer !important;
}
.pt-filter-select:focus {
  border-color: var(--verde) !important;
}

/* ── Buttons in panel header ────────────────────────────────────────── */
.pt-btn-new {
  background: var(--verde) !important;
  color: #fff !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.88rem !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 9px 20px !important;
  cursor: pointer !important;
  transition:
    background 0.2s,
    transform 0.18s !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
}
.pt-btn-new:hover {
  background: var(--verde2) !important;
  transform: translateY(-1px) !important;
}
.pt-btn-csv {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  background: transparent !important;
  border: 1.5px solid var(--bordo2) !important;
  color: var(--verde) !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.82rem !important;
  border-radius: 10px !important;
  padding: 7px 16px !important;
  cursor: pointer !important;
  text-decoration: none !important;
  transition: all 0.2s !important;
}
.pt-btn-csv:hover {
  background: var(--verde-light) !important;
  border-color: var(--verde) !important;
}

/* ── Data table ─────────────────────────────────────────────────────── */
.pt-table-wrap {
  overflow-x: auto !important;
}
.pt-table {
  width: 100% !important;
  border-collapse: collapse !important;
}
.pt-table th {
  font-size: 0.7rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  color: var(--testo3) !important;
  padding: 0.75rem 1.1rem !important;
  text-align: left !important;
  border-bottom: 2px solid var(--avorio) !important;
  background: var(--crema2) !important;
  white-space: nowrap !important;
}
.pt-table td {
  padding: 0.8rem 1.1rem !important;
  font-size: 0.85rem !important;
  border-bottom: 1px solid var(--crema3) !important;
  vertical-align: middle !important;
  color: var(--testo2) !important;
}
.pt-table tr:last-child td {
  border-bottom: none !important;
}
.pt-table tbody tr:hover {
  background: rgba(250, 247, 242, 0.7) !important;
}
.pt-table-loading {
  text-align: center !important;
  padding: 2rem !important;
  color: var(--testo3) !important;
  font-size: 0.9rem !important;
}
.pt-table-footer {
  padding: 0.8rem 1.1rem !important;
  border-top: 1px solid var(--crema3) !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  flex-wrap: wrap !important;
}

/* ── Status / stock badges inside table ─────────────────────────────── */
.pt-badge {
  display: inline-flex !important;
  align-items: center !important;
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 3px 10px !important;
  border-radius: 4px !important;
  white-space: nowrap !important;
}
.pt-badge-completed {
  background: #dcfce7 !important;
  color: #14532d !important;
}
.pt-badge-processing {
  background: #dbeafe !important;
  color: #1e3a8a !important;
}
.pt-badge-on-hold {
  background: #fef9c3 !important;
  color: #713f12 !important;
}
.pt-badge-shipped {
  background: #e0f2fe !important;
  color: #0c4a6e !important;
}
.pt-badge-cancelled {
  background: #fee2e2 !important;
  color: #7f1d1d !important;
}
.pt-badge-refunded {
  background: #f3e8ff !important;
  color: #581c87 !important;
}
.pt-badge-instock {
  background: #dcfce7 !important;
  color: #14532d !important;
}
.pt-badge-lowstock {
  background: #fef9c3 !important;
  color: #713f12 !important;
}
.pt-badge-outofstock {
  background: #fee2e2 !important;
  color: #7f1d1d !important;
}
.pt-badge-green {
  background: #dcfce7 !important;
  color: #14532d !important;
  font-size: 0.82rem !important;
  padding: 5px 12px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.pt-badge-red {
  background: #fee2e2 !important;
  color: #7f1d1d !important;
  font-size: 0.82rem !important;
  padding: 5px 12px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* ── Settings panel : rows, toggle switch ────────────────────────────── */
.pt-setting-row {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 1.5rem !important;
  padding: 1rem 0 !important;
  border-bottom: 1px solid var(--avorio) !important;
}
.pt-setting-info {
  flex: 1 !important;
  min-width: 0 !important;
}
.pt-setting-label {
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  color: var(--testo) !important;
  margin-bottom: 0.25rem !important;
}
.pt-setting-desc {
  font-size: 0.82rem !important;
  color: var(--testo3) !important;
  line-height: 1.5 !important;
}
.pt-setting-status {
  padding-top: 0.75rem !important;
}
/* Toggle switch */
.pt-toggle {
  position: relative !important;
  display: inline-block !important;
  width: 48px !important;
  height: 26px !important;
  flex-shrink: 0 !important;
}
.pt-toggle input {
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
}
.pt-toggle-slider {
  position: absolute !important;
  cursor: pointer !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  background: var(--avorio2) !important;
  border-radius: 26px !important;
  transition: background 0.2s !important;
}
.pt-toggle-slider::before {
  content: '' !important;
  position: absolute !important;
  height: 20px !important;
  width: 20px !important;
  left: 3px !important;
  bottom: 3px !important;
  background: #fff !important;
  border-radius: 50% !important;
  transition: transform 0.2s !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) !important;
}
.pt-toggle input:checked + .pt-toggle-slider {
  background: var(--verde) !important;
}
.pt-toggle input:checked + .pt-toggle-slider::before {
  transform: translateX(22px) !important;
}

/* Action icon buttons inside product table rows */
.pt-table .pt-action-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 30px !important;
  height: 30px !important;
  border-radius: 7px !important;
  border: 1.5px solid var(--avorio) !important;
  background: transparent !important;
  cursor: pointer !important;
  color: var(--testo3) !important;
  font-size: 0.82rem !important;
  transition: all 0.18s !important;
}
.pt-table .pt-action-btn:hover {
  background: var(--verde-light) !important;
  border-color: var(--bordo2) !important;
  color: var(--verde) !important;
}
.pt-table .pt-action-btn.danger:hover {
  background: #fee2e2 !important;
  border-color: #fca5a5 !important;
  color: #dc2626 !important;
}

/* ── Category bar chart (Vendite per Categoria) ──────────────────────── */
.pt-cat-bars {
  padding: 1rem 1.4rem !important;
}
.pt-cat-bars-loading {
  text-align: center !important;
  color: var(--testo3) !important;
  font-size: 0.9rem !important;
  padding: 1.5rem 0 !important;
}
.pt-cat-bar-row {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  margin-bottom: 0.65rem !important;
  font-size: 0.82rem !important;
}
.pt-cat-bar-label {
  width: 120px !important;
  flex-shrink: 0 !important;
  font-weight: 700 !important;
  color: var(--testo2) !important;
}
.pt-cat-bar-track {
  flex: 1 !important;
  height: 8px !important;
  background: var(--crema3) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
}
.pt-cat-bar-fill {
  height: 100% !important;
  background: linear-gradient(90deg, var(--verde), var(--verde3)) !important;
  border-radius: 4px !important;
  transition: width 0.4s ease !important;
}
.pt-cat-bar-val {
  width: 60px !important;
  text-align: right !important;
  font-weight: 700 !important;
  color: var(--oro) !important;
  font-family: 'Cormorant Garamond', serif !important;
}

/* ── Top 5 list ─────────────────────────────────────────────────────── */
.pt-top-list {
  list-style: none !important;
  padding: 1rem 1.4rem !important;
  margin: 0 !important;
}
.pt-top-list li {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.55rem 0 !important;
  border-bottom: 1px solid var(--crema3) !important;
  font-size: 0.87rem !important;
  color: var(--testo2) !important;
}
.pt-top-list li:last-child {
  border-bottom: none !important;
}
.pt-top-loading {
  color: var(--testo3) !important;
  font-size: 0.9rem !important;
  text-align: center !important;
  padding: 1rem 0 !important;
}

/* ── Phase 9: Cart drawer hardening ───────────────────────────────────── */
.pt-cart-drawer .pt-drawer-body {
  padding-bottom: 1.6rem !important;
}

.pt-cart-drawer .pt-drawer-footer {
  position: sticky !important;
  bottom: 0 !important;
}

.pt-mini-cart-wrap .woocommerce-mini-cart-item {
  position: relative !important;
  align-items: flex-start !important;
  padding-right: 2rem !important;
}

.pt-mini-cart-wrap .woocommerce-mini-cart-item .remove,
.pt-mini-cart-wrap .woocommerce-mini-cart-item .remove_from_cart_button {
  position: absolute !important;
  top: 0.45rem !important;
  right: 0.45rem !important;
  line-height: 1 !important;
  font-size: 1rem !important;
}

.pt-mini-cart-wrap .woocommerce-mini-cart-item > a:not(.remove):not(.remove_from_cart_button) {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.75rem !important;
  width: 100% !important;
  color: var(--verde) !important;
  text-decoration: none !important;
}

.pt-mini-cart-wrap .woocommerce-mini-cart-item > a:not(.remove):not(.remove_from_cart_button) img {
  width: 52px !important;
  height: 52px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  flex-shrink: 0 !important;
}

.pt-mini-cart-wrap .woocommerce-mini-cart-item .quantity {
  margin-left: calc(52px + 0.75rem) !important;
  margin-top: 0.15rem !important;
  display: block !important;
  line-height: 1.4 !important;
}

/* ── Product thumbnail in table ─────────────────────────────────────── */
.pt-table .pt-thumb {
  width: 48px !important;
  height: 48px !important;
  object-fit: cover !important;
  border-radius: 9px !important;
  border: 1.5px solid var(--avorio) !important;
}

/* ── Pagination inside .pt-table-footer ─────────────────────────────── */
.pt-page-btn {
  width: 34px !important;
  height: 34px !important;
  border-radius: 8px !important;
  border: 1.5px solid var(--avorio) !important;
  background: transparent !important;
  cursor: pointer !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  color: var(--testo2) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.18s !important;
  font-family: 'Nunito', sans-serif !important;
}
.pt-page-btn:hover {
  border-color: var(--verde) !important;
  color: var(--verde) !important;
  background: var(--verde-light) !important;
}
.pt-page-btn.current {
  background: var(--verde) !important;
  color: #fff !important;
  border-color: var(--verde) !important;
}

/* ── Modal overlay ──────────────────────────────────────────────────── */
.pt-modal-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(44, 36, 22, 0.5) !important;
  padding: 1rem !important;
  opacity: 1 !important;
  pointer-events: all !important;
}
.pt-modal-overlay[hidden] {
  display: none !important;
}
.pt-modal {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 22px !important;
  width: 100% !important;
  max-width: 640px !important;
  box-shadow: 0 32px 80px rgba(44, 36, 22, 0.18) !important;
  max-height: 90vh !important;
  overflow: hidden !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
}
.pt-modal-sm .pt-modal {
  max-width: 420px !important;
}
.pt-modal-close {
  position: absolute !important;
  top: 1rem !important;
  right: 1rem !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px !important;
  border: 1.5px solid var(--avorio) !important;
  background: transparent !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--testo3) !important;
  transition: all 0.18s !important;
}
.pt-modal-close:hover {
  background: var(--crema2) !important;
  border-color: var(--testo3) !important;
}
.pt-modal-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  color: var(--verde) !important;
  margin: 0 0 1.2rem !important;
  padding-right: 2rem !important;
}
.pt-modal-header {
  padding: 1rem 1.4rem 0.95rem !important;
  border-bottom: 1.5px solid var(--avorio) !important;
  background: #fff !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 2 !important;
}
.pt-modal-body {
  padding: 1rem 1.4rem 0 !important;
  overflow-y: auto !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
}
.pt-modal-footer {
  padding: 0.75rem 1.4rem !important;
  border-top: 1.5px solid var(--avorio) !important;
  background: #fff !important;
  position: sticky !important;
  bottom: 0 !important;
  z-index: 2 !important;
}
.pt-modal-text {
  font-size: 0.88rem !important;
  color: var(--testo2) !important;
  line-height: 1.6 !important;
  margin-bottom: 1.2rem !important;
}
.pt-modal-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0.75rem !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: none !important;
}

/* ── Modal form fields ──────────────────────────────────────────────── */
.pt-modal-form {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.85rem !important;
}
.pt-form-row {
  display: grid !important;
  gap: 0.8rem !important;
}
.pt-form-row-2 {
  grid-template-columns: 1fr 1fr !important;
}
.pt-form-row-3 {
  grid-template-columns: 1fr 1fr 1fr !important;
}
@media (max-width: 560px) {
  .pt-form-row-2,
  .pt-form-row-3 {
    grid-template-columns: 1fr !important;
  }
}
.pt-form-group {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.35rem !important;
}
.pt-form-check {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  color: var(--testo2) !important;
  min-height: 40px !important;
}
.pt-form-check input[type='checkbox'] {
  width: 16px !important;
  height: 16px !important;
  accent-color: var(--verde) !important;
}
.pt-form-label {
  display: block !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--testo2) !important;
  font-family: 'Nunito', sans-serif !important;
}
.pt-form-label .req {
  color: #dc2626 !important;
}
.pt-form-input {
  width: 100% !important;
  padding: 0.7rem 1rem !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 10px !important;
  font-size: 0.9rem !important;
  font-family: 'Nunito', sans-serif !important;
  color: var(--testo) !important;
  background: var(--crema2) !important;
  outline: none !important;
  transition:
    border-color 0.2s,
    box-shadow 0.2s !important;
  box-sizing: border-box !important;
}
.pt-form-input:focus {
  border-color: var(--verde) !important;
  box-shadow: 0 0 0 3px rgba(26, 74, 58, 0.1) !important;
}
.pt-form-input::placeholder {
  color: var(--testo4) !important;
}
.pt-form-textarea {
  resize: vertical !important;
  min-height: 80px !important;
}

/* ── Image upload widget in modal ───────────────────────────────────── */
/* ── Image upload zone (replaces wp.media) ──────────────────────────── */
.pt-form-hint {
  font-size: 0.75rem !important;
  color: var(--testo3) !important;
  font-weight: 400 !important;
  margin-left: 0.4rem !important;
}
.pt-img-upload-zone {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.6rem !important;
  align-items: flex-start !important;
  padding: 0.75rem !important;
  border: 2px dashed var(--avorio) !important;
  border-radius: 12px !important;
  background: var(--crema) !important;
  transition:
    border-color 0.2s,
    background 0.2s !important;
  min-height: 80px !important;
}
.pt-img-upload-zone.drag-over {
  border-color: var(--verde) !important;
  background: var(--verde-light, rgba(44, 94, 44, 0.06)) !important;
}
.pt-img-upload-zone.uploading {
  opacity: 0.7 !important;
  pointer-events: none !important;
}
.pt-img-thumbs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.6rem !important;
}
.pt-thumb-item {
  position: relative !important;
  width: 80px !important;
  height: 80px !important;
  border-radius: 10px !important;
  overflow: visible !important;
  flex-shrink: 0 !important;
  cursor: pointer !important;
}
.pt-thumb-item.pt-thumb-main {
  cursor: default !important;
}
.pt-thumb-item img {
  width: 80px !important;
  height: 80px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  border: 2px solid var(--avorio) !important;
  display: block !important;
  transition:
    border-color 0.2s,
    opacity 0.2s !important;
}
.pt-thumb-item.pt-thumb-main img {
  border-color: var(--oro) !important;
  box-shadow: 0 0 0 2px rgba(200, 164, 90, 0.35) !important;
}
.pt-thumb-item:not(.pt-thumb-main):hover img {
  border-color: var(--oro) !important;
  opacity: 0.85 !important;
}
.pt-thumb-item.dragging {
  opacity: 0.35 !important;
}
.pt-thumb-item.drag-over img {
  border-color: var(--oro) !important;
  border-style: dashed !important;
}
.pt-thumb-badge {
  position: absolute !important;
  bottom: -7px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  background: var(--oro) !important;
  color: var(--nero) !important;
  font-size: 0.6rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  padding: 2px 6px !important;
  border-radius: 20px !important;
  white-space: nowrap !important;
}
.pt-thumb-remove {
  position: absolute !important;
  top: -7px !important;
  right: -7px !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  background: #dc2626 !important;
  color: #fff !important;
  border: none !important;
  cursor: pointer !important;
  font-size: 0.85rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  padding: 0 !important;
}
.pt-img-add-btn {
  width: 80px !important;
  height: 80px !important;
  border: 2px dashed var(--bordo2) !important;
  border-radius: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  color: var(--verde) !important;
  background: transparent !important;
  transition: all 0.2s !important;
  flex-shrink: 0 !important;
}
.pt-img-add-btn:hover {
  border-color: var(--verde) !important;
  background: var(--verde-light, rgba(44, 94, 44, 0.06)) !important;
}
.pt-img-drop-hint {
  font-size: 0.72rem !important;
  color: var(--testo3) !important;
  margin-top: 0.3rem !important;
}

/* ── Modal action buttons ───────────────────────────────────────────── */
.pt-btn-cancel {
  background: transparent !important;
  border: 1.5px solid var(--avorio) !important;
  color: var(--testo2) !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.88rem !important;
  border-radius: 10px !important;
  padding: 9px 22px !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
}
.pt-btn-cancel:hover {
  background: var(--crema2) !important;
  border-color: var(--testo3) !important;
}
.pt-btn-save {
  background: var(--verde) !important;
  color: #fff !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.88rem !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 9px 22px !important;
  cursor: pointer !important;
  transition:
    background 0.2s,
    transform 0.18s !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
}
.pt-btn-save:hover {
  background: var(--verde2) !important;
  transform: translateY(-1px) !important;
}
.pt-btn-danger {
  background: #dc2626 !important;
  color: #fff !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.88rem !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 9px 22px !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
}
.pt-btn-danger:hover {
  background: #b91c1c !important;
}

/* ── Spinner in save button ─────────────────────────────────────────── */
.pt-btn-spinner {
  width: 14px !important;
  height: 14px !important;
  border: 2px solid rgba(255, 255, 255, 0.3) !important;
  border-top-color: #fff !important;
  border-radius: 50% !important;
  animation: pt-spin 0.7s linear infinite !important;
  display: inline-block !important;
}
/* hidden attribute must win over display:inline-block !important */
.pt-btn-spinner[hidden] {
  display: none !important;
}
@keyframes pt-spin {
  to {
    transform: rotate(360deg);
  }
}

/* ── Toast notification ─────────────────────────────────────────────── */
.pt-toast {
  position: fixed !important;
  bottom: 1.5rem !important;
  right: 1.5rem !important;
  z-index: 9999 !important;
  background: var(--verde) !important;
  color: #fff !important;
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  padding: 0.75rem 1.2rem !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 24px rgba(26, 74, 58, 0.3) !important;
  opacity: 0 !important;
  transform: translateY(8px) !important;
  transition:
    opacity 0.25s,
    transform 0.25s !important;
  pointer-events: none !important;
}
.pt-toast.visible,
.pt-toast--visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: all !important;
}

/* ── Suppress site content wrapper on dashboard page ─────────────────── */
body.page-template-page-pt-dashboard .site-content,
body.page-template-page-pt-dashboard .woocommerce-breadcrumb {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
}
body.page-template-page-pt-dashboard .entry-content,
body.page-template-page-pt-dashboard .hentry {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* ====================================================================
   End Phase 5: Admin Dashboard Fix-ups
   ==================================================================== */

/* ====================================================================
   Phase 6: Bug Fixes (Session)
   ==================================================================== */

/* ── FIX 1: Sidebar search input too tall ────────────────────────────── */
/* Root cause: primo-taglio.css sets padding:1.4rem 1rem 0.4rem on
   .woocommerce-page input[type="text"] which matches sidebar inputs too.
   This selector is specificity 0,2,1 — we beat it with !important below. */
.sidebar-search-form input[type='text'],
.sidebar-search-form input[type='search'],
.sidebar-search-form .sidebar-search-input {
  padding: 0 !important;
  height: auto !important;
  line-height: 1.4 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0.85rem !important;
  font-family: 'Nunito', sans-serif !important;
  color: var(--testo) !important;
  flex: 1 !important;
  min-width: 0 !important;
  outline: none !important;
}

/* ── FIX 2: Footer double lines ──────────────────────────────────────── */
/* Root cause: primo-taglio.css or new-default-theme.css sets
   border-bottom:1px on .footer-inner, which together with
   .footer-bottom border-top creates two visible separator lines. */
.footer-inner {
  border-bottom: none !important;
}

/* ── FIX 3: Carousel container — arrows absolute + padding ───────────── */
/* Buttons are positioned absolutely at the left/right edges of the        */
/* container; the carousel fills the full width between them.              */
.products-carousel-container {
  position: relative !important;
  display: flex !important;
  padding: 0 0 20px !important;
  align-items: center !important;
  overflow: visible !important;
}

.products-carousel {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 1rem !important;
  width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-behavior: smooth !important;
  -webkit-overflow-scrolling: touch !important;
  padding: 8px 0 16px !important;
}

.products-carousel::-webkit-scrollbar {
  display: none !important;
}

.products-carousel > .pt-product-card {
  flex: 0 0 260px !important;
  min-width: 260px !important;
  margin: 0 !important;
}

/* Arrow buttons — circular, centered on container left/right edge */
.products-carousel-btn {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 20 !important;
  width: 44px !important;
  height: 44px !important;
  flex-shrink: 0 !important;
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 50% !important;
  color: var(--verde) !important;
  box-shadow: 0 2px 10px rgba(44, 36, 22, 0.12) !important;
  cursor: pointer !important;
  transition:
    background 0.2s,
    box-shadow 0.2s,
    border-color 0.2s !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  padding: 0 !important;
}
.products-carousel-prev {
  left: -22px !important;
}
.products-carousel-next {
  right: -22px !important;
}
.products-carousel-btn:hover {
  background: var(--verde-light) !important;
  border-color: var(--bordo2) !important;
  box-shadow: 0 4px 16px rgba(26, 74, 58, 0.2) !important;
}
.products-carousel-btn:disabled,
.products-carousel-btn[disabled] {
  opacity: 0.35 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

/* ── FIX 4: Home page product card — enforce light theme ────────────── */
/* new-default-theme.css already sets background:#fff and border-radius:18px  */
/* on .pt-product-card — reinforce so primo-taglio.css dark theme cannot win. */
.pt-product-card {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  color: var(--testo) !important;
  will-change: box-shadow;
  backface-visibility: hidden;
}

/* ── FIX 4b: No translateY on carousel cards ─────────────────────────── */
/* .products-carousel has overflow-x:auto which per CSS spec forces         */
/* overflow-y:auto — any translateY gets hard-clipped at the scroll         */
/* container boundary. Use shadow + border change only.                     */
.pt-product-card:hover {
  transform: none !important;
  box-shadow:
    0 4px 20px rgba(44, 36, 22, 0.14),
    0 8px 32px rgba(44, 36, 22, 0.1) !important;
  border-color: var(--bordo) !important;
  z-index: 2 !important;
}

.pt-product-card .tag-prezzo {
  font-size: 0.76rem !important;
  line-height: 1.1 !important;
  padding: 1px 6px !important;
  border-radius: 6px !important;
}

.woocommerce ul.products li.product.product-card .tag-prezzo,
.woocommerce-page ul.products li.product.product-card .tag-prezzo,
.related.products .product-card .tag-prezzo {
  font-size: 0.76rem !important;
  line-height: 1.1 !important;
  padding: 1px 6px !important;
  border-radius: 6px !important;
  border-width: 1px !important;
}

.woocommerce ul.products li.product.product-card .tag-prezzo .price,
.woocommerce-page ul.products li.product.product-card .tag-prezzo .price,
.related.products .product-card .tag-prezzo .price,
.pt-product-card .tag-prezzo .price {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: inherit !important;
  font-family: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

.woocommerce ul.products li.product.product-card .tag-prezzo .woocommerce-Price-amount,
.woocommerce-page ul.products li.product.product-card .tag-prezzo .woocommerce-Price-amount,
.related.products .product-card .tag-prezzo .woocommerce-Price-amount,
.pt-product-card .tag-prezzo .woocommerce-Price-amount,
.woocommerce ul.products li.product.product-card .tag-prezzo .amount,
.woocommerce-page ul.products li.product.product-card .tag-prezzo .amount,
.related.products .product-card .tag-prezzo .amount,
.pt-product-card .tag-prezzo .amount,
.woocommerce ul.products li.product.product-card .tag-prezzo bdi,
.woocommerce-page ul.products li.product.product-card .tag-prezzo bdi,
.related.products .product-card .tag-prezzo bdi,
.pt-product-card .tag-prezzo bdi {
  margin: 0 !important;
  padding: 0 !important;
  font-size: inherit !important;
  font-family: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

@media (hover: none), (pointer: coarse) {
  .pt-product-card:hover {
    transform: none !important;
    box-shadow: 0 4px 14px rgba(44, 36, 22, 0.08) !important;
  }
}

/* ── FIX 5: Shop page cards — parent overflow clips hover shadow ────── */
/* woocommerce ul.products (the grid) has no overflow set, but if an
   ancestor clips, lift the cards with a slightly larger shadow that
   stays within the visible area. Ensure the 3-col product grid has
   enough row-gap for shadows to not be clipped between rows. */
.woocommerce ul.products,
.woocommerce-page ul.products {
  row-gap: 2rem !important; /* extra space between rows for shadow */
  padding-bottom: 1rem !important;
}

/* ── FIX 6: Price range slider — ensure visible track + thumb ────────── */
/* The native range input renders differently across browsers.
   These rules ensure a consistent look within the sidebar widget. */
.pt-price-slider {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 100% !important;
  height: 4px !important;
  border-radius: 2px !important;
  background: var(--avorio) !important;
  outline: none !important;
  cursor: pointer !important;
  accent-color: var(--verde) !important;
}
.pt-price-slider::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  background: var(--verde) !important;
  cursor: pointer !important;
  border: 2px solid #fff !important;
  box-shadow: 0 1px 6px rgba(26, 74, 58, 0.25) !important;
}
.pt-price-slider::-moz-range-thumb {
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  background: var(--verde) !important;
  cursor: pointer !important;
  border: 2px solid #fff !important;
  box-shadow: 0 1px 6px rgba(26, 74, 58, 0.25) !important;
}
input[type='range'].pt-price-slider::-webkit-slider-runnable-track {
  background: linear-gradient(
    to right,
    var(--verde) 0%,
    var(--verde) var(--val, 100%),
    var(--avorio) var(--val, 100%),
    var(--avorio) 100%
  ) !important;
}

/* ── FIX 7: Fascia di Prezzo widget container ────────────────────────── */
.pt-price-filter-wrap {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.65rem !important;
}
.pt-price-display {
  display: flex !important;
  justify-content: space-between !important;
  font-size: 0.82rem !important;
  color: var(--testo2) !important;
  font-weight: 700 !important;
}
.pt-price-display .price-max {
  color: var(--verde) !important;
}

/* ── FIX 8: Sidebar filter labels (general) ──────────────────────────── */
.wc-sidebar .filter-row {
  padding: 0.3rem 0 !important;
  font-size: 0.85rem !important;
  color: var(--testo2) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
}

/* ====================================================================
   End Phase 6: Bug Fixes
   ==================================================================== */

/* ====================================================================
   My Account Page Fixes
   ==================================================================== */

/* FIX MA-01: Hide redundant page title on WC pages (rendered by page.php before the_content) */
.woocommerce-account .section-title,
.woocommerce-cart .section-title,
.woocommerce-checkout .section-title {
  display: none !important;
}

/* FIX MA-02: Remove section-inner extra spacing on WC pages to keep breadcrumb flush with header */
.woocommerce-account .section-inner,
.woocommerce-cart .section-inner,
.woocommerce-checkout .section-inner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* FIX MA-03: Reset pt-prose styling inside WC content areas */
.woocommerce-account .pt-prose,
.woocommerce-cart .pt-prose,
.woocommerce-checkout .pt-prose {
  font-size: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
}

/* FIX MA-04: Fix tall input padding (primo-taglio.css sets 1.4rem top padding on
   .woocommerce-page inputs) — override for all account form inputs */
.woocommerce-account .woocommerce-MyAccount-content input[type='text'],
.woocommerce-account .woocommerce-MyAccount-content input[type='email'],
.woocommerce-account .woocommerce-MyAccount-content input[type='password'],
.woocommerce-account .woocommerce-MyAccount-content input[type='tel'],
.woocommerce-account .woocommerce-address-fields__field-wrapper input[type='text'],
.woocommerce-account .woocommerce-address-fields__field-wrapper input[type='tel'],
.woocommerce-account .woocommerce-address-fields__field-wrapper input[type='email'] {
  padding: 10px 14px !important;
  height: auto !important;
  line-height: 1.4 !important;
}

/* FIX MA-05: Fix select height in account forms */
.woocommerce-account .woocommerce-MyAccount-content select,
.woocommerce-account .woocommerce-address-fields__field-wrapper select {
  padding: 10px 14px !important;
  height: auto !important;
  line-height: 1.4 !important;
}

/* FIX MA-06: Clip address button text overflow (WC outputs full "Aggiungi Indirizzo di fatturazione"
   which becomes "AGGIUNGI INDIRIZZO DI FATTURAZIONE" and overflows the card).
   Must use inline-block (not inline-flex) for text-overflow: ellipsis to work. */
.woocommerce-MyAccount-content .woocommerce-Address {
  overflow: hidden !important;
}
.woocommerce-MyAccount-content .woocommerce-Address-title .edit,
.woocommerce-MyAccount-content .woocommerce-Address-title a {
  display: inline-block !important;
  max-width: 55% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  line-height: 2.2 !important;
}

/* ====================================================================
   End My Account Page Fixes
   ==================================================================== */

/* ====================================================================
   Cart Page Fixes
   ==================================================================== */

/* FIX CART-01: "Aggiorna carrello" button text wraps — force single line */
.woocommerce-cart-form button[name='update_cart'],
.woocommerce .woocommerce-cart-form .button[name='update_cart'] {
  white-space: nowrap !important;
  min-width: 140px !important;
}

/* FIX CART-02: Cart table header row uppercase & proper spacing */
.woocommerce-cart-form .shop_table thead th {
  font-size: 0.72rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  color: var(--testo3) !important;
  padding: 0.7rem 1rem !important;
  border-bottom: 2px solid var(--avorio) !important;
  background: transparent !important;
}

/* FIX CART-03: Cart product rows — light theme cell padding + borders */
.woocommerce-cart-form .shop_table td {
  padding: 0.9rem 1rem !important;
  border-bottom: 1px solid var(--crema3) !important;
  background: transparent !important;
  color: var(--testo2) !important;
  vertical-align: middle !important;
}

/* FIX CART-04: Remove (×) button — make circular */
.woocommerce-cart-form .product-remove a.remove {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  background: var(--crema3) !important;
  color: var(--testo3) !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  text-decoration: none !important;
  border: none !important;
  transition:
    background 0.18s,
    color 0.18s !important;
}
.woocommerce-cart-form .product-remove a.remove:hover {
  background: #fee2e2 !important;
  color: #b91c1c !important;
}

/* FIX CART-05: Product name link color */
.woocommerce-cart-form .product-name a {
  color: var(--testo) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.woocommerce-cart-form .product-name a:hover {
  color: var(--verde) !important;
}

/* FIX CART-06: Cart totals — right column card styling */
.cart-collaterals .cart_totals {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 18px !important;
  padding: 1.6rem !important;
}
.cart-collaterals .cart_totals h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.4rem !important;
  color: var(--testo) !important;
  margin-bottom: 1rem !important;
  padding-bottom: 0.6rem !important;
  border-bottom: 1.5px solid var(--avorio) !important;
}

/* FIX CART-07: Cart totals table rows */
.cart-collaterals .cart_totals .shop_table th {
  background: transparent !important;
  color: var(--testo2) !important;
  border-bottom: 1px solid var(--crema3) !important;
  padding: 0.6rem 0.75rem 0.6rem 0 !important;
  font-size: 0.9rem !important;
}
.cart-collaterals .cart_totals .shop_table td {
  background: transparent !important;
  color: var(--testo2) !important;
  border-bottom: 1px solid var(--crema3) !important;
  padding: 0.6rem 0 0.6rem 0.5rem !important;
  font-size: 0.9rem !important;
}
.cart-collaterals .cart_totals .shop_table .order-total td,
.cart-collaterals .cart_totals .shop_table .order-total th {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--testo) !important;
  border-bottom: none !important;
}
.cart-collaterals .cart_totals .shop_table .order-total .amount {
  color: var(--oro) !important;
}

/* ====================================================================
   Free Shipping Progress — cart page notice above totals
   ==================================================================== */
.pt-shipping-progress {
  background: var(--crema2) !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 12px !important;
  padding: 0.75rem 1rem !important;
  margin-bottom: 1rem !important;
  font-size: 0.82rem !important;
  color: var(--testo2) !important;
}
.pt-shipping-progress--done {
  background: rgba(26, 74, 58, 0.06) !important;
  border-color: var(--verde) !important;
  color: var(--verde) !important;
  font-weight: 700 !important;
}
.pt-shipping-progress__text {
  margin-bottom: 0.5rem !important;
  line-height: 1.4 !important;
}
.pt-shipping-progress__text strong {
  color: var(--testo) !important;
  font-weight: 800 !important;
}
.pt-shipping-progress__bar {
  height: 5px !important;
  background: var(--avorio) !important;
  border-radius: 99px !important;
  overflow: hidden !important;
}
.pt-shipping-progress__fill {
  height: 100% !important;
  background: var(--verde) !important;
  border-radius: 99px !important;
  transition: width 0.4s ease !important;
  min-width: 4px !important;
}

/* ====================================================================
   FIX HERO-01: Restore --rosa for hero cosmetics slide btn-rosa
   new-default-theme.css line 49 overrides --rosa to verde globally:
   "--rosa: var(--verde)" — this breaks the pink cosmetica CTA button.
   Restore the real pink scoped to .hero-slider.
   ==================================================================== */
.hero-slider {
  --rosa: #d42e65 !important;
  --rosa-light: #b8235a !important;
  --rosa-glow: rgba(212, 46, 101, 0.32) !important;
}

/* ====================================================================
   End Cart Page Fixes
   ==================================================================== */

/* ── Wishlist page — button color fix ──────────────────────────────────────── */
/* .woocommerce-MyAccount-content a { color: var(--verde) !important } overrides btn-primary text */
.woocommerce-MyAccount-content a.btn-primary,
.woocommerce-MyAccount-content a.btn-verde {
  color: #fff !important;
}

/* ====================================================================
   PHASE 7 — MOBILE RESPONSIVENESS
   Plans 07-01, 07-02, 07-03
   ==================================================================== */

/* ── 07-01-03: Mobile menu extra links — divider, shop/account, lang ────── */
.mobile-nav-divider {
  border: none;
  border-top: 1px solid var(--avorio);
  margin: 0.5rem 0;
}
.mobile-nav-lang {
  display: flex;
  gap: 0.5rem;
  padding: 0.65rem 0.9rem;
  align-items: center;
}
.mobile-lang-btn {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--testo3);
  text-decoration: none;
  padding: 0.3rem 0.6rem;
  border-radius: 6px;
  border: 1.5px solid var(--avorio);
  transition: all 0.15s;
}
.mobile-lang-btn.active {
  background: var(--verde);
  color: #fff;
  border-color: var(--verde);
}
.mobile-lang-btn:hover:not(.active) {
  background: var(--verde-light);
  color: var(--verde);
  border-color: var(--bordo2);
}

/* ── 07-01-01: Prevent horizontal overflow globally ──────────────────────── */
html,
body {
  overflow-x: hidden !important;
}

/* ── 07-01-02: Header mobile padding reduction ───────────────────────────── */
@media (max-width: 768px) {
  .nav-inner {
    padding: 0 1rem !important;
    height: 86px !important;
  }
}

/* ── 07-01-04: Mobile nav link touch targets ─────────────────────────────── */
@media (max-width: 900px) {
  .mobile-nav-link {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
  }
  /* Hamburger touch target */
  .nav-hamburger {
    min-width: 44px !important;
    min-height: 44px !important;
  }
}

/* ── 07-01-05: Mobile menu smooth slide using max-height ─────────────────── */
/* JS toggles .is-open class — CSS uses max-height transition for smooth animation.
   Existing rule: display:none / display:block. We replace the animation approach
   while keeping display:none on desktop (nav-hamburger hidden above 900px). */
.nav-mobile-menu {
  display: none;
  overflow: hidden;
  background: rgba(250, 247, 242, 0.98) !important;
  border-top: 1.5px solid var(--avorio) !important;
  box-shadow: 0 8px 24px rgba(44, 36, 22, 0.1);
  max-height: 0;
  transition: max-height 0.3s ease;
}
.nav-mobile-menu.is-open {
  display: block;
  max-height: 100vh;
}

/* ── 07-02-01: Hero mobile breakpoints ──────────────────────────────────── */
/* Hero markup: .hero.hero-slider > .slide.hero-slide > .slide-c > .s-h / .s-p / .s-cta */
@media (max-width: 768px) {
  .hero.hero-slider {
    min-height: 70vh !important;
    height: 70vh !important;
  }
  .slide-c {
    padding: 0 5vw !important;
  }
  .s-h {
    font-size: clamp(1.8rem, 8vw, 2.8rem) !important;
  }
  .s-p {
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
  }
  .s-cta {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    align-items: flex-start !important;
  }
  .s-cta a,
  .s-cta .btn-primary,
  .s-cta .btn-rosa,
  .s-cta .btn-outline {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }
  /* Hide hero arrow buttons — swipe/dot navigation used on mobile */
  .slide-arrow,
  .hero-arrows {
    display: none !important;
  }
}
@media (max-width: 480px) {
  .hero.hero-slider {
    min-height: 60vh !important;
    height: 60vh !important;
  }
  .slide-c {
    padding: 0 1rem !important;
  }
}

/* ── 07-02-02: Featured products carousel mobile ─────────────────────────── */
@media (max-width: 768px) {
  .products-carousel {
    gap: 0.75rem !important;
    scroll-snap-type: x mandatory !important;
  }
  .pt-product-card {
    min-width: 220px !important;
    width: 220px !important;
    scroll-snap-align: start !important;
  }
  /* Hide carousel prev/next buttons — swipe replaces them on mobile */
  .products-carousel-btn {
    display: none !important;
  }
}
@media (max-width: 480px) {
  .pt-product-card {
    min-width: 72vw !important;
    width: 72vw !important;
  }
}

/* ── 07-02-03: Category grid 1-col at 480px ──────────────────────────────── */
@media (max-width: 480px) {
  .cat-grid,
  .pt-cats-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── 07-02-04: Section headings and trust bar mobile ─────────────────────── */
@media (max-width: 480px) {
  .pt-cats-title {
    font-size: clamp(1.4rem, 6vw, 2rem) !important;
  }
  .trust-bar.features-bar .features-inner {
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    padding: 0.6rem 1rem !important;
  }
  .feature-item {
    font-size: 0.75rem !important;
  }
}

/* ── 07-03-01: Single product page mobile ────────────────────────────────── */
@media (max-width: 600px) {
  /* Full-width add-to-cart + quantity row */
  .sp-actions,
  .woocommerce-variation-add-to-cart,
  form.cart {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
  }
  form.cart .quantity {
    width: 100% !important;
  }
  form.cart .quantity input.qty {
    width: 100% !important;
    text-align: center !important;
  }
  .single_add_to_cart_button {
    width: 100% !important;
  }
  /* Gallery thumbnails: smaller on mobile */
  .sp-gallery .flex-control-thumbs li {
    width: 52px !important;
    height: 52px !important;
  }
  /* Product title sizing */
  .sp-title {
    font-size: clamp(1.4rem, 6vw, 2rem) !important;
  }
}

/* Single product tabs visibility (description/additional info/reviews)
   JS toggles .pt-active but panels remain hidden by default WC styles unless explicit override. */
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel {
  display: none;
}

.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel.pt-active,
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel[style*='display: block'] {
  display: block !important;
}

/* Fallback if JS fails to run: keep first panel visible so long description is not lost. */
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel:first-of-type {
  display: block;
}

/* ── 07-03-02: Cart page mobile ──────────────────────────────────────────── */
@media (max-width: 600px) {
  /* Cart table: allow horizontal scroll */
  .woocommerce-cart-form {
    overflow-x: auto !important;
  }
  /* Coupon row: stack vertically */
  .coupon {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.5rem !important;
  }
  .coupon input,
  .coupon .button {
    width: 100% !important;
  }
  /* Cart totals: full width */
  .cart_totals {
    width: 100% !important;
  }
  /* Remove item button: ensure tap target */
  a.remove {
    width: 28px !important;
    height: 28px !important;
    line-height: 28px !important;
  }
}

/* ── 07-03-03: Checkout page mobile ──────────────────────────────────────── */
@media (max-width: 600px) {
  /* Billing/shipping fields: full width on mobile (override WC half-width floats) */
  .woocommerce-billing-fields .form-row-first,
  .woocommerce-billing-fields .form-row-last,
  .woocommerce-shipping-fields .form-row-first,
  .woocommerce-shipping-fields .form-row-last {
    width: 100% !important;
    float: none !important;
    clear: both !important;
  }
  /* Order review: readable on mobile */
  #order_review {
    padding: 1rem !important;
  }
  .woocommerce-checkout-review-order-table {
    font-size: 0.85rem !important;
  }
}

/* ── 07-03-00: My Account login/register — stack to 1-col on mobile ─────────── */
@media (max-width: 640px) {
  .woocommerce-account .u-columns.col2-set,
  .woocommerce #customer_login.u-columns {
    grid-template-columns: 1fr !important;
  }
  .woocommerce-account .u-column1,
  .woocommerce-account .u-column2,
  .woocommerce #customer_login .u-column1,
  .woocommerce #customer_login .u-column2 {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
}

/* ── 07-03-04: My Account layout — override inline style via .pt-account-layout ── */
/* The inline style="grid-template-columns:240px 1fr" on .wc-2col overrides the
   @media(max-width:960px) collapse rule. Adding .pt-account-layout class to the
   div and defining the columns here restores responsive behaviour. */
.pt-account-layout {
  grid-template-columns: 240px 1fr !important;
}
@media (max-width: 960px) {
  .pt-account-layout {
    grid-template-columns: 1fr !important;
  }
}

/* ── 07-03-05: Form inputs 44px min-height + prevent iOS zoom ────────────── */
@media (max-width: 768px) {
  input[type='text'],
  input[type='email'],
  input[type='tel'],
  input[type='number'],
  input[type='password'],
  select,
  textarea {
    min-height: 44px !important;
    font-size: 16px !important; /* Prevent iOS Safari auto-zoom on focus */
  }
}

/* Checkout CSS moved to assets/css/pages/checkout.css */

/* ====================================================================
   Cart — Template Match (Phase 7 bugfix batch)
   ==================================================================== */

/* Cart breadcrumb bar */
.pt-cart-breadcrumb-bar {
  background: var(--crema2) !important;
  border-bottom: 1px solid var(--avorio) !important;
  font-size: 0.8rem !important;
  color: var(--testo3) !important;
}
.pt-cart-breadcrumb-bar .wc-container {
  padding-top: 0.65rem !important;
  padding-bottom: 0.65rem !important;
}
.pt-cart-breadcrumb-bar a {
  color: var(--verde) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
.pt-cart-breadcrumb-bar a:hover {
  text-decoration: underline !important;
}
.pt-cart-breadcrumb-bar .sep {
  margin: 0 0.45rem !important;
  color: var(--avorio2) !important;
}

/* Cart page h1 */
.woocommerce-cart .pt-cart-heading {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(1.8rem, 4vw, 2.8rem) !important;
  color: var(--verde) !important;
  margin-bottom: 1.8rem !important;
  font-weight: 700 !important;
}

/* SKU below product name */
.woocommerce-cart-form .product-name .pt-cart-sku {
  font-size: 0.72rem !important;
  color: var(--testo3) !important;
  margin-top: 2px !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 400 !important;
}

/* Quantity stepper — +/– buttons injected by JS around WC qty input */
.woocommerce-cart-form .quantity.pt-qty-stepper {
  display: inline-flex !important;
  align-items: center !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 9px !important;
  overflow: hidden !important;
  background: #fff !important;
}
.woocommerce-cart-form .quantity.pt-qty-stepper .qty-btn {
  width: 32px !important;
  height: 36px !important;
  border: none !important;
  background: transparent !important;
  cursor: pointer !important;
  color: var(--verde) !important;
  font-size: 1.05rem !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.15s !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
}
.woocommerce-cart-form .quantity.pt-qty-stepper .qty-btn:hover {
  background: var(--verde-light) !important;
}
.woocommerce-cart-form .quantity.pt-qty-stepper input.qty {
  width: 44px !important;
  border: none !important;
  border-left: 1px solid var(--crema3) !important;
  border-right: 1px solid var(--crema3) !important;
  text-align: center !important;
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  color: var(--testo) !important;
  font-family: 'Nunito', sans-serif !important;
  outline: none !important;
  background: transparent !important;
  height: 36px !important;
  padding: 0 !important;
  -moz-appearance: textfield !important;
}
.woocommerce-cart-form .quantity.pt-qty-stepper input.qty::-webkit-inner-spin-button,
.woocommerce-cart-form .quantity.pt-qty-stepper input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
}

/* Cart totals: fix "SHIPMENT" label casing */
.woocommerce .cart_totals table.shop_table tr.shipping th,
.cart-collaterals .cart_totals .shop_table tr.shipping th {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 600 !important;
  font-size: 0.88rem !important;
}

/* Cart totals: subtotal/total labels — sentence case */
.woocommerce .cart_totals table.shop_table tr.cart-subtotal th,
.woocommerce .cart_totals table.shop_table tr.order-total th,
.cart-collaterals .cart_totals .shop_table tr.cart-subtotal th,
.cart-collaterals .cart_totals .shop_table tr.order-total th {
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* "Continua lo shopping" link */
.pt-cart-continue-shopping {
  text-align: center !important;
  margin-top: 0.85rem !important;
}
.pt-cart-continue-shopping a {
  font-size: 0.82rem !important;
  color: var(--testo3) !important;
  text-decoration: underline !important;
  font-family: 'Nunito', sans-serif !important;
  transition: color 0.15s !important;
}
.pt-cart-continue-shopping a:hover {
  color: var(--verde) !important;
}

/* Trust badges row in cart totals */
.pt-cart-trust {
  display: flex !important;
  justify-content: center !important;
  gap: 1rem !important;
  margin-top: 1rem !important;
  flex-wrap: wrap !important;
}
.pt-cart-trust span {
  display: flex !important;
  align-items: center !important;
  gap: 0.3rem !important;
  font-size: 0.72rem !important;
  color: var(--testo3) !important;
  font-weight: 700 !important;
  font-family: 'Nunito', sans-serif !important;
}
.pt-cart-trust svg {
  flex-shrink: 0 !important;
}

/* Checkout CSS moved to assets/css/pages/checkout.css */

/* =====================================================================
   MOBILE FIXES — CPH2251 / narrow viewport (≤430px)
   ===================================================================== */

/* ── NAV-01: Hide Admin button at narrow widths — prevents hamburger overflow ── */
@media (max-width: 430px) {
  .pt-admin-link {
    display: none !important;
  }
  /* Tighten nav-right gap so items fit without overflow */
  .nav-actions,
  .nav-actions.nav-right {
    gap: 0.3rem !important;
  }
}

/* ── NAV-02: Reduce nav padding on very small screens ── */
@media (max-width: 430px) {
  .nav-inner {
    padding: 0 0.75rem !important;
  }
}

/* ── CART-01: Force product-name column visible (something hides it at narrow widths) ── */
.woocommerce-cart-form table.cart th.product-name,
.woocommerce-cart-form table.cart td.product-name {
  display: table-cell !important;
}

/* ── CART-02: Constrain product-remove column so it doesn't dominate the table ── */
.woocommerce-cart-form table.cart th.product-remove,
.woocommerce-cart-form table.cart td.product-remove {
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  padding: 0.6rem 0.4rem !important;
}

/* ── CART-03: Compact product-thumbnail column on mobile ── */
@media (max-width: 600px) {
  .woocommerce-cart-form table.cart .product-thumbnail img {
    width: 52px !important;
    height: 52px !important;
  }
  .woocommerce-cart-form table.cart th.product-thumbnail,
  .woocommerce-cart-form table.cart td.product-thumbnail {
    width: 60px !important;
    min-width: 60px !important;
    padding: 0.4rem 0.3rem !important;
  }
  /* Compact price/qty/subtotal cells */
  .woocommerce-cart-form table.cart th.product-price,
  .woocommerce-cart-form table.cart td.product-price,
  .woocommerce-cart-form table.cart th.product-subtotal,
  .woocommerce-cart-form table.cart td.product-subtotal {
    font-size: 0.78rem !important;
    padding: 0.5rem 0.4rem !important;
  }
  .woocommerce-cart-form table.cart td.product-name {
    padding: 0.6rem 0.4rem !important;
    font-size: 0.82rem !important;
    min-width: 100px !important;
  }
}

/* ── CART-04: Stacked cart layout at very narrow (≤430px) — 3-col: remove | thumb+name | price+qty+subtotal ── */
@media (max-width: 430px) {
  /* Show only: remove | [thumb + name stacked] | subtotal — hide price and qty headers */
  .woocommerce-cart-form table.cart th.product-price,
  .woocommerce-cart-form table.cart th.product-quantity {
    display: none !important;
  }
  /* But keep the cells visible with price inline via data-title */
  .woocommerce-cart-form table.cart td.product-price::before {
    content: attr(data-title) ': ';
    font-weight: 700;
    font-size: 0.7rem;
    color: var(--testo3);
    display: block;
    margin-bottom: 0.2rem;
  }
  .woocommerce-cart-form table.cart td.product-quantity::before {
    content: attr(data-title) ': ';
    font-weight: 700;
    font-size: 0.7rem;
    color: var(--testo3);
    display: block;
    margin-bottom: 0.2rem;
  }
  .woocommerce-cart-form table.cart td.product-price,
  .woocommerce-cart-form table.cart td.product-quantity {
    border-bottom: none !important;
    padding-bottom: 0.1rem !important;
  }
}

/* ── CONTAINER-01: Horizontal padding on mobile so content doesn't touch screen edges ── */
@media (max-width: 768px) {
  .wc-container {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  .pt-cart-breadcrumb-bar .wc-container {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
}

/* ── CONTAINER-02: Unified horizontal gutters across layouts ────────────── */
:root {
  --pt-layout-gutter: clamp(1rem, 2.2vw, 1.5rem);
}

.nav-inner,
.section-inner,
.wc-container,
.pt-cart-breadcrumb-bar .wc-container,
.footer-inner {
  padding-left: var(--pt-layout-gutter) !important;
  padding-right: var(--pt-layout-gutter) !important;
  box-sizing: border-box !important;
}

.site-footer {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width: 430px) {
  :root {
    --pt-layout-gutter: 0.75rem;
  }
}

/* ── CHECKOUT-01: Order review table readable at ≤480px ── */
@media (max-width: 480px) {
  .woocommerce-checkout-review-order-table {
    font-size: 0.8rem !important;
  }
  .woocommerce-checkout-review-order-table td,
  .woocommerce-checkout-review-order-table th {
    padding: 0.5rem 0.6rem !important;
  }
}

/* ── Shipping — free shipping notice (cart ≥ €50) ─────────────────────────── */
.pt-free-shipping-notice td {
  color: var(--verde) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  padding: 0.4rem 0.75rem !important;
  border-bottom: none !important;
}

/* ── Shipping — method list in checkout ───────────────────────────────────── */
/* When free shipping is the only option, hide the entire shipping method
   selector row (WC still outputs it even with one option) */
.woocommerce-checkout #shipping_method li:only-child label {
  pointer-events: none !important;
}
.woocommerce-checkout #shipping_method li:only-child input[type='radio'] {
  display: none !important;
}
/* Compact shipping method list */
.woocommerce-checkout #shipping_method {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.woocommerce-checkout #shipping_method li {
  padding: 0.3rem 0 !important;
  font-size: 0.88rem !important;
}

/* =====================================================================
   LOGO — enlarged, overflow pop-out, brand text removed
   ===================================================================== */

/* Hide brand text ("Il Primo Taglio / Halal Certified") — logo alone suffices */
.nav-logo-brand {
  display: none !important;
}

/* Logo image: 100px, header grows to fit */
.nav-logo-link {
  overflow: visible !important;
  position: relative;
  z-index: 20;
}
.nav-logo-img,
.nav-logo-link img,
.nav-logo-link .custom-logo {
  height: 100px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
  position: relative;
  z-index: 20;
  filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.28));
  transition:
    transform 0.25s ease,
    filter 0.25s ease;
}
.nav-logo-link:hover .nav-logo-img,
.nav-logo-link:hover img,
.nav-logo-link:hover .custom-logo {
  transform: translateY(-3px) scale(1.04);
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.38));
}
/* Allow header to let logo overflow */
.site-header {
  overflow: visible !important;
}
.nav-inner {
  overflow: visible !important;
}

/* Mobile: scale down proportionally */
@media (max-width: 768px) {
  .nav-logo-img,
  .nav-logo-link img,
  .nav-logo-link .custom-logo {
    height: 70px !important;
  }
}
@media (max-width: 480px) {
  .nav-logo-img,
  .nav-logo-link img,
  .nav-logo-link .custom-logo {
    height: 60px !important;
  }
}

/* =====================================================================
   TRUST BAR — horizontal row on mobile (save vertical space)
   ===================================================================== */

/* ≤768px: single horizontal row, no wrapping */
@media (max-width: 768px) {
  .trust-bar.features-bar .features-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: space-around !important;
    align-items: center !important;
    gap: 0.25rem !important;
    padding: 0.5rem 0.75rem !important;
  }
  .feature-item {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 0.2rem !important;
    padding: 0.2rem 0.1rem !important;
  }
  .feature-icon {
    font-size: 1.1rem !important;
  }
  .feature-icon img {
    width: 24px !important;
    height: 24px !important;
  }
  .feature-text strong {
    font-size: 0.65rem !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
  }
  /* Hide subtitle text on mobile to keep compact */
  .feature-text span {
    display: none !important;
  }
}

/* ≤360px: allow 2+1 grid if items still don't fit */
@media (max-width: 360px) {
  .trust-bar.features-bar .features-inner {
    flex-wrap: wrap !important;
  }
  .feature-item {
    flex: 0 0 calc(50% - 0.25rem) !important;
  }
}

/* ── SIDEBAR PRICE RANGE SLIDER ─────────────────────────────────── */
#pt-price-range {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 100% !important;
  height: 4px !important;
  border-radius: 2px !important;
  outline: none !important;
  cursor: pointer !important;
  padding: 0 !important;
  /* default track until JS fires */
  background: linear-gradient(90deg, var(--verde) 100%, var(--avorio) 100%) !important;
}
#pt-price-range::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  background: var(--verde) !important;
  border: 2px solid #fff !important;
  box-shadow: 0 1px 4px rgba(26, 74, 58, 0.3) !important;
  cursor: pointer !important;
}
#pt-price-range::-moz-range-thumb {
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  background: var(--verde) !important;
  border: 2px solid #fff !important;
  box-shadow: 0 1px 4px rgba(26, 74, 58, 0.3) !important;
  cursor: pointer !important;
}
#pt-price-range::-moz-range-track {
  height: 4px !important;
  border-radius: 2px !important;
  background: var(--avorio) !important;
}

/* ── Active filter chips ──────────────────────────────────────────────────── */
.pt-active-filters {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.4rem !important;
  margin-bottom: 1rem !important;
  padding: 0.6rem 0.85rem !important;
  background: var(--crema2) !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 12px !important;
}
.pt-active-filters-label {
  font-size: 0.72rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--testo3) !important;
  white-space: nowrap !important;
  margin-right: 0.15rem !important;
}
.pt-filter-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.3rem !important;
  background: var(--verde) !important;
  color: #fff !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
  padding: 0.28rem 0.65rem !important;
  border-radius: 99px !important;
  text-decoration: none !important;
  transition: background 0.15s !important;
  white-space: nowrap !important;
  font-family: 'Nunito', sans-serif !important;
}
.pt-filter-chip:hover {
  background: var(--verde2) !important;
  color: #fff !important;
}
.pt-filter-chip-x {
  font-size: 0.85rem !important;
  opacity: 0.8 !important;
  line-height: 1 !important;
}
.pt-filter-chip-clear {
  display: inline-flex !important;
  align-items: center !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
  color: var(--testo3) !important;
  text-decoration: none !important;
  padding: 0.28rem 0.65rem !important;
  border: 1.5px solid var(--avorio2) !important;
  border-radius: 99px !important;
  transition: all 0.15s !important;
  white-space: nowrap !important;
  font-family: 'Nunito', sans-serif !important;
}
.pt-filter-chip-clear:hover {
  border-color: var(--verde) !important;
  color: var(--verde) !important;
}
.pt-reset-filters-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  margin-top: 0.5rem !important;
  padding: 0.55rem 1rem !important;
  border: 1.5px solid var(--avorio2) !important;
  border-radius: 10px !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  color: var(--testo3) !important;
  text-decoration: none !important;
  font-family: 'Nunito', sans-serif !important;
  transition: all 0.18s !important;
  text-align: center !important;
}
.pt-reset-filters-btn:hover {
  border-color: var(--verde) !important;
  color: var(--verde) !important;
  background: var(--verde-light) !important;
}

/* ====================================================================
   FIX CART-COL: Prevent product-subtotal from overlapping qty stepper
   ==================================================================== */
/* Explicit column widths on the cart table to prevent layout bleed */
.woocommerce-cart-form table.cart td.product-quantity,
.woocommerce-cart-form table.cart th.product-quantity {
  width: 130px !important;
  min-width: 120px !important;
  white-space: nowrap !important;
}
.woocommerce-cart-form table.cart td.product-subtotal,
.woocommerce-cart-form table.cart th.product-subtotal {
  width: 100px !important;
  min-width: 90px !important;
  white-space: nowrap !important;
  text-align: right !important;
}
.woocommerce-cart-form table.cart td.product-price,
.woocommerce-cart-form table.cart th.product-price {
  width: 90px !important;
  min-width: 80px !important;
  white-space: nowrap !important;
}
/* Ensure qty stepper doesn't clip the price cell */
.woocommerce-cart-form .quantity.pt-qty-stepper {
  max-width: 115px !important;
}

/* ====================================================================
   FIX IMG-DIMS: Consistent product image dimensions across all cards
   ==================================================================== */
/* Shop archive + product cards — force 1:1 aspect ratio on image wrapper */
.woocommerce ul.products li.product .woocommerce-loop-product__link img,
.woocommerce ul.products li.product a img,
.pt-product-card .pc-thumb img,
.product-card .pc-thumb img {
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
  width: 100% !important;
  display: block !important;
}
/* Placeholder SVG needs same treatment */
.woocommerce
  ul.products
  li.product
  .woocommerce-loop-product__link
  img[src*='woocommerce-placeholder'],
.woocommerce ul.products li.product a img[src*='woocommerce-placeholder'] {
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  background: var(--crema2) !important;
  padding: 10% !important;
}
/* Single product gallery: keep 1:1 already set globally, ensure placeholder matches */
.woocommerce div.product .woocommerce-product-gallery img[src*='woocommerce-placeholder'] {
  object-fit: contain !important;
  background: var(--crema2) !important;
  padding: 10% !important;
}

/* ====================================================================
   Cart Round 2 — Update button + totals lines cleanup
   ==================================================================== */

/* Make AGGIORNA CARRELLO always visible, including disabled state */
.woocommerce-cart-form button[name='update_cart'],
.woocommerce .woocommerce-cart-form .button[name='update_cart'] {
  border: 1.5px solid var(--testo3) !important;
  color: var(--testo2) !important;
  background: #fff !important;
  border-radius: 10px !important;
}
.woocommerce-cart-form button[name='update_cart']:disabled,
.woocommerce .woocommerce-cart-form .button[name='update_cart']:disabled,
.woocommerce-cart-form button[name='update_cart'][disabled] {
  opacity: 0.9 !important;
  border-color: var(--avorio2) !important;
  color: var(--testo3) !important;
  background: var(--crema2) !important;
}

/* Remove fragmented short lines in totals: use row separators instead */
.cart-collaterals .cart_totals .shop_table tr {
  border-bottom: 1px solid var(--crema3) !important;
}
.cart-collaterals .cart_totals .shop_table th,
.cart-collaterals .cart_totals .shop_table td {
  border-bottom: none !important;
}
.cart-collaterals .cart_totals .shop_table .order-total {
  border-bottom: none !important;
  border-top: 1.5px solid var(--crema3) !important;
}

/* ====================================================================
   Order Confirmation — Round 2 fixes
   ==================================================================== */

/* Container for WC-rendered order details + customer details */
.pt-thankyou-details {
  background: #fff !important;
  border: 1.5px solid var(--avorio) !important;
  border-radius: 16px !important;
  padding: 1.4rem !important;
  margin-bottom: 1.5rem !important;
}

/* Order details title — styled like our section headings */
.pt-thankyou-details .woocommerce-order-details__title,
.woocommerce-order .woocommerce-order-details__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.1rem !important;
  color: var(--verde) !important;
  font-weight: 700 !important;
  margin-bottom: 1rem !important;
  padding-bottom: 0.7rem !important;
  border-bottom: 1.5px solid var(--crema3) !important;
}

/* Order table tfoot th — reset uppercase that comes from global table rules */
.woocommerce-order .woocommerce-table--order-details tfoot tr th {
  text-transform: none !important;
  font-size: 0.86rem !important;
  font-weight: 600 !important;
  color: var(--testo2) !important;
  letter-spacing: normal !important;
}

/* Customer details section — compact card style */
.pt-thankyou-details .woocommerce-customer-details,
.woocommerce-order .woocommerce-customer-details {
  margin-top: 1.2rem !important;
  padding-top: 1rem !important;
  border-top: 1.5px solid var(--crema3) !important;
}

/* Billing/shipping column titles */
.woocommerce-order .woocommerce-column__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1rem !important;
  color: var(--verde) !important;
  font-weight: 700 !important;
  margin-bottom: 0.6rem !important;
  text-transform: none !important;
}

/* Address text */
.woocommerce-order .woocommerce-customer-details address {
  font-size: 0.88rem !important;
  color: var(--testo2) !important;
  line-height: 1.7 !important;
  font-style: normal !important;
}

/* Two-column address grid */
.woocommerce-order .woocommerce-columns--addresses {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1.2rem !important;
  margin-top: 0.8rem !important;
}
/* WooCommerce col2-set adds ::before/::after clearfix pseudo-elements that
   become unwanted grid items when the parent is a grid — hide them */
.woocommerce-order .woocommerce-columns--addresses::before,
.woocommerce-order .woocommerce-columns--addresses::after {
  display: none !important;
  content: none !important;
}
@media (max-width: 600px) {
  .woocommerce-order .woocommerce-columns--addresses {
    grid-template-columns: 1fr !important;
  }
}
