/*
Theme Name: Astra Child - TripMars
Description: Tema hijo de Astra para TRIPMARS. No editar el tema padre "Astra" directamente: las actualizaciones de Astra borrarían los cambios. Este tema hijo es seguro ante actualizaciones.
Template: astra
Version: 1.1.0
Author: TRIPMARS
*/

/* Tipografía: Poppins (títulos) / Inter (cuerpo). */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@600;700;800&family=Inter:wght@400;500;600&display=swap');

/* Mismas variables también en :root — necesario porque algunos widgets de
   WooCommerce (el desplegable Select2 de país/región en el checkout, por
   ejemplo) insertan su panel directamente en <body>, FUERA de #tripmars-page,
   así que no heredarían las variables si solo vivieran ahí adentro. */
:root {
  --color-bg: #483E8C;
  --color-bg-dark: #2F2763;
  --color-bg-darker: #221C4A;
  --color-accent: #F3A212;
  --color-accent-hover: #D88C09;
  --text-primary: #FFFFFF;
  --text-muted: rgba(255, 255, 255, 0.75);
  --surface: rgba(255, 255, 255, 0.06);
  --surface-border: rgba(255, 255, 255, 0.14);
  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-pill: 9999px;
}

/* =========================================================
   1) VARIABLES DE DISEÑO — TRIPMARS "Space Dark Mode"
   ========================================================= */
#tripmars-page {
  --color-bg: #483E8C;
  --color-bg-dark: #2F2763;
  --color-bg-darker: #221C4A;
  --color-accent: #F3A212;
  --color-accent-hover: #D88C09;
  --text-primary: #FFFFFF;
  --text-muted: rgba(255, 255, 255, 0.75);
  --surface: rgba(255, 255, 255, 0.06);
  --surface-border: rgba(255, 255, 255, 0.14);
  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-pill: 9999px;
  --font-heading: 'Poppins', sans-serif;
  --font-body: 'Inter', sans-serif;
  --shadow-card: 0 10px 30px rgba(0, 0, 0, 0.3);
  --shadow-cta: 0 4px 20px rgba(243, 162, 18, 0.4);

  all: initial;
  display: block;
  font-family: var(--font-body);
  color: var(--text-primary);
  background: var(--color-bg);
  position: relative;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* El overflow-x va en <body>, NUNCA en #tripmars-page: si un ancestor de
   la cabecera tiene overflow distinto de "visible", position:sticky deja
   de funcionar — por eso el header no se quedaba fijo. */
body { overflow-x: hidden; }

#tripmars-page, #tripmars-page *, #tripmars-page *::before, #tripmars-page *::after {
  box-sizing: border-box;
}

#tripmars-page ul, #tripmars-page li { list-style: none; margin: 0; padding: 0; }
#tripmars-page a { text-decoration: none; color: inherit; }
#tripmars-page img { max-width: 100%; display: block; }
#tripmars-page button { font-family: inherit; cursor: pointer; border: none; background: none; }
#tripmars-page section { position: relative; z-index: 1; padding: 96px 24px; }

/* #tm-main: contenedor universal de márgenes para CUALQUIER página que no
   sea la landing (Tienda, Producto, Carrito, Checkout, Mi Cuenta, bloques de
   Carrito/Checkout, entradas...). Usa el mismo padding y el mismo ancho
   máximo que las <section> de la landing para que las proporciones sean
   idénticas en todo el sitio. En la landing se desactiva (padding: 0) porque
   sus propias <section> ya manejan su propio espaciado y fondos a todo el
   ancho — si sumáramos este padding también ahí, quedaría todo doblemente
   apretado. */
#tripmars-page #tm-main {
  position: relative;
  z-index: 1;
  display: block;
  max-width: 1160px;
  margin: 0 auto;
  padding: 96px 24px;
}
body.page-template-page-tripmars-php #tripmars-page #tm-main {
  max-width: none;
  margin: 0;
  padding: 0;
}
/* Refuerzo específico para Carrito/Checkout/Mi Cuenta con !important: si tu
   tienda usa los bloques nuevos de WooCommerce (Cart block / Checkout
   block), esos bloques a veces traen su propio ancho "de borde a borde" que
   puede pisar el padding de arriba. woocommerce-cart/-checkout/-account son
   clases que WordPress agrega SIEMPRE al <body> en esas páginas, sin
   importar si usan el sistema clásico o el de bloques. */
body.woocommerce-cart #tripmars-page #tm-main,
body.woocommerce-checkout #tripmars-page #tm-main,
body.woocommerce-account #tripmars-page #tm-main {
  padding: 96px 24px !important;
}
/* Neutraliza bloques de Gutenberg marcados como "ancho completo" (alignfull)
   o "ancho amplio" (alignwide) — ambos rompen A PROPÓSITO el padding del
   contenedor que los envuelve, con márgenes negativos. CONFIRMADO en vivo en
   /carrito: el bloque de Carrito de WooCommerce trae la clase "alignwide",
   que en móvil aplica margin-left/right: -20px y cancela el padding entero.
   El selector no se limita a hijos DIRECTOS de #tm-main porque el bloque
   real está varios niveles más abajo (Astra mete su propio <main
   class="site-main"> adentro del nuestro). */
#tripmars-page #tm-main .alignfull,
#tripmars-page #tm-main .alignwide {
  width: auto !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
#tripmars-page #tm-main { overflow-x: hidden; }
#tripmars-page h1, #tripmars-page h2, #tripmars-page h3, #tripmars-page h4 {
  font-family: var(--font-heading);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin: 0 0 16px;
  line-height: 1.15;
}
#tripmars-page p { color: var(--text-muted); font-weight: 400; margin: 0 0 16px; }
#tripmars-page .container { max-width: 1160px; margin: 0 auto; }
#tripmars-page .eyebrow {
  display: inline-block;
  color: var(--color-accent);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.8rem;
  margin-bottom: 12px;
}
#tripmars-page .section-head { text-align: center; max-width: 680px; margin: 0 auto 56px; }
#tripmars-page :focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }

/* Fondo espacial con gradiente radial + estrellas */
#tripmars-page .space-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 20%, rgba(255,255,255,0.08), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(243,162,18,0.10), transparent 40%),
    radial-gradient(circle at 10% 90%, rgba(47,39,99,0.9), transparent 40%),
    var(--color-bg);
}
#tripmars-page .space-bg .sparkle {
  position: absolute;
  width: 4px; height: 4px;
  background: #fff;
  border-radius: 50%;
  opacity: 0.6;
  animation: tm-twinkle 3.5s ease-in-out infinite;
}
@keyframes tm-twinkle { 0%, 100% { opacity: 0.15; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.6); } }
@media (prefers-reduced-motion: reduce) {
  #tripmars-page .space-bg .sparkle { animation: none; }
}

/* =========================================================
   2) HEADER / NAV — igual en todas las páginas (header.php)
   ========================================================= */
#tripmars-page .tm-header {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  padding: 14px 24px;
  background: rgba(72, 62, 140, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
#tripmars-page .tm-header.is-scrolled {
  background: rgba(34, 28, 74, 0.85);
  border-bottom-color: var(--surface-border);
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
#tripmars-page .tm-header-inner {
  max-width: 1160px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
#tripmars-page .tm-logo img { height: 40px; width: auto; }
#tripmars-page .tm-logo { display: flex; align-items: center; gap: 8px; }
#tripmars-page .tm-nav-links {
  display: flex;
  align-items: center;
  gap: 32px;
}
#tripmars-page .tm-nav-links a {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--text-primary);
  transition: color 0.2s ease;
  padding: 4px 2px;
}
#tripmars-page .tm-nav-links a:hover,
#tripmars-page .tm-nav-links a:focus-visible { color: var(--color-accent); }
#tripmars-page .tm-header-actions { display: flex; align-items: center; gap: 12px; }

