/* ─── COMPONENTS — Swiss Austral ───────────────────────────────── */

/* ─── CATALOG PAGINATION (WooCommerce) ───────────────────────── */
.sa-catalog-pagination { margin-top: var(--sa-gap-lg); }
.woocommerce-pagination ul { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1.5px solid var(--sa-gray-light);
  font-size: 14px;
  color: var(--sa-dark);
  text-decoration: none;
  transition: all var(--sa-transition);
}
.woocommerce-pagination ul li a:hover { border-color: var(--sa-red); color: var(--sa-red); }
.woocommerce-pagination ul li span.current { background: var(--sa-red); border-color: var(--sa-red); color: white; }

/* ─── LOADING SPINNER ────────────────────────────────────────── */
.sa-spinner {
  width: 24px; height: 24px;
  border: 2px solid var(--sa-gray-light);
  border-top-color: var(--sa-red);
  border-radius: 50%;
  animation: sa-spin 0.6s linear infinite;
}
@keyframes sa-spin { to { transform: rotate(360deg); } }

/* ─── NO PRODUCTS ────────────────────────────────────────────── */
.sa-no-products {
  grid-column: 1 / -1;
  text-align: center;
  padding: var(--sa-gap-xl);
  color: var(--sa-gray);
}

/* ─── LOADING OVERLAY ────────────────────────────────────────── */
.sa-loading { position: relative; }
.sa-loading::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.6);
  z-index: 10;
  border-radius: inherit;
}

/* ─── WP CONTENT TYPOGRAPHY (Description tab) ───────────────── */
.sa-product-description h3 { font-size: 18px; font-weight: 700; margin: 20px 0 10px; }
.sa-product-description h4 { font-size: 16px; font-weight: 700; margin: 16px 0 8px; }
.sa-product-description p { margin-bottom: 1em; line-height: 1.7; }
.sa-product-description ul, .sa-product-description ol { padding-left: 20px; margin-bottom: 1em; }
.sa-product-description ul li { list-style: disc; margin-bottom: 4px; }
.sa-product-description ol li { list-style: decimal; margin-bottom: 4px; }
.sa-product-description strong { font-weight: 700; }
.sa-product-description a { color: var(--sa-red); text-decoration: underline; }
.sa-product-description table { width: 100%; border-collapse: collapse; margin-bottom: 1em; }
.sa-product-description table th,
.sa-product-description table td { padding: 10px 12px; border: 1px solid var(--sa-gray-light); font-size: 14px; }
.sa-product-description table th { background: var(--sa-dark); color: white; font-weight: 600; }

/* ─── ALERTS ─────────────────────────────────────────────────── */
.sa-alert { padding: 12px 16px; border-radius: var(--sa-radius); font-size: 14px; margin-bottom: 12px; display: flex; gap: 10px; }
.sa-alert--success { background: #E8F5E9; color: #2E7D32; border: 1px solid #A5D6A7; }
.sa-alert--error   { background: #FFEBEE; color: #C62828; border: 1px solid #FFCDD2; }
.sa-alert--info    { background: #E3F2FD; color: #1565C0; border: 1px solid #BBDEFB; }
.sa-alert--warning { background: #FFF8E1; color: #F57F17; border: 1px solid #FFE082; }

/* ─── BACK TO TOP ────────────────────────────────────────────── */
.sa-back-top {
  position: fixed;
  bottom: 32px;
  right: 32px;
  width: 44px; height: 44px;
  background: var(--sa-red);
  color: white;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--sa-shadow-md);
  opacity: 0;
  transform: translateY(10px);
  transition: all var(--sa-transition);
  z-index: 500;
}
.sa-back-top.visible { opacity: 1; transform: translateY(0); }
.sa-back-top:hover { background: var(--sa-red-dark); }

/* ─── NEWSLETTER LOAD MORE ───────────────────────────────────── */
.sa-newsletter-grid__pagination { margin-top: var(--sa-gap-md); text-align: center; }
