/*
 * Texo' Fabrics — Product Templates CSS
 * File: assets/css/texo-products.css
 *
 * Da accodare in functions.php:
 *   wp_enqueue_style('texo-products',
 *     get_template_directory_uri() . '/assets/css/texo-products.css',
 *     [], '1.0.0');
 */

/* ── Design tokens ─────────────────────────────────────── */
:root {
  --tx-linen:    #F5F2EC;
  --tx-cream:    #EDE8DF;
  --tx-sand:     #C8B99A;
  --tx-bronze:   #B4066F; /*#8C7355*/
  --tx-dark:     #1C1915;
  --tx-charcoal: #3A3530;
  --tx-mid:      #6B6259;
  --tx-white:    #FDFCF9;
  --tx-serif:    'Cormorant Garamond', Georgia, serif;
  --tx-sans:     'DM Sans', sans-serif;
  --tx-max:      1440px;
  --tx-pad:      clamp(1.5rem, 5vw, 5rem);
  --tx-ease:     .28s cubic-bezier(.4,0,.2,1);
}

/* ── Utilities ─────────────────────────────────────────── */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.container {
  max-width: var(--tx-max);
  margin: 0 auto;
  padding-left: var(--tx-pad);
  padding-right: var(--tx-pad);
}
.texo-label-tag {
  font-family: var(--tx-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--tx-bronze);
  display: block;
  margin-bottom: .5rem;
}
.texo-section-label {
  font-family: var(--tx-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--tx-bronze);
  display: block;
  margin-bottom: .75rem;
}
.texo-section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(28,25,21,.09);
  margin-bottom: 2.5rem;
}
.texo-section-title {
  font-family: var(--tx-serif);
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--tx-dark);
}

/* ── Buttons ───────────────────────────────────────────── */
.texo-btn-primary {
  display: inline-block;
  font-family: var(--tx-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 14px 32px;
  background: var(--tx-dark);
  color: var(--tx-white);
  border: 1px solid var(--tx-dark);
  cursor: pointer;
  transition: background var(--tx-ease), color var(--tx-ease);
  text-decoration: none;
}
.texo-btn-primary:hover { background: var(--tx-bronze); border-color: var(--tx-bronze); }

.texo-btn-outline {
  display: inline-block;
  font-family: var(--tx-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 13px 32px;
  background: transparent;
  color: var(--tx-dark);
  border: 1px solid var(--tx-dark);
  cursor: pointer;
  transition: background var(--tx-ease), color var(--tx-ease);
  text-decoration: none;
}
.texo-btn-outline:hover { background: var(--tx-dark); color: var(--tx-white); }

.texo-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--tx-sans);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tx-bronze);
  border-bottom: 1px solid var(--tx-bronze);
  padding-bottom: 3px;
  text-decoration: none;
  transition: color var(--tx-ease), border-color var(--tx-ease);
}
.texo-btn-ghost:hover { color: var(--tx-dark); border-bottom-color: var(--tx-dark); }


/* ═══════════════════════════════════════════════════════
   PRODUCT CARD
═══════════════════════════════════════════════════════════ */

/* Grid containers */
.texo-products-grid {
  display: grid;
  gap: 2rem;
}
.texo-products-grid.texo-cols-3 { grid-template-columns: repeat(3, 1fr); }
.texo-products-grid.texo-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1100px) {
  .texo-products-grid.texo-cols-4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 800px) {
  .texo-products-grid.texo-cols-3,
  .texo-products-grid.texo-cols-4 { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
}
@media (max-width: 500px) {
  .texo-products-grid.texo-cols-3,
  .texo-products-grid.texo-cols-4 { grid-template-columns: 1fr; }
}

/* Card */
.texo-product-card {
  background: var(--tx-white);
  display: flex;
  flex-direction: column;
  transition: transform var(--tx-ease);
}
.texo-product-card:hover { transform: translateY(-4px); }

/* Image */
.texo-card-image-wrap {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  position: relative;
  background: var(--tx-cream);
  text-decoration: none;
}
.texo-card-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.texo-product-card:hover .texo-card-image-wrap img { transform: scale(1.04); }
.texo-card-placeholder {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--tx-cream), var(--tx-sand));
}

/* Badge */
.texo-card-badge {
  position: absolute;
  top: 1rem; left: 1rem;
  background: var(--tx-bronze);
  color: var(--tx-white);
  font-family: var(--tx-sans);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 5px 10px;
  pointer-events: none;
}
.texo-card-badge--dark { background: var(--tx-dark); }