#tripmars-page .tm-burger {
  display: none;
  background: transparent;
  width: 40px; height: 40px;
  border-radius: 8px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
}
#tripmars-page .tm-burger span {
  width: 22px; height: 2px; background: #fff; display: block; transition: 0.25s ease;
}
#tripmars-page .tm-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
#tripmars-page .tm-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
#tripmars-page .tm-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Icono de carrito con contador */
#tripmars-page .tm-cart-btn {
  position: relative;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--surface-border);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
}
#tripmars-page .tm-cart-btn:hover,
#tripmars-page .tm-cart-btn:focus-visible {
  border-color: var(--color-accent);
  color: var(--color-accent);
}
#tripmars-page .tm-cart-icon { width: 22px; height: 22px; display: block; color: #fff; overflow: visible; }
#tripmars-page .tm-cart-count {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9999px;
  background: var(--color-accent);
  color: #1A1200;
  font-size: 0.68rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
#tripmars-page .tm-cart-count.is-empty { display: none; }

/* =========================================================
   3) BOTONES
   ========================================================= */
#tripmars-page .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 30px;
  border-radius: var(--radius-pill);
  font-weight: 700;
  font-size: 0.95rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
  white-space: nowrap;
}
#tripmars-page .btn-primary {
  background: var(--color-accent);
  color: #1A1200;
  box-shadow: var(--shadow-cta);
}
#tripmars-page .btn-primary:hover,
#tripmars-page .btn-primary:focus-visible {
  background: var(--color-accent-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(243, 162, 18, 0.55);
}
#tripmars-page .btn-secondary {
  background: transparent;
  color: var(--text-primary);
  border: 1.5px solid var(--surface-border);
}
#tripmars-page .btn-secondary:hover,
#tripmars-page .btn-secondary:focus-visible {
  border-color: var(--color-accent);
  color: var(--color-accent);
  transform: translateY(-2px);
}
#tripmars-page .btn-sm { padding: 10px 24px; font-size: 0.85rem; }

/* =========================================================
   4) DRAWERS — menú móvil y carrito lateral (overlay compartido)
   ========================================================= */
#tripmars-page .tm-drawer-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.5);
  z-index: 55; opacity: 0; pointer-events: none; transition: opacity 0.3s ease;
}
#tripmars-page .tm-drawer-overlay.is-open { opacity: 1; pointer-events: auto; }

#tripmars-page .tm-mobile-menu {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(78vw, 320px);
  height: 100vh;
  background: var(--color-bg-darker);
  border-left: 1px solid var(--surface-border);
  padding: 90px 28px 28px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  z-index: 56;
}
#tripmars-page .tm-mobile-menu.is-open { transform: translateX(0); }
#tripmars-page .tm-mobile-menu a {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1.1rem;
  color: #fff;
}
@media (min-width: 769px) {
  #tripmars-page .tm-mobile-menu { display: none; }
}

/* Carrito lateral: disponible en todas las páginas y todos los anchos */
#tripmars-page .tm-cart-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(90vw, 400px);
  height: 100vh;
  background: var(--color-bg-darker);
  border-left: 1px solid var(--surface-border);
  z-index: 57;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
}
#tripmars-page .tm-cart-drawer.is-open { transform: translateX(0); }
#tripmars-page .tm-cart-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 24px;
  border-bottom: 1px solid var(--surface-border);
  flex-shrink: 0;
}
#tripmars-page .tm-cart-drawer-head h2 { margin: 0; font-size: 1.15rem; }
#tripmars-page .tm-cart-close {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  color: #fff;
  font-size: 1.4rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, color 0.2s ease;
}
#tripmars-page .tm-cart-close:hover,
#tripmars-page .tm-cart-close:focus-visible { background: rgba(255,255,255,0.16); color: var(--color-accent); }
/* IMPORTANTE — encontrado inspeccionando el sitio en vivo: WooCommerce
   reemplaza automáticamente el contenido del carrito lateral por AJAX poco
   después de cargar la página (su script wc-cart-fragments, para que el
   carrito nunca se quede con datos viejos si la página está cacheada). Esa
   versión nueva SOLO trae la clase propia de WooCommerce
   (widget_shopping_cart_content) — pierde nuestra clase .tm-cart-drawer-body.
   Por eso todas estas reglas ya NO dependen de esa clase: usan #tm-cart-drawer
   (nuestro <aside>, que WooCommerce nunca toca) como referencia estable. */
#tripmars-page #tm-cart-drawer .widget_shopping_cart_content { flex: 1; overflow-y: auto; padding: 28px 24px; }

