: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; right: 38px; bottom: 28px; font-family: var(--display); font-weight: 800; font-size: 24px; 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 (50legacy): 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 50legacy: 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);
  --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: 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;
  --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 (50legacy → 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; }

/* 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; }
/* Sobre los fondos oscuros y el gris azulado el verde de "compra verificada" casi no se lee: en estas tarjetas va en verde lima */
body.tp-aspecto-suave .tp-op-quien .tp-ver, body.tp-aspecto-oscuro .tp-op-quien .tp-ver { color: var(--y); }
.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 Collaborations: los vídeos de 10 en 10, 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 Collaborations (los siguientes vídeos): Previous y Next 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); }

/* ==========================================================================
   Halloween (se enciende en el panel: Ajustes generales → Halloween). Todo cuelga de body.tp-hw y de body.tp-hw-sutil / body.tp-hw-marcado (las pone inc/halloween.php).
   Naranja #ff7a18, morado #6a2fb0 y negro #130a1f. Los dibujos son SVG dentro de este mismo CSS. Sin movimiento si el visitante lo tiene reducido.
   ========================================================================== */
body.tp-hw { --hw-or: #ff7a18; --hw-ne: #130a1f; --hw-mur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 28'%3E%3Cg fill='%23130a1f'%3E%3Cpath d='M30 12C24 4 14 3 4 8c4 2 5 5 5 8 3-2 6-2 8 1 2-3 6-3 8 1 2-2 4-2 5 1z'/%3E%3Cpath d='M30 12c6-8 16-9 26-4-4 2-5 5-5 8-3-2-6-2-8 1-2-3-6-3-8 1-2-2-4-2-5 1z'/%3E%3Cellipse cx='30' cy='16' rx='4' ry='6'/%3E%3Cpath d='M26.5 11 27.5 5 30 9.5 32.5 5 33.5 11z'/%3E%3C/g%3E%3C/svg%3E"); --hw-mur-or: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 28'%3E%3Cg fill='%23ff7a18'%3E%3Cpath d='M30 12C24 4 14 3 4 8c4 2 5 5 5 8 3-2 6-2 8 1 2-3 6-3 8 1 2-2 4-2 5 1z'/%3E%3Cpath d='M30 12c6-8 16-9 26-4-4 2-5 5-5 8-3-2-6-2-8 1-2-3-6-3-8 1-2-2-4-2-5 1z'/%3E%3Cellipse cx='30' cy='16' rx='4' ry='6'/%3E%3Cpath d='M26.5 11 27.5 5 30 9.5 32.5 5 33.5 11z'/%3E%3C/g%3E%3C/svg%3E"); --hw-tela: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cpath d='M0 0L80 0M0 0L74 26M0 0L57 57M0 0L26 74M0 0L0 80M27.2 0.0Q22.5 3.8 25.2 8.8Q19.2 12.1 19.4 19.4Q12.1 19.2 8.8 25.2Q3.8 22.5 0.0 27.2M49.6 0.0Q41.1 6.9 45.9 16.1Q34.9 22.1 35.3 35.3Q22.1 34.9 16.1 45.9Q6.9 41.1 0.0 49.6M72.0 0.0Q59.6 10.1 66.6 23.4Q50.7 32.1 51.3 51.3Q32.1 50.7 23.4 66.6Q10.1 59.6 0.0 72.0' fill='none' stroke='%23130a1f' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E"); }
body.tp-hw.tp-aspecto-suave, body.tp-hw.tp-aspecto-oscuro { --hw-tela: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cpath d='M0 0L80 0M0 0L74 26M0 0L57 57M0 0L26 74M0 0L0 80M27.2 0.0Q22.5 3.8 25.2 8.8Q19.2 12.1 19.4 19.4Q12.1 19.2 8.8 25.2Q3.8 22.5 0.0 27.2M49.6 0.0Q41.1 6.9 45.9 16.1Q34.9 22.1 35.3 35.3Q22.1 34.9 16.1 45.9Q6.9 41.1 0.0 49.6M72.0 0.0Q59.6 10.1 66.6 23.4Q50.7 32.1 51.3 51.3Q32.1 50.7 23.4 66.6Q10.1 59.6 0.0 72.0' fill='none' stroke='%23ffffff' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E"); }

/* Franja de arriba: naranja con letra negra; los murciélagos cruzan por detrás del texto */
body.tp-hw .tp-aviso { position: relative; overflow: hidden; color: var(--hw-ne); background: var(--hw-or); }
body.tp-hw .tp-aviso-t, body.tp-hw .tp-aviso-p { position: relative; z-index: 1; }
.tp-hw-murs { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.tp-hw-mur { position: absolute; top: var(--t, 7px); left: -30px; width: 22px; height: 11px; background: var(--hw-mur) no-repeat center / contain; opacity: .85; animation: tp-hw-vuelo var(--s, 17s) linear var(--d, 0s) infinite, tp-hw-aleteo .45s ease-in-out infinite alternate; }
@keyframes tp-hw-vuelo { from { left: -30px; } to { left: 100%; } }
@keyframes tp-hw-aleteo { from { transform: scaleY(1) translateY(0); } to { transform: scaleY(.55) translateY(3px); } }

/* Telarañas en las esquinas de la cabecera (la cabecera es fija, así que van siempre con ella) */
.tp-hw-tela { position: absolute; top: 0; left: 0; z-index: 2; width: 50px; height: 50px; background: var(--hw-tela) no-repeat left top / contain; opacity: .6; pointer-events: none; }
.tp-hw-tela.tp-hw-d { left: auto; right: 0; transform: scaleX(-1); }

/* Un murciélago posado en el logo y la insignia del carrito naranja, con un rabito de calabaza */
body.tp-hw .tp-logo { position: relative; }
body.tp-hw .tp-logo::after { content: ""; position: absolute; top: 5px; right: -9px; width: 19px; height: 10px; background: var(--hw-mur-or) no-repeat center / contain; transform: rotate(9deg); pointer-events: none; }
body.tp-hw .tp-ico .tp-n { color: var(--hw-ne); background: var(--hw-or); }
body.tp-hw .tp-ico .tp-n::before { content: ""; position: absolute; top: -3px; left: 50%; width: 3px; height: 4px; margin-left: -1.5px; background: #3aa04a; border-radius: 1px; }

/* ----- Marcado: franja negra con letra naranja, más murciélagos, la otra telaraña, una araña colgando, luna en la portada y naranja en toda la web ----- */
body.tp-hw-marcado .tp-aviso { color: var(--hw-or); background: var(--hw-ne); }
body.tp-hw-marcado { --hw-mur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 28'%3E%3Cg fill='%238a4fd6'%3E%3Cpath d='M30 12C24 4 14 3 4 8c4 2 5 5 5 8 3-2 6-2 8 1 2-3 6-3 8 1 2-2 4-2 5 1z'/%3E%3Cpath d='M30 12c6-8 16-9 26-4-4 2-5 5-5 8-3-2-6-2-8 1-2-3-6-3-8 1-2-2-4-2-5 1z'/%3E%3Cellipse cx='30' cy='16' rx='4' ry='6'/%3E%3Cpath d='M26.5 11 27.5 5 30 9.5 32.5 5 33.5 11z'/%3E%3C/g%3E%3C/svg%3E"); }
body.tp-hw-sutil .tp-hw-mur { opacity: .4; }
.tp-hw-arana { position: absolute; top: 0; left: 27%; z-index: 2; width: 1px; height: 22px; background: rgba(19, 10, 31, .55); transform-origin: top center; animation: tp-hw-cuelga 4.5s ease-in-out infinite alternate; pointer-events: none; }
.tp-hw-arana::after { content: ""; position: absolute; left: -5px; bottom: -9px; width: 11px; height: 11px; background: var(--hw-ne); border-radius: 50%; box-shadow: 0 0 0 1px var(--hw-or) inset; }
body.tp-hw.tp-aspecto-suave .tp-hw-arana, body.tp-hw.tp-aspecto-oscuro .tp-hw-arana { background: rgba(255, 255, 255, .6); }
body.tp-hw.tp-aspecto-suave .tp-hw-arana::after, body.tp-hw.tp-aspecto-oscuro .tp-hw-arana::after { background: #f3f4f6; box-shadow: none; }
@keyframes tp-hw-cuelga { from { transform: scaleY(.65); } to { transform: scaleY(1.05); } }
body.tp-hw-marcado .tp-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(closest-side at 80% 14%, rgba(255, 122, 24, .9) 0, rgba(255, 122, 24, .35) 60%, rgba(255, 122, 24, 0) 100%) no-repeat 80% 14% / 150px 150px, linear-gradient(180deg, rgba(106, 47, 176, .45) 0, rgba(106, 47, 176, 0) 55%); pointer-events: none; }
body.tp-hw-marcado:not(.woocommerce-cart):not(.woocommerce-checkout) { --y: var(--hw-or); --on-y: var(--hw-ne); --hero-em: var(--hw-or); --hb1-bg: var(--hw-or); --hb1-fg: var(--hw-ne); --oferta-bg: var(--hw-or); --oferta-fg: var(--hw-ne); --foot-h: var(--hw-or); --sale: var(--hw-or); }
body.tp-hw-marcado:not(.woocommerce-cart):not(.woocommerce-checkout) :is(.tp-chip.tp-on, .tp-talla.tp-on, .tp-pestanas button.tp-on) { color: var(--hw-ne); background: var(--hw-or); border-color: var(--hw-or); }
body.tp-hw-marcado:not(.woocommerce-cart):not(.woocommerce-checkout) .tp-colab-play { background: var(--hw-or); }
body.tp-hw-marcado:not(.woocommerce-cart):not(.woocommerce-checkout) .tp-sec-cab a { text-decoration-color: var(--hw-or); }

@media (prefers-reduced-motion: reduce) {
	.tp-hw-mur { animation: none; left: var(--x, 30%); }
	.tp-hw-arana { animation: none; }
}

/* Tarjeta de ofertas en móviles estrechos: el título y la frase no pasan por debajo del círculo del porcentaje */
@media (max-width: 389px) {
	.tp-oferta h2 { font-size: 28px; }
	.tp-oferta p { padding-right: 64px; }
}
@media (max-width: 340px) {
	.tp-oferta h2 { font-size: 24px; }
}