/* Body */
.texo-card-body {
  padding: 1.25rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.texo-card-code {
  font-family: var(--tx-sans);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tx-sand);
  margin-bottom: .3rem;
}
.texo-card-name {
  font-family: var(--tx-serif);
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: .5rem;
}
.texo-card-name a {
  color: var(--tx-dark);
  text-decoration: none;
  transition: color var(--tx-ease);
}
.texo-card-name a:hover { color: var(--tx-bronze); }

.texo-card-desc {
  font-size: 13px;
  color: var(--tx-mid);
  line-height: 1.55;
  margin-bottom: 1rem;
}

/* Specs mini */
.texo-card-meta {
  display: flex;
  gap: 1.25rem;
  padding: .875rem 0;
  border-top: 1px solid var(--tx-cream);
  border-bottom: 1px solid var(--tx-cream);
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.texo-card-meta-label {
  font-family: var(--tx-sans);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--tx-sand);
  display: block;
  margin-bottom: 2px;
}
.texo-card-meta-val {
  font-size: 12px;
  font-weight: 500;
  color: var(--tx-charcoal);
}

/* Colors */
.texo-card-colors {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.texo-color-dot {
  display: block;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid rgba(28,25,21,.12);
  transition: transform .2s;
  cursor: default;
}
.texo-color-more {
  font-family: var(--tx-sans);
  font-size: 10px;
  color: var(--tx-mid);
  opacity: .6;
}

/* Actions */
.texo-card-actions {
  display: flex;
  gap: .75rem;
  margin-top: auto;
}
.texo-btn-sample {
  flex: 1;
  text-align: center;
  font-family: var(--tx-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 11px 12px;
  border: 1px solid var(--tx-dark);
  color: var(--tx-dark);
  background: transparent;
  cursor: pointer;
  transition: background var(--tx-ease), color var(--tx-ease);
}
.texo-btn-sample:hover { background: var(--tx-dark); color: var(--tx-white); }

.texo-btn-detail {
  flex: 1;
  text-align: center;
  font-family: var(--tx-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 11px 12px;
  background: var(--tx-bronze);
  color: var(--tx-white);
  border: 1px solid var(--tx-bronze);
  cursor: pointer;
  transition: background var(--tx-ease);
  text-decoration: none;
  display: block;
}
.texo-btn-detail:hover { background: var(--tx-dark); border-color: var(--tx-dark); }

/* Paginazione */
.texo-pagination {
  display: flex;
  gap: .5rem;
  justify-content: center;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(28,25,21,.08);
}
.texo-pagination a,
.texo-pagination span {
  font-family: var(--tx-sans);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .06em;
  padding: 8px 14px;
  border: 1px solid rgba(28,25,21,.15);
  color: var(--tx-charcoal);
  text-decoration: none;
  transition: background var(--tx-ease), color var(--tx-ease);
}
.texo-pagination a:hover,
.texo-pagination .current {
  background: var(--tx-dark);
  color: var(--tx-white);
  border-color: var(--tx-dark);
}
.texo-no-results {
  font-size: 14px;
  color: var(--tx-mid);
  text-align: center;
  padding: 4rem 0;
}
/* ── Coming Soon card ─────────────────────────────── */
.texo-product-card--coming-soon .texo-card-image-wrap {
  cursor: default;
}
.texo-product-card--coming-soon .texo-card-image-wrap img {
  filter: grayscale(40%);
  opacity: .85;
  transition: none;
}
.texo-product-card--coming-soon:hover {
  transform: none; /* disabilita hover lift */
}

/* Badge coming soon */
.texo-card-badge--coming-soon {
  background: var(--tx-dark, #1C1915);
  color: var(--tx-white, #FDFCF9);
  font-family: var(--tx-sans);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 5px 10px;
}

/* Messaggio "disponibile presto" */
.texo-card-coming-soon-msg {
  margin-top: auto;
  padding: .875rem 0 0;
  border-top: 1px solid var(--tx-cream, #EDE8DF);
}
.texo-card-coming-soon-msg span {
  font-family: var(--tx-sans);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--tx-bronze, #8C7355);
  display: block;
  text-align: center;
}

/* ═══════════════════════════════════════════════════════
   FILTERS BAR
═══════════════════════════════════════════════════════════ */

.texo-filters-bar {
  display: flex;
  align-items: center;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: none;
  background: var(--tx-white);
  border-bottom: 1px solid rgba(28,25,21,.09);
}
.texo-filters-bar::-webkit-scrollbar { display: none; }
.texo-filters-sticky {
  display: none;
  position: sticky;
  top: 104px;
  z-index: 100;
}

.texo-filter-group { position: relative; flex-shrink: 0; max-width: var(--tx-max);}

.texo-filter-btn {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--tx-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tx-charcoal);
  padding: 1.1rem 1.5rem;
  border: none;
  background: none;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color .2s, border-color .2s;
  white-space: nowrap;
}
.texo-filter-btn:hover,
.texo-filter-btn[aria-expanded="true"] {
  color: var(--tx-bronze);
  border-bottom-color: var(--tx-bronze);
}
.texo-filter-btn svg {
  width: 10px; height: 10px;
  transition: transform .25s;
}
.texo-filter-btn[aria-expanded="true"] svg { transform: rotate(180deg); }

.texo-filter-dropdown {
  position: absolute;
  top: 100%; left: 0;
  min-width: 210px;
  background: var(--tx-white);
  border: 1px solid rgba(28,25,21,.1);
  box-shadow: 0 8px 30px rgba(28,25,21,.08);
  z-index: 200;
  display: none;
}
.texo-filter-dropdown[aria-hidden="false"] { display: block; }

.texo-filter-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1.25rem;
  font-family: var(--tx-sans);
  font-size: 12px;
  color: var(--tx-charcoal);
  cursor: pointer;
  transition: background .15s;
}
.texo-filter-option:hover { background: var(--tx-linen); }
.texo-filter-option input[type="checkbox"] {
  accent-color: var(--tx-bronze);
  width: 14px;
  height: 14px;
  margin-right: .75rem;
}
.texo-term-count {
  font-size: 10px;
  color: var(--tx-sand);
  margin-left: auto;
  padding-left: .5rem;
}

.texo-filter-retexo { padding: .75rem 1.5rem; }
.texo-filter-retexo-toggle {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--tx-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tx-charcoal);
  cursor: pointer;
}
.texo-filter-retexo-toggle input { accent-color: var(--tx-bronze); }

.texo-filter-reset {
  margin-left: auto;
  font-family: var(--tx-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .5rem 1.25rem;
  border: none;
  background: none;
  color: var(--tx-bronze);
  cursor: pointer;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color .2s;
}
.texo-filter-reset:hover { color: var(--tx-dark); }

/* Results bar */
.texo-results-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 1.5rem;
  padding-bottom: 0;
}
.texo-results-count {
  font-family: var(--tx-sans);
  font-size: 12px;
  color: var(--tx-mid);
  letter-spacing: .04em;
}
.texo-sort-select {
  font-family: var(--tx-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 8px 14px;
  border: 1px solid rgba(28,25,21,.15);
  background: var(--tx-white);
  color: var(--tx-charcoal);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}


/* ═══════════════════════════════════════════════════════
   SINGLE PRODUCT
═══════════════════════════════════════════════════════════ */

.texo-single-product { margin-top: 75px; background: var(--tx-white); }

/* Breadcrumb */
.texo-breadcrumb {
  display: flex;
  gap: .5rem;
  align-items: center;
  padding-top: 1.5rem;
  padding-bottom: 0;
  font-family: var(--tx-sans);
  font-size: 11px;
  color: var(--tx-mid);
  letter-spacing: .04em;
  flex-wrap: wrap;
}
.texo-breadcrumb a {
  color: var(--tx-mid);
  opacity: .6;
  text-decoration: none;
  transition: opacity .2s;
}
.texo-breadcrumb a:hover { opacity: 1; }
.texo-breadcrumb__current { opacity: .9; font-weight: 500; }
.texo-breadcrumb span[aria-hidden] { opacity: .3; }

/* Layout 2 colonne */
.texo-product-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
  padding-top: 2rem;
  padding-bottom: clamp(4rem, 8vw, 6rem);
}
@media (max-width: 900px) {
  .texo-product-layout { grid-template-columns: 1fr; }
}

/* Gallery */
.texo-product-gallery { position: sticky; top: calc(72px + 1rem); }

/* Contenitore Swiper: dimensione fissa, niente autoheight */
#texo-swiper-main {
  margin-bottom: .6rem;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  /* L'altezza è determinata dal container, non dalle slide */
}
#texo-swiper-main {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

/* Il wrapper Swiper deve avere altezza definita */
#texo-swiper-main .swiper-wrapper {
  display: flex !important;
  flex-wrap: nowrap !important;
}

#texo-swiper-main .swiper-slide {
  width: 100% !important;
  min-width: 0 !important;
  flex-shrink: 0 !important;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

#texo-swiper-main .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Zoom trigger e immagine: assoluti dentro la slide */
.texo-gallery-zoom-trigger {
  display: block;
  position: absolute;
  inset: 0;
  text-decoration: none;
}

.texo-gallery-zoom-trigger img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.texo-gallery-placeholder {
  position: absolute;
  inset: 0;
  background: #EDE8DF;
}

.texo-gallery-zoom-icon {
  position: absolute;
  bottom: 1rem; right: 1rem;
  width: 36px; height: 36px;
  background: rgba(28,25,21,.55);
  backdrop-filter: blur(4px);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  transition: opacity .25s;
  pointer-events: none;
  z-index: 1;
}
.texo-gallery-zoom-trigger:hover .texo-gallery-zoom-icon { opacity: 1; }

/* Frecce */
.texo-swiper-prev, .texo-swiper-next {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  z-index: 10;
  width: 36px; height: 36px;
  background: rgba(253,252,249,.85);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(28,25,21,.1);
  color: #1C1915;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .2s;
}
/* Base */
.texo-swiper-prev,
.texo-swiper-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  cursor: pointer;

  /* Dimensioni */
  width: 44px;
  height: 44px;

  /* Stile */
  background: var(--tx-white, #FDFCF9);
  border: 1px solid rgba(28,25,21,.12);
  border-radius: 0;          /* quadrato — stile Texo */
  color: var(--tx-dark, #1C1915);

  /* Flex per centrare l'icona */
  display: flex;
  align-items: center;
  justify-content: center;

  /* Transizione */
  transition: background .25s, color .25s, border-color .25s;
}

/* Posizione */
.texo-swiper-prev { left: 1rem; }
.texo-swiper-next { right: 1rem; }

/* Hover */
.texo-swiper-prev:hover,
.texo-swiper-next:hover {
  background: var(--tx-dark, #1C1915);
  color: var(--tx-white, #FDFCF9);
  border-color: var(--tx-dark, #1C1915);
}

/* Disabilitato (prima/ultima slide) */
.texo-swiper-prev.swiper-button-disabled,
.texo-swiper-next.swiper-button-disabled {
  opacity: .25;
  pointer-events: none;
}

/* Thumbnails */
#texo-swiper-thumbs { width: 100%; overflow: hidden; margin-top: .6rem; }
#texo-swiper-thumbs .swiper-slide { width: 72px !important; cursor: pointer; }
.texo-gallery-thumb-item { width: 72px; height: 72px; overflow: hidden; border: 2px solid transparent; transition: border-color .2s; }
.texo-gallery-thumb-item img, .texo-thumb-placeholder { width: 100%; height: 100%; object-fit: cover; display: block; }
.texo-gallery-thumb-item.is-active { border-color: #8C7355; }

/* Product detail */
.texo-product-detail { padding-top: .5rem; }

.texo-product-label-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: .75rem;
}
.texo-product-category {
  font-family: var(--tx-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--tx-bronze);
}
.texo-product-code {
  font-family: var(--tx-sans);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--tx-sand);
}
.texo-product-name {
  font-family: var(--tx-serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  line-height: 1.05;
  color: var(--tx-dark);
  margin-bottom: .75rem;
}
.texo-product-tagline {
  font-size: 14px;
  color: var(--tx-mid);
  line-height: 1.8;
  max-width: 440px;
  margin-bottom: 0;
}
.texo-product-divider {
  width: 100%;
  height: 1px;
  background: rgba(28,25,21,.08);
  border: none;
  margin: 1.5rem 0;
}

/* Color selector */
.texo-color-selector-wrap { margin-bottom: 0; }
.texo-color-selector {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  margin-bottom: .5rem;
}
.texo-color-swatch {
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  background: none;
  padding: 0;
  transition: transform .2s, border-color .2s;
  outline-offset: 3px;
  /* Immagine copre tutta la superficie */
  background-size: cover;
  background-position: center;
  /* Anello bianco interno per staccare il bordo attivo dall'immagine */
  box-shadow: 0 0 0 1px rgba(28,25,21,.12);
}
.texo-color-swatch:hover { transform: scale(1.15); }
.texo-color-swatch.is-active {
  /*border-color: var(--tx-bronze);*/
  transform: scale(1.15);
  /* Anello bianco che separa l'immagine dal bordo bronzo */
  box-shadow: 0 0 0 1px var(--tx-white), 0 0 0 3px var(--tx-bronze);
}
.texo-color-swatch:focus-visible {
  outline: 2px solid var(--tx-bronze);
}
.texo-selected-color-name {
  font-family: var(--tx-sans);
  font-size: 12px;
  color: var(--tx-mid);
  display: block;
}

/* Specs table */
.texo-specs-wrap { margin-bottom: 1rem; }
.texo-specs-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: .75rem;
}
.texo-specs-table tr { border-bottom: 1px solid rgba(28,25,21,.06); }
.texo-specs-table tr:last-child { border-bottom: none; }
.texo-specs-table td {
  padding: .75rem 0;
  font-size: 0.8rem;
  vertical-align: top;
}
.texo-specs-label {
  font-family: var(--tx-sans);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--tx-mid);
  width: 45%;
  padding-right: 1rem;
}
.texo-specs-val {
  font-weight: 500;
  color: var(--tx-charcoal);
}

/* Certifications */
.texo-certifications-wrap { margin-bottom: 1.5rem; }
.texo-certifications {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
}
.texo-cert-badge {
  font-family: var(--tx-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 6px 14px;
  border: 1px solid rgba(28,25,21,.2);
  color: var(--tx-charcoal);
}

/* Actions */
.texo-product-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem;
  margin-bottom: 2rem;
}
@media (max-width: 480px) {
  .texo-product-actions { grid-template-columns: 1fr; }
  .texo-product-gallery{ position: relative; top:0;}
}

/* Accordion */
.texo-accordion { border-top: 1px solid rgba(28,25,21,.08); }
.texo-acc-item { border-bottom: 1px solid rgba(28,25,21,.08); }
.texo-acc-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--tx-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--tx-charcoal);
  text-align: left;
}
.texo-acc-header:hover {background-color: transparent; color: var(--tx-bronze); }
.texo-acc-icon {
  font-size: 16px;
  color: var(--tx-bronze);
  transition: transform .25s;
  line-height: 1;
  flex-shrink: 0;
}
.texo-acc-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s ease;
}
.texo-acc-content {
  font-size: 13px;
  color: var(--tx-mid);
  line-height: 1.8;
  padding-bottom: 1rem;
}
.texo-acc-content p { margin-bottom: .75rem; }
.texo-acc-content p:last-child { margin-bottom: 0; }