/* DESCUBIERTO INSPECCIONANDO TU SITIO EN VIVO: Astra usa su PROPIA versión
   del mini-carrito, distinta de la de WooCommerce por defecto — la imagen y
   el nombre del producto van DENTRO DEL MISMO enlace (<a> con la <img> y el
   texto del nombre adentro), no como dos enlaces sueltos y separados. Por
   eso separarlos en columnas de grid nunca iba a funcionar: son el MISMO
   elemento. La solución real es más simple: ese enlace combinado se hace
   flex (imagen + nombre en fila), y la cantidad/precio va en su propia
   línea debajo, alineada con el nombre. */
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 22px;
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart-item {
  position: relative;
  padding: 0 28px 20px 0;
  border-bottom: 1px solid var(--surface-border);
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart-item a:not(.remove) {
  display: flex !important;
  align-items: center;
  gap: 14px;
  color: #fff;
  font-weight: 600;
  font-size: 0.92rem;
  line-height: 1.3;
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart-item img {
  width: 64px; height: 64px; border-radius: 12px; object-fit: cover; flex-shrink: 0;
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart-item .quantity {
  display: block;
  margin-top: 8px;
  margin-left: 78px; /* 64px de la imagen + 14px del gap, para alinear con el nombre */
  color: var(--text-muted);
  font-size: 0.85rem;
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart-item .remove {
  position: absolute; top: 0; right: 0;
  width: 24px; height: 24px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  color: var(--text-muted) !important;
  font-size: 1.1rem;
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart-item .remove:hover {
  color: var(--color-accent) !important;
  background: rgba(255,255,255,0.08);
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart__total {
  display: flex; justify-content: space-between; align-items: center;
  font-weight: 700; padding-top: 18px; margin-top: 4px;
  border-top: 1px solid var(--surface-border);
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart__total .woocommerce-Price-amount,
#tripmars-page #tm-cart-drawer .woocommerce-Price-amount { color: var(--color-accent); }
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart__buttons {
  display: flex; flex-direction: column; gap: 12px; margin-top: 22px;
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart__buttons a {
  display: flex; align-items: center; justify-content: center;
  padding: 14px 20px;
  border-radius: var(--radius-pill);
  font-weight: 700;
  font-size: 0.92rem;
  text-align: center;
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart__buttons a.wc-forward:not(.checkout) {
  background: transparent; color: #fff; border: 1.5px solid var(--surface-border);
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart__buttons a.checkout {
  background: var(--color-accent); color: #1A1200;
}
#tripmars-page #tm-cart-drawer .woocommerce-mini-cart__empty-message {
  color: var(--text-muted); text-align: center; padding: 60px 0 0;
}

/* =========================================================
   5) HERO
   ========================================================= */
#tripmars-page .tm-hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 48px;
  align-items: center;
  max-width: 1160px;
  margin: 0 auto;
}
#tripmars-page .tm-hero h1 {
  font-size: clamp(2.2rem, 4.5vw, 3.4rem);
}
#tripmars-page .tm-hero .tm-subhead {
  font-size: 1.15rem;
  color: var(--text-primary);
  font-weight: 600;
  margin-bottom: 12px;
}
#tripmars-page .tm-hero p.tm-desc { font-size: 1.05rem; max-width: 480px; }
#tripmars-page .tm-hero-ctas { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 8px; }
#tripmars-page .tm-trust-micro {
  margin-top: 28px;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  font-size: 0.88rem;
  color: var(--text-muted);
}
#tripmars-page .tm-trust-micro span { display: inline-flex; align-items: center; gap: 6px; }
#tripmars-page .tm-hero-media {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--surface-border);
}
#tripmars-page .tm-hero-media img,
#tripmars-page .tm-hero-media svg { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1/1; display: block; }
#tripmars-page .tm-hero-badge {
  position: absolute;
  bottom: 16px;
  left: 16px;
  background: rgba(34,28,74,0.85);
  backdrop-filter: blur(8px);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  font-size: 0.85rem;
  font-weight: 700;
}

/* =========================================================
   6) TRUST BAR
   ========================================================= */
#tripmars-page .tm-trustbar-grid {
  max-width: 1160px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
#tripmars-page .tm-trust-item {
  background: var(--surface);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  text-align: center;
}
#tripmars-page .tm-trust-item .icon { font-size: 1.8rem; margin-bottom: 12px; }
#tripmars-page .tm-trust-item h3 { font-size: 1rem; margin-bottom: 8px; }
#tripmars-page .tm-trust-item p { font-size: 0.92rem; margin: 0; }

/* =========================================================
   7) PROBLEMA / PAS
   ========================================================= */
#tripmars-page .tm-problem { text-align: center; }
#tripmars-page .tm-problem .container { max-width: 720px; }
#tripmars-page .tm-problem h2 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
#tripmars-page .tm-problem p { font-size: 1.05rem; }
#tripmars-page .tm-problem .tm-signoff {
  margin-top: 24px;
  font-family: var(--font-heading);
  font-weight: 800;
  color: var(--color-accent);
  font-size: 1.2rem;
}

/* =========================================================
   8) PRODUCTOS
   ========================================================= */
/* WooCommerce: ajustes ligeros para que [products] combine con el tema oscuro */
#tripmars-page ul.products li.product {
  position: relative;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 16px;
  transition: border-color 0.25s ease, transform 0.25s ease;
}
#tripmars-page ul.products li.product:hover {
  border-color: rgba(243, 162, 18, 0.4);
  transform: translateY(-3px);
}
#tripmars-page ul.products li.product img { border-radius: var(--radius-md); transition: transform 0.35s ease; }
#tripmars-page ul.products li.product:hover img { transform: scale(1.06); }
#tripmars-page ul.products li.product .onsale {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  min-width: auto;
  height: auto;
  line-height: 1;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  background: var(--color-accent);
  color: #1A1200;
  font-weight: 800;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
#tripmars-page ul.products li.product h2,
#tripmars-page ul.products li.product .woocommerce-loop-product__title { color: #fff; }
#tripmars-page ul.products li.product .price { color: #fff; font-weight: 700; }
#tripmars-page ul.products li.product .price ins { color: var(--color-accent); text-decoration: none; }
#tripmars-page ul.products li.product .price del { color: var(--text-muted); opacity: 0.7; }
#tripmars-page ul.products li.product .button {
  background: var(--color-accent) !important;
  color: #1A1200 !important;
  border-radius: var(--radius-pill) !important;
  font-weight: 700 !important;
}

/* Slider de productos en móvil: en escritorio se ve igual que siempre
   (la grilla normal de WooCommerce). Solo se convierte en carrusel
   horizontal con scroll-snap por debajo de 769px. */
#tripmars-page .tm-products-slider { position: relative; }
#tripmars-page .tm-slider-dots { display: none; }

@media (max-width: 768px) {
  #tripmars-page .tm-products-slider ul.products {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 16px;
    margin: 0 -20px 0px 0px !important;
    padding: 4px 20px 8px !important;
    scrollbar-width: none;
  }
  #tripmars-page .tm-products-slider ul.products::-webkit-scrollbar { display: none; }
  #tripmars-page .tm-products-slider ul.products li.product {
    flex: 0 0 78% !important;
    max-width: 78% !important;
    width: 78% !important;
    scroll-snap-align: start;
  }
  #tripmars-page .tm-products-slider::after {
    content: "";
    position: absolute;
    top: 4px;
    right: -20px;
    bottom: 8px;
    width: 36px;
    background: linear-gradient(to right, transparent, var(--color-bg) 85%);
    pointer-events: none;
  }
  #tripmars-page .tm-slider-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
  }
  #tripmars-page .tm-slider-dots button {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--surface-border);
    padding: 0;
    transition: background 0.2s ease, transform 0.2s ease;
  }
  #tripmars-page .tm-slider-dots button.is-active {
    background: var(--color-accent);
    transform: scale(1.3);
  }
}

/* =========================================================
   9) TESTIMONIOS
   ========================================================= */
#tripmars-page .tm-testimonials-track {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
#tripmars-page .tm-testi-card {
  background: var(--surface);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 28px 24px;
}
#tripmars-page .tm-testi-stars { color: var(--color-accent); letter-spacing: 2px; margin-bottom: 12px; font-size: 0.95rem; }
#tripmars-page .tm-testi-quote { font-style: italic; color: var(--text-primary); margin-bottom: 16px; }
#tripmars-page .tm-testi-author { display: flex; align-items: center; gap: 12px; }
#tripmars-page .tm-testi-author img {
  width: 44px; height: 44px; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--color-accent);
}
#tripmars-page .tm-testi-author strong { font-size: 0.92rem; display: block; }
#tripmars-page .tm-testi-author span { font-size: 0.8rem; color: var(--text-muted); }

/* =========================================================
   10) FAQ
   ========================================================= */
#tripmars-page .tm-faq-list { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
#tripmars-page .tm-faq-item {
  background: var(--surface);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}
#tripmars-page .tm-faq-q {
  width: 100%;
  background: transparent;
  color: var(--text-primary);
  padding: 20px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.98rem;
  text-align: left;
}
#tripmars-page .tm-faq-q .tm-faq-icon {
  flex-shrink: 0;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(243,162,18,0.15);
  color: var(--color-accent);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
  transition: transform 0.25s ease;
}
#tripmars-page .tm-faq-item.is-open .tm-faq-icon { transform: rotate(45deg); }
#tripmars-page .tm-faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
  padding: 0 22px;
}
#tripmars-page .tm-faq-item.is-open .tm-faq-a { padding: 0 22px 20px; }
#tripmars-page .tm-faq-a p { margin: 0; font-size: 0.93rem; }

/* =========================================================
   11) SOBRE NOSOTROS
   ========================================================= */
#tripmars-page .tm-about {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 48px;
  align-items: center;
  max-width: 1160px;
  margin: 0 auto;
}
#tripmars-page .tm-about-media {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--surface-border);
  box-shadow: var(--shadow-card);
}
#tripmars-page .tm-about-media img,
#tripmars-page .tm-about-media svg { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; }

/* =========================================================
   12) CTA FINAL
   ========================================================= */
