:root {
  --y: #ECBC08;          /* amarillo del logo */
  --y-soft: #fff4c2;
  --ink: #0d0d0d;
  --bg: #fff;
  --soft: #f4f3ef;
  --line: #e4e2da;
  --muted: #6b6a66;
  --ok: #1d8a57;
  --red: #c0392b;
  --r-xl: 28px;
  --r-lg: 22px;
  --r-md: 16px;
  --display: "Barlow Condensed", "Arial Narrow", Impact, sans-serif;
  --body: "Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: auto; }
body { margin: 0; background: #e9e8e3; color: var(--ink); font-family: var(--body); font-size: 14px; line-height: 1.4; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
svg { display: block; }
h1, h2, h3, p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

/* La web es solo para móvil: en escritorio se ve en una columna del ancho de un móvil */
.tp { position: relative; max-width: 430px; min-height: 100vh; margin: 0 auto; overflow-x: clip; box-shadow: 0 0 0 1px rgba(0,0,0,.04), 0 20px 60px rgba(0,0,0,.12); }

/* Barra de anuncios */
.tp-aviso { display: flex; align-items: center; justify-content: center; gap: 10px; height: 36px; padding: 0 12px; font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: var(--y); }
.tp-aviso i { width: 5px; height: 5px; border-radius: 50%; background: var(--ink); opacity: .35; }
.tp-aviso i.tp-on { opacity: 1; }

/* Cabecera */
.tp-cab { position: sticky; top: 0; z-index: 30; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 60px; padding: 0 6px; background: #fff; border-bottom: 1px solid var(--line); }
.tp-cab .tp-izq, .tp-cab .tp-der { display: flex; align-items: center; }
.tp-cab .tp-der { justify-content: flex-end; }
.tp-ico { position: relative; display: grid; place-items: center; width: 40px; height: 44px; padding: 0; background: none; border: 0; }
.tp-ico svg { width: 23px; height: 23px; stroke: var(--ink); fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.tp-ico .tp-n { position: absolute; top: 5px; right: 1px; min-width: 17px; height: 17px; padding: 0 4px; display: grid; place-items: center; font-size: 10px; font-weight: 800; line-height: 1; background: var(--y); border-radius: 9px; }
.tp-ico .tp-n:empty { display: none; }
.tp-logo img { display: block; height: 16px; width: auto; }
.tp-focus .tp-cab { grid-template-columns: 1fr auto 1fr; }
.tp-cab .tp-seguro { justify-self: end; display: flex; align-items: center; gap: 5px; padding-right: 10px; font-size: 11.5px; font-weight: 600; color: var(--muted); }
.tp-cab .tp-seguro svg { width: 16px; height: 16px; stroke: var(--ok); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Tipografía y piezas generales */
.tp-pag { padding: 18px 16px 0; }
.tp-t1 { font-family: var(--display); font-weight: 800; font-size: 38px; line-height: .95; letter-spacing: .01em; text-transform: uppercase; }
.tp-t2 { font-family: var(--display); font-weight: 800; font-size: 28px; line-height: 1; letter-spacing: .01em; text-transform: uppercase; }
.tp-t3 { font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.05; letter-spacing: .01em; text-transform: uppercase; }
.tp-sub { margin-top: 8px; font-size: 14px; color: var(--muted); }
.tp-mig { display: flex; flex-wrap: wrap; gap: 4px; padding: 14px 16px 0; font-size: 12px; color: var(--muted); }
.tp-mig a { padding: 7px 0; margin: -7px 0; text-decoration: none; }
.tp-logo { padding: 12px 0; margin: -12px 0; }
.tp-sec-cab a { padding: 8px 0; margin: -8px 0; }
.tp-fila-opciones .tp-enlace { padding: 6px 0; margin: -6px 0; }
.tp-sec { padding: 30px 0 0; }
.tp-sec-cab { display: flex; align-items: baseline; justify-content: space-between; padding: 0 16px 12px; }
.tp-sec-cab a { font-size: 12.5px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.tp-look .tp-sec-cab { padding-bottom: 2px; }
.tp-look-sub { margin: 0 16px 12px; font-size: 13px; color: var(--muted); }
.tp-pinfo-op { padding-top: 0; }

.tp-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; padding: 0 18px; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; text-align: center; border: 2px solid transparent; border-radius: 999px; transition: transform .12s; }
.tp-btn:active { transform: scale(.98); }
.tp-btn.tp-amarillo { color: var(--ink); background: var(--y); border-color: var(--y); }
.tp-btn.tp-negro { color: #fff; background: var(--ink); border-color: var(--ink); }
.tp-btn.tp-borde { color: var(--ink); background: #fff; border-color: var(--ink); }
.tp-btn.tp-blanco-borde { color: #fff; background: transparent; border-color: rgba(255,255,255,.75); }
.tp-btn.tp-peq { min-height: 42px; font-size: 12px; width: auto; padding: 0 16px; }
.tp-opiniones .tp-lbl .tp-btn.tp-peq { min-height: 26px; padding: 0 12px; font-size: 11.5px; letter-spacing: 0; text-transform: none; border-width: 1.5px; }
.tp-btn svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tp-fila-btn { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.tp-chips { display: flex; gap: 8px; padding: 14px 16px 2px; overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; scroll-padding-left: 16px; }
.tp-chips::-webkit-scrollbar { display: none; }
.tp-chips.tp-chips-ajustar { flex-wrap: wrap; overflow: visible; }
.tp-tallas.tp-marcas { display: flex; flex-wrap: wrap; max-height: 230px; padding: 2px; overflow-y: auto; }
.tp-tallas.tp-marcas .tp-talla { display: inline-flex; align-items: center; height: 40px; padding: 0 14px; font-size: 13px; font-weight: 600; border-radius: 999px; }
.tp-chip { flex: none; display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 16px; font-size: 13px; font-weight: 600; white-space: nowrap; background: #fff; border: 1.5px solid var(--line); border-radius: 999px; }
.tp-chip svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.tp-chip.tp-on { color: #fff; background: var(--ink); border-color: var(--ink); }
.tp-chip.tp-amarillo { background: var(--y); border-color: var(--y); }

.tp-card { margin: 14px 16px 0; padding: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.tp-card.tp-soft { background: var(--soft); border-color: transparent; }
.tp-card h2, .tp-card h3.tp-t3 { margin-bottom: 10px; }

/* Formularios */
.tp-campo { display: block; margin-bottom: 12px; }
.tp-campo > span { display: block; margin: 0 0 5px 4px; font-size: 12px; font-weight: 600; color: var(--muted); }
.tp-campo input, .tp-campo select, .tp-campo textarea { display: block; width: 100%; height: 52px; padding: 0 16px; font-size: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-md); outline: none; }
.tp-campo textarea { height: 110px; padding: 14px 16px; resize: none; }
.tp-campo input:focus, .tp-campo select:focus, .tp-campo textarea:focus { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(236,188,8,.45); }
.tp-nota { margin-top: 8px; font-size: 12px; color: var(--muted); }
.tp-enlace { text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }

/* Pestañas tipo píldora */
.tp-pestanas { display: flex; padding: 4px; background: var(--soft); border-radius: 999px; }
.tp-pestanas button { flex: 1; height: 42px; font-size: 13px; font-weight: 700; background: none; border: 0; border-radius: 999px; }
.tp-pestanas button.tp-on { background: var(--ink); color: #fff; }

/* Productos */
/* Fila de productos que se desliza: sin imán de alineación (el "snap" frenaba y recolocaba el dedo), con inercia del sistema y cada tarjeta aislada para que el navegador no repinte de más */
.tp-rail { display: flex; gap: 10px; padding: 0 16px 4px; overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.tp-rail::-webkit-scrollbar { display: none; }
.tp-rail .tp-prod { flex: 0 0 160px; contain: layout style paint; }
/* Colaboraciones: vídeos verticales en una fila que se desliza; un toque reproduce y otro pausa */
.tp-colabs-texto { padding: 0 16px; margin: -6px 0 12px; }
.tp-colabs .tp-colab { flex: 0 0 176px; }
.tp-colab-b { position: relative; display: block; width: 100%; aspect-ratio: 9 / 16; padding: 0; overflow: hidden; background: #111; border: 0; border-radius: var(--r-lg); cursor: pointer; }
.tp-colab-b video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.tp-colab-play { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 54px; height: 54px; margin: -27px 0 0 -27px; background: rgba(255,255,255,.92); border-radius: 50%; box-shadow: 0 4px 14px rgba(0,0,0,.3); transition: opacity .2s; }
.tp-colab-play svg { width: 24px; height: 24px; margin-left: 3px; fill: var(--ink); stroke: none; }
.tp-colab.tp-reproduciendo .tp-colab-play { opacity: 0; }
.tp-colab-n { display: block; margin-top: 8px; font-size: 13px; font-weight: 600; }
.tp-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px 10px; padding: 0 16px; }
.tp-prod { position: relative; }
.tp-pimg { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--r-lg); background: #fff; }
.tp-pimg .tp-plink { position: absolute; inset: 0; display: grid; place-items: center; }
.tp-ph { width: 50%; fill: none; stroke: #c6c3b8; stroke-width: 1.05; stroke-linejoin: round; stroke-linecap: round; }
.tp-corazon, .tp-anadir { position: absolute; top: 8px; z-index: 2; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; background: rgba(255,255,255,.94); border: 0; border-radius: 50%; }
.tp-corazon { right: 8px; }
.tp-anadir { left: 8px; }
.tp-corazon svg, .tp-anadir svg { width: 19px; height: 19px; fill: none; stroke: var(--ink); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.tp-corazon.tp-on svg { fill: var(--ink); }
.tp-etiq { position: absolute; left: 8px; bottom: 8px; z-index: 2; padding: 5px 9px; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; background: var(--y); border-radius: 999px; }
.tp-etiq.tp-neg { color: #fff; background: var(--ink); }
.tp-num { position: absolute; left: 8px; bottom: 8px; z-index: 2; display: grid; place-items: center; min-width: 30px; height: 30px; padding: 0 8px; font-family: var(--display); font-weight: 800; font-size: 17px; line-height: 1; color: var(--ink); background: #fff; border: 1.5px solid var(--ink); border-radius: 999px; box-shadow: 0 2px 6px rgba(0,0,0,.18); }
.tp-prod :is(h2, h3) { margin: 10px 0 1px; font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.tp-prod .tp-cn { overflow: hidden; font-size: 12px; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.tp-prod .tp-precio { margin-top: 3px; font-size: 14px; font-weight: 700; }
.tp-prod .tp-precio s { margin-right: 6px; font-size: 12px; font-weight: 500; color: var(--muted); }
.tp-prod .tp-precio b { color: var(--red); }
.tp-dots { display: flex; gap: 5px; margin-top: 7px; }
.tp-dots i { width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(0,0,0,.18); }

/* Barra de filtros */
.tp-barra { position: sticky; top: 60px; z-index: 20; display: flex; align-items: center; gap: 8px; padding: 10px 16px; background: rgba(255,255,255,.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.tp-barra .tp-btn { width: auto; flex: none; min-height: 40px; padding: 0 16px; font-size: 12px; }
.tp-barra .tp-cuenta { margin-left: auto; font-size: 12px; color: var(--muted); }
.tp-mas { padding: 22px 16px 0; text-align: center; }
.tp-mas .tp-cuenta { margin-bottom: 10px; font-size: 12.5px; color: var(--muted); }
.tp-mas .tp-prog { margin: 0 auto 14px; max-width: 200px; }

/* Barras de progreso */
.tp-prog { height: 8px; overflow: hidden; background: var(--soft); border-radius: 8px; }
.tp-prog i { display: block; height: 100%; background: var(--y); border-radius: 8px; transition: width .3s; }

/* Portada */
.tp-hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; height: 480px; margin: 12px 12px 0; padding: 22px 18px 20px; overflow: hidden; color: #fff; border-radius: var(--r-xl); background: radial-gradient(120% 70% at 85% 8%, rgba(236,188,8,.55) 0%, rgba(236,188,8,0) 55%), linear-gradient(165deg, #1b1b1b 0%, #0b0b0b 70%); }
.tp-hero .tp-etq { position: absolute; top: 16px; left: 16px; padding: 6px 12px; font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); background: var(--y); border-radius: 999px; }
.tp-hero h1 { position: relative; margin: 0 0 8px; font-family: var(--display); font-weight: 800; font-size: 58px; line-height: .92; text-transform: uppercase; }
.tp-hero h1 em { font-style: normal; color: var(--y); }
.tp-hero p { position: relative; max-width: 285px; margin: 0 0 18px; font-size: 14px; color: rgba(255,255,255,.86); }
.tp-hero .tp-fila-btn { position: relative; }

/* Categorías con iconos */
.tp-cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 0 16px; }
.tp-cat { display: block; text-align: center; }
.tp-cat .tp-ci { display: grid; place-items: center; aspect-ratio: 1 / 1; background: var(--soft); border-radius: var(--r-lg); }
.tp-cat .tp-ci svg { width: 50%; fill: none; stroke: var(--ink); stroke-width: 1.4; stroke-linejoin: round; stroke-linecap: round; }
.tp-cat b { display: block; margin-top: 8px; font-family: var(--display); font-weight: 800; font-size: 20px; letter-spacing: .02em; text-transform: uppercase; }
.tp-cat.tp-on .tp-ci { background: var(--y); }

/* Banner de ofertas */
.tp-oferta { position: relative; display: block; margin: 30px 12px 0; padding: 22px 20px; overflow: hidden; color: #fff; background: var(--ink); border-radius: var(--r-xl); }
.tp-oferta h2 { font-family: var(--display); font-weight: 800; font-size: 40px; line-height: .92; text-transform: uppercase; }
.tp-oferta h2 em { font-style: normal; color: var(--y); }
.tp-oferta p { margin: 6px 0 14px; font-size: 13.5px; color: rgba(255,255,255,.75); }
.tp-oferta .tp-circ { position: absolute; right: -28px; top: -28px; width: 124px; height: 124px; border-radius: 50%; background: var(--y); }
.tp-oferta .tp-circ span { position: absolute; left: 22px; bottom: 24px; font-family: var(--display); font-weight: 800; font-size: 28px; white-space: nowrap; color: var(--ink); }

/* Opiniones */
.tp-res { margin: 0 16px; padding: 18px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.tp-estrellas { display: inline-flex; gap: 2px; }
.tp-estrellas svg { width: 16px; height: 16px; fill: var(--y); }
.tp-estrellas svg.tp-v { fill: #dcd9cf; }
.tp-res q { display: block; margin: 8px 0 12px; font-size: 15px; line-height: 1.45; quotes: none; }
.tp-quien { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--muted); }
.tp-quien b { color: var(--ink); }
.tp-av { flex: none; display: grid; place-items: center; width: 32px; height: 32px; font-weight: 800; font-size: 13px; background: var(--y); border-radius: 50%; }

/* Confianza */
.tp-conf { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 30px 16px 0; }
.tp-conf div { padding: 14px 8px; text-align: center; background: var(--soft); border-radius: var(--r-lg); }
.tp-conf svg { width: 26px; height: 26px; margin: 0 auto 6px; fill: none; stroke: var(--ink); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tp-conf b { display: block; font-size: 12px; line-height: 1.25; }
.tp-conf span { font-size: 11px; color: var(--muted); }

/* Pie */
.tp-pie { margin-top: 36px; padding: 30px 18px 34px; color: #fff; background: var(--ink); border-radius: var(--r-xl) var(--r-xl) 0 0; }
.tp-pie img { display: block; height: 16px; width: auto; filter: invert(1); }
.tp-pie p { margin: 12px 0 20px; max-width: 280px; font-size: 13px; color: rgba(255,255,255,.7); }
.tp-pie .tp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 22px; }
.tp-pie h2 { margin: 0 0 8px; font-family: var(--display); font-size: 17px; letter-spacing: .06em; text-transform: uppercase; color: var(--y); }
.tp-pie li a { display: block; padding: 5px 0; font-size: 13px; font-weight: 500; color: rgba(255,255,255,.88); }
.tp-pie .tp-pagos { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.tp-pie .tp-pagos span { display: grid; place-items: center; min-width: 52px; height: 32px; padding: 0 8px; font-size: 10px; font-weight: 700; color: var(--ink); background: #fff; border-radius: 8px; }
.tp-pie small { color: rgba(255,255,255,.5); font-size: 11.5px; }

/* Capas: menú lateral, hojas inferiores, búsqueda */
.tp-velo { position: fixed; inset: 0; z-index: 60; background: rgba(0,0,0,.5); opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; }
.tp-cajon { position: fixed; top: 0; bottom: 0; left: max(0px, calc(50% - 215px)); z-index: 61; width: min(88vw, 370px); overflow-y: auto; display: flex; flex-direction: column; background: #fff; border-radius: 0 var(--r-xl) var(--r-xl) 0; transform: translateX(-110%); visibility: hidden; transition: transform .28s ease, visibility 0s linear .28s; }
body.tp-menu-abierto .tp-velo, body.tp-hoja-abierta .tp-velo { opacity: 1; visibility: visible; }
body.tp-menu-abierto .tp-cajon { transform: none; visibility: visible; transition-delay: 0s; }
.tp-cajon .tp-top { display: flex; align-items: center; justify-content: space-between; height: 60px; padding: 0 8px 0 18px; border-bottom: 1px solid var(--line); }
.tp-cajon .tp-top img { height: 16px; }
.tp-cajon .tp-busca { margin: 14px 16px 4px; }
.tp-cajon .tp-busca input { width: 100%; height: 50px; padding: 0 18px; font-size: 15px; background: var(--soft); border: 0; border-radius: 999px; outline: none; }
.tp-cajon nav { padding: 4px 16px; }
.tp-cajon nav a { display: flex; align-items: center; justify-content: space-between; padding: 14px 2px; border-bottom: 1px solid var(--line); font-family: var(--display); font-weight: 800; font-size: 26px; text-transform: uppercase; }
.tp-cajon nav a span { font-family: var(--body); font-size: 20px; font-weight: 500; }
.tp-cajon .tp-sec2 { padding: 8px 16px 6px; }
.tp-cajon .tp-sec2 a { display: block; padding: 10px 2px; font-size: 14px; font-weight: 600; }
.tp-cajon .tp-ayuda { margin: auto 16px 18px; padding: 14px 16px; font-size: 13px; background: var(--soft); border-radius: var(--r-lg); }
.tp-cajon .tp-ayuda b { display: block; margin-bottom: 2px; }

.tp-hoja { position: fixed; left: max(0px, calc(50% - 215px)); right: max(0px, calc(50% - 215px)); bottom: 0; z-index: 62; max-height: 88vh; overflow-y: auto; padding: 10px 18px 20px; background: #fff; border-radius: var(--r-xl) var(--r-xl) 0 0; transform: translateY(105%); transition: transform .3s ease; }
.tp-hoja.tp-on { transform: none; }
.tp-hoja .tp-asa { width: 44px; height: 5px; margin: 0 auto 12px; background: var(--line); border-radius: 5px; }
.tp-hoja .tp-cab-hoja { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.tp-hoja .tp-cierra { width: 38px; height: 38px; display: grid; place-items: center; background: var(--soft); border: 0; border-radius: 50%; }
.tp-hoja .tp-cierra svg { width: 18px; height: 18px; stroke: var(--ink); fill: none; stroke-width: 2.2; stroke-linecap: round; }
.tp-hoja h4 { margin: 18px 0 10px; font-family: var(--display); font-weight: 800; font-size: 20px; letter-spacing: .02em; text-transform: uppercase; }
.tp-tallas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.tp-talla { display: grid; place-items: center; height: 50px; font-size: 14px; font-weight: 700; background: #fff; border: 1.5px solid var(--line); border-radius: 14px; }
.tp-talla.tp-on { color: #fff; background: var(--ink); border-color: var(--ink); }
.tp-talla.tp-no { color: #b8b5aa; text-decoration: line-through; background: var(--soft); border-color: transparent; }
.tp-talla.tp-err { border-color: var(--red); animation: sacude .35s; }
@keyframes sacude { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
.tp-opc { display: flex; align-items: center; justify-content: space-between; padding: 14px 2px; font-size: 15px; border-bottom: 1px solid var(--line); }
.tp-opc i { width: 22px; height: 22px; border: 2px solid var(--ink); border-radius: 50%; }
.tp-opc.tp-on i { background: radial-gradient(circle, var(--ink) 40%, transparent 42%); }
.tp-opc.tp-on { font-weight: 700; }
.tp-colores { display: flex; flex-wrap: wrap; gap: 12px; }
.tp-colores i { width: 34px; height: 34px; border: 1.5px solid rgba(0,0,0,.15); border-radius: 50%; }
.tp-colores i.tp-on { outline: 2.5px solid var(--ink); outline-offset: 2px; }
.tp-pie-hoja { position: sticky; bottom: -20px; display: grid; grid-template-columns: auto 1fr; gap: 10px; margin: 18px -18px -20px; padding: 12px 18px 20px; background: #fff; border-top: 1px solid var(--line); }

.tp-buscar { position: fixed; left: max(0px, calc(50% - 215px)); right: max(0px, calc(50% - 215px)); top: 0; bottom: 0; z-index: 63; overflow-y: auto; background: #fff; transform: translateY(-104%); transition: transform .3s ease; }
.tp-buscar.tp-on { transform: none; }
.tp-buscar .tp-top { display: flex; align-items: center; gap: 8px; padding: 10px 10px 10px 16px; border-bottom: 1px solid var(--line); }
.tp-buscar .tp-top .tp-caja { flex: 1; display: flex; align-items: center; gap: 10px; height: 48px; padding: 0 16px; background: var(--soft); border-radius: 999px; }
.tp-buscar .tp-top input { flex: 1; min-width: 0; height: 100%; font-size: 16px; background: none; border: 0; outline: none; }
.tp-buscar .tp-top svg { width: 20px; height: 20px; stroke: var(--ink); fill: none; stroke-width: 2; stroke-linecap: round; }
.tp-buscar .tp-cuerpo { padding: 6px 16px 30px; }
.tp-buscar h2 { margin: 20px 0 10px; font-family: var(--display); font-weight: 800; font-size: 20px; letter-spacing: .02em; text-transform: uppercase; }
.tp-buscar .tp-chips { margin: 0 -16px; padding: 0 16px 2px; }
/* Categorías, marcas y etiquetas: dos filas de pastillas que se deslizan juntas hacia el lado */
.tp-buscar .tp-chips-2f { display: grid; grid-template-rows: repeat(2, auto); grid-auto-flow: column; grid-auto-columns: max-content; }
.tp-sug { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.tp-sug .tp-m { flex: none; display: grid; place-items: center; width: 52px; height: 62px; background: #fff; border-radius: 14px; }
.tp-sug .tp-m svg { width: 56%; fill: none; stroke: #c6c3b8; stroke-width: 1.1; stroke-linejoin: round; }
.tp-sug b { display: block; font-size: 14px; }
.tp-sug span { font-size: 12.5px; color: var(--muted); }

.tp-toast { position: fixed; left: 50%; bottom: 96px; z-index: 80; display: flex; align-items: center; gap: 10px; max-width: 360px; padding: 12px 18px; font-size: 13.5px; font-weight: 600; color: #fff; background: var(--ink); border-radius: 999px; opacity: 0; visibility: hidden; transform: translate(-50%, 10px); transition: opacity .2s, transform .2s, visibility .2s; }
.tp-toast.tp-on { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.tp-toast i { width: 20px; height: 20px; display: grid; place-items: center; background: var(--y); border-radius: 50%; }
.tp-toast i::after { content: ""; width: 9px; height: 4.5px; margin-top: -2px; border: solid var(--ink); border-width: 0 0 2.2px 2.2px; transform: rotate(-45deg); }

/* Barra fija inferior de acción (ficha, carrito) */
.tp-fija { position: sticky; bottom: 0; z-index: 25; display: flex; align-items: center; gap: 12px; margin-top: 26px; padding: 12px 16px calc(14px + env(safe-area-inset-bottom, 0px)); background: rgba(255,255,255,.97); backdrop-filter: blur(8px); border-top: 1px solid var(--line); border-radius: var(--r-xl) var(--r-xl) 0 0; box-shadow: 0 -8px 24px rgba(0,0,0,.06); }
.tp-fija .tp-pr { flex: none; line-height: 1.1; }
.tp-fija .tp-pr small { display: block; font-size: 11px; color: var(--muted); }
.tp-fija .tp-pr b { font-family: var(--display); font-weight: 800; font-size: 28px; }
.tp-fija .tp-btn { flex: 1; }

/* Ficha de producto */
.tp-gal { position: relative; margin: 10px 12px 0; aspect-ratio: var(--tp-gal-r, 4 / 5); overflow: hidden; display: grid; place-items: center; background: #fff; border-radius: var(--r-xl); }
.tp-gal .tp-ph { width: 46%; }
.tp-gal .tp-corazon { top: 12px; right: 12px; }
.tp-gal .tp-compartir { position: absolute; top: 12px; right: 56px; display: grid; place-items: center; width: 36px; height: 36px; background: rgba(255,255,255,.94); border: 0; border-radius: 50%; }
.tp-gal .tp-compartir svg { width: 18px; height: 18px; stroke: var(--ink); fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.tp-gal .tp-puntos { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 6px; }
.tp-gal .tp-puntos i { width: 7px; height: 7px; background: rgba(0,0,0,.2); border-radius: 50%; }
.tp-gal .tp-puntos i.tp-on { width: 22px; background: var(--ink); border-radius: 7px; }
.tp-minis { display: flex; gap: 8px; padding: 10px 12px 0; overflow-x: auto; scrollbar-width: none; }
.tp-minis i { flex: none; display: grid; place-items: center; width: 64px; height: 76px; background: var(--soft); border: 2px solid transparent; border-radius: 16px; }
.tp-minis i.tp-on { border-color: var(--ink); }
.tp-minis i svg { width: 56%; fill: none; stroke: #c6c3b8; stroke-width: 1.1; stroke-linejoin: round; }
.tp-pinfo { padding: 18px 16px 0; }
.tp-pinfo .tp-marca { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.tp-pinfo .tp-marca a { padding: 7px 0; margin: -7px 0; color: inherit; text-decoration: none; }
.tp-pinfo h1 { margin: 4px 0 8px; font-family: var(--display); font-weight: 800; font-size: 36px; line-height: .98; text-transform: uppercase; }
.tp-pfila { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.tp-pfila .tp-precio { display: flex; align-items: center; gap: 10px; font-size: 26px; font-weight: 800; white-space: nowrap; }
.tp-pfila .tp-precio s { font-size: 15px; font-weight: 500; color: var(--muted); }
.tp-pfila .tp-precio b { color: var(--red); }
.tp-pfila .tp-precio em { font-style: normal; padding: 3px 8px; font-size: 11px; font-weight: 800; background: var(--y); border-radius: 999px; }
.tp-valora { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); }
.tp-valora u { color: var(--ink); font-weight: 600; }
.tp-lbl { display: flex; align-items: center; justify-content: space-between; margin: 20px 0 10px; font-size: 13px; font-weight: 600; }
.tp-lbl a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.tp-sw { display: flex; gap: 12px; }
.tp-sw i { width: 38px; height: 38px; border: 1.5px solid rgba(0,0,0,.15); border-radius: 50%; }
.tp-sw i.tp-on { outline: 2.5px solid var(--ink); outline-offset: 3px; }
.tp-tallas-f { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.tp-entrega { display: grid; gap: 10px; margin-top: 20px; padding: 14px 16px; background: var(--soft); border-radius: var(--r-lg); }
.tp-entrega div { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.tp-entrega svg { flex: none; width: 24px; height: 24px; fill: none; stroke: var(--ink); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tp-entrega b { display: block; }
.tp-entrega span { color: var(--muted); font-size: 12.5px; }
.tp-acc { margin-top: 20px; }
.tp-acc details { border-bottom: 1px solid var(--line); }
.tp-acc details:first-child { border-top: 1px solid var(--line); }
.tp-acc summary { display: flex; align-items: center; justify-content: space-between; padding: 16px 2px; font-size: 14.5px; font-weight: 700; list-style: none; cursor: pointer; }
.tp-acc summary::-webkit-details-marker { display: none; }
.tp-acc summary::after { content: "+"; font-size: 22px; font-weight: 400; line-height: 1; }
.tp-acc details[open] summary::after { content: "–"; }
.tp-acc .tp-txt { padding: 0 2px 16px; font-size: 14px; line-height: 1.55; color: #3b3a37; }
.tp-acc .tp-txt p + p { margin-top: 8px; }
.tp-acc .tp-txt ul { padding-left: 18px; list-style: disc; }
.tp-resumen-op { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; }
.tp-resumen-op .tp-big { font-family: var(--display); font-weight: 800; font-size: 54px; line-height: .9; }
.tp-barras div { display: grid; grid-template-columns: 14px 1fr 30px; align-items: center; gap: 8px; font-size: 11.5px; color: var(--muted); }
.tp-barras .tp-prog { height: 6px; }
.tp-rev { padding: 16px 0; border-bottom: 1px solid var(--line); }
.tp-rev p { margin: 6px 0 8px; font-size: 14px; }
.tp-rev small { color: var(--muted); font-size: 12px; }

/* Carrito */
.tp-item { display: grid; grid-template-columns: 92px 1fr; gap: 14px; padding: 14px; margin: 12px 16px 0; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.tp-item .tp-m { display: grid; place-items: center; height: 112px; background: #fff; border-radius: 16px; }
.tp-item .tp-m svg { width: 56%; fill: none; stroke: #c6c3b8; stroke-width: 1.1; stroke-linejoin: round; }
.tp-item h2 { padding-right: 24px; font-size: 14px; font-weight: 600; line-height: 1.3; }
.tp-item .tp-det { margin-top: 2px; font-size: 12.5px; color: var(--muted); }
.tp-item .tp-fl { display: flex; align-items: center; justify-content: space-between; margin-top: 12px; }
.tp-item .tp-pre { font-size: 15px; font-weight: 800; }
.tp-item .tp-x { position: absolute; right: 10px; top: 8px; width: 30px; height: 30px; display: grid; place-items: center; background: none; border: 0; }
.tp-item .tp-x svg { width: 16px; height: 16px; stroke: var(--muted); fill: none; stroke-width: 2.2; stroke-linecap: round; }
.tp-item { position: relative; }
.tp-step { display: inline-flex; align-items: center; height: 38px; background: var(--soft); border-radius: 999px; }
.tp-step button { width: 38px; height: 38px; font-size: 18px; font-weight: 600; background: none; border: 0; }
.tp-step span { min-width: 22px; text-align: center; font-weight: 700; }
.tp-cup { display: flex; flex-wrap: wrap; gap: 8px; }
.tp-cup input { flex: 1; min-width: 0; height: 48px; padding: 0 16px; font-size: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: 999px; outline: none; }
.tp-fila-res { display: flex; justify-content: space-between; padding: 6px 0; font-size: 14px; }
.tp-fila-res.tp-tot { margin-top: 6px; padding-top: 12px; font-size: 18px; font-weight: 800; border-top: 1.5px solid var(--line); }
.tp-pagos-i { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.tp-pagos span svg, .tp-pagos-i span svg { display: block; width: auto; }
.tp-pagos-i span, .tp-pie .tp-pagos span { min-width: 52px; height: 32px; }
.tp-pagos-i span { display: grid; place-items: center; min-width: 50px; height: 30px; padding: 0 8px; font-size: 10px; font-weight: 700; background: var(--soft); border-radius: 8px; }

/* Hecho / éxito */
.tp-exito { padding: 30px 16px 0; text-align: center; }
.tp-exito .tp-circ { display: grid; place-items: center; width: 84px; height: 84px; margin: 0 auto 16px; background: var(--y); border-radius: 50%; }
.tp-exito .tp-circ svg { width: 40px; height: 40px; stroke: var(--ink); fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }

/* Cuenta */
.tp-perfil { display: flex; align-items: center; gap: 14px; margin: 14px 16px 0; padding: 18px; background: var(--y); border-radius: var(--r-xl); }
.tp-perfil .tp-av { width: 56px; height: 56px; font-size: 22px; background: #fff; }
.tp-perfil b { display: block; font-family: var(--display); font-weight: 800; font-size: 28px; line-height: 1; text-transform: uppercase; }
.tp-perfil span { font-size: 13px; }
.tp-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px 16px 0; }
.tp-tile { display: block; padding: 16px; background: var(--soft); border-radius: var(--r-lg); }
.tp-tile svg { width: 26px; height: 26px; margin-bottom: 10px; fill: none; stroke: var(--ink); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tp-tile b { display: block; font-size: 14px; }
.tp-tile span { font-size: 12px; color: var(--muted); }
.tp-estado { display: inline-block; padding: 4px 10px; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; background: var(--y); border-radius: 999px; }
.tp-o { display: flex; align-items: center; gap: 12px; margin: 14px 0; font-size: 12px; color: var(--muted); }
.tp-o::before, .tp-o::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.tp-ventajas li { display: flex; align-items: center; gap: 12px; padding: 8px 0; font-size: 14px; }
.tp-ventajas svg { flex: none; width: 22px; height: 22px; fill: none; stroke: var(--ink); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* Legales, FAQ, tallas */
.tp-toc { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.tp-toc a { padding: 8px 14px; font-size: 12.5px; font-weight: 600; background: var(--soft); border-radius: 999px; }

/* 404 */
.tp-f404 { padding: 34px 16px 0; text-align: center; }
.tp-f404 .tp-gordo { position: relative; display: grid; place-items: center; width: 220px; height: 220px; margin: 0 auto 18px; background: var(--y); border-radius: 50%; }
.tp-f404 .tp-gordo b { font-family: var(--display); font-weight: 800; font-size: 100px; line-height: 1; }
.tp-f404 .tp-gordo svg { position: absolute; right: -6px; bottom: 8px; width: 64px; height: 64px; fill: #fff; stroke: var(--ink); stroke-width: 1.4; stroke-linejoin: round; transform: rotate(14deg); }


/* ================================================================
   PIEZAS DEL TEMA: accesibilidad, cabecera, menú lateral y textos de página
   ================================================================ */
.tp-saltar { position: absolute; left: -9999px; top: 0; z-index: 100; padding: 10px 16px; font-weight: 700; background: var(--y); color: var(--ink); }
.tp-saltar:focus { left: 8px; top: 8px; }
.tp-main { min-height: 50vh; }
.tp-cab.tp-cab-f { display: none; }
.tp-focus .tp-cab.tp-cab-f { display: grid; }
.tp-focus .tp-cab.tp-cab-n, .tp-focus .tp-aviso { display: none; }
.tp-aviso-p { display: inline-flex; align-items: center; gap: 10px; }
.tp-hero { background-size: cover; background-position: center; }
.tp-pfoto { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: contain; }
.tp-pdatos { display: block; }
.tp-precio del { margin-right: 6px; font-size: 12px; font-weight: 500; color: var(--muted); text-decoration: line-through; }
.tp-precio ins { color: var(--red); background: none; text-decoration: none; }
.tp-precio .amount { font-weight: inherit; }
.tp-botones-col { display: grid; gap: 10px; margin-top: 22px; }
body.tp-buscar-abierto { overflow: hidden; }
.tp-hoja-prod { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.tp-m { flex: none; display: grid; place-items: center; width: 64px; height: 76px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.tp-m img { width: 100%; height: 100%; object-fit: contain; }
.tp-sug .tp-m { width: 52px; height: 62px; border-radius: 14px; }
.tp-ayuda { display: block; color: inherit; }

/* Menú lateral: lista de WordPress y submenús desplegables */
.tp-menu li { position: relative; }
.tp-menu .sub-menu { display: none; padding: 0 0 8px 12px; }
.tp-menu li.tp-abierto > .sub-menu { display: block; }
.tp-cajon nav .sub-menu a { padding: 11px 2px; font-family: var(--body); font-size: 16px; font-weight: 600; text-transform: none; }
.tp-sub-toggle { position: absolute; right: 0; top: 8px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; background: none; border: 0; }
.tp-sub-toggle svg { width: 22px; height: 22px; fill: none; stroke: var(--ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.tp-menu li.tp-abierto > .tp-sub-toggle svg { transform: rotate(90deg); }
.tp-cajon nav li.tp-ofertas a, .tp-cajon nav li.tp-destacado a { color: #a98400; }
/* Niveles de dentro: subcategoría › marca › modelo */
.tp-menu .sub-menu .tp-sub-toggle { top: 0; }
.tp-menu .sub-menu li.menu-item-has-children > a { padding-right: 44px; }
.tp-cajon nav .sub-menu .sub-menu { padding-bottom: 4px; border-left: 2px solid var(--line); }
.tp-cajon nav .sub-menu .sub-menu a { padding: 9px 2px; font-size: 15px; font-weight: 500; }
.tp-cajon nav .sub-menu .sub-menu .sub-menu a { font-size: 14px; color: var(--muted); }

/* Texto de las páginas (lo que escribes en el editor de WordPress) */
.tp-pagina .tp-contenido { padding-bottom: 8px; }
.tp-contenido h2 { margin: 28px 0 8px; font-family: var(--display); font-weight: 800; font-size: 26px; line-height: 1; text-transform: uppercase; }
.tp-contenido h3 { margin: 22px 0 6px; font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.05; text-transform: uppercase; }
.tp-contenido h4 { margin: 18px 0 6px; font-size: 15px; font-weight: 800; }
.tp-contenido p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.6; color: #3b3a37; }
.tp-contenido ul, .tp-contenido ol { margin: 0 0 12px; padding-left: 20px; font-size: 14.5px; line-height: 1.6; color: #3b3a37; }
.tp-contenido ul { list-style: disc; }
.tp-contenido ol { list-style: decimal; }
.tp-contenido li { margin-bottom: 4px; }
.tp-contenido a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.tp-contenido img { max-width: 100%; height: auto; border-radius: var(--r-lg); }
.tp-contenido blockquote { margin: 16px 0; padding: 14px 16px; background: var(--soft); border-radius: var(--r-lg); }
.tp-contenido table { display: table; width: 100%; margin: 4px 0 14px; border-collapse: collapse; font-size: 13px; overflow-wrap: anywhere; }
.tp-contenido .wp-block-table { margin: 4px 0 14px; overflow-x: auto; }
.tp-contenido .wp-block-table table { margin: 0; }
.tp-contenido .wp-block-table thead, .tp-contenido .wp-block-table tfoot { border: 0; }
.tp-contenido .wp-block-table table:has(tr > :nth-child(4)) { min-width: 580px; overflow-wrap: normal; }
.tp-contenido th, .tp-contenido td { padding: 10px 8px; text-align: left; border: 0; border-bottom: 1px solid var(--line); }
.tp-contenido th { font-size: 12px; font-weight: 800; background: var(--soft); }
.tp-contenido thead th:first-child { border-radius: 12px 0 0 12px; }
.tp-contenido thead th:last-child { border-radius: 0 12px 12px 0; }
.tp-contenido details { border-bottom: 1px solid var(--line); }
.tp-contenido details:first-of-type { border-top: 1px solid var(--line); }
.tp-contenido summary { display: flex; align-items: center; justify-content: space-between; padding: 16px 2px; font-size: 14.5px; font-weight: 700; list-style: none; cursor: pointer; }
.tp-contenido summary::-webkit-details-marker { display: none; }
.tp-contenido summary::after { content: "+"; font-size: 22px; font-weight: 400; line-height: 1; }
.tp-contenido details[open] summary::after { content: "–"; }
.tp-contenido details > :not(summary) { padding-bottom: 6px; }
.tp-contenido .wp-block-button__link, .tp-contenido .wp-element-button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 26px; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; text-decoration: none; color: #fff; background: var(--ink); border-radius: 999px; }
.tp-contenido .wp-block-button.is-style-outline .wp-block-button__link { color: var(--ink); background: #fff; border: 2px solid var(--ink); }
.tp-contenido .wp-block-separator { margin: 22px 0; border: 0; border-top: 1.5px solid var(--line); }
/* Bloques en fila del editor (Botones, Columnas): lo único que hace falta del CSS global de WordPress, que el tema ya no carga */
.is-layout-flex { display: flex; flex-wrap: wrap; align-items: center; gap: .5em; }
.is-layout-flex > :is(*, div) { margin: 0; }
.is-layout-grid { display: grid; gap: .5em; }
.is-layout-grid > :is(*, div) { margin: 0; }

/* ================================================================
   TIENDA: categorías, listados y ficha de producto
   ================================================================ */
.tp-sr, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.tp-pag .tp-sub p { margin: 0 0 6px; }
.tp-barra + .tp-grid { margin-top: 16px; }
.tp-chips + .tp-barra { margin-top: 12px; }
.tp-pag + .tp-barra { margin-top: 16px; }
/* Pago: la foto de cada prenda en el resumen del pedido */
.tp-tabla-orden tbody tr.cart_item { align-items: center; }
.tp-tabla-orden td.product-name { display: flex; flex: 1; align-items: center; gap: 12px; min-width: 0; }
.tp-tabla-orden .tp-m-ck { width: 56px; height: 66px; border-radius: 14px; }
.tp-tabla-orden .tp-m-ck svg { width: 56%; fill: none; stroke: #c6c3b8; stroke-width: 1.1; stroke-linejoin: round; }
.tp-tabla-orden .tp-ln-d { min-width: 0; }
.tp-cargando { opacity: .6; pointer-events: none; }
.tp-mas .tp-btn { margin-top: 2px; }
.tp-exito .tp-circ svg { stroke: var(--ink); fill: none; }

/* Hojas de filtros y orden */
.tp-hoja a.tp-opc { color: inherit; }
.tp-filtros .tp-talla { position: relative; cursor: pointer; }
.tp-filtros .tp-talla input, .tp-fcolor input { position: absolute; opacity: 0; pointer-events: none; }
.tp-fcolor { position: relative; cursor: pointer; }
.tp-fcolor i { display: block; }
.tp-fcolor.tp-on i { outline: 2.5px solid var(--ink); outline-offset: 2px; }
.tp-fprecio { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tp-fprecio .tp-campo { margin: 0; }
.tp-filtros > .tp-pie-hoja { margin-top: 22px; }

/* Precio en la ficha (WooCommerce usa <del> y <ins>) */
.tp-pfila .tp-precio .price { display: inline-flex; align-items: baseline; gap: 10px; }
.tp-pfila .tp-precio del { margin: 0; font-size: 15px; font-weight: 500; color: var(--muted); }
.tp-pfila .tp-precio ins { color: var(--red); background: none; text-decoration: none; }
.tp-pfila .tp-precio .amount { font-weight: inherit; }
.tp-valora { color: inherit; }
.tp-estrellas svg { stroke: none; }

/* Galería */
.tp-gal-tira { position: absolute; inset: 0; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.tp-gal-tira::-webkit-scrollbar { display: none; }
.tp-gal-item { flex: none; width: 100%; height: 100%; scroll-snap-align: center; }
.tp-gal-img { display: block; width: 100%; height: 100%; max-width: none; object-fit: contain; }
.tp-gal .tp-corazon, .tp-gal .tp-compartir, .tp-gal .tp-puntos { z-index: 2; }
.tp-minis button { flex: none; display: grid; place-items: center; width: 64px; height: 76px; padding: 0; overflow: hidden; background: #fff; border: 2px solid transparent; border-radius: 16px; }
.tp-minis button.tp-on { border-color: var(--ink); }
.tp-minis img { width: 100%; height: 100%; object-fit: contain; }

/* Formulario de compra de WooCommerce con la cara del tema */
.tp-compra .tp-var .tp-lbl b { font-weight: 700; }
.tp-compra .tp-sw button { position: relative; width: 38px; height: 38px; padding: 0; border: 1.5px solid rgba(0,0,0,.15); border-radius: 50%; }
.tp-compra .tp-sw button.tp-on { outline: 2.5px solid var(--ink); outline-offset: 3px; }
.tp-compra .tp-sw button.tp-no { opacity: .35; cursor: not-allowed; }
.tp-compra .tp-sw button.tp-no::after { content: ""; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; background: var(--ink); transform: rotate(45deg); }
.tp-compra .tp-sw button.tp-err { animation: sacude .35s; }
.tp-compra .tp-talla:disabled { cursor: not-allowed; }
.tp-compra .tp-chips-var { padding: 0; flex-wrap: wrap; overflow: visible; }
.tp-compra .tp-chips-var .tp-chip:disabled { opacity: .4; text-decoration: line-through; }
.tp-compra table.variations.tp-oculta { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tp-compra form.tp-form-listo .quantity,
.tp-compra form.tp-form-listo .single_add_to_cart_button,
.tp-compra form.tp-form-listo .reset_variations,
.tp-compra form.tp-form-listo .woocommerce-variation-price,
.tp-compra form.tp-form-listo .woocommerce-variation-description { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tp-compra p.stock { margin: 12px 0 0; font-size: 12.5px; color: var(--muted); }
.tp-compra p.stock.out-of-stock { color: var(--red); font-weight: 600; }
.tp-compra .woocommerce-variation-availability:empty { display: none; }
.tp-compra form.cart { margin: 0; }
.tp-btn.tp-hecho { color: #fff; background: var(--ok); border-color: var(--ok); }
.tp-fija .tp-btn:disabled { opacity: .55; }

/* Opiniones */
.tp-valora { text-decoration: none; }
.tp-todas { margin-top: 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.tp-todas > summary { display: flex; align-items: center; justify-content: space-between; padding: 16px 2px; font-size: 14.5px; font-weight: 700; list-style: none; cursor: pointer; }
.tp-todas > summary::-webkit-details-marker { display: none; }
.tp-todas > summary::after { content: "+"; font-size: 22px; font-weight: 400; line-height: 1; }
.tp-todas[open] > summary::after { content: "–"; }
.tp-todas #reviews { padding-bottom: 16px; font-size: 14px; }
.tp-todas .woocommerce-Reviews-title, .tp-todas #reply-title { display: block; margin: 4px 0 12px; font-family: var(--display); font-weight: 800; font-size: 20px; line-height: 1.05; text-transform: uppercase; }
.tp-todas ol.commentlist { margin: 0; padding: 0; list-style: none; }
.tp-todas ol.commentlist li { padding: 14px 0; border-bottom: 1px solid var(--line); }
.tp-todas .comment_container { display: flex; gap: 12px; }
.tp-todas img.avatar { flex: none; width: 40px; height: 40px; border-radius: 50%; }
.tp-todas .comment-text { flex: 1; min-width: 0; }
.tp-todas .comment-text p { margin: 4px 0; }
.tp-todas .meta { margin: 4px 0; font-size: 12.5px; color: var(--muted); }
.tp-todas .woocommerce-review__author { color: var(--ink); font-weight: 700; }
.tp-todas .woocommerce-review__verified { font-style: normal; }
.star-rating { position: relative; display: block; width: 5em; height: 1em; overflow: hidden; font-size: 16px; line-height: 1; }
.star-rating::before { content: ""; position: absolute; top: 0; left: 0; width: 5em; height: 1em; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23dcd9cf' d='M12 2.5l2.9 6 6.6.8-4.9 4.5 1.3 6.5L12 17l-5.9 3.3 1.3-6.5L2.5 9.3l6.6-.8z'/%3E%3C/svg%3E") repeat-x 0 0 / 1em 1em; }
.star-rating span { position: absolute; top: 0; left: 0; height: 1em; padding-top: 2em; overflow: hidden; }
.star-rating span::before { content: ""; position: absolute; top: 0; left: 0; width: 5em; height: 1em; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ECBC08' d='M12 2.5l2.9 6 6.6.8-4.9 4.5 1.3 6.5L12 17l-5.9 3.3 1.3-6.5L2.5 9.3l6.6-.8z'/%3E%3C/svg%3E") repeat-x 0 0 / 1em 1em; }
.tp-todas p.stars { margin: 0 0 12px; }
.tp-todas p.stars span { display: inline-flex; gap: 2px; }
.tp-todas p.stars a { position: relative; display: inline-block; width: 1.2em; height: 1.2em; font-size: 26px; text-indent: -999em; overflow: hidden; }
.tp-todas p.stars a::before { content: "★"; position: absolute; top: 0; left: 0; width: 1.2em; height: 1.2em; line-height: 1.2; text-indent: 0; color: #dcd9cf; }
.tp-todas p.stars:hover a::before, .tp-todas p.stars.selected a::before { color: var(--y); }
.tp-todas p.stars a:hover ~ a::before, .tp-todas p.stars.selected a.active ~ a::before { color: #dcd9cf; }
.tp-todas #commentform label { display: block; margin: 10px 0 5px 4px; font-size: 12px; font-weight: 600; color: var(--muted); }
.tp-todas #commentform input[type=text], .tp-todas #commentform input[type=email], .tp-todas #commentform textarea, .tp-todas #commentform select { display: block; width: 100%; padding: 0 16px; font-size: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-md); outline: none; }
.tp-todas #commentform input[type=text], .tp-todas #commentform input[type=email] { height: 52px; }
.tp-todas #commentform textarea { height: 110px; padding: 14px 16px; resize: none; }
.tp-todas #commentform .comment-form-cookies-consent { display: flex; align-items: center; gap: 8px; }
.tp-todas #commentform .comment-form-cookies-consent label { margin: 0; }
.tp-todas #commentform input[type=submit] { width: 100%; min-height: 52px; margin-top: 12px; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #fff; background: var(--ink); border: 0; border-radius: 999px; }
.tp-todas .woocommerce-verification-required, .tp-todas .woocommerce-noreviews { padding: 8px 0; color: var(--muted); }

/* Avisos de WooCommerce */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { margin: 12px 16px 0; padding: 14px 16px; list-style: none; font-size: 14px; line-height: 1.45; background: var(--soft); border-radius: var(--r-lg); }
.woocommerce-message { border-left: 5px solid var(--ok); }
.woocommerce-info { border-left: 5px solid var(--y); }
.woocommerce-error { color: var(--red); background: #fbeeec; border-left: 5px solid var(--red); }
.woocommerce-error li + li { margin-top: 6px; }
.woocommerce-message a.button, .woocommerce-info a.button { float: none; order: 2; margin: 0; padding: 8px 14px; font-size: 12px; font-weight: 700; color: #fff; background: var(--ink); border-radius: 999px; }
.woocommerce-message:has(> a.button), .woocommerce-info:has(> a.button) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.cr-pswp { display: none !important; }
.tp-cup .coupon-error-notice { flex: 0 0 100%; order: 5; margin: 6px 0 0; font-size: 13px; font-weight: 600; color: var(--red); }
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

/* ================================================================
   COMPRA: carrito, finalizar compra y pedido recibido
   ================================================================ */
.tp-apagado { color: var(--muted); }
.tp-enlace { cursor: pointer; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.tp-card summary { list-style: none; }
.tp-card summary::-webkit-details-marker { display: none; }
body.trespace .button, body.trespace button.button, body.trespace input.button, body.trespace a.button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 20px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: var(--ink); border: 0; border-radius: 999px; cursor: pointer; }
body.trespace .button.alt { color: var(--ink); background: var(--y); }

/* Barra fija del carrito */
.tp-fija.tp-fija-fija { position: fixed; left: max(0px, calc(50% - 215px)); right: max(0px, calc(50% - 215px)); bottom: 0; z-index: 40; margin: 0; }
.tp-fija-fija .tp-btn { min-height: 50px; }
body.woocommerce-cart .tp-pie { padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }

/* Prendas del carrito */
.tp-item .tp-m a { display: block; width: 100%; height: 100%; }
.tp-item .tp-m img { width: 100%; height: 100%; object-fit: contain; }
.tp-item .tp-m a svg, .tp-item .tp-m > svg { width: 56%; margin: 0 auto; }
.tp-item .tp-m { overflow: hidden; }
.tp-item-datos { min-width: 0; }
.tp-item h2 a { color: inherit; }
.tp-item .product-remove { position: absolute; right: 10px; top: 8px; }
.tp-item .tp-x { position: static; display: grid; place-items: center; width: 30px; height: 30px; padding: 0; }
.tp-step .quantity { display: block; }
.tp-item .tp-m { width: auto; }
.woocommerce-cart .tp-step input.input-text.qty, .tp-step input.qty { width: 40px; height: 38px; padding: 0; font-size: 15px; font-weight: 700; text-align: center; background: none; border: 0; border-radius: 0; outline: none; -moz-appearance: textfield; appearance: textfield; }
.tp-step input.qty::-webkit-outer-spin-button, .tp-step input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tp-step .tp-qty-fija { min-width: 38px; padding: 0 14px; text-align: center; font-weight: 700; }
.tp-step:has(.tp-qty-fija) input { display: none; }
.tp-acciones-cart .tp-cup input { flex: 1; }
.tp-acciones-cart .tp-cup .tp-btn { width: auto; flex: none; }
.tp-cart-sug { margin-top: 26px; }

/* Totales: tablas de WooCommerce dibujadas como filas */
.tp-totales, .tp-tabla-orden, .tp-tabla-envio { display: block; width: 100%; margin: 0; border: 0; }
.tp-totales tbody, .tp-totales tfoot, .tp-tabla-orden tbody, .tp-tabla-orden tfoot, .tp-tabla-envio tbody { display: block; }
.tp-totales tr, .tp-tabla-orden tr { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 6px 0; font-size: 14px; }
.tp-totales th, .tp-tabla-orden th { font-weight: 400; text-align: left; }
.tp-totales td, .tp-tabla-orden td { text-align: right; }
.tp-totales tr.order-total, .tp-tabla-orden tr.order-total { margin-top: 6px; padding-top: 12px; font-size: 18px; font-weight: 800; border-top: 1.5px solid var(--line); }
.tp-totales tr.order-total th, .tp-tabla-orden tr.order-total th { font-weight: 800; }
.tp-totales .includes_tax, .tp-tabla-orden .includes_tax { display: block; font-size: 12px; font-weight: 400; color: var(--muted); }
.tp-totales tr.cart-discount td, .tp-tabla-orden tr.cart-discount td { color: var(--ok); font-weight: 700; }
.tp-totales tr.cart-discount a, .tp-tabla-orden tr.cart-discount a { margin-left: 6px; font-size: 12px; font-weight: 600; text-decoration: underline; color: var(--muted); }
.tp-tabla-orden tbody tr.cart_item { padding: 8px 0; border-bottom: 1px solid var(--line); }
.tp-tabla-orden td.product-name { text-align: left; font-size: 13.5px; }
.tp-tabla-orden td.product-name .variation { margin: 2px 0 0; font-size: 12px; color: var(--muted); }
.tp-tabla-orden td.product-name .variation dt, .tp-tabla-orden td.product-name .variation dd, .tp-tabla-orden td.product-name .variation p { display: inline; margin: 0; }
.tp-tabla-orden td.product-name .variation dd::after { content: " · "; }
.tp-tabla-orden td.product-name .variation dd:last-child::after { content: ""; }
.tp-tabla-orden td.product-name strong.product-quantity { font-weight: 600; color: var(--muted); }
.tp-tabla-orden td.product-total { white-space: nowrap; font-weight: 600; }
.tp-tabla-orden tr.tp-envio-resumen td { color: var(--ok); font-weight: 700; }
.woocommerce-shipping-totals.tp-envio-fila { display: flex !important; }
.tp-totales .tp-envio-fila th { display: block; margin: 0; }
.tp-totales .tp-envio-fila td { display: block; text-align: right; font-weight: 700; color: var(--ok); }
.woocommerce-shipping-totals { display: block !important; }
.woocommerce-shipping-totals th { display: block; margin-bottom: 6px; }
.woocommerce-shipping-totals td { display: block; text-align: left; }
.woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; }
.woocommerce-shipping-destination, .shipping-calculator-button { margin: 8px 0 0; font-size: 12px; color: var(--muted); }
.shipping-calculator-button { display: inline-block; font-weight: 600; text-decoration: underline; color: var(--ink); }
.shipping-calculator-form { margin-top: 10px; }
.shipping-calculator-form .form-row { margin: 0 0 10px; }

/* Finalizar compra: campos */
.tp-formas .col2-set, .tp-formas .col-1, .tp-formas .col-2 { float: none; width: auto; }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 10px; }
.tp-formas .form-row, .tp-formas .form-row { grid-column: 1 / -1; width: auto; margin: 0 0 12px; padding: 0; float: none; }
.tp-formas .form-row-first, .tp-formas .form-row-first { grid-column: 1; }
.tp-formas .form-row-last, .tp-formas .form-row-last { grid-column: 2; }
.tp-formas .clear { display: none; }
.tp-formas .form-row > label, .tp-formas .form-row > label { display: block; margin: 0 0 5px 4px; font-size: 12px; font-weight: 600; color: var(--muted); }
.tp-formas .form-row abbr.required, .tp-formas .form-row abbr.required { text-decoration: none; color: var(--red); }
.tp-formas .form-row .optional { font-weight: 400; }
.tp-formas .woocommerce-input-wrapper, .tp-formas .woocommerce-input-wrapper { display: block; }
.tp-formas input.input-text, .tp-formas select, .tp-formas textarea, .tp-formas input.input-text, .tp-formas select { display: block; width: 100%; height: 52px; padding: 0 16px; font-size: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-md); outline: none; }
.tp-formas textarea { height: 110px; padding: 14px 16px; resize: none; }
.tp-formas input.input-text:focus, .tp-formas select:focus, .tp-formas textarea:focus { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(236,188,8,.45); }
.tp-formas .woocommerce-invalid input.input-text, .tp-formas .woocommerce-invalid select, .tp-formas .woocommerce-invalid .select2-selection { border-color: var(--red); }
.tp-formas .checkout-inline-error-message { margin: 4px 0 0 4px; font-size: 12px; color: var(--red); }
.tp-formas .select2-container { display: block; width: 100% !important; }
.select2-container--default .select2-selection--single { height: 52px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-md); }
.select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0 40px 0 16px; font-size: 16px; line-height: 49px; color: var(--ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { display: none; }
.select2-container--default .select2-selection--single, .tp-formas select { background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230d0d0d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 20px; }
.tp-formas select { -webkit-appearance: none; appearance: none; padding-right: 44px; }
.select2-container--default.select2-container--focus .select2-selection--single, .select2-container--open .select2-selection--single { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(236,188,8,.45); }
.select2-dropdown { overflow: hidden; border: 1.5px solid var(--ink) !important; border-radius: var(--r-md) !important; }
.select2-search--dropdown { padding: 8px; }
.select2-search--dropdown .select2-search__field { height: 42px; padding: 0 12px; font-size: 16px; border: 1.5px solid var(--line); border-radius: 12px; outline: none; }
.select2-results__option { padding: 11px 16px; font-size: 15px; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { color: var(--ink); background: var(--y); }
.tp-formas .woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; font-weight: 500; line-height: 1.45; color: var(--ink); }
.tp-formas .woocommerce-form__label-for-checkbox > span { flex: 1; min-width: 0; }
.tp-formas .woocommerce-form__label-for-checkbox abbr.required { text-decoration: none; color: var(--red); }
.tp-formas .woocommerce-form__label-for-checkbox input[type=checkbox] { margin-top: 0; }
.tp-formas input[type=checkbox], .tp-formas input[type=checkbox] { flex: none; width: 22px; height: 22px; margin: 0; background: #fff; border: 2px solid var(--ink); border-radius: 7px; cursor: pointer; -webkit-appearance: none; appearance: none; }
.tp-formas input[type=checkbox]:checked, .tp-formas input[type=checkbox]:checked { background: var(--y) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230d0d0d' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px no-repeat; }
.woocommerce-shipping-fields, .woocommerce-additional-fields { margin: 14px 16px 0; padding: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { margin: 0; font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.05; text-transform: uppercase; }
.woocommerce-shipping-fields h3 label { display: flex; align-items: center; gap: 10px; text-transform: none; font-family: var(--body); font-size: 14.5px; font-weight: 700; }
.woocommerce-shipping-fields .shipping_address { margin-top: 14px; }
.woocommerce-additional-fields h3 { margin-bottom: 10px; }
.tp-formas .tp-ck-contacto .woocommerce-account-fields { margin-top: 24px; }
.woocommerce-form-login-toggle .woocommerce-info, .woocommerce-form-coupon-toggle .woocommerce-info { padding: 12px 14px; font-size: 13px; line-height: 1.4; }
.woocommerce-form-coupon-toggle .woocommerce-info { font-size: min(13.5px, calc((min(100vw, 430px) - 63px) / 19.5)); white-space: nowrap; overflow: hidden; }
.tp-formas.woocommerce-checkout .woocommerce-form-login, .woocommerce-form-coupon { margin: 12px 16px 0; padding: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.woocommerce-form-coupon { display: flex; flex-wrap: wrap; gap: 8px; }
.woocommerce-form-coupon > p:first-child { flex: 0 0 100%; margin: 0 0 4px; font-size: 13px; color: var(--muted); }
.woocommerce-form-coupon .form-row { margin: 0; }
.woocommerce-form-coupon .form-row-first { flex: 1; min-width: 0; }
.woocommerce-form-coupon .form-row-last { flex: none; }
.woocommerce-form-coupon input.input-text { height: 48px; border-radius: 999px; }
.woocommerce-form-login .form-row { margin: 0 0 12px; }

/* Envío y pago como opciones */
.tp-envios .tp-tabla-envio tr, .tp-envios .tp-tabla-envio th { display: block; padding: 0; }
.tp-envios .tp-tabla-envio th { display: none; }
.tp-envios .tp-tabla-envio td { display: block; padding: 0; text-align: left; }
.woocommerce-shipping-methods li, .wc_payment_methods > li { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 52px; margin: 0 0 10px; padding: 14px 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-md); list-style: none; }
.woocommerce-shipping-methods li:has(input:checked), .woocommerce-shipping-methods li:has(input[type=hidden]), .wc_payment_methods > li:has(input:checked) { border-color: var(--ink); box-shadow: 0 0 0 2px rgba(236,188,8,.55); }
.woocommerce-shipping-methods li:last-child, .wc_payment_methods > li:last-child { margin-bottom: 0; }
.tp-envios, .tp-ck-pago { padding-bottom: 14px; }
.tp-envios > h2, .tp-ck-pago > h2 { margin-bottom: 14px; }
.woocommerce-shipping-methods input.shipping_method, .wc_payment_methods input.input-radio { position: absolute; opacity: 0; pointer-events: none; }
.woocommerce-shipping-methods label, .wc_payment_methods > li > label { display: flex; align-items: center; gap: 12px; margin: 0; font-size: 14.5px; font-weight: 700; color: var(--ink); cursor: pointer; }
.woocommerce-shipping-methods li:has(input[type=radio]) label::before, .wc_payment_methods > li > label::before { content: ""; flex: none; width: 22px; height: 22px; border: 2px solid var(--ink); border-radius: 50%; }
.woocommerce-shipping-methods li:has(input:checked) label::before, .wc_payment_methods > li:has(input:checked) > label::before { background: radial-gradient(circle, var(--ink) 40%, transparent 42%); }
.woocommerce-shipping-methods label .amount { margin-left: auto; font-weight: 800; }
.wc_payment_methods { margin: 0; padding: 0; list-style: none; }
.wc_payment_methods > li > label img { max-height: 22px; width: auto; margin-left: auto; }
.wc_payment_methods .payment_box { margin: 12px 0 0; padding: 0; font-size: 13px; line-height: 1.5; color: var(--muted); background: none; }
.wc_payment_methods .payment_box p { margin: 0 0 8px; }
.wc_payment_methods .payment_box fieldset { margin: 0; padding: 0; border: 0; }
#payment .place-order { padding: 14px 16px 0; }
#payment .woocommerce-terms-and-conditions-wrapper { margin: 16px 0 14px; padding: 0 16px; }
#payment .woocommerce-privacy-policy-text { margin-bottom: 14px; font-size: 12px; line-height: 1.5; color: var(--muted); }
#payment .woocommerce-privacy-policy-text:empty { display: none; }
#payment .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
#payment .form-row > label.woocommerce-form__label-for-checkbox { align-items: center; gap: 8px; white-space: nowrap; font-size: min(13.5px, calc((min(100vw, 430px) - 94px) / 22.5)); }
#payment .form-row > label.woocommerce-form__label-for-checkbox input[type=checkbox] { margin-top: 0; }
#payment .form-row > label.woocommerce-form__label-for-checkbox > span { flex: 0 1 auto; }
#payment .woocommerce-privacy-policy-text a, #payment .woocommerce-terms-and-conditions-checkbox-text a { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
#payment .woocommerce-terms-and-conditions { margin-bottom: 10px; padding: 12px; font-size: 13px; background: var(--soft); border-radius: var(--r-md); scrollbar-width: thin; }
#payment .woocommerce-terms-and-conditions :is(h1, h2, h3, h4) { margin: 14px 0 4px; font-family: var(--body); font-size: 14px; font-weight: 700; line-height: 1.3; text-transform: none; }
#payment .woocommerce-terms-and-conditions :is(h1, h2, h3, h4):first-child { margin-top: 0; }
#payment .woocommerce-terms-and-conditions p, #payment .woocommerce-terms-and-conditions li { margin: 0 0 8px; font-size: 13px; line-height: 1.5; }
#payment .form-row { margin: 0 0 8px; }
#place_order { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 54px; padding: 0 20px; font-size: 14px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--ink); background: var(--y); border: 2px solid var(--y); border-radius: 999px; cursor: pointer; }
#place_order:active { transform: scale(.98); }
.woocommerce-checkout-payment .woocommerce-info, .woocommerce-checkout-payment .woocommerce-notice { margin: 0; }
.blockUI.blockOverlay { border-radius: var(--r-lg); }

/* Pedido recibido */
.tp-pedido .tp-exito .tp-circ { background: var(--y); }
.tp-pedido > .woocommerce-bacs-bank-details, .tp-pedido > p { margin: 14px 16px 0; padding: 16px; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.woocommerce-bacs-bank-details .wc-bacs-bank-details-heading { margin: 0 0 10px; font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.05; text-transform: uppercase; }
.woocommerce-bacs-bank-details .wc-bacs-bank-details-account-name { padding: 8px 0; border-top: 1px solid var(--line); }
.woocommerce-bacs-bank-details ul { margin: 0; padding: 0; list-style: none; }
.woocommerce-bacs-bank-details li { padding: 8px 0; border-top: 1px solid var(--line); }

/* Seguimiento del envío (plugin Advanced Shipment Tracking) en Mi cuenta → Pedido: con el diseño del tema */
.woocommerce-MyAccount-content > h2:has(+ .fluid_section) { margin: 22px 16px 0 !important; font-size: 0 !important; line-height: 0 !important; }
.woocommerce-MyAccount-content > h2:has(+ .fluid_section)::after { content: "Seguimiento del envío"; font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.05; text-transform: uppercase; }
.woocommerce-MyAccount-content > .fluid_section { margin: 12px 16px 0; }
.fluid_section .ast-card { overflow: hidden; background: #fff !important; border: 1.5px solid var(--line) !important; border-radius: var(--r-lg) !important; }
.fluid_section .ast-card [style*="background:#1d68a7"] { background: var(--ink) !important; }
.fluid_section .ast-card [style*="color:#1d68a7"] { color: var(--ink) !important; }
.fluid_section .ast-card [style*="background:#e3ecf4"] { background: var(--y-soft) !important; }
.fluid_section .ast-card > div:first-child { background: var(--y) !important; border-radius: 0 !important; }
.fluid_section .ast-card a:not(.tracking_number) { border-radius: 999px !important; background: var(--ink) !important; color: #fff !important; }
.fluid_section .ast-num-m { display: none !important; }
.fluid_section .ast-num-d { display: inline !important; overflow-wrap: anywhere; }
:is(.tp-pedido, .woocommerce-MyAccount-content) .woocommerce-order-details, :is(.tp-pedido, .woocommerce-MyAccount-content) .woocommerce-customer-details { margin: 14px 16px 0; padding: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
:is(.tp-pedido, .woocommerce-MyAccount-content) :is(.woocommerce-order-details__title, .woocommerce-column__title) { margin: 0 0 10px; font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.05; text-transform: uppercase; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) { display: block; width: 100%; border: 0; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) thead { display: none; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) tbody, :is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) tfoot { display: block; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) tr { display: flex; justify-content: space-between; gap: 14px; padding: 7px 0; font-size: 14px; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) th { font-weight: 400; text-align: left; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) td { text-align: right; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) td.product-name { text-align: left; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) td.product-name a { font-weight: 600; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) tr.order_item { border-bottom: 1px solid var(--line); }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) .wc-item-meta { margin: 2px 0 0; padding: 0; list-style: none; font-size: 12px; color: var(--muted); }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) .wc-item-meta p { display: inline; margin: 0; }
:is(.tp-pedido, .woocommerce-MyAccount-content) table.shop_table:not(.woocommerce-orders-table) tfoot tr:last-child { margin-top: 4px; padding-top: 12px; font-size: 16px; font-weight: 800; border-top: 1.5px solid var(--line); }
:is(.tp-pedido, .woocommerce-MyAccount-content) .woocommerce-columns--addresses { display: grid; gap: 14px; }
:is(.tp-pedido, .woocommerce-MyAccount-content) .woocommerce-column address { font-size: 14px; font-style: normal; line-height: 1.55; }
:is(.tp-pedido, .woocommerce-MyAccount-content) .woocommerce-column__title { font-size: 18px; }
.tp-pedido .order-again { display: none; }

/* ================================================================
   CLIENTE: mi cuenta, lista de deseos, contacto
   ================================================================ */
[hidden] { display: none !important; }
.tp-fila-opciones { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.tp-fila-opciones .woocommerce-form__label-for-checkbox { margin: 0; }
.tp-formas .form-row > label.woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: 13.5px; font-weight: 500; line-height: 1.45; color: var(--ink); }
.tp-formas .form-row > label.woocommerce-form__label-for-checkbox input[type=checkbox] { flex: none; margin-top: -1px; }
.tp-fila-opciones .tp-enlace { font-size: 13px; }
.tp-pestanas button { cursor: pointer; }

/* Mi cuenta */
.woocommerce-account .tp-main { padding-bottom: 24px; }
.woocommerce-MyAccount-navigation.tp-chips { padding-top: 14px; }
.woocommerce-MyAccount-content > p { margin-left: 16px; margin-right: 16px; }
.woocommerce-MyAccount-content h2:not(.tp-t3):not(.woocommerce-order-details__title):not(.woocommerce-column__title) { margin: 18px 16px 0; font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.05; text-transform: uppercase; }
.woocommerce-MyAccount-content > p { margin-top: 14px; font-size: 14.5px; line-height: 1.55; color: #3b3a37; }
.woocommerce-MyAccount-content > .woocommerce-notices-wrapper { margin: 0; }

/* Pedidos: la tabla de WooCommerce dibujada como tarjetas */
.woocommerce-orders-table { display: block; width: 100%; margin: 0; padding: 0 16px; border: 0; }
.woocommerce-orders-table thead { display: none; }
.woocommerce-orders-table tbody { display: block; }
.woocommerce-orders-table tr.order { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; margin: 12px 0 0; padding: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.woocommerce-orders-table th, .woocommerce-orders-table td { display: block; padding: 0; text-align: left; font-weight: 400; }
.woocommerce-orders-table__cell-order-number { grid-column: 1; font-size: 16px; font-weight: 800 !important; }
.woocommerce-orders-table__cell-order-number a { font-weight: 800; }
.woocommerce-orders-table__cell-order-status { grid-column: 2; grid-row: 1; justify-self: end; }
.woocommerce-orders-table td.woocommerce-orders-table__cell-order-status { padding: 4px 10px; font-size: 11px; font-weight: 800 !important; letter-spacing: .04em; text-transform: uppercase; background: var(--y); border-radius: 999px; }
.woocommerce-orders-table__cell-order-date { grid-column: 1 / -1; font-size: 12.5px; color: var(--muted); }
.woocommerce-orders-table__cell-order-total { grid-column: 1 / -1; font-size: 14px; font-weight: 600 !important; }
.woocommerce-orders-table__cell-order-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.woocommerce-orders-table__cell-order-actions .button { flex: 1; min-width: 110px; min-height: 42px; font-size: 12px; }
.woocommerce-orders-table__cell-order-actions .button.pay { color: var(--ink); background: var(--y); }
.woocommerce-orders-table__cell-order-actions .button.view { background: var(--ink); }
.woocommerce-orders-table__cell-order-actions .button:not(.view):not(.pay) { color: var(--ink); background: #fff; border: 2px solid var(--ink); }
.woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status { background: #dff3e8; color: var(--ok); }
.woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status, .woocommerce-orders-table__row--status-failed .woocommerce-orders-table__cell-order-status, .woocommerce-orders-table__row--status-refunded .woocommerce-orders-table__cell-order-status { background: #f1e1de; color: var(--red); }
.woocommerce-pagination { display: flex; gap: 10px; padding: 16px 16px 0; }
.woocommerce-pagination .button { flex: 1; }

/* Direcciones y datos */
.woocommerce-Addresses { display: grid; gap: 12px; padding: 0 16px; }
.woocommerce-Address { padding: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.woocommerce-Address-title h2 { margin: 0; font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.05; text-transform: uppercase; }
.woocommerce-Address-title a.edit { font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-Address address { font-size: 14px; font-style: normal; line-height: 1.55; color: #3b3a37; }
.woocommerce-address-fields, .woocommerce-EditAccountForm { margin: 14px 16px 0; padding: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 10px; }
.woocommerce-EditAccountForm fieldset { margin: 18px 0 0; padding: 0; border: 0; }
.woocommerce-EditAccountForm legend { margin-bottom: 10px; font-family: var(--display); font-weight: 700; font-size: 21px; text-transform: uppercase; }
.woocommerce-EditAccountForm em, .woocommerce-address-fields em { font-size: 12px; color: var(--muted); }
.woocommerce-EditAccountForm button.button, .woocommerce-address-fields button.button { width: 100%; min-height: 52px; margin-top: 6px; }
.woocommerce-password-strength { margin-top: 6px; padding: 8px 12px; font-size: 12px; font-weight: 600; background: var(--soft); border-radius: 12px; }
.woocommerce-password-strength.strong { color: var(--ok); background: #dff3e8; }
.woocommerce-password-strength.bad, .woocommerce-password-strength.short { color: var(--red); background: #f7e3e0; }
.woocommerce-password-hint { display: block; margin-top: 6px; font-size: 12px; color: var(--muted); }
.woocommerce-ResetPassword { margin: 14px 16px 0; padding: 16px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); }
.woocommerce-ResetPassword > p:first-child { margin: 0 0 14px; font-size: 14px; line-height: 1.5; color: #3b3a37; }
.woocommerce-ResetPassword .button { width: 100%; min-height: 52px; }
.woocommerce-privacy-policy-text, .woocommerce-account .woocommerce-privacy-policy-text p { margin: 0 0 12px; font-size: 12px; line-height: 1.5; color: var(--muted); }
.woocommerce-privacy-policy-text a { font-weight: 700; text-decoration: underline; }

/* Botones de redes sociales (Nextend Social Login) con la forma del tema */
.nsl-container { margin-bottom: 4px; }
.nsl-container .nsl-container-buttons { display: block; }
.nsl-container .nsl-container-buttons a { display: block !important; width: 100%; margin: 0 0 10px !important; }
.nsl-container .nsl-button { border-radius: 999px !important; min-height: 52px; box-shadow: none !important; border: 1.5px solid var(--line) !important; }
.nsl-container .nsl-button-label-container { font-family: var(--body) !important; font-size: 14px !important; font-weight: 600 !important; }
div.nsl-container .nsl-container-buttons + div, .nsl-separator { margin: 12px 0; text-align: center; font-size: 12px; color: var(--muted); }

/* Lista de deseos */
.tp-deseos-barra { display: flex; gap: 8px; padding: 14px 16px 16px; }
.tp-deseos-barra .tp-btn { width: auto; }
.tp-deseos-pie { padding: 22px 16px 0; text-align: center; }

/* Contacto */
.tp-tile { color: inherit; }
.tp-contacto-form .tp-btn { margin-top: 4px; }
.tp-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tp-aviso-form { scroll-margin-top: 76px; margin: 14px 16px 0; padding: 14px 16px; font-size: 14px; line-height: 1.45; border-radius: var(--r-lg); }
.tp-aviso-form.tp-ok { background: #dff3e8; border-left: 5px solid var(--ok); }
.tp-aviso-form.tp-mal { color: var(--red); background: #fbeeec; border-left: 5px solid var(--red); }

/* Textos de las páginas: índice, buscador de preguntas y avisos */
.tp-toc-auto { margin: 14px 16px 0; }
.tp-faq-buscar { margin: 14px 0 6px; }
.tp-faq-buscar input { width: 100%; height: 52px; padding: 0 16px 0 46px; font-size: 16px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230d0d0d' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/g%3E%3C/svg%3E") 16px center / 20px no-repeat; border: 1.5px solid var(--line); border-radius: 999px; outline: none; }
.tp-faq-buscar input:focus { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(236,188,8,.45); }
.tp-faq-vacio { margin: 14px 0; padding: 14px; font-size: 14px; text-align: center; background: var(--soft); border-radius: var(--r-lg); }
.tp-legales .tp-toc { margin-top: 0; }

/* Ojo para ver la contraseña */
.password-input { position: relative; display: block; }
.password-input input { padding-right: 52px !important; }
.show-password-input { position: absolute; right: 8px; top: 50%; width: 38px; height: 38px; margin: 0; padding: 0; transform: translateY(-50%); font-size: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%236b6a66' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z'/%3E%3Ccircle cx='12' cy='12' r='2.8'/%3E%3C/g%3E%3C/svg%3E") center / 22px no-repeat; border: 0; cursor: pointer; }
.show-password-input.display-password { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230d0d0d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z'/%3E%3Ccircle cx='12' cy='12' r='2.8'/%3E%3Cpath d='M4 4l16 16'/%3E%3C/g%3E%3C/svg%3E"); }
.tp-fila-opciones .woocommerce-form__label-for-checkbox { font-size: 13px; }
.tp-fila-opciones .tp-enlace { white-space: nowrap; }
.tp-tiles > :only-child { grid-column: 1 / -1; }
.tp-contenido a.tp-btn { font-weight: 700; text-decoration: none; }
.tp-contenido a.tp-btn.tp-negro { color: #fff; }
.tp-card.tp-soft .tp-toc a { background: #fff; }
.tp-faq-buscar { display: block; }
.woocommerce-MyAccount-content mark, .tp-pedido mark { padding: 0; font-weight: 700; color: inherit; background: none; }

/* ================================================================
   EXTRAS: WhatsApp flotante, aviso de cookies, redes sociales, opiniones y avisos de plugins
   ================================================================ */
.tp-wa { position: fixed; bottom: 18px; right: max(14px, calc(50% - 215px + 14px)); z-index: 35; display: grid; place-items: center; width: 54px; height: 54px; background: var(--y); border-radius: 50%; box-shadow: 0 6px 18px rgba(0,0,0,.22); }
.tp-wa svg { width: 28px; height: 28px; fill: none; stroke: var(--ink); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.tp-wa:active { transform: scale(.95); }
body.woocommerce-cart .tp-wa, body.woocommerce-checkout .tp-wa, body.tp-menu-abierto .tp-wa, body.tp-hoja-abierta .tp-wa, body.tp-buscar-abierto .tp-wa { display: none; }
body.single-product .tp-wa { bottom: 92px; }

.tp-cookies { position: fixed; left: max(10px, calc(50% - 215px + 10px)); right: max(10px, calc(50% - 215px + 10px)); bottom: 10px; z-index: 70; padding: 16px; background: #fff; border: 1.5px solid var(--ink); border-radius: var(--r-lg); box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.tp-cookies[hidden] { display: none; }
.tp-cookies p { margin: 0 0 12px; font-size: 13.5px; line-height: 1.45; }
.tp-cookies p a { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.tp-cookies-btn { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tp-cookies-btn .tp-btn { width: 100%; }
.tp-cookies-link { padding: 0; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 2px; background: none; border: 0; cursor: pointer; }

/* Botones de Nextend Social Login: ancho completo y forma del tema (los estilos del plugin se cargan después: de ahí el "body" y el !important) */
body .nsl-container { display: block; width: 100%; margin: 0 0 4px; }
body .nsl-container .nsl-container-buttons { display: grid !important; width: 100% !important; padding: 0 !important; gap: 10px; }
body .nsl-container .nsl-container-buttons a { display: block !important; width: 100% !important; margin: 0 !important; text-decoration: none; }
body .nsl-container .nsl-button { width: 100% !important; box-sizing: border-box; min-height: 52px; padding-left: 4px; border-radius: 999px !important; border: 1.5px solid var(--line) !important; box-shadow: none !important; }
body .nsl-container .nsl-button-label-container { flex: 1; margin: 0 !important; padding: 0 40px 0 0 !important; font-family: var(--body) !important; font-size: 14px !important; font-weight: 600; line-height: 50px; text-align: center; }
body .nsl-container .nsl-button-label-container b { font-weight: 800; }
body .nsl-container .nsl-button { display: flex !important; flex-flow: row nowrap !important; align-items: center; }
body .nsl-container .nsl-button-svg-container { flex: 0 0 auto; padding: 0 8px 0 12px; }
.tp-card .tp-o { margin: 14px 0; }
.tp-ck-contacto .nsl-container { margin-top: 0; }
.tp-ck-contacto .woocommerce-account-fields { margin-top: 24px; }
/* Fotos y vídeos: no se arrastran ni se guardan con pulsación larga (disuade; una captura de pantalla siempre es posible) */
img, video { -webkit-user-drag: none; -webkit-touch-callout: none; }
img, video { -webkit-user-select: none; user-select: none; }
.tp-pfoto, .tp-gal-img, .tp-minis img, .tp-m img, .tp-contenido img { pointer-events: none; }
/* ---------- Opiniones: lista, respuesta de la tienda, fotos y formulario para escribir una ---------- */
.tp-rev-lista { margin-top: 14px; }
.tp-rev-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tp-rev-cab time { font-size: 12px; color: var(--muted); }
.tp-rev-t { display: block; margin-top: 8px; font-size: 14.5px; }
.tp-rev small { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 2px; }
.tp-rev small b { color: var(--ink); font-weight: 700; }
.tp-ver { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; color: var(--ok); }
.tp-ver svg { width: 13px; height: 13px; stroke: currentColor; fill: none; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.tp-op-medios { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 6px; }
.tp-op-foto { flex: none; width: 72px; height: 72px; padding: 0; overflow: hidden; background: var(--soft); border: 0; border-radius: 14px; }
.tp-op-foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tp-op-video video { display: block; width: 168px; max-width: 100%; background: #000; border-radius: 14px; }
.tp-rev-resp { margin-top: 12px; padding: 12px 14px; background: var(--soft); border-radius: var(--r-md); }
.tp-rev-resp b { font-size: 12.5px; }
.tp-rev-resp p { margin: 4px 0 0; font-size: 13.5px; }
.tp-mas-op { margin-top: 14px; }
.tp-lupa { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 18px; background: rgba(0,0,0,.88); }
.tp-lupa img { display: block; max-width: 100%; max-height: 100%; border-radius: var(--r-lg); }
.tp-lupa .tp-cierra { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 40px; height: 40px; background: #fff; border: 0; border-radius: 50%; }
.tp-lupa .tp-cierra svg { width: 18px; height: 18px; stroke: var(--ink); fill: none; stroke-width: 2.2; stroke-linecap: round; }
.tp-opinar-cuerpo { padding-bottom: 6px; }

/* El formulario lo guarda y lo comprueba el plugin de opiniones; aquí solo se viste */
.cr-review-form-wrap { position: relative; outline: 0; font-size: 14px; color: var(--ink); }
.cr-review-form-nav { display: none; }
.cr-review-form-item { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; }
.cr-review-form-item img { flex: none; width: 56px; height: 56px; object-fit: cover; background: var(--soft); border-radius: 14px; }
.cr-review-form-item img[src=""] { display: none; }
.cr-review-form-item span { font-size: 14px; font-weight: 700; }
.cr-review-form-not-logged-in { display: grid; gap: 12px; padding: 14px 16px; font-size: 14px; background: var(--soft); border-radius: var(--r-lg); }
.cr-review-form-not-logged-in a.cr-review-form-continue { display: flex; align-items: center; justify-content: center; min-height: 48px; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--ink); background: var(--y); border-radius: 999px; }
.cr-review-form-rating { margin: 0 0 14px; }
.cr-review-form-rating-label, .cr-review-form-lbl { display: block; margin: 0 0 6px 4px; font-size: 12px; font-weight: 600; color: var(--muted); }
.cr-review-form-rating-label .required { margin-left: 2px; color: #c0392b; }
.cr-review-form-rating-cont { display: flex; align-items: center; gap: 6px; outline: 0; }
.cr-review-form-rating-inner { line-height: 0; cursor: pointer; }
.cr-review-form-rating-inner svg { width: 34px; height: 31px; }
.cr-review-form-rating-inner .cr-rating-act { display: none; }
.cr-review-form-rating-inner .cr-rating-deact path { fill: #dcd9cf; }
.cr-review-form-rating-inner .cr-rating-act path { fill: var(--y); }
.cr-review-form-rating-nbr { margin-left: 8px; font-size: 13px; font-weight: 700; color: var(--muted); }
.cr-review-form-comment, .cr-review-form-name, .cr-review-form-email { position: relative; margin: 0 0 12px; }
.cr-review-form-comment-txt, .cr-review-form-txt { display: block; width: 100%; padding: 0 16px; font-size: 16px; color: var(--ink); background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-md); outline: none; box-shadow: none; }
.cr-review-form-txt { height: 52px; }
.cr-review-form-comment-txt { height: 120px; padding: 14px 16px; resize: none; }
.cr-review-form-comment-txt:focus, .cr-review-form-txt:focus { border-color: var(--ink); }
.cr-review-form-field-error { display: none; margin: 4px 0 0 4px; font-size: 12px; color: #c0392b; }
.cr-review-form-error .cr-review-form-field-error { display: block; }
.cr-review-form-error .cr-review-form-comment-txt, .cr-review-form-error .cr-review-form-txt { border-color: #c0392b; }
.cr-review-form-rating.cr-review-form-error .cr-review-form-rating-label { color: #c0392b; }
.cr-form-item-media { margin: 0 0 14px; }
.cr-form-item-media-none { display: flex; align-items: center; gap: 12px; padding: 14px 16px; cursor: pointer; background: #fff; border: 1.5px dashed var(--line); border-radius: var(--r-md); }
.cr-review-form-error .cr-form-item-media-none { border-color: #c0392b; }
.cr-form-item-media-icon { flex: none; width: 24px; height: 24px; fill: #c6c3b8; }
.cr-form-item-media-none span { font-size: 13px; font-weight: 600; color: var(--muted); }
.cr-form-visible .cr-form-item-media-none { display: none; }
.cr-form-item-media .cr-form-item-media-file { display: none; }
.cr-form-item-media-preview { display: none; flex-wrap: wrap; gap: 8px; }
.cr-form-visible .cr-form-item-media-preview { display: flex; }
.cr-upload-images-containers { position: relative; display: flex; align-items: center; justify-content: center; width: 78px; height: 78px; overflow: hidden; background: var(--soft); border-radius: 14px; }
.cr-upload-images-containers img { width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.cr-upload-images-containers.cr-upload-ok img { opacity: 1; }
.cr-upload-images-containers .cr-upload-video-thumbnail { width: 38px; height: 38px; fill: #c6c3b8; }
.cr-upload-images-containers.cr-upload-delete-pending { pointer-events: none; opacity: .5; }
.cr-upload-images-containers .cr-upload-images-delete { position: absolute; top: 4px; right: 4px; display: none; width: 22px; height: 22px; padding: 3px; line-height: 0; background: var(--ink); border: 0; border-radius: 50%; }
.cr-upload-images-containers.cr-upload-ok .cr-upload-images-delete { display: block; }
.cr-upload-images-delete svg { width: 100%; height: 100%; }
.cr-upload-images-delete .cr-no-icon { fill: #fff; }
.cr-upload-images-pbar { position: absolute; left: 8px; right: 8px; top: 50%; height: 8px; overflow: hidden; background: #dcd9cf; border-radius: 8px; }
.cr-upload-images-containers.cr-upload-ok .cr-upload-images-pbar { display: none; }
.cr-upload-images-pbarin { width: 0; height: 100%; background: var(--y); }
.cr-upload-images-delete-spinner { display: none; }
.cr-form-item-media-add { display: grid; place-items: center; width: 78px; height: 78px; font-size: 30px; color: var(--muted); cursor: pointer; border: 1.5px dashed var(--line); border-radius: 14px; }
.cr-review-form-terms { margin: 0 0 12px; }
.cr-review-form-terms label { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; }
.cr-review-form-terms input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--ink); }
.cr-review-form-buttons { display: grid; gap: 4px; margin-top: 8px; }
.cr-review-form-submit { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; padding: 0 18px; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--ink); background: var(--y); border: 0; border-radius: 999px; }
.cr-review-form-submit img { display: none; height: 10px; }
.cr-review-form-submitting { pointer-events: none; opacity: .75; }
.cr-review-form-submitting .cr-review-form-submit span { display: none; }
.cr-review-form-submitting .cr-review-form-submit img { display: block; }
.cr-review-form-cancel { min-height: 44px; font-size: 13px; font-weight: 600; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; background: none; border: 0; }
.cr-review-form-result { display: none; padding: 26px 8px 8px; text-align: center; }
.cr-review-form-result span { display: block; margin-bottom: 18px; font-family: var(--display); font-weight: 800; font-size: 26px; line-height: 1.05; text-transform: uppercase; }
.cr-review-form-result button.cr-review-form-continue { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--ink); background: var(--y); border: 0; border-radius: 999px; }
.cr-review-form-res .cr-review-form-result { display: block; }
.cr-review-form-res > :not(.cr-review-form-result) { display: none; }
/* ---------- Descuentos del plugin de descuentos: mismo diseño que el resto de precios ---------- */
.tp-precio br { display: none; }
.awdr_cart_strikeout_line del { margin-right: 6px; color: var(--muted); }
.awdr_cart_strikeout_line ins { color: var(--red); background: none; text-decoration: none; }
.awdr-you-saved-text { margin-top: 4px; font-size: 12px; font-weight: 700; color: var(--ok) !important; }
.awdr-bulk-customizable-table, .awdr_discount_bar, .awdr-discount-table { width: 100%; margin: 14px 0; font-size: 13px; border-collapse: separate; border-spacing: 0; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
.awdr-bulk-customizable-table th, .awdr-bulk-customizable-table td { padding: 10px 12px; text-align: left; border: 0; border-bottom: 1px solid var(--line); }
.awdr-bulk-customizable-table th { font-weight: 700; background: var(--soft); }
.awdr-bulk-customizable-table tr:last-child td { border-bottom: 0; }
/* ---------- Aviso de privacidad del abandono de carrito (en el pago) ---------- */
#wcf_cf_gdpr_message_block { display: block; margin: 10px 0 0; padding: 10px 12px; font-size: 12px; line-height: 1.45; color: var(--muted); background: var(--soft); border-radius: var(--r-md); }
#wcf_cf_gdpr_message_block span { font-size: 12px !important; }
#wcf_cf_gdpr_message_block a, #wcf_cf_gdpr_message_block .wcf_ca_gdpr_no_thanks { font-weight: 700; color: var(--ink); text-decoration: underline; }

/* ================================================================
   DISEÑO MIDNIGHT (zapasduo): modo oscuro con verde lima.
   Todo el aspecto sale de las variables de :root; el motor las aplica a cada pieza.
   ================================================================ */
/* Motor de diseños para zapasduo: lee las variables de cada diseño (colores, formas, bordes, letra) y las aplica
   a las piezas del tema. No cambia ni mueve ningún contenido: solo el aspecto. Se carga después de trespace.css. */

:root {
  /* colores */
  --y: #e4202c; --on-y: #fff; --y-soft: #fde4e6;
  --ink: #0a0a0a; --dark: #0a0a0a; --on-dark: #fff;
  --bg: #fff; --page: #e5e5e1; --card: #fff; --soft: #f2f2ef;
  --line: #e4e2da; --muted: #6b6a66; --red: #c0392b; --sale: var(--red); --ok: #1d8a57;
  --focus: rgba(0, 0, 0, .18);
  /* formas */
  --r-xl: 28px; --r-lg: 22px; --r-md: 16px; --r-btn: 999px; --r-chip: 999px; --r-img: 22px; --r-ico: 50%; --r-hero: 28px; --r-tag: 999px;
  --bw: 1.5px; --bc: var(--line); --sh: none;
  --img-bg: #fff; --img-bw: 0px; --img-bc: var(--line); --img-sh: none;
  /* letra */
  --display: "Barlow Condensed", "Arial Narrow", Impact, sans-serif;
  --body: "Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --dt: uppercase; --dw: 800; --dls: .01em; --dst: normal;
  --btn-f: var(--body); --btn-fs: 13px; --btn-ls: .07em; --btn-t: uppercase; --btn-w: 700; --btn-bw: 2px; --btn-sh: none;
  --chip-f: var(--body); --chip-fs: 13px; --chip-t: none; --chip-w: 600; --chip-ls: 0;
  /* piezas */
  --strip-bg: var(--y); --strip-fg: var(--on-y); --strip-f: var(--body); --strip-fs: 11.5px; --strip-ls: .06em;
  --cab-bg: var(--bg); --cab-bd: 1px solid var(--line);
  --hero-bg: #0b0b0b; --hero-img: none; --hero-fg: #fff; --hero-em: var(--y); --hero-m: 12px 12px 0; --hero-bd: 0;
  --hb1-bg: var(--y); --hb1-fg: var(--on-y);
  --oferta-bg: var(--dark); --oferta-fg: var(--on-dark);
  --colab-bg: transparent; --colab-fg: var(--ink);
  --conf-bg: transparent; --conf-pad: 0; --conf-m: 30px 16px 0; --conf-bd: 0;
  --foot-bg: var(--dark); --foot-fg: #fff; --foot-h: var(--y); --foot-bd: 0; --r-foot: 28px 28px 0 0;
  --logo-h: 22px;
}

body { background: var(--page); color: var(--ink); }
.tp { background: var(--bg); color: var(--ink); }

/* Franja de anuncios y cabecera */
.tp-aviso { color: var(--strip-fg); background: var(--strip-bg); font-family: var(--strip-f); font-size: var(--strip-fs); letter-spacing: var(--strip-ls); }
.tp-aviso i { background: currentColor; }
.tp-cab { background: var(--cab-bg); border-bottom: var(--cab-bd); }
.tp-ico svg { stroke: var(--ink); }
.tp-ico .tp-n { color: var(--on-y); background: var(--y); }
.tp-logo img { height: var(--logo-h); width: auto; }
.tp-barra { background: var(--cab-bg); border-bottom: var(--cab-bd); backdrop-filter: none; }

/* Títulos */
.tp-t1, .tp-t2, .tp-t3, .tp-cat b, .tp-oferta h2, .tp-hero h1, .tp-pinfo h1, .tp-cajon nav a, .tp-buscar h2, .tp-hoja h4, .tp-contenido h2, .tp-contenido h3,
.tp-perfil b, .tp-fija .tp-pr b, .tp-resumen-op .tp-big, .tp-prod .tp-precio, .tp-pfila .tp-precio, .tp-acc summary, .tp-todas > summary, .tp-pie h2 {
  font-family: var(--display); font-weight: var(--dw); text-transform: var(--dt); letter-spacing: var(--dls); font-style: var(--dst);
}
.tp-hero h1 em, .tp-oferta h2 em { font-style: var(--dst); }
.tp-sec-cab a { color: var(--ink); }
.tp-sub, .tp-mig, .tp-nota { color: var(--muted); }

/* Botones */
.tp-btn { font-family: var(--btn-f); font-size: var(--btn-fs); font-weight: var(--btn-w); letter-spacing: var(--btn-ls); text-transform: var(--btn-t); border-width: var(--btn-bw); border-radius: var(--r-btn); box-shadow: var(--btn-sh); }
.tp-btn.tp-amarillo { color: var(--on-y); background: var(--y); border-color: var(--y); }
.tp-btn.tp-negro { color: var(--on-dark); background: var(--dark); border-color: var(--dark); }
.tp-btn.tp-borde { color: var(--ink); background: transparent; border-color: var(--ink); }
.tp-btn.tp-blanco-borde { color: var(--hero-fg); background: transparent; border-color: var(--hero-fg); }
.tp-btn.tp-hecho { color: #fff; background: var(--ok); border-color: var(--ok); }
.tp-btn.tp-borde, .tp-btn.tp-blanco-borde { border-style: solid; border-width: max(var(--btn-bw), 1.5px); }

/* Pastillas */
.tp-chip { color: var(--ink); background: var(--card); border: var(--bw) solid var(--bc); border-radius: var(--r-chip); font-family: var(--chip-f); font-size: var(--chip-fs); font-weight: var(--chip-w); letter-spacing: var(--chip-ls); text-transform: var(--chip-t); }
.tp-chip.tp-on { color: var(--on-dark); background: var(--dark); border-color: var(--dark); }
.tp-chip.tp-amarillo { color: var(--on-y); background: var(--y); border-color: var(--y); }
.tp-tallas.tp-marcas .tp-talla { border-radius: var(--r-chip); }
.tp-toc a { color: var(--ink); background: var(--card); border-radius: var(--r-chip); }
.tp-pestanas { background: var(--soft); border-radius: var(--r-btn); }
.tp-pestanas button.tp-on { color: var(--on-dark); background: var(--dark); border-radius: var(--r-btn); }
.tp-prog { background: var(--soft); }
.tp-prog i { background: var(--y); }

/* Tarjetas y cajas */
.tp-card, .tp-item, .tp-res, .woocommerce-shipping-fields, .woocommerce-additional-fields, .tp-formas.woocommerce-checkout .woocommerce-form-login, .woocommerce-form-coupon,
.woocommerce-ResetPassword, .woocommerce-address-fields, .woocommerce-EditAccountForm, .woocommerce-Address, .woocommerce-orders-table tr.order,
:is(.tp-pedido, .woocommerce-MyAccount-content) .woocommerce-order-details, :is(.tp-pedido, .woocommerce-MyAccount-content) .woocommerce-customer-details,
.tp-pedido > .woocommerce-bacs-bank-details, .tp-pedido > p, .tp-cookies {
  color: var(--ink); background: var(--card); border: var(--bw) solid var(--bc); border-radius: var(--r-lg); box-shadow: var(--sh);
}
.tp-card.tp-soft { background: var(--soft); }
.tp-entrega, .tp-tile, .tp-cajon .tp-ayuda, .tp-rev-resp { background: var(--soft); border-radius: var(--r-lg); }
.tp-ayuda { color: var(--ink); }

/* Formularios */
.tp-campo input, .tp-campo select, .tp-campo textarea, .tp-formas input.input-text, .tp-formas select, .tp-formas textarea,
.tp-todas #commentform input[type=text], .tp-todas #commentform input[type=email], .tp-todas #commentform textarea,
.cr-review-form-comment-txt, .cr-review-form-txt, .tp-cup input, .woocommerce-form-coupon input.input-text, .tp-faq-buscar input {
  color: var(--ink); background-color: var(--card); border: var(--bw) solid var(--bc); border-radius: var(--r-md);
}
.tp-campo input:focus, .tp-campo select:focus, .tp-campo textarea:focus, .tp-formas input.input-text:focus, .tp-formas select:focus, .tp-formas textarea:focus { border-color: var(--ink); box-shadow: 0 0 0 3px var(--focus); }
.tp-cup input, .woocommerce-form-coupon input.input-text { border-radius: var(--r-btn); }
.tp-formas input[type=checkbox] { border-color: var(--ink); }
.tp-formas input[type=checkbox]:checked { background-color: var(--y); }
.select2-container--default .select2-selection--single { background-color: var(--card); border: var(--bw) solid var(--bc); border-radius: var(--r-md); }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--ink); }
.select2-dropdown { color: var(--ink); background: var(--card); border: var(--bw) solid var(--ink) !important; border-radius: var(--r-md) !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { color: var(--on-y); background: var(--y); }
.tp-step { background: var(--soft); border-radius: var(--r-btn); }
.tp-step input.qty { color: var(--ink); }

/* Productos */
.tp-pimg { background: var(--img-bg); border: var(--img-bw) solid var(--img-bc); border-radius: var(--r-img); box-shadow: var(--img-sh); }
.tp-ph { width: 76%; }
.tp-gal .tp-ph { width: 84%; }
.tp-corazon, .tp-anadir, .tp-gal .tp-compartir { color: #111; background: rgba(255, 255, 255, .94); border-radius: var(--r-ico); }
.tp-corazon svg, .tp-anadir svg, .tp-gal .tp-compartir svg { stroke: #111; }
.tp-corazon.tp-on svg { fill: #111; }
.tp-etiq { color: var(--on-y); background: var(--y); border-radius: var(--r-tag); }
.tp-etiq.tp-neg { color: var(--on-dark); background: var(--dark); }
.tp-num { color: #111; background: #fff; border-color: #111; border-radius: var(--r-tag); }
.tp-prod .tp-precio b, .tp-prod .tp-precio ins, .tp-pfila .tp-precio b, .tp-pfila .tp-precio ins, .tp-precio ins { color: var(--sale); }
.tp-prod .tp-precio s, .tp-prod .tp-precio del, .tp-pfila .tp-precio s, .tp-pfila .tp-precio del { color: var(--muted); }
.tp-prod .tp-cn { color: var(--muted); }

/* Portada */
.tp-hero { margin: var(--hero-m); color: var(--hero-fg); background-color: var(--hero-bg); background-image: var(--hero-img); border: var(--hero-bd); border-radius: var(--r-hero); }
.tp-hero p { color: var(--hero-fg); opacity: .88; }
.tp-hero h1 em { color: var(--hero-em); }
.tp-hero .tp-etq { color: var(--on-y); background: var(--y); border-radius: var(--r-tag); }
.tp-hero .tp-btn.tp-amarillo { color: var(--hb1-fg); background: var(--hb1-bg); border-color: var(--hb1-bg); }
.tp-cat .tp-ci { background: var(--soft); border: var(--bw) solid var(--bc); border-radius: var(--r-lg); box-shadow: var(--sh); }
.tp-cat .tp-ci svg { stroke: var(--ink); }
.tp-cat.tp-on .tp-ci { background: var(--y); }
.tp-cat.tp-on .tp-ci svg { stroke: var(--on-y); }
.tp-oferta { color: var(--oferta-fg); background: var(--oferta-bg); border-radius: var(--r-xl); }
.tp-oferta p { color: var(--oferta-fg); opacity: .78; }
.tp-oferta h2 em { color: var(--y); }
.tp-oferta .tp-circ { background: var(--y); }
.tp-oferta .tp-circ span { color: var(--on-y); }
.tp-estrellas svg { fill: var(--y); }
.tp-av, .tp-estado { color: var(--on-y); background: var(--y); }
.tp-quien b { color: var(--ink); }
.tp-sec:has(.tp-colabs) { color: var(--ink); background: transparent; }
.tp-sec:has(.tp-colabs) .tp-sec-cab a { color: var(--ink); }
.tp-colab-b { border-radius: var(--r-lg); }
.tp-colab-play { color: #111; border-radius: var(--r-ico); }
.tp-conf { margin: var(--conf-m); padding: var(--conf-pad); background: var(--conf-bg); border-top: var(--conf-bd); border-bottom: var(--conf-bd); }
.tp-conf div { color: var(--ink); background: var(--soft); border: var(--bw) solid var(--bc); border-radius: var(--r-lg); box-shadow: var(--sh); }
.tp-conf svg { stroke: var(--ink); }
.tp-conf span { color: var(--muted); }

/* Pie de página */
.tp-pie { color: var(--foot-fg); background: var(--foot-bg); border-top: var(--foot-bd); border-radius: var(--r-foot); }
.tp-pie img { height: var(--logo-h); width: auto; filter: none; }
.tp-pie h2 { color: var(--foot-h); }
.tp-pie li a { color: var(--foot-fg); }
.tp-pie p, .tp-pie small { color: var(--foot-fg); opacity: .7; }
.tp-pie .tp-pagos span { border-radius: var(--r-icon, 8px); }

/* Menú lateral, hojas y buscador */
.tp-cajon, .tp-hoja, .tp-buscar { color: var(--ink); background: var(--bg); }
.tp-cajon { border-radius: 0 var(--r-xl) var(--r-xl) 0; }
.tp-hoja { border-radius: var(--r-xl) var(--r-xl) 0 0; }
.tp-cajon .tp-top img { height: var(--logo-h); width: auto; }
.tp-cajon .tp-top, .tp-buscar .tp-top { border-bottom: var(--cab-bd); }
.tp-cajon nav a { border-bottom: 1px solid var(--line); }
.tp-cajon nav li.tp-ofertas a, .tp-cajon nav li.tp-destacado a { color: var(--y); }
.tp-cajon .tp-busca input, .tp-buscar .tp-top .tp-caja { color: var(--ink); background: var(--soft); border-radius: var(--r-btn); }
.tp-buscar .tp-top input { color: var(--ink); }
.tp-buscar .tp-top svg { stroke: var(--ink); }
.tp-hoja .tp-asa { background: var(--line); }
.tp-hoja .tp-cierra, .tp-lupa .tp-cierra { background: var(--soft); border-radius: var(--r-ico); }
.tp-hoja .tp-cierra svg { stroke: var(--ink); }
.tp-talla { color: var(--ink); background: var(--card); border: var(--bw) solid var(--bc); border-radius: var(--r-md); }
.tp-talla.tp-on { color: var(--on-dark); background: var(--dark); border-color: var(--dark); }
.tp-talla.tp-no { color: var(--muted); background: var(--soft); border-color: transparent; }
.tp-pie-hoja { background: var(--bg); }
.tp-sug .tp-m, .tp-m, .tp-op-foto { background: var(--card); border-radius: var(--r-md); }
.tp-toast { color: var(--on-dark); background: var(--dark); border-radius: var(--r-btn); }
.tp-toast i { background: var(--y); border-radius: var(--r-ico); }
.tp-toast i::after { border-color: var(--on-y); }
.tp-wa { background: var(--y); border-radius: var(--r-ico); }
.tp-wa svg { stroke: var(--on-y); }
.tp-fija { color: var(--ink); background: var(--bg); border-top: var(--cab-bd); border-radius: var(--r-xl) var(--r-xl) 0 0; }
.tp-fija .tp-pr small { color: var(--muted); }

/* Ficha de producto */
.tp-gal { background: var(--img-bg); border: var(--img-bw) solid var(--img-bc); border-radius: var(--r-xl); box-shadow: var(--img-sh); }
.tp-gal .tp-puntos i.tp-on { background: var(--ink); }
.tp-minis i, .tp-minis button { background: var(--img-bg); border-radius: var(--r-md); }
.tp-minis i.tp-on, .tp-minis button.tp-on { border-color: var(--ink); }
.tp-pinfo .tp-marca { color: var(--muted); }
.tp-pfila .tp-precio em { color: var(--on-y); background: var(--y); border-radius: var(--r-tag); }
.tp-acc details, .tp-todas, .tp-contenido details { border-color: var(--line); }
.tp-acc .tp-txt, .tp-contenido p, .tp-contenido ul, .tp-contenido ol { color: var(--ink); }
.tp-valora, .tp-valora u { color: var(--muted); }
.tp-opc i { border-color: var(--ink); }
.tp-opc.tp-on i { background: radial-gradient(circle, var(--ink) 40%, transparent 42%); }

/* Carrito, compra y cuenta */
.tp-item .tp-m, .tp-tabla-orden .tp-m-ck { background: var(--card); border-radius: var(--r-md); }
.tp-fila-res.tp-tot, .tp-totales tr.order-total, .tp-tabla-orden tr.order-total { border-top-color: var(--ink); }
.woocommerce-shipping-methods li, .wc_payment_methods > li { color: var(--ink); background: var(--card); border: var(--bw) solid var(--bc); border-radius: var(--r-md); }
.woocommerce-shipping-methods li:has(input:checked), .woocommerce-shipping-methods li:has(input[type=hidden]), .wc_payment_methods > li:has(input:checked) { border-color: var(--ink); box-shadow: 0 0 0 2px var(--y); }
.woocommerce-shipping-methods label, .wc_payment_methods > li > label { color: var(--ink); }
#place_order { color: var(--on-y); background: var(--y); border-color: var(--y); border-radius: var(--r-btn); }
#payment .woocommerce-terms-and-conditions { background: var(--soft); }
body.trespace .button, body.trespace a.button, body.trespace button.button, body.trespace input.button, .woocommerce-message a.button, .woocommerce-info a.button { color: var(--on-dark); background: var(--dark); border-radius: var(--r-btn); }
body.trespace .button.alt, body.trespace a.button.alt, body.trespace button.button.alt, body.trespace input.button.alt { color: var(--on-y); background: var(--y); }
.tp-perfil { color: var(--on-y); background: var(--y); border-radius: var(--r-xl); }
.tp-perfil .tp-av { color: var(--ink); background: #fff; }
.tp-tile { color: var(--ink); }
.woocommerce-message, .woocommerce-info, .woocommerce-error { color: var(--ink); background: var(--soft); }
.woocommerce-error { color: var(--red); }
.woocommerce-info { border-left-color: var(--y); }
.tp-exito .tp-circ, .tp-f404 .tp-gordo { background: var(--y); }
.tp-exito .tp-circ svg { stroke: var(--on-y); }
.tp-f404 .tp-gordo b { color: var(--on-y); }
.tp-contenido th { background: var(--soft); }
.tp-contenido .wp-block-button__link { color: var(--on-dark); background: var(--dark); border-radius: var(--r-btn); }
.nsl-container .nsl-button, body .nsl-container .nsl-button { border-radius: var(--r-btn) !important; }

/* Tamaños de los titulares (cada diseño los ajusta a su tipo de letra) */
:root { --s-hero: 58px; --lh-hero: .92; --s-t1: 38px; --s-t2: 28px; --s-t3: 21px; --s-cat: 20px; --s-oferta: 40px; --s-pinfo: 36px; --s-nav: 26px; --s-h4: 20px; --s-big: 54px; --s-fijapr: 28px; --s-perfil: 28px; --s-precio: 14px; --s-precio-f: 26px; --s-acc: 14.5px; --s-pie-h: 17px; }
.tp-t1 { font-size: var(--s-t1); }
.tp-t2 { font-size: var(--s-t2); }
.tp-t3 { font-size: var(--s-t3); }
.tp-cat b { font-size: var(--s-cat); }
.tp-oferta h2 { font-size: var(--s-oferta); }
.tp-hero h1 { font-size: var(--s-hero); line-height: var(--lh-hero); }
.tp-pinfo h1 { font-size: var(--s-pinfo); }
.tp-cajon nav a { font-size: var(--s-nav); }
.tp-buscar h2, .tp-hoja h4 { font-size: var(--s-h4); }
.tp-resumen-op .tp-big { font-size: var(--s-big); }
.tp-fija .tp-pr b { font-size: var(--s-fijapr); }
.tp-perfil b { font-size: var(--s-perfil); }
.tp-prod .tp-precio { font-size: var(--s-precio); }
.tp-pfila .tp-precio { font-size: var(--s-precio-f); }
.tp-acc summary, .tp-todas > summary { font-size: var(--s-acc); }
.tp-contenido h2 { font-size: calc(var(--s-t2) * .95); }
.tp-contenido h3 { font-size: var(--s-t3); }
.tp-pie h2 { font-size: var(--s-pie-h); }
.tp-sw i, .tp-compra .tp-sw button, .tp-colores i, .tp-dots i { border-color: color-mix(in srgb, var(--ink) 32%, transparent); }

/* 2 · Midnight: modo oscuro con verde lima. Fondo casi negro, tarjetas gris oscuro, letra negra y muy gruesa, botones en píldora. */
:root {
  --y: #c6ff2e; --on-y: #0b0c0f; --y-soft: #2a3300;
  --ink: #f3f4f6; --dark: #2b2e37; --on-dark: #fff;
  --bg: #0d0e12; --page: #050608; --card: #16181e; --soft: #1c1f26; --line: #2a2e38; --muted: #9aa1ae; --red: #ff6b5a; --sale: #c6ff2e; --focus: rgba(198, 255, 46, .3);
  --r-xl: 26px; --r-lg: 20px; --r-md: 14px; --r-btn: 999px; --r-chip: 999px; --r-img: 18px; --r-ico: 50%; --r-hero: 26px; --r-tag: 999px; --r-foot: 26px 26px 0 0;
  --bw: 1px; --bc: #2a2e38; --img-bg: #fff;
  --display: "Inter", -apple-system, "Segoe UI", Arial, sans-serif; --dt: uppercase; --dw: 900; --dls: -.035em;
  --btn-fs: 13px; --btn-ls: .04em; --btn-w: 800; --btn-bw: 0px;
  --chip-fs: 12.5px; --chip-w: 600;
  --strip-bg: #c6ff2e; --strip-fg: #0b0c0f; --strip-fs: 11px; --strip-ls: .1em;
  --cab-bg: #0d0e12; --cab-bd: 1px solid #2a2e38;
  --hero-bg: #0b0c0f; --hero-img: radial-gradient(110% 60% at 80% 0%, rgba(198, 255, 46, .38), rgba(198, 255, 46, 0) 62%); --hero-fg: #fff; --hero-em: #c6ff2e; --hero-m: 12px; --hero-bd: 1px solid #2a2e38;
  --oferta-bg: #c6ff2e; --oferta-fg: #0b0c0f;
  --colab-bg: transparent; --colab-fg: var(--ink);
  --foot-bg: #000; --foot-fg: #fff; --foot-h: #c6ff2e;
  --s-hero: 52px; --lh-hero: .9; --s-t1: 30px; --s-t2: 26px; --s-t3: 18px; --s-cat: 14px; --s-oferta: 32px; --s-pinfo: 28px; --s-nav: 22px; --s-h4: 14px; --s-big: 44px; --s-fijapr: 24px; --s-perfil: 22px; --s-precio: 15px; --s-precio-f: 26px; --s-acc: 13px; --s-pie-h: 13px;
}
.tp-chip.tp-on, .tp-talla.tp-on, .tp-pestanas button.tp-on { color: #0b0c0f; background: #c6ff2e; border-color: #c6ff2e; }
.tp-oferta h2 em { color: #0b0c0f; }
.tp-oferta .tp-circ { background: #0b0c0f; }
.tp-oferta .tp-circ span { color: #c6ff2e; }
.tp-oferta p { opacity: .85; }
.tp-btn.tp-borde { border-color: #3a3f4b; }
.tp-btn { min-height: 52px; }
.tp-hero .tp-etq { font-weight: 800; letter-spacing: .08em; }
.tp-prod .tp-precio { font-weight: 800; letter-spacing: -.02em; }
.tp-prod :is(h2, h3) { font-weight: 600; }
.tp-pimg { border-radius: 18px; }
.tp-cat .tp-ci { background: var(--card); }
.tp-cat b { letter-spacing: -.02em; }
.tp-colab-b { border: 1px solid #2a2e38; }
.tp-colab-play { background: #c6ff2e; }
.tp-estrellas svg.tp-v { fill: #3a3f4b; }
.tp-conf div { background: var(--card); }
.tp-cajon { box-shadow: 0 0 0 1px #2a2e38; }
.tp-velo { background: rgba(0, 0, 0, .7); }
.tp-cookies { box-shadow: 0 10px 30px rgba(0, 0, 0, .6); }
.tp-gal { border-radius: 26px; }
.tp-tallas .tp-talla.tp-no, .tp-talla.tp-no { color: #5b6170; }
.tp-pfila .tp-precio em, .tp-etiq { font-weight: 800; }
.select2-container--default .select2-selection--single { background-image: none; }
.tp-sec-cab a { text-decoration-color: #c6ff2e; }

/* Estrellas de las opiniones en el color de acento */
.star-rating span::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23c6ff2e' d='M12 2.5l2.9 6 6.6.8-4.9 4.5 1.3 6.5L12 17l-5.9 3.3 1.3-6.5L2.5 9.3l6.6-.8z'/%3E%3C/svg%3E"); }
.tp-faq-buscar input:focus { box-shadow: 0 0 0 3px var(--focus); }
.tp-pagos-i span, .tp-pie .tp-pagos span { background: #fff; }

/* Fondo de la web (zapasduo → Ajustes generales → Aspecto). "oscuro" es el Midnight de arriba tal cual; "suave" lo aclara un poco
   (gris azulado) y "claro" pasa a fondo blanco roto dejando la portada, la oferta y el pie oscuros. El verde lima no cambia. */
body.tp-aspecto-suave {
  --bg: #566079; --page: #3a4254; --card: #626d88; --soft: #6c7792; --line: #7d89a5; --bc: #7d89a5; --muted: #e0e5ee; --dark: #394155;
  --cab-bg: #566079; --cab-bd: 1px solid #7d89a5;
  --hero-bg: #394155; --hero-bd: 1px solid #7d89a5; --foot-bg: #343b4c;
}
body.tp-aspecto-suave .tp-btn.tp-borde { border-color: #a0abc2; }
body.tp-aspecto-suave .tp-cajon { box-shadow: 0 0 0 1px #7d89a5; }
body.tp-aspecto-suave .tp-colab-b { border-color: #7d89a5; }
body.tp-aspecto-suave .tp-estrellas svg.tp-v { fill: #929db6; }
body.tp-aspecto-suave .tp-tallas .tp-talla.tp-no, body.tp-aspecto-suave .tp-talla.tp-no { color: #aeb7cb; }
body.tp-aspecto-suave .tp-velo { background: rgba(20, 24, 34, .6); }
body.tp-aspecto-claro {
  --ink: #0d0e12; --dark: #0d0e12; --on-dark: #fff;
  --bg: #f7f7f4; --page: #e3e3de; --card: #fff; --soft: #ebebe6; --line: #dededa; --bc: #dededa; --muted: #686c76;
  --red: #d92d20; --sale: #d92d20; --focus: rgba(13, 14, 18, .18);
  --cab-bg: #f7f7f4; --cab-bd: 1px solid #dededa; --foot-bg: #0d0e12;
}
body.tp-aspecto-claro .tp-cab .tp-logo img, body.tp-aspecto-claro .tp-cajon .tp-top img { filter: invert(1); }
body.tp-aspecto-claro .tp-btn.tp-borde { border-color: #0d0e12; }
body.tp-aspecto-claro .tp-cajon { box-shadow: 0 0 0 1px #dededa; }
body.tp-aspecto-claro .tp-cajon nav li.tp-destacado a { color: var(--red); }
body.tp-aspecto-claro .tp-estrellas svg { fill: #e8a400; }
body.tp-aspecto-claro .tp-estrellas svg.tp-v { fill: #d4d4cc; }
body.tp-aspecto-claro .star-rating span::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e8a400' d='M12 2.5l2.9 6 6.6.8-4.9 4.5 1.3 6.5L12 17l-5.9 3.3 1.3-6.5L2.5 9.3l6.6-.8z'/%3E%3C/svg%3E"); }
body.tp-aspecto-claro .tp-tallas .tp-talla.tp-no, body.tp-aspecto-claro .tp-talla.tp-no { color: #a3a7b0; }
body.tp-aspecto-claro .tp-velo { background: rgba(0, 0, 0, .45); }
body.tp-aspecto-claro .tp-cookies { box-shadow: 0 10px 30px rgba(0, 0, 0, .18); }

/* Campos de formulario un punto más claros que la tarjeta donde están (antes tenían el mismo color y apenas se veían) */
.tp-campo input, .tp-campo select, .tp-campo textarea, .tp-formas input.input-text, .tp-formas select, .tp-formas textarea,
.tp-todas #commentform input[type=text], .tp-todas #commentform input[type=email], .tp-todas #commentform textarea,
.cr-review-form-comment-txt, .cr-review-form-txt, .tp-cup input, .woocommerce-form-coupon input.input-text, .tp-faq-buscar input,
.select2-container--default .select2-selection--single { background-color: var(--soft); }

/* Entrar y crear cuenta son la acción principal de su tarjeta: en verde lima, como el resto de botones principales */
.tp-btn.woocommerce-form-login__submit, .tp-btn.woocommerce-form-register__submit { color: var(--on-y); background: var(--y); border-color: var(--y); }

/* Sección de Colaboraciones: sin caja de color, con el fondo del tema; el mismo espacio arriba (30 px de su relleno) que abajo (30 px de margen de las cajitas) */
.tp-colab-b { border-color: var(--line); }

/* Botón del banner de ofertas: fondo negro con letra lima, para que se distinga del banner verde */
.tp-oferta .tp-btn.tp-amarillo { color: var(--y); background: #0b0c0f; border-color: #0b0c0f; }

/* Número del ranking (Más vendidos): etiqueta negra con "#" y número en lima. Es una píldora que se adapta al largo del número (#1 … #10),
   va abajo a la derecha de la foto para no tapar la etiqueta del descuento, que está abajo a la izquierda */
.tp-num { left: auto; right: 8px; bottom: 8px; display: flex; align-items: center; justify-content: center; min-width: 0; height: 26px; padding: 0 10px 0 8px; font-family: var(--body); font-size: 14px; font-weight: 900; line-height: 1; letter-spacing: -.01em; font-variant-numeric: tabular-nums; color: var(--y); background: #0b0c0f; border: 0; border-radius: 10px; box-shadow: 0 2px 8px rgba(0, 0, 0, .35); }
.tp-num::before { content: "#"; margin-right: 1px; font-size: .78em; font-weight: 800; opacity: .75; }

/* Lupa del buscador de preguntas: clara sobre los fondos oscuros, oscura sobre el fondo claro */
.tp-faq-buscar input { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23e0e5ee' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/g%3E%3C/svg%3E"); }
body.tp-aspecto-claro .tp-faq-buscar input { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230d0e12' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/g%3E%3C/svg%3E"); }

/* Selector de color (ficha y hoja de añadir): círculos del mismo tamaño, 5 por fila. Antes iban en una sola fila que se estrechaba
   y, con muchos colores, los círculos quedaban convertidos en óvalos */
.tp-sw { display: grid; grid-template-columns: repeat(5, 38px); gap: 16px 20px; }
.tp-sw button, .tp-sw i { width: 38px; height: 38px; min-width: 0; padding: 0; border-radius: 50%; }

/* Hoja de filtros: cada talla (p. ej. "Men US10.5") se parte siempre por los espacios en dos líneas ("Men" / "US10.5") y las dos líneas van
   centradas en la pastilla. Antes las tallas largas se partían a su aire y la segunda línea quedaba pegada a la izquierda */
.tp-tallas:not(.tp-marcas) .tp-talla span { display: block; width: min-content; max-width: 100%; text-align: center; line-height: 1.2; }

/* Carrito: sección de accesorios que solo se venden con calzado, y botón de finalizar compra apagado cuando el pedido no cumple */
.tp-cart-solo { margin-top: 18px; }
.tp-btn-off { opacity: .45; pointer-events: none; cursor: not-allowed; }

/* Aviso "solo se vende con calzado" (ventana inferior) */
.tp-solo-hoja { padding: 4px 4px 2px; text-align: center; }
.tp-solo-hoja .tp-circ { display: grid; place-items: center; width: 76px; height: 76px; margin: 0 auto 14px; background: var(--y); border-radius: 50%; }
.tp-solo-hoja .tp-circ svg { width: 38px; height: 38px; stroke: var(--on-y); fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.tp-solo-hoja h3 { margin: 0 0 8px; }
.tp-solo-hoja p { margin: 0 0 18px; font-size: 14.5px; line-height: 1.5; color: var(--muted); }
.tp-solo-hoja p b { color: var(--ink); }
.tp-solo-hoja .tp-btn { width: 100%; margin-top: 10px; }

/* Redes sociales (menú lateral y pie): iconos redondos con el estilo del tema */
.tp-redes { display: flex; gap: 10px; }
.tp-redes a { display: grid; place-items: center; width: 42px; height: 42px; color: var(--ink); background: var(--soft); border: var(--bw) solid var(--bc); border-radius: 50%; transition: color .15s, background .15s, border-color .15s; }
.tp-redes svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tp-redes a:hover, .tp-redes a:focus-visible { color: var(--on-y); background: var(--y); border-color: var(--y); }
.tp-cajon .tp-redes { padding: 10px 16px 4px; }
.tp-pie .tp-redes { margin: 12px 0 0; }
.tp-pie h2.tp-redes-t { margin-top: 26px; }
.tp-pie .tp-redes a { color: var(--foot-fg); background: transparent; border-color: rgba(255, 255, 255, .28); }
.tp-pie .tp-redes a:hover, .tp-pie .tp-redes a:focus-visible { color: var(--on-y); background: var(--y); border-color: var(--y); }

/* Carrito: los accesorios de "Buy them with your sneakers" se ven los tres a la vez (3 columnas, sin deslizar) */
.tp-solo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 8px; padding: 0 16px; }
.tp-solo-grid .tp-corazon, .tp-solo-grid .tp-anadir { top: 6px; width: 30px; height: 30px; }
.tp-solo-grid .tp-corazon { right: 6px; }
.tp-solo-grid .tp-anadir { left: 6px; }
.tp-solo-grid .tp-corazon svg, .tp-solo-grid .tp-anadir svg { width: 16px; height: 16px; }
.tp-solo-grid .tp-prod :is(h2, h3) { margin-top: 8px; font-size: 11.5px; line-height: 1.25; }
.tp-solo-grid .tp-prod .tp-precio { font-size: 12.5px; }
.tp-solo-grid .tp-prod .tp-precio s { margin-right: 4px; font-size: 10.5px; }

/* Pago con tarjeta (botón de la pasarela de Stripe): el candado y el logotipo de Stripe van en la misma línea que el texto (antes el
   "svg { display: block }" de arriba los ponía uno debajo de otro y el botón salía recortado) y el botón respeta los márgenes de la página.
   Solo cambia el aspecto: el botón y su funcionamiento son los de la pasarela. */
#cs-stripe-button-container { box-sizing: border-box; margin: 12px 0 16px; padding: 0 16px; }
#cs-stripe-button-container .SubmitButton { border-radius: var(--r-btn, 14px); }
#cs-stripe-button-container .SubmitButton-Text { display: flex; align-items: center; justify-content: center; gap: 6px; }
#cs-stripe-button-container .SubmitButton-Text svg { flex: none; transform: none !important; }

/* Opiniones de la portada: arriba el resumen (nota media, total y barras, como en las tiendas grandes) y debajo las tarjetas, que se deslizan con el
   dedo, con las flechas y solas. La altura de la fila se adapta a la tarjeta que se ve (el JavaScript la pone; sin él, la de la más alta). */
.tp-ops-res { margin-bottom: 14px; }
.tp-ops-res .tp-resumen-op { gap: 20px; }
.tp-op-media { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.tp-op-media .tp-big { line-height: .85; }
.tp-op-media small { font-size: 12px; color: var(--muted); }
.tp-est-med { position: relative; display: inline-block; }
.tp-est-med .tp-estrellas svg { width: 17px; height: 17px; flex: none; }
.tp-est-lleno { position: absolute; top: 0; left: 0; overflow: hidden; }
.tp-ops-res .tp-barras { display: grid; gap: 5px; }
.tp-ops-pista { position: relative; display: flex; align-items: flex-start; gap: 10px; padding: 0 16px 4px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: 16px; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; transition: height .28s ease; }
.tp-ops-pista::-webkit-scrollbar { display: none; }
.tp-ops-pista > .tp-res { flex: 0 0 calc(100% - 44px); min-width: 0; margin: 0; scroll-snap-align: start; }
.tp-ops-pista > .tp-res:only-child { flex-basis: 100%; }
.tp-op-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.tp-op-quien { display: flex; flex-direction: column; min-width: 0; font-size: 12px; line-height: 1.3; }
.tp-op-quien b { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.tp-op-quien .tp-ver { font-size: 11.5px; }
.tp-op-fecha { flex: none; margin-left: auto; font-size: 12px; color: var(--muted); white-space: nowrap; }
.tp-res-d q { margin: 8px 0 10px; overflow-wrap: anywhere; }
.tp-res-d .tp-rev-t { display: block; margin-top: 8px; font-size: 14.5px; }
.tp-res-d .tp-rev-t + q { margin-top: 4px; }
.tp-op-pie { margin: 10px 0 0; font-size: 12px; color: var(--muted); }
.tp-op-pie a { color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
/* Fotos y vídeos del cliente dentro de la tarjeta: grandes (una sola foto ocupa todo el ancho; dos, la mitad cada una) */
.tp-res-d .tp-op-medios { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; margin: 10px 0 2px; }
.tp-res-d .tp-op-foto { width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 14px; }
.tp-res-d .tp-op-video { grid-column: 1 / -1; }
.tp-res-d .tp-op-video video { width: 100%; max-height: 340px; }
.tp-ops-nav { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 12px; }
.tp-ops-fl { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; color: var(--ink); cursor: pointer; background: var(--card, #fff); border: 1.5px solid var(--line); border-radius: 50%; }
.tp-ops-fl svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.tp-ops-n { min-width: 64px; font-size: 13px; color: var(--muted); text-align: center; font-variant-numeric: tabular-nums; }
.tp-ops-n b { color: var(--ink); }
@media (prefers-reduced-motion: reduce) { .tp-ops-pista { transition: none; } }
/* Página Colaboraciones: los vídeos por meses, del más nuevo al más antiguo */
.tp-colab-pag { padding-top: 4px; }
.tp-colab-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 10px; padding: 0 16px; }
.tp-colab-grid .tp-colab { min-width: 0; }

/* Navegación de la página Colaboraciones (los siguientes vídeos): Anterior y Siguiente arriba, los números debajo */
.tp-pags { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 8px; margin: 28px 16px 8px; }
.tp-pags-b { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 46px; padding: 0 14px; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ink); background: transparent; border: 2px solid var(--ink); border-radius: var(--r-btn, 999px); }
.tp-pags-b svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.tp-pags-sig svg { transform: scaleX(-1); }
.tp-pags-b.tp-off { opacity: .3; }
.tp-pags-n { grid-column: 1 / -1; grid-row: 2; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px; }
.tp-pags-p { display: grid; place-items: center; min-width: 40px; height: 40px; font-size: 14px; font-weight: 700; color: var(--ink); border-radius: 50%; }
.tp-pags-p.tp-on { color: var(--on-y, #111); background: var(--y); }
.tp-pags-hueco { padding: 0 2px; color: var(--muted); }