/* Related section */
.texo-related-section {
  background: var(--tx-linen);
  padding: clamp(3rem, 6vw, 6rem) 0;
}

/* ── Archive templates ───────────────────────────────── */
.texo-archive-hero {
  min-height: 32vh;
  background: linear-gradient(135deg, #E8E0D0, #C8BAAA, #9A8A74);
  background-image: url('https://staging.texofabrics.it/wp-content/uploads/2026/04/storia-texo.jpg');
  background-position: center;
  background-size: cover;
  display: flex;
  align-items: flex-end;
  padding: 0 var(--tx-pad) clamp(2rem, 5vw, 4rem);
  position: relative;
}
.texo-archive-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(28,25,21,.55) 50%, transparent 100%);
  pointer-events: none;
}
.texo-archive-hero__inner { position: relative; z-index: 1; }
.texo-archive-hero__title {
  font-family: var(--tx-serif);
  font-size: clamp(2.5rem, 7vw, 5rem);
  font-weight: 300;
  color: #fff;
  line-height: 1;
  margin: 0 0 .5rem;
}
.texo-archive-hero__title em { font-style: italic; }
.texo-archive-hero__sub {
  color: rgba(255,255,255,.65);
  font-size: 13px;
  margin: 0;
}

.texo-cat-nav {
  background: var(--tx-white);
  border-bottom: 1px solid rgba(28,25,21,.09);
  overflow-x: auto;
  scrollbar-width: none;
}
.texo-cat-nav::-webkit-scrollbar { display: none; }
.texo-cat-nav .container {
  display: flex;
  gap: 0;
}
.texo-cat-nav__item {
  font-family: var(--tx-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tx-mid);
  padding: 1rem 1.5rem;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color .2s, border-color .2s;
}
.texo-cat-nav__item:hover { color: var(--tx-bronze); }
.texo-cat-nav__item.is-active { color: var(--tx-bronze); border-bottom-color: var(--tx-bronze); }

.texo-archive-grid-wrap {
  padding-top: 2rem;
  padding-bottom: clamp(4rem, 8vw, 8rem);
}