#tripmars-page .tm-cta-final {
  text-align: center;
  background: linear-gradient(180deg, var(--color-bg-dark), var(--color-bg-darker));
  border-radius: var(--radius-lg);
  max-width: 1080px;
  margin: 0 auto;
  padding: 72px 32px;
  border: 1px solid var(--surface-border);
}
#tripmars-page .tm-cta-final h2 { font-size: clamp(1.9rem, 4vw, 2.6rem); }
#tripmars-page .tm-cta-final .container { padding: 0; max-width: 640px; margin: 0 auto; }
#tripmars-page .tm-promo {
  display: inline-block;
  margin: 8px 0 28px;
  background: rgba(243,162,18,0.15);
  border: 1px dashed var(--color-accent);
  color: var(--color-accent);
  font-weight: 700;
  padding: 10px 20px;
  border-radius: var(--radius-pill);
  font-size: 0.95rem;
}
#tripmars-page .tm-cta-btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
#tripmars-page .tm-cta-micro { margin-top: 20px; font-size: 0.8rem; color: var(--text-muted); }

/* =========================================================
   13) FOOTER — igual en todas las páginas (footer.php)
   ========================================================= */
#tripmars-page .tm-footer {
  position: relative;
  z-index: 1;
  padding: 64px 24px 32px;
  background: var(--color-bg-darker);
  border-top: 1px solid var(--surface-border);
}
#tripmars-page .tm-footer-grid {
  max-width: 1160px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 40px;
}
#tripmars-page .tm-footer-logo img { height: 34px; margin-bottom: 12px; }
#tripmars-page .tm-footer h4 {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-accent);
  margin-bottom: 16px;
}
#tripmars-page .tm-footer-links { display: flex; flex-direction: column; gap: 10px; }
#tripmars-page .tm-footer-links a { color: var(--text-muted); font-size: 0.92rem; transition: color 0.2s ease; }
#tripmars-page .tm-footer-links a:hover { color: var(--color-accent); }
#tripmars-page .tm-footer-bottom {
  max-width: 1160px;
  margin: 0 auto;
  border-top: 1px solid var(--surface-border);
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 0.8rem;
  color: var(--text-muted);
}
#tripmars-page .tm-footer-notice {
  font-size: 0.78rem;
  color: var(--text-muted);
  max-width: 640px;
  margin-bottom: 24px;
}

/* =========================================================
   14) RESPONSIVE
   ========================================================= */
@media (max-width: 1024px) {
  #tripmars-page .tm-hero { grid-template-columns: 1fr; }
  #tripmars-page .tm-hero-media { max-width: 480px; margin: 0 auto; }
  #tripmars-page .tm-about { grid-template-columns: 1fr; }
  #tripmars-page .tm-about-media { max-width: 420px; margin: 0 auto; }
  #tripmars-page .tm-footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  #tripmars-page section,
  #tripmars-page #tm-main { padding: 64px 20px; }
  body.page-template-page-tripmars-php #tripmars-page #tm-main { padding: 0; }
  body.woocommerce-cart #tripmars-page #tm-main,
  body.woocommerce-checkout #tripmars-page #tm-main,
  body.woocommerce-account #tripmars-page #tm-main {
    padding: 64px 20px !important;
  }
  #tripmars-page .tm-nav-links { display: none; }
  #tripmars-page .tm-burger { display: flex; }
  #tripmars-page .tm-trustbar-grid { grid-template-columns: 1fr; }
  #tripmars-page .tm-testimonials-track { grid-template-columns: 1fr; }
  #tripmars-page .tm-footer-grid { grid-template-columns: 1fr; gap: 28px; }
  #tripmars-page .tm-header-actions .btn-sm { display: none; }
  #tripmars-page .tm-cart-drawer { width: 100vw; }
}

@media (max-width: 480px) {
  #tripmars-page .tm-hero-ctas, #tripmars-page .tm-cta-btns { flex-direction: column; align-items: stretch; }
  #tripmars-page .btn { width: 100%; }
  #tripmars-page .tm-trust-micro { flex-direction: column; gap: 10px; }
}

/* =========================================================================
   15) WOOCOMMERCE — TIENDA COMPLETA
   Extiende "Space Dark Mode" a Tienda, Producto, Carrito, Checkout y Mi
   Cuenta. #tripmars-page envuelve TODO el sitio (header.php/footer.php se
   cargan en cada página), así que estas reglas ya alcanzan a las plantillas
   nativas de WooCommerce sin tocar ningún archivo de plantilla PHP de Woo.
   ========================================================================= */

/* -------------------------------------------------------
   15.1 Formularios y controles — global (checkout, cuenta,
   cupón del carrito, calculadora de envío, etc.)
   ------------------------------------------------------- */
/* !important en todo el bloque a propósito: aprendimos con Select2 que
   Astra/WooCommerce cargan su propio CSS de formularios después del
   nuestro y compiten en especificidad — sin !important, el fondo blanco y
   el texto oscuro por defecto seguían ganando en algunos campos. */
#tripmars-page input[type="text"],
#tripmars-page input[type="email"],
#tripmars-page input[type="tel"],
#tripmars-page input[type="number"],
#tripmars-page input[type="password"],
#tripmars-page input[type="search"],
#tripmars-page input[type="url"],
#tripmars-page textarea,
#tripmars-page select {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 8px !important;
  color: #fff !important;
  padding: 12px 14px !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  width: 100%;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
#tripmars-page textarea { min-height: 110px; }
#tripmars-page input::placeholder,
#tripmars-page textarea::placeholder { color: rgba(255, 255, 255, 0.4) !important; }
#tripmars-page input:focus,
#tripmars-page textarea:focus,
#tripmars-page select:focus {
  outline: none;
  border-color: var(--color-accent) !important;
  box-shadow: 0 0 10px rgba(243, 162, 18, 0.3);
}
#tripmars-page select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23F3A212'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 10.94l3.71-3.71a.75.75 0 111.06 1.06l-4.24 4.24a.75.75 0 01-1.06 0L5.21 8.29a.75.75 0 01.02-1.08z' clip-rule='evenodd'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 16px !important;
  padding-right: 36px !important;
}
#tripmars-page select option {
  background: var(--color-bg-darker);
  color: #fff;
}
/* Radios y checkboxes nativos (envío, "crear cuenta", etc.): con el color
   de acento para que se distingan claramente sobre el fondo oscuro. */
#tripmars-page input[type="radio"],
#tripmars-page input[type="checkbox"] {
  accent-color: var(--color-accent);
  width: 16px;
  height: 16px;
}
#tripmars-page .woocommerce-shipping-methods,
#tripmars-page ul#shipping_method {
  list-style: none;
  margin: 0;
  padding: 0;
}
#tripmars-page .woocommerce-shipping-methods li,
#tripmars-page ul#shipping_method li {
  background: var(--color-bg-dark);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  margin-bottom: 10px;
  color: #fff;
}
#tripmars-page label {
  display: block;
  color: var(--text-primary);
  font-weight: 600;
  font-size: 0.88rem;
  margin-bottom: 6px;
}
#tripmars-page .required { color: var(--color-accent); text-decoration: none; }
#tripmars-page .woocommerce-input-wrapper .description {
  color: var(--text-muted);
  font-size: 0.8rem;
  margin-top: 6px;
}

/* Select2 (combos de País / Región del checkout y direcciones de Mi Cuenta).
   Todo con !important a propósito: Select2 trae su propio CSS que se carga
   después del nuestro y compite en especificidad — sin !important, el fondo
   blanco y el texto oscuro de Select2 seguían ganando por encima del tema
   oscuro. El panel de opciones (.select2-dropdown) además se inserta
   directo en <body>, fuera de #tripmars-page, por eso estas reglas van sin
   ese prefijo — usan las variables de :root definidas al inicio del archivo. */
.select2-container--default .select2-selection--single {
  height: auto !important;
  display: flex !important;
  align-items: center !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 8px !important;
  padding: 12px 14px !important;
}
.select2-container--focus .select2-selection--single,
.select2-container--open .select2-selection--single {
  border-color: var(--color-accent) !important;
  box-shadow: 0 0 10px rgba(243, 162, 18, 0.3) !important;
}
.select2-container .select2-selection--single .select2-selection__rendered {
  color: #fff !important;
  line-height: normal !important;
  padding: 0 !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  right: 10px !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: var(--color-accent) transparent transparent transparent !important;
}
.select2-dropdown {
  background: var(--color-bg-darker) !important;
  border: 1px solid var(--surface-border) !important;
  border-radius: 8px !important;
  overflow: hidden;
}
.select2-search--dropdown { background: var(--color-bg-darker) !important; padding: 8px !important; }
.select2-search--dropdown .select2-search__field {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: #fff !important;
  border-radius: 6px !important;
}
.select2-results__option { color: rgba(255, 255, 255, 0.85) !important; padding: 8px 12px !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--color-accent) !important;
  color: #1A1200 !important;
}
.select2-container--default .select2-results__option[aria-selected="true"] {
  background: rgba(255, 255, 255, 0.08) !important;
}

/* Botón de mostrar/ocultar contraseña (registro / mi cuenta) */
#tripmars-page .woocommerce-Input .show-password-input { top: 12px; }
#tripmars-page .password-input { position: relative; }

/* -------------------------------------------------------
   15.2 Avisos y mensajes de WooCommerce
   ------------------------------------------------------- */
#tripmars-page .woocommerce-message,
#tripmars-page .woocommerce-error,
#tripmars-page .woocommerce-info,
#tripmars-page .woocommerce-noreviews {
  background: var(--color-bg-dark);
  backdrop-filter: blur(12px);
  border: 1px solid var(--surface-border);
  border-left: 4px solid var(--color-accent);
  border-radius: var(--radius-md);
  color: #fff;
  padding: 18px 20px;
  margin: 0 0 24px;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
#tripmars-page .woocommerce-error { display: block; }
#tripmars-page .woocommerce-error li { list-style: none; padding-left: 0; }
#tripmars-page .woocommerce-message::before,
#tripmars-page .woocommerce-error::before,
#tripmars-page .woocommerce-info::before { display: none; }
#tripmars-page .woocommerce-message .button,
#tripmars-page .woocommerce-error .button,
#tripmars-page .woocommerce-info .button {
  background: var(--color-accent) !important;
  color: #1A1200 !important;
  border-radius: var(--radius-pill) !important;
  padding: 10px 20px !important;
  font-weight: 700 !important;
  white-space: nowrap;
}

/* -------------------------------------------------------
   15.3 Tablas (carrito, revisión de pedido, historial de
   pedidos en Mi Cuenta)
   ------------------------------------------------------- */
#tripmars-page table.shop_table {
  width: 100%;
  border-collapse: collapse;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-md);
  overflow: hidden;
}
#tripmars-page table.shop_table th {
  color: #fff;
  font-weight: 700;
  font-family: var(--font-heading);
  text-align: left;
  background: rgba(255, 255, 255, 0.05);
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
#tripmars-page table.shop_table td {
  color: var(--text-muted);
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  vertical-align: middle;
}
#tripmars-page table.shop_table tr:last-child td { border-bottom: none; }
#tripmars-page table.shop_table .woocommerce-Price-amount { color: #fff; font-weight: 700; }
#tripmars-page table.shop_table a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
#tripmars-page table.shop_table a:hover { color: var(--color-accent); }

/* Modo tarjeta en móvil (WooCommerce agrega esto automáticamente por
   debajo de 768px vía shop_table_responsive) */
#tripmars-page table.shop_table_responsive tr td::before { color: #fff; font-weight: 700; }

/* -------------------------------------------------------
   15.4 A) TIENDA / CATÁLOGO
   ------------------------------------------------------- */
#tripmars-page .woocommerce-result-count,
#tripmars-page .woocommerce-ordering { color: var(--text-muted); margin-bottom: 24px; }
#tripmars-page .woocommerce-ordering select { width: auto; min-width: 200px; }

#tripmars-page nav.woocommerce-pagination { margin-top: 40px; }
#tripmars-page nav.woocommerce-pagination ul { display: flex; gap: 8px; border: none; }
#tripmars-page nav.woocommerce-pagination ul li { border: none !important; }
#tripmars-page nav.woocommerce-pagination ul li a,
#tripmars-page nav.woocommerce-pagination ul li span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  background: var(--color-bg-dark);
  border-radius: var(--radius-md);
  color: #fff;
  font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease;
}
#tripmars-page nav.woocommerce-pagination ul li a:hover,
#tripmars-page nav.woocommerce-pagination ul li span.current {
  background: var(--color-accent);
  color: #1A1200;
}

/* -------------------------------------------------------
   15.5 B) PRODUCTO INDIVIDUAL
   ------------------------------------------------------- */
#tripmars-page .woocommerce-product-gallery__wrapper { border-radius: var(--radius-lg); overflow: hidden; }
#tripmars-page .woocommerce-product-gallery__image,
#tripmars-page .woocommerce-product-gallery img {
  border-radius: var(--radius-lg);
  background: var(--color-bg-dark);
}
#tripmars-page .flex-control-thumbs { display: flex; gap: 10px; margin-top: 12px; }
#tripmars-page .flex-control-thumbs li img {
  border-radius: 10px;
  border: 2px solid transparent;
  opacity: 0.7;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}
#tripmars-page .flex-control-thumbs li img.flex-active,
#tripmars-page .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--color-accent); }

#tripmars-page .product_title { font-size: clamp(1.6rem, 3vw, 2.2rem); }
#tripmars-page .summary .price { color: #fff; font-size: 1.5rem; font-weight: 800; }
#tripmars-page .summary .price ins { color: var(--color-accent); text-decoration: none; }
#tripmars-page .summary .price del { color: var(--text-muted); opacity: 0.65; font-size: 1.1rem; }
#tripmars-page .woocommerce-product-details__short-description { color: var(--text-muted); }
#tripmars-page .product_meta { color: var(--text-muted); font-size: 0.85rem; margin-top: 24px; }
#tripmars-page .product_meta a { color: var(--color-accent); }

/* Variaciones (sabores / dosis / tamaños) */
#tripmars-page table.variations { width: 100%; margin-bottom: 20px; }
#tripmars-page table.variations tr { display: flex; flex-direction: column; margin-bottom: 14px; }
#tripmars-page table.variations th.label { text-align: left; padding-bottom: 6px; }
#tripmars-page table.variations td.value { width: 100%; }
#tripmars-page table.variations select { width: 100%; }
#tripmars-page a.reset_variations {
  display: inline-block;
  margin-top: 8px;
  color: var(--color-accent);
  font-size: 0.85rem;
  text-decoration: underline;
}
#tripmars-page .woocommerce-variation-price .price { font-size: 1.3rem; }
#tripmars-page .woocommerce-variation-availability { margin: 8px 0; }
#tripmars-page .woocommerce-variation-availability .stock { color: var(--text-muted); }
#tripmars-page .woocommerce-variation-availability .out-of-stock { color: #ff8080; font-weight: 700; }

/* Selector de cantidad con botones +/- (los botones los agrega el JS de
   footer.php porque WooCommerce solo trae el input numérico por defecto).
   OJO: WooCommerce reutiliza la clase ".quantity" para DOS cosas distintas:
   este selector con input+botones (producto y tabla del carrito) Y el texto
   simple "2 × $14.990" del mini-carrito lateral. Por eso estas reglas se
   limitan a "form.cart .quantity" y "table.cart .quantity" — si fueran
   ".quantity" a secas, también le pintaban la píldora al texto del carrito
   lateral, dejándolo desordenado. */
#tripmars-page form.cart .quantity,
#tripmars-page table.cart .quantity {
  display: inline-flex;
  align-items: stretch;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--radius-pill);
  overflow: hidden;
  vertical-align: middle;
}
#tripmars-page form.cart .quantity input.qty,
#tripmars-page table.cart .quantity input.qty {
  width: 46px;
  border: none !important;
  background: transparent !important;
  text-align: center;
  color: #fff;
  font-weight: 700;
  padding: 0 !important;
  -moz-appearance: textfield;
}
#tripmars-page form.cart .quantity input.qty::-webkit-outer-spin-button,
#tripmars-page form.cart .quantity input.qty::-webkit-inner-spin-button,
#tripmars-page table.cart .quantity input.qty::-webkit-outer-spin-button,
#tripmars-page table.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
#tripmars-page form.cart .quantity input.qty:focus,
#tripmars-page table.cart .quantity input.qty:focus { box-shadow: none; }
#tripmars-page form.cart .quantity .tm-qty-btn,
#tripmars-page table.cart .quantity .tm-qty-btn {
  width: 38px;
  border: none;
  background: transparent;
  color: var(--color-accent);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}
#tripmars-page form.cart .quantity .tm-qty-btn:hover,
#tripmars-page table.cart .quantity .tm-qty-btn:hover { background: rgba(243, 162, 18, 0.15); }

/* El formulario de compra (cantidad + botón "Agregar al carrito", más
   cualquier botón extra que hayas agregado vos, como un snippet de "Compra
   rápida") entrega todo como elementos sueltos, uno detrás del otro — sin
   esto quedan apilados o se pisan entre sí. Con flex + order lo organizamos
   así, sin importar el orden real en el HTML:
     1) Cualquier botón/link EXTRA que no sea la cantidad ni "Agregar al
        carrito" (ej. "Comprar ahora") se manda a su propia línea, arriba.
     2) La cantidad queda compacta, a la izquierda.
     3) "Agregar al carrito" crece para ocupar el resto del ancho, hasta el
        borde del contenedor — todo en una sola línea. */
#tripmars-page form.cart {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
}
#tripmars-page form.cart > a.button:not(.single_add_to_cart_button),
#tripmars-page form.cart > button:not(.single_add_to_cart_button):not(.tm-qty-btn),
#tripmars-page form.cart > div:not(.quantity):not(.woocommerce-variation) {
  order: -1;
  flex: 1 1 100%;
  width: 100%;
  margin-bottom: 4px;
}
#tripmars-page form.cart .quantity { order: 1; margin: 0; flex-shrink: 0; }
#tripmars-page .single_add_to_cart_button,
#tripmars-page button.checkout,
#tripmars-page #place_order {
  order: 2;
  background: var(--color-accent) !important;
  color: #1A1200 !important;
  border: none;
  border-radius: var(--radius-pill) !important;
  font-weight: 700 !important;
  padding: 16px 36px !important;
  font-size: 1rem !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1 1 auto;
  min-width: 44px; /* nunca desaparece del todo: en el peor caso extremo el texto se recorta con "…", pero jamás pasa a una segunda línea */
  box-shadow: var(--shadow-cta);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
#tripmars-page .single_add_to_cart_button:hover,
#tripmars-page button.checkout:hover,
#tripmars-page #place_order:hover {
  background: var(--color-accent-hover) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(243, 162, 18, 0.55);
}

/* Pestañas de información (Descripción / Valoraciones) */
#tripmars-page .woocommerce-tabs ul.tabs {
  display: flex;
  gap: 8px;
  border-bottom: 1px solid var(--surface-border);
  margin-bottom: 28px;
  flex-wrap: wrap;
}
#tripmars-page .woocommerce-tabs ul.tabs li { margin: 0; }
#tripmars-page .woocommerce-tabs ul.tabs li a {
  display: inline-block;
  padding: 12px 18px;
  color: var(--text-muted);
  font-weight: 700;
  border-bottom: 2px solid transparent;
}
#tripmars-page .woocommerce-tabs ul.tabs li.active a,
#tripmars-page .woocommerce-tabs ul.tabs li a:hover {
  color: var(--color-accent);
  border-bottom-color: var(--color-accent);
}
#tripmars-page .woocommerce-Tabs-panel { color: var(--text-muted); }
#tripmars-page .woocommerce-Tabs-panel h2 { margin-bottom: 16px; }

/* Reseñas dentro de la pestaña de valoraciones */
#tripmars-page #reviews .comment-text {
  background: var(--surface);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 18px;
}
#tripmars-page #reviews .star-rating { color: var(--color-accent); }
#tripmars-page #review_form input,
#tripmars-page #review_form textarea { background: rgba(255, 255, 255, 0.08); }

/* Productos relacionados: reutiliza el estilo de ul.products ya definido */
#tripmars-page .related.products h2 { text-align: center; margin-bottom: 32px; }

/* -------------------------------------------------------
   15.6 C) CARRITO
   ------------------------------------------------------- */
#tripmars-page table.cart .product-thumbnail img {
  width: 72px;
  border-radius: 12px;
  object-fit: cover;
}
#tripmars-page table.cart .product-name a { color: #fff; font-weight: 600; }
#tripmars-page table.cart td.actions { background: transparent; }
#tripmars-page table.cart .coupon {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
#tripmars-page table.cart .coupon #coupon_code { width: auto; flex: 1; min-width: 160px; }
#tripmars-page table.cart .coupon button[name="apply_coupon"],
#tripmars-page table.cart button[name="update_cart"] {
  background: transparent !important;
  color: #fff !important;
  border: 1.5px solid var(--surface-border) !important;
  border-radius: var(--radius-pill) !important;
  padding: 12px 22px !important;
  font-weight: 700 !important;
}
#tripmars-page table.cart .coupon button[name="apply_coupon"]:hover,
#tripmars-page table.cart button[name="update_cart"]:hover {
  border-color: var(--color-accent) !important;
  color: var(--color-accent) !important;
}
#tripmars-page a.remove {
  color: var(--text-muted) !important;
  background: transparent !important;
  font-size: 1.3rem !important;
}
#tripmars-page a.remove:hover { color: var(--color-accent) !important; background: rgba(255, 255, 255, 0.08) !important; }

#tripmars-page .cart_totals {
  background: var(--surface);
  backdrop-filter: blur(12px);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  padding: 28px;
}
#tripmars-page .cart_totals h2 { font-size: 1.3rem; }
#tripmars-page .cart_totals table.shop_table { border: none; }
#tripmars-page .cart_totals table.shop_table th,
#tripmars-page .cart_totals table.shop_table td { background: transparent; padding: 12px 0; }
#tripmars-page .cart_totals .order-total .woocommerce-Price-amount {
  color: var(--color-accent);
  font-size: 1.3rem;
}
#tripmars-page .wc-proceed-to-checkout { margin-top: 20px; }
#tripmars-page .wc-proceed-to-checkout .checkout-button {
  display: flex;
  width: 100%;
  text-align: center;
  justify-content: center;
}

/* -------------------------------------------------------
   15.7 D) CHECKOUT
   ------------------------------------------------------- */
#tripmars-page .woocommerce-checkout #customer_details { display: flex; flex-wrap: wrap; gap: 40px; }
#tripmars-page .woocommerce-checkout .col2-set,
#tripmars-page .woocommerce-checkout #customer_details .col-1,
#tripmars-page .woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
#tripmars-page .woocommerce-checkout #customer_details .col-1,
#tripmars-page .woocommerce-checkout #customer_details .col-2 { flex: 1 1 320px; }

#tripmars-page #order_review,
#tripmars-page #order_review_heading {
  background: var(--surface);
  backdrop-filter: blur(12px);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  padding: 28px;
}
#tripmars-page #order_review_heading { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
#tripmars-page #order_review table.shop_table { border: none; }
#tripmars-page #order_review table.shop_table th,
#tripmars-page #order_review table.shop_table td { background: transparent; }

/* Métodos de pago */
#tripmars-page ul.wc_payment_methods { list-style: none; margin: 0; padding: 0; }
#tripmars-page li.wc_payment_method {
  background: var(--color-bg-dark);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  margin-bottom: 12px;
  transition: border-color 0.2s ease;
}
#tripmars-page li.wc_payment_method:has(input:checked) { border-color: var(--color-accent); }
#tripmars-page li.wc_payment_method label { display: inline; font-weight: 700; color: #fff; margin: 0 0 0 8px; }
#tripmars-page li.wc_payment_method input[type="radio"] { accent-color: var(--color-accent); width: 16px; height: 16px; }
#tripmars-page li.wc_payment_method img { display: inline-block; height: 20px; margin-left: 8px; vertical-align: middle; }
#tripmars-page .payment_box {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  margin-top: 12px;
  padding: 14px;
  color: var(--text-muted);
  font-size: 0.88rem;
}
#tripmars-page .payment_box p { margin: 0; }

#tripmars-page .woocommerce-additional-fields { margin-top: 24px; }
#tripmars-page .woocommerce-form__label-for-checkbox { color: var(--text-muted); display: flex; align-items: center; gap: 8px; }
#tripmars-page .woocommerce-form__input-checkbox { width: 16px; height: 16px; accent-color: var(--color-accent); }
#tripmars-page .woocommerce-privacy-policy-text { color: var(--text-muted); font-size: 0.8rem; }
#tripmars-page .woocommerce-privacy-policy-text a { color: var(--color-accent); }

/* -------------------------------------------------------
   15.8 E) MI CUENTA / LOGIN
   ------------------------------------------------------- */
#tripmars-page .woocommerce-account .woocommerce-MyAccount-navigation {
  background: var(--surface);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-md);
  padding: 10px;
}
#tripmars-page .woocommerce-MyAccount-navigation ul { display: flex; flex-direction: column; gap: 2px; }
#tripmars-page .woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 12px 14px;
  border-radius: 10px;
  color: #fff;
  font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease;
}
#tripmars-page .woocommerce-MyAccount-navigation ul li a:hover { background: rgba(255, 255, 255, 0.08); }
#tripmars-page .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--color-accent);
  color: #1A1200;
}
#tripmars-page .woocommerce-MyAccount-content {
  background: var(--surface);
  backdrop-filter: blur(12px);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  padding: 28px;
}

/* Login / registro */
#tripmars-page .woocommerce-form-login,
#tripmars-page .woocommerce-form-register {
  background: var(--surface);
  backdrop-filter: blur(12px);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  padding: 32px;
  max-width: 480px;
  margin: 0 auto;
}
#tripmars-page .woocommerce-form-login .woocommerce-form-login__rememberme { color: var(--text-muted); display: flex; align-items: center; gap: 8px; }
#tripmars-page .woocommerce-form-login .woocommerce-LostPassword { margin-top: 12px; }
#tripmars-page .woocommerce-form-login .woocommerce-LostPassword a,
#tripmars-page .woocommerce-form-register a { color: var(--color-accent); }
#tripmars-page .u-columns.woocommerce-Addresses { display: flex; flex-wrap: wrap; gap: 24px; }
#tripmars-page .u-columns.woocommerce-Addresses .u-column1,
#tripmars-page .u-columns.woocommerce-Addresses .u-column2 { flex: 1 1 320px; }
#tripmars-page .woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#tripmars-page .woocommerce-Address-title .edit { color: var(--color-accent); }
#tripmars-page address { color: var(--text-muted); font-style: normal; line-height: 1.7; }

/* -------------------------------------------------------
   15.10 CARRITO — bloques de WooCommerce (Cart block)
   IMPORTANTE: tripmars.space usa el Carrito nuevo por BLOQUES de
   WooCommerce (confirmado inspeccionando /carrito/ en vivo), no la tabla
   clásica — por eso las reglas de arriba (table.cart, .quantity, etc.) no
   le hacían nada a esta página: apuntaban a clases que ni existen acá.
   Estas sí apuntan a las clases reales (wc-block-cart-item...).

   OJO — probado en vivo: mover el selector de cantidad o el botón de
   eliminar con JavaScript (sacarlos de donde WooCommerce los puso) ROMPE
   el carrito, porque el Carrito por bloques es una app de React y pierde
   la referencia al ítem si se le toca el DOM por fuera. Por eso todo este
   reordenamiento es 100% CSS (grid + position:absolute), sin JavaScript
   que mueva nada — así el carrito no se puede romper. La cantidad queda
   junto al texto (no delante de la imagen como en la referencia, por esta
   misma razón), y la "X" flota arriba a la derecha de la tarjeta con
   position:absolute puro. */
#tripmars-page .wc-block-cart-items.wp-block-woocommerce-cart-line-items-block {
  display: block;
  width: 100%;
  border: none;
  background: transparent;
}
#tripmars-page .wc-block-cart-items__header { display: none; }
#tripmars-page .wc-block-cart-items tbody,
#tripmars-page .wc-block-cart-items tr,
#tripmars-page .wc-block-cart-items td {
  display: block;
  width: 100%;
}
/* !important en las propiedades de layout a propósito: el Carrito por
   bloques trae su PROPIO sistema responsive (una clase "is-mobile" que
   activa su propio CSS con !important para apilar todo en columna en
   pantallas angostas) que compite directo con esto. Sin !important, en
   móvil WooCommerce ganaba y apilaba imagen/cantidad/nombre cada uno en su
   propia línea — la tarjeta se veía enorme y desordenada, con el precio
   total suelto abajo. */
#tripmars-page .wc-block-cart-items__row {
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  gap: 14px;
  background: var(--surface);
  backdrop-filter: blur(12px);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  padding: 18px;
  margin-bottom: 16px;
}
#tripmars-page .wc-block-cart-items__row td { padding: 0 !important; border: none !important; width: auto !important; }

#tripmars-page .wc-block-cart-item__image { order: 1 !important; flex-shrink: 0 !important; }
#tripmars-page .wc-block-cart-item__image img {
  width: 72px; height: 72px; border-radius: 12px; object-fit: cover;
}
#tripmars-page .wc-block-cart-item__product { order: 2 !important; flex: 1 1 auto !important; min-width: 0; }
#tripmars-page .wc-block-cart-item__total { display: none !important; }

/* Dentro de la celda del producto: la cantidad queda en su propia columna
   a la izquierda del nombre/precio (grid, sin mover nada del DOM real). */
#tripmars-page .wc-block-cart-item__wrap {
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  column-gap: 14px;
  row-gap: 4px;
  align-items: start;
  padding-right: 30px; /* deja espacio para la "X" flotante */
}
#tripmars-page .wc-block-cart-item__wrap > .wc-block-components-product-name {
  grid-column: 2 !important;
  grid-row: 1 !important;
}
#tripmars-page .wc-block-cart-item__wrap > .wc-block-cart-item__prices {
  grid-column: 2 !important;
  grid-row: 2 !important;
}
#tripmars-page .wc-block-cart-item__wrap > .wc-block-components-product-metadata {
  display: none !important;
}
#tripmars-page .wc-block-cart-item__wrap > .wc-block-cart-item__quantity {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center;
  gap: 8px;
}

/* Selector de cantidad vertical (+ arriba, número, − abajo) */
#tripmars-page .wc-block-components-quantity-selector {
  display: flex;
  flex-direction: column;
  width: 42px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--radius-md);
  overflow: hidden;
}
#tripmars-page .wc-block-components-quantity-selector__button--plus { order: 1; }
#tripmars-page .wc-block-components-quantity-selector__input { order: 2; }
#tripmars-page .wc-block-components-quantity-selector__button--minus { order: 3; }
#tripmars-page .wc-block-components-quantity-selector__button {
  background: transparent;
  border: none;
  color: var(--color-accent);
  font-weight: 700;
  font-size: 1.1rem;
  height: 30px;
  transition: background 0.2s ease;
}
#tripmars-page .wc-block-components-quantity-selector__button:hover { background: rgba(243, 162, 18, 0.15); }
#tripmars-page .wc-block-components-quantity-selector__input {
  border: none !important;
  background: transparent !important;
  color: #fff !important;
  text-align: center;
  font-weight: 700;
  height: 30px;
  padding: 0 !important;
  width: 100% !important;
}

/* Nombre, precio y descripción del producto */
#tripmars-page .wc-block-components-product-name {
  display: block;
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  margin-bottom: 6px;
  padding-right: 24px; /* deja espacio para la "X" flotante */
}
#tripmars-page .wc-block-cart-item__prices .price { color: #fff; font-weight: 700; }
#tripmars-page .wc-block-components-product-price__regular {
  color: var(--text-muted);
  opacity: 0.7;
  font-weight: 400;
  margin-right: 6px;
}
#tripmars-page .wc-block-components-product-price__value.is-discounted { color: var(--color-accent); }
#tripmars-page .wc-block-components-product-metadata__description { display: none; }

/* Botón "X" para quitar el producto, flotando arriba a la derecha */
#tripmars-page .wc-block-cart-item__remove-link {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, color 0.2s ease;
}
#tripmars-page .wc-block-cart-item__remove-link svg { width: 13px; height: 13px; fill: currentColor; }
#tripmars-page .wc-block-cart-item__remove-link:hover { background: rgba(255, 255, 255, 0.16); color: var(--color-accent); }

/* Barra lateral de totales */
#tripmars-page .wc-block-cart__sidebar {
  background: var(--surface);
  backdrop-filter: blur(12px);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-lg);
  padding: 24px;
}
#tripmars-page .wc-block-cart__totals-title {
  color: #fff;
  font-size: 1.1rem;
  margin-bottom: 16px;
}
#tripmars-page .wc-block-components-totals-item__label { color: var(--text-muted); font-weight: 500; }
#tripmars-page .wc-block-components-totals-item__value { color: #fff; font-weight: 700; }
#tripmars-page .wc-block-components-totals-item__description { color: var(--text-muted); font-size: 0.8rem; }
#tripmars-page .wc-block-components-totals-footer-item {
  border-top: 1px solid var(--surface-border);
  padding-top: 16px;
  margin-top: 8px;
}
#tripmars-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--color-accent);
  font-size: 1.2rem;
}

/* Cupón: el botón "Add coupons" y el formulario que se despliega */
#tripmars-page .wc-block-components-totals-coupon__button.wc-block-components-panel__button,
#tripmars-page .wc-block-components-panel__button {
  color: var(--color-accent) !important;
  font-weight: 700 !important;
  background: none !important;
}
#tripmars-page .wc-block-components-totals-coupon__form {
  display: flex;
  gap: 10px;
  margin-top: 10px;
  align-items: flex-start;
}
#tripmars-page .wc-block-components-totals-coupon__input {
  flex: 1;
}
#tripmars-page .wc-block-components-totals-coupon__input input {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 8px !important;
  color: #fff !important;
  padding: 12px 14px !important;
}
#tripmars-page .wc-block-components-totals-coupon__input label { color: var(--text-muted) !important; }
#tripmars-page .wc-block-components-totals-coupon__button {
  background: var(--color-accent) !important;
  color: #1A1200 !important;
  border-radius: var(--radius-pill) !important;
  font-weight: 700 !important;
  padding: 12px 20px !important;
  flex-shrink: 0;
  white-space: nowrap;
}

/* Botón final "Proceder al pago" */
#tripmars-page .wc-block-cart__submit-button {
  display: flex !important;
  width: 100%;
  justify-content: center;
  background: var(--color-accent) !important;
  color: #1A1200 !important;
  border-radius: var(--radius-pill) !important;
  font-weight: 700 !important;
  padding: 16px !important;
  font-size: 1rem !important;
  box-shadow: var(--shadow-cta);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
#tripmars-page .wc-block-cart__submit-button:hover {
  background: var(--color-accent-hover) !important;
  transform: translateY(-2px);
}

/* -------------------------------------------------------
   15.9 RESPONSIVE — WooCommerce
   ------------------------------------------------------- */
@media (max-width: 1024px) {
  #tripmars-page .woocommerce-checkout #customer_details { flex-direction: column; gap: 24px; }
  #tripmars-page .u-columns.woocommerce-Addresses { flex-direction: column; }
}

@media (max-width: 768px) {
  #tripmars-page table.shop_table_responsive thead { display: none; }
  #tripmars-page table.shop_table_responsive tr { display: block; border-bottom: 1px solid rgba(255,255,255,0.1); }
  #tripmars-page table.shop_table_responsive tr td { display: flex; justify-content: space-between; align-items: center; border-bottom: none; text-align: right; }
  #tripmars-page table.shop_table_responsive tr:last-child { border-bottom: none; }
  #tripmars-page table.cart .product-thumbnail { display: none; }
  #tripmars-page .cart_totals,
  #tripmars-page #order_review,
  #tripmars-page .woocommerce-MyAccount-content,
  #tripmars-page .woocommerce-form-login,
  #tripmars-page .woocommerce-form-register { padding: 20px; }
}

/* Cantidad + "Agregar al carrito" en una sola línea SIEMPRE, con el texto
   completo del botón (sin convertirlo en ícono) — se va achicando de forma
   progresiva en pantallas angostas para que quepan los dos, y si en algún
   celular extremadamente angosto de verdad no alcanza el espacio, el texto
   se recorta con "…" en vez de partirse en dos líneas o desbordarse. */
@media (max-width: 480px) {
  #tripmars-page form.cart { gap: 8px; }
  #tripmars-page form.cart .quantity input.qty { width: 32px; }
  #tripmars-page form.cart .quantity .tm-qty-btn { width: 28px; font-size: 1rem; }
  #tripmars-page .single_add_to_cart_button {
    padding: 14px 18px !important;
    font-size: 0.82rem !important;
    letter-spacing: -0.01em;
  }
}

@media (max-width: 360px) {
  #tripmars-page form.cart .quantity input.qty { width: 28px; }
  #tripmars-page form.cart .quantity .tm-qty-btn { width: 24px; font-size: 0.9rem; }
  #tripmars-page .single_add_to_cart_button {
    padding: 12px 12px !important;
    font-size: 0.75rem !important;
  }
}
