/* ==========================================================================
   TerapIA — sistema de diseño y componentes
   Colores extraídos de los mockups de referencia (teal #0D7E85).
   Todas las clases llevan el prefijo tp- para no chocar con Elementor.
   ========================================================================== */

@font-face {
  font-family: "Figtree";
  src: url("../fonts/figtree-latin.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Figtree";
  src: url("../fonts/figtree-latin-ext.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  /* Paleta de marca TerapIA */
  --tp-teal-700: #21747d;   /* usar poco: texto pequeño y fondos oscuros */
  --tp-teal-500: #2fa3b0;   /* color principal */
  --tp-teal-300: #74c1ca;
  --tp-teal-100: #bfe2e7;
  --tp-aqua-700: #6e9599;   /* teal secundario */
  --tp-aqua-500: #9bd2d7;
  --tp-aqua-300: #bce1e4;
  --tp-aqua-100: #e0f1f3;
  --tp-green-700: #95a6a1;  /* verde: muy poco */
  --tp-green-500: #d2eae3;
  --tp-green-300: #e1f1ec;
  --tp-green-100: #f1f8f6;
  --tp-sky-700: #92a8b4;    /* azul: muy poco */
  --tp-sky-500: #ceecfe;
  --tp-sky-300: #def2fe;
  --tp-sky-100: #f0f9ff;
  --tp-purple-500: #6200ee; /* secundarios */
  --tp-purple-300: #9654f4;
  --tp-purple-100: #ceb0fa;
  --tp-purple-50: #efe6fd;
  --tp-blue-500: #3d5cff;
  --tp-blue-300: #7d92ff;
  --tp-blue-100: #c3ccff;
  --tp-blue-50: #ecefff;
  --tp-gray: #f6f6f6;
  --tp-coral-500: #ffd8c9;
  --tp-coral-300: #ffe8df;

  /* Neutros y funcionales (fuera de la paleta: texto y estados) */
  --tp-ink: #1b2b30;
  --tp-text: #46585e;
  --tp-muted: #637579;
  --tp-line: var(--tp-aqua-100);
  --tp-line-strong: var(--tp-aqua-300);
  --tp-bg: #ffffff;
  --tp-surface: var(--tp-gray);
  --tp-coral-ink: #b4552f;

  --tp-font: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --tp-radius-sm: 10px;
  --tp-radius: 16px;
  --tp-radius-lg: 24px;
  --tp-radius-xl: 32px;
  --tp-shadow-sm: 0 1px 2px rgba(27, 43, 48, .05);
  --tp-shadow: 0 1px 2px rgba(27, 43, 48, .04), 0 12px 32px -14px rgba(33, 116, 125, .22);
  --tp-shadow-lg: 0 2px 6px rgba(27, 43, 48, .05), 0 30px 60px -24px rgba(33, 116, 125, .36);

  --tp-container: 1240px;
  --tp-gutter: clamp(16px, 4vw, 32px);
  --tp-section: clamp(64px, 8vw, 112px);
  --tp-header-h: 76px;
  --tp-ease: cubic-bezier(.2, .7, .2, 1);
}

/* --------------------------------------------------------------------------
   Base (solo en nuestras plantillas; las páginas de Elementor conservan su estilo)
   -------------------------------------------------------------------------- */
body.tp-page {
  margin: 0;
  background: var(--tp-bg);
  color: var(--tp-text);
  font-family: var(--tp-font);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
/* Los reinicios van dentro de :where() (especificidad 0) para que cualquier componente les gane. */
:where(body.tp-page) *,
:where(body.tp-page) *::before,
:where(body.tp-page) *::after { box-sizing: border-box; }
:where(body.tp-page) :where(img, svg, video) { max-width: 100%; height: auto; display: block; }
:where(body.tp-page) :where(h1, h2, h3, h4) {
  margin: 0;
  text-wrap: balance;
  color: var(--tp-ink);
  font-family: var(--tp-font);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.022em;
}
:where(body.tp-page) :where(p, figure, blockquote) { margin: 0; }
:where(body.tp-page) a { color: var(--tp-teal-700); text-decoration: none; }
:where(body.tp-page) a:hover { color: var(--tp-teal-700); }
:where(body.tp-page) :where(button, input, select, textarea) { font: inherit; }
:where(body.tp-page) :where(ul, ol) { margin: 0; padding: 0; }
:where(body.tp-page) :focus-visible { outline: 3px solid rgba(47, 163, 176, .45); outline-offset: 3px; border-radius: 6px; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--tp-header-h) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

:where(body.tp-page) h1 { font-size: clamp(2.2rem, 1.45rem + 2.7vw, 3.45rem); }
.tp-page .tp-prose :where(ul, ol) { padding-left: 1.4em; }
body.tp-page .tp-h1--xl { font-size: clamp(2.6rem, 1.6rem + 3.6vw, 4.4rem); letter-spacing: -.03em; }
.tp-h2 { font-size: clamp(1.75rem, 1.25rem + 1.7vw, 2.6rem); }
.tp-h3 { font-size: clamp(1.3rem, 1.1rem + .6vw, 1.6rem); }
.tp-lead { font-size: clamp(1.06rem, 1rem + .25vw, 1.2rem); color: var(--tp-text); }
.tp-lead + .tp-lead { margin-top: .9em; }
.tp-center { text-align: center; margin-inline: auto; }
.tp-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.tp-main { overflow-x: clip; }
.tp-container { width: 100%; max-width: calc(var(--tp-container) + 2 * var(--tp-gutter)); margin-inline: auto; padding-inline: var(--tp-gutter); }
.tp-section { padding-block: var(--tp-section); position: relative; }
.tp-section--tight { padding-block: clamp(48px, 6vw, 80px); }
.tp-section--soft { background: var(--tp-surface); }
.tp-section__head { max-width: 760px; margin-bottom: clamp(32px, 4vw, 52px); }
.tp-section__head .tp-lead { margin-top: 16px; }
.tp-section__head--row { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
/* Cabecera de sección con ilustración al lado. */
.tp-section__head--media { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.tp-section__head--art-first .tp-section__art { order: -1; }
.tp-section__art { display: flex; justify-content: center; }
.tp-section__art img { width: 100%; height: auto; }
@media (max-width: 900px) {
  .tp-section__head--media { grid-template-columns: 1fr; }
  .tp-section__head--art-first .tp-section__art { order: 0; }
  .tp-section__art img { max-width: 520px; }
}

.tp-eyebrow {
  margin: 0 0 14px;
  color: var(--tp-teal-500);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .26em;
  text-transform: uppercase;
}
.tp-eyebrow.tp-center { display: block; text-align: center; }
.tp-eyebrow--light { color: var(--tp-teal-500); }

.tp-icon { width: 1.25em; height: 1.25em; flex: none; }

.tp-skip { position: absolute; left: 16px; top: -60px; z-index: 1000; padding: 10px 16px; background: var(--tp-ink); color: #fff !important; border-radius: 8px; }
.tp-skip:focus { top: 12px; }

/* Tonos para iconos */
.tp-tone--teal { background: var(--tp-aqua-100); color: var(--tp-teal-500); }
.tp-tone--blue { background: var(--tp-blue-50); color: var(--tp-blue-500); }
.tp-tone--purple { background: var(--tp-purple-50); color: var(--tp-purple-500); }
.tp-tone--green { background: var(--tp-green-500); color: var(--tp-teal-500); }
.tp-tone--coral { background: var(--tp-coral-300); color: var(--tp-coral-ink); }

/* --------------------------------------------------------------------------
   Botones y enlaces
   -------------------------------------------------------------------------- */
.tp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 24px;
  border: 1.5px solid transparent;
  border-radius: 14px;
  font-family: var(--tp-font);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s, transform .2s var(--tp-ease), box-shadow .2s;
}
.tp-btn .tp-icon { width: 20px; height: 20px; }
.tp-btn:hover { transform: translateY(-1px); }
.tp-btn--primary { background: var(--tp-teal-500); color: #fff !important; box-shadow: 0 6px 16px -8px rgba(47, 163, 176, .7); }
.tp-btn--primary:hover { background: var(--tp-teal-700); }
.tp-btn--outline { background: #fff; color: var(--tp-teal-700) !important; border-color: var(--tp-teal-500); }
.tp-btn--outline:hover { background: var(--tp-aqua-100); }
.tp-btn--ghost { background: #fff; color: var(--tp-teal-700) !important; border-color: var(--tp-aqua-300); }
.tp-btn--ghost:hover { border-color: var(--tp-teal-500); background: var(--tp-aqua-100); }
.tp-btn--light { background: #fff; color: var(--tp-teal-700) !important; }
.tp-btn--light:hover { background: var(--tp-aqua-100); }
.tp-btn--sm { min-height: 42px; padding: 0 16px; border-radius: 999px; font-size: .92rem; gap: 8px; }
.tp-btn--sm .tp-icon { width: 18px; height: 18px; }
.tp-btn--lg { min-height: 56px; padding: 0 28px; }
.tp-btn--xl { min-height: 72px; padding: 0 40px; border-radius: 999px; font-size: 1.15rem; }
.tp-btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.tp-btn-row--center { justify-content: center; }

.tp-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--tp-teal-700); }
.tp-link .tp-icon { width: 18px; height: 18px; transition: transform .2s var(--tp-ease); }
a:hover .tp-link .tp-icon, .tp-link:hover .tp-icon { transform: translateX(3px); }
.tp-link--muted { color: var(--tp-muted) !important; }

.tp-badge {
  display: inline-flex;
  padding: 8px 18px;
  border: 1.5px solid var(--tp-aqua-300);
  border-radius: 999px;
  background: #fff;
  color: var(--tp-teal-700);
  font-size: .92rem;
  font-weight: 500;
  margin-bottom: 26px;
}

.tp-checks { list-style: none; display: grid; gap: 12px; margin-top: 24px; }
.tp-checks li { display: flex; gap: 12px; align-items: flex-start; }
.tp-checks .tp-icon { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--tp-teal-500); color: #fff; stroke-width: 2.6; margin-top: 2px; }

.tp-note { display: flex; gap: 12px; align-items: flex-start; margin-top: 28px; color: var(--tp-muted); font-size: .95rem; }
.tp-note .tp-icon { color: var(--tp-teal-500); margin-top: 3px; }
.tp-note--rose .tp-icon { color: var(--tp-coral-ink); }

/* --------------------------------------------------------------------------
   Cabecera
   -------------------------------------------------------------------------- */
.tp-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid transparent;
  font-family: var(--tp-font);
  transition: border-color .25s, box-shadow .25s;
}
.admin-bar .tp-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .tp-header { top: 0; } }
.tp-header.is-scrolled { border-bottom-color: var(--tp-line); box-shadow: 0 6px 24px -18px rgba(27, 43, 48, .35); }
.tp-header .tp-header__inner { display: flex; align-items: center; gap: 28px; min-height: var(--tp-header-h); }
.tp-header .tp-header__logo { flex: none; display: block; }
.tp-header .tp-header__logo img { width: 150px; height: auto; display: block; }
.tp-header .tp-nav { flex: 1; display: flex; justify-content: center; }
.tp-header .tp-nav ul { list-style: none; display: flex; gap: clamp(14px, 1.6vw, 26px); margin: 0; padding: 0; }
.tp-header .tp-nav__link {
  position: relative;
  display: block;
  padding: 10px 0;
  color: var(--tp-ink);
  font-size: .97rem;
  font-weight: 500;
  white-space: nowrap;
  text-decoration: none;
}
.tp-header .tp-nav__link::after {
  content: "";
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--tp-teal-500);
  transition: left .25s var(--tp-ease), right .25s var(--tp-ease);
}
.tp-header .tp-nav__link:hover { color: var(--tp-teal-500); }
.tp-header .tp-nav__link:hover::after,
.tp-header .tp-nav__link.is-current::after { left: -6px; right: -6px; }
.tp-header .tp-nav__link.is-current { color: var(--tp-teal-500); }
.tp-header .tp-header__ctas { display: flex; gap: 10px; flex: none; }
.tp-header .tp-header__toggle {
  display: none;
  width: 46px;
  height: 46px;
  margin-left: auto;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--tp-line-strong);
  border-radius: 12px;
  background: #fff;
  color: var(--tp-ink);
  cursor: pointer;
}
.tp-header .tp-header__toggle .tp-icon { width: 24px; height: 24px; }
.tp-header .tp-header__toggle .tp-icon:last-of-type { display: none; }
.tp-header.is-open .tp-header__toggle .tp-icon:first-of-type { display: none; }
.tp-header.is-open .tp-header__toggle .tp-icon:last-of-type { display: block; }

.tp-drawer { display: none; }

@media (max-width: 1359px) {
  .tp-header .tp-header__ctas .tp-btn--store span { display: none; }
  .tp-header .tp-header__ctas .tp-btn--store { width: 42px; padding: 0; }
}
@media (max-width: 1179px) {
  .tp-header .tp-nav,
  .tp-header .tp-header__ctas { display: none; }
  .tp-header .tp-header__toggle { display: inline-flex; }
  .tp-drawer {
    display: block;
    position: absolute;
    inset: 100% 0 auto 0;
    max-height: calc(100vh - var(--tp-header-h));
    overflow-y: auto;
    padding: 12px var(--tp-gutter) 28px;
    background: #fff;
    border-bottom: 1px solid var(--tp-line);
    box-shadow: 0 30px 40px -30px rgba(27, 43, 48, .35);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity .2s, transform .25s var(--tp-ease), visibility 0s .25s;
  }
  .tp-header.is-open .tp-drawer { opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .25s var(--tp-ease); }
  .tp-drawer__nav { display: grid; }
  .tp-drawer__nav a { padding: 14px 4px; border-bottom: 1px solid var(--tp-line); color: var(--tp-ink); font-size: 1.12rem; font-weight: 600; text-decoration: none; }
  .tp-drawer__nav a.is-current { color: var(--tp-teal-500); }
  .tp-drawer__ctas { display: grid; gap: 10px; margin-top: 20px; }
}

/* Barra inferior en móvil */
.tp-mobilebar { display: none; }
@media (max-width: 767px) {
  .tp-mobilebar {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 90;
    display: flex;
    gap: 10px;
    padding: 8px;
    border-radius: 20px;
    background: rgba(255, 255, 255, .94);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    box-shadow: 0 10px 40px -10px rgba(27, 43, 48, .35);
    font-family: var(--tp-font);
    transform: translateY(140%);
    transition: transform .35s var(--tp-ease);
  }
  .tp-mobilebar.is-visible { transform: none; }
  .tp-mobilebar .tp-btn--primary { flex: 1; }
  .tp-mobilebar .tp-btn--outline { width: 52px; padding: 0; }
  body.tp-page { padding-bottom: 0; }
}

/* --------------------------------------------------------------------------
   Héroes
   -------------------------------------------------------------------------- */
.tp-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(40px, 6vw, 80px) clamp(56px, 7vw, 96px);
  background: linear-gradient(180deg, var(--tp-aqua-100) 0%, var(--tp-sky-100) 100%);
  border-radius: 0 0 clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px);
}
.tp-hero::before {
  content: "";
  position: absolute;
  width: 640px;
  height: 640px;
  left: -260px;
  top: -200px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(47, 163, 176, .08), transparent 65%);
  pointer-events: none;
}
.tp-hero__grid { position: relative; display: grid; grid-template-columns: 1.08fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.tp-hero__grid--media-first { grid-template-columns: 1fr 1.05fr; }
.tp-hero__text h1 { margin-bottom: 24px; }
.tp-hero__text .tp-eyebrow { margin-bottom: 18px; }
.tp-hero__media { position: relative; }
@media (min-width: 1024px) { .tp-hero--home .tp-hero__grid { grid-template-columns: 1.3fr 1fr; align-items: start; } }
.tp-hero--home h1 { font-size: clamp(2.2rem, 1.5rem + 2.2vw, 3.2rem); }
.tp-hero--home .tp-hero__photo { aspect-ratio: .98; }
.tp-hero__photo { overflow: hidden; border-radius: var(--tp-radius-lg); box-shadow: var(--tp-shadow-lg); aspect-ratio: 1.2; background: var(--tp-teal-100); }
.tp-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.tp-hero__photo--landscape { aspect-ratio: 1.22; }
/* Pía recortada sobre un fondo de marca (Inicio) */
.tp-hero__photo--stage { position: relative; background: radial-gradient(circle at 50% 40%, rgba(255, 255, 255, .95) 0 16%, rgba(255, 255, 255, 0) 58%), linear-gradient(165deg, var(--tp-aqua-300) 0%, var(--tp-aqua-100) 50%, var(--tp-sky-300) 100%); }
.tp-hero__photo--stage img { position: absolute; left: 50%; bottom: 0; width: 96%; height: auto; translate: -50% 0; object-fit: contain; }
.tp-hero__halo { position: absolute; left: 50%; top: 38%; width: 72%; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; border: 2px dashed rgba(47, 163, 176, .4); box-shadow: 0 0 0 36px rgba(255, 255, 255, .28), 0 0 0 80px rgba(255, 255, 255, .14); }
.tp-hero__narrow { position: relative; max-width: 820px; }
.tp-hero--simple { padding-block: clamp(48px, 7vw, 96px); }
.tp-hero--simple .tp-lead { margin-top: 20px; }

.tp-trust { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--tp-line-strong); }
.tp-trust li { display: flex; gap: 12px; align-items: flex-start; }
.tp-trust .tp-icon { width: 28px; height: 28px; color: var(--tp-teal-500); stroke-width: 1.5; }
.tp-trust b { display: block; color: var(--tp-ink); font-size: .98rem; font-weight: 600; line-height: 1.3; }
.tp-trust small { display: block; color: var(--tp-muted); font-size: .86rem; line-height: 1.35; margin-top: 2px; }

.tp-float {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, .95);
  box-shadow: var(--tp-shadow);
  font-size: .92rem;
  color: var(--tp-text);
  animation: tp-float 6s ease-in-out infinite;
}
.tp-float b { color: var(--tp-ink); }
.tp-float--rating { left: -28px; bottom: 56px; flex-direction: column; align-items: flex-start; gap: 4px; }
.tp-float--downloads { right: -20px; top: 40px; animation-delay: -3s; }
.tp-float__icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--tp-aqua-100); color: var(--tp-teal-500); }
.tp-stars { display: inline-flex; gap: 2px; color: #f5b300; }
.tp-stars .tp-icon { width: 16px; height: 16px; }
@keyframes tp-float { 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .tp-float { animation: none; } }

.tp-hero__media--phone { display: flex; justify-content: center; }
.tp-hero__media--phone::before {
  content: "";
  position: absolute;
  inset: 8% 4% 4%;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 45%, rgba(47, 163, 176, .16), transparent 62%);
}
.tp-hero__media--illustration img { width: 100%; max-width: 560px; margin-left: auto; }

.tp-deco { position: absolute; color: var(--tp-aqua-300); pointer-events: none; width: min(720px, 60vw); }
.tp-deco--a { left: -300px; bottom: -170px; opacity: .8; }
.tp-deco--b { right: -80px; top: 20px; }

@media (max-width: 1023px) {
  .tp-hero__grid,
  .tp-hero__grid--media-first { grid-template-columns: 1fr; }
  .tp-hero__grid--media-first .tp-hero__media { order: 2; }
  .tp-trust { grid-template-columns: repeat(2, 1fr); }
  .tp-float--rating { left: 12px; }
  .tp-float--downloads { right: 12px; }
  .tp-hero__media--illustration img { margin-inline: auto; }
}
@media (max-width: 520px) {
  .tp-trust { gap: 18px 12px; }
  .tp-btn-row .tp-btn { flex: 1 1 100%; }
  .tp-float { font-size: .82rem; padding: 10px 12px; }
}

/* --------------------------------------------------------------------------
   Colaboradores y prensa
   -------------------------------------------------------------------------- */
.tp-partners { padding: clamp(36px, 4vw, 52px) 0 clamp(28px, 3vw, 40px); border-bottom: 1px solid var(--tp-line); }
.tp-partners__title { text-align: center; font-size: 1.3rem !important; margin-bottom: 26px !important; }
.tp-marquee {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.tp-marquee__track { display: flex; width: max-content; animation: tp-marquee var(--tp-marquee-duration, 40s) linear infinite; }
.tp-marquee:hover .tp-marquee__track,
.tp-marquee:focus-within .tp-marquee__track { animation-play-state: paused; }
.tp-marquee__list { list-style: none; display: flex; align-items: center; margin: 0; padding: 6px 0; }
.tp-marquee__item { flex: none; padding-right: clamp(40px, 5vw, 72px); }
.tp-marquee__item img { display: block; height: clamp(48px, 5vw, 64px); width: auto; max-width: 200px; object-fit: contain; transition: transform .2s; }
.tp-marquee__item img:hover { transform: scale(1.05); }
.tp-marquee__item--square img { height: clamp(66px, 7vw, 90px); }
@keyframes tp-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .tp-marquee { -webkit-mask-image: none; mask-image: none; }
  .tp-marquee__track { width: auto; animation: none; justify-content: center; padding-inline: var(--tp-gutter); }
  .tp-marquee__list { flex-wrap: wrap; justify-content: center; gap: 24px 48px; }
  .tp-marquee__list[aria-hidden] { display: none; }
  .tp-marquee__item { padding-right: 0; }
}

.tp-press-strip { padding: 22px 0; border-bottom: 1px solid var(--tp-line); background: #fff; }
.tp-press-strip__inner { display: flex; align-items: center; justify-content: center; gap: 18px 40px; flex-wrap: wrap; }
.tp-press-strip__label { color: var(--tp-muted); font-size: .85rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.tp-press-strip ul { list-style: none; display: flex; gap: 40px; flex-wrap: wrap; justify-content: center; }
.tp-press-strip__outlet { color: var(--tp-ink) !important; font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 700; letter-spacing: -.01em; opacity: .82; transition: opacity .2s; }
.tp-press-strip__outlet:hover { opacity: 1; }
@media (max-width: 600px) {
  .tp-press-strip__inner { gap: 10px; }
  .tp-press-strip ul { gap: 8px 22px; }
  .tp-press-strip__outlet { font-size: 1.12rem; }
}

/* --------------------------------------------------------------------------
   Funcionalidades (Inicio)
   -------------------------------------------------------------------------- */
.tp-features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.tp-feature {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 30px 26px 26px;
  border: 1px solid var(--tp-line);
  border-radius: var(--tp-radius-lg);
  background: #fff;
  box-shadow: var(--tp-shadow-sm);
  color: var(--tp-text) !important;
  font-size: 1.02rem;
  line-height: 1.55;
  transition: transform .25s var(--tp-ease), box-shadow .25s, border-color .25s;
}
.tp-feature:hover { transform: translateY(-4px); box-shadow: var(--tp-shadow); border-color: var(--tp-aqua-300); }
.tp-feature__top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 6px; }
.tp-feature__icon { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 22px; }
.tp-feature__icon .tp-icon { width: 34px; height: 34px; stroke-width: 1.5; }
.tp-feature__badge { padding: 5px 12px; border-radius: 999px; background: var(--tp-teal-500); color: #fff; font-size: .78rem; font-weight: 700; letter-spacing: .04em; }
.tp-feature > b { color: var(--tp-ink); font-size: 1.32rem; line-height: 1.2; }
.tp-feature .tp-link { margin-top: auto; padding-top: 10px; font-size: 1rem; }
.tp-features__more { margin-top: 28px !important; text-align: center; font-size: 1.05rem; }
.tp-features__more a { font-weight: 600; text-decoration: underline !important; text-underline-offset: 3px; }
@media (max-width: 1100px) { .tp-features { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .tp-features { grid-template-columns: 1fr; } .tp-feature { padding: 24px 22px 22px; } }

/* --------------------------------------------------------------------------
   Bloques a dos columnas
   -------------------------------------------------------------------------- */
.tp-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 6vw, 96px); align-items: center; }
.tp-split--reverse .tp-split__media { order: -1; }
.tp-split__text .tp-lead { margin-top: 18px; }
.tp-split__text > p:not(.tp-lead):not(.tp-eyebrow) { margin-top: 16px; }
.tp-split__media { display: flex; justify-content: center; }
.tp-split--form { align-items: start; grid-template-columns: .9fr 1.1fr; }
@media (max-width: 900px) {
  .tp-split,
  .tp-split--form { grid-template-columns: 1fr; }
  .tp-split--reverse .tp-split__media { order: 0; }
}

.tp-photo-card { overflow: hidden; border-radius: var(--tp-radius-lg); box-shadow: var(--tp-shadow-lg); }
.tp-photo-card img { width: 100%; }

/* --------------------------------------------------------------------------
   Modo voz
   -------------------------------------------------------------------------- */
.tp-voice {
  background:
    radial-gradient(700px 480px at 80% 45%, rgba(47, 163, 176, .20), transparent 65%),
    linear-gradient(135deg, var(--tp-sky-100), var(--tp-aqua-100));
  overflow: hidden;
}
.tp-voice .tp-split__media { position: relative; }
.tp-voice .tp-split__media::before {
  content: "";
  position: absolute;
  width: 440px;
  height: 440px;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  border-radius: 50%;
  border: 1.5px dashed var(--tp-teal-300);
  box-shadow: 0 0 0 60px rgba(47, 163, 176, .06), 0 0 0 120px rgba(47, 163, 176, .04);
}
.tp-voice__visual { display: flex; align-items: flex-end; justify-content: center; }
.tp-voice__visual .tp-phone { flex: none; width: clamp(180px, 46vw, 270px); }
.tp-voice__pia { position: relative; flex: none; width: clamp(160px, 42vw, 290px); margin-left: clamp(-34px, -4vw, -16px); }
/* La ilustración acaba a media pierna: se funde por abajo en lugar de cortarse en seco. */
.tp-voice__pia img { width: 100%; height: auto; -webkit-mask-image: linear-gradient(#000 82%, transparent); mask-image: linear-gradient(#000 82%, transparent); }

/* --------------------------------------------------------------------------
   Marco de móvil y pantallas de la app
   -------------------------------------------------------------------------- */
.tp-phone {
  position: relative;
  width: min(300px, 78vw);
  aspect-ratio: 9 / 19.2;
  padding: 10px;
  border-radius: 46px;
  background: #0f1a1f;
  box-shadow: inset 0 0 0 2px #26343b, var(--tp-shadow-lg), 0 40px 80px -30px rgba(0, 0, 0, .45);
}
.tp-phone--tilt { transform: rotate(-4deg); }
.tp-phone__screen { position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: 37px; background: linear-gradient(180deg, var(--tp-aqua-300) 0, var(--tp-aqua-100) 20%, var(--tp-sky-100) 100%); }
.tp-phone__screen > img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.tp-phone__status { display: flex; align-items: center; justify-content: space-between; padding: 12px 22px 4px; font-size: 11px; font-weight: 700; color: var(--tp-ink); }
.tp-phone__island { width: 86px; height: 24px; border-radius: 20px; background: #0f1a1f; }
.tp-phone__icons { font-size: 8px; letter-spacing: 1px; }

.tp-phone__island--float { position: absolute; z-index: 1; top: 9px; left: 50%; translate: -50% 0; width: 31%; height: 3.5%; }

.tp-ui { display: flex; flex-direction: column; gap: 10px; flex: 1; min-height: 0; padding: 10px 14px 14px; font-size: 11.5px; line-height: 1.35; color: var(--tp-text); text-align: left; }
.tp-ui b { color: var(--tp-ink); font-weight: 600; }
.tp-ui small { display: block; color: var(--tp-muted); font-size: 10px; }
.tp-ui .tp-icon { width: 16px; height: 16px; }
.tp-ui__h { margin: 4px 0 0 !important; color: var(--tp-ink); font-size: 12.5px; font-weight: 700; }
.tp-ui__row { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 12px; background: #fff; border: 1px solid var(--tp-line); }
.tp-ui__row > span:nth-child(2) { flex: 1; min-width: 0; }
.tp-ui__ico { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; }
.tp-ui__button { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px; border-radius: 999px; background: var(--tp-teal-500); color: #fff; font-weight: 600; }
.tp-ui__button .tp-icon { width: 14px; height: 14px; }
.tp-ui__round { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--tp-ink); box-shadow: var(--tp-shadow-sm); }
.tp-ui__round--muted { color: var(--tp-sky-700); }

/* Walkie-talkie (como en la app) */
.tp-ui--walkie {
  align-items: center;
  gap: 8px;
  text-align: center;
  background:
    radial-gradient(circle at 50% 27%, rgba(255, 255, 255, .55) 0 30%, transparent 30.5%),
    radial-gradient(circle at 50% 108%, rgba(255, 255, 255, .5) 0 34%, transparent 34.5%);
}
.tp-ui__walkie-top { position: relative; align-self: stretch; display: flex; justify-content: center; min-height: 34px; }
.tp-ui__walkie-top .tp-ui__round { position: absolute; left: 0; top: 0; }
.tp-ui__walkie-title b { display: flex; align-items: center; gap: 6px; font-size: 12.5px; }
.tp-ui__walkie-title i { width: 6px; height: 6px; border-radius: 50%; background: var(--tp-teal-500); }
.tp-ui__walkie-title small { font-variant-numeric: tabular-nums; }
.tp-ui__walkie-avatar { margin-top: 4px; padding: 7px; border-radius: 50%; border: 1.5px solid rgba(47, 163, 176, .35); }
.tp-ui__walkie-avatar img { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 6px rgba(47, 163, 176, .14), 0 0 0 14px rgba(47, 163, 176, .06); animation: tp-pulse 2.4s ease-in-out infinite; }
@keyframes tp-pulse { 50% { box-shadow: 0 0 0 10px rgba(47, 163, 176, .16), 0 0 0 22px rgba(47, 163, 176, .05); } }
.tp-ui__walkie-state { margin-top: 6px !important; color: var(--tp-teal-700); font-size: 13.5px; font-weight: 700; }
.tp-ui__walkie-card { align-self: stretch; padding: 10px 12px; border-radius: 16px; background: #fff; box-shadow: var(--tp-shadow-sm); text-align: left; font-size: 10.5px; }
.tp-ui__walkie-card small { margin-top: 6px; text-align: right; font-size: 8.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.tp-ui__walkie-card .is-me { text-align: right; color: var(--tp-muted); }
.tp-ui__walkie-controls { display: flex; align-items: center; justify-content: space-between; align-self: stretch; margin-top: auto; padding: 0 6px; }
.tp-ui__walkie-btn { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--tp-teal-500); color: #fff; box-shadow: 0 0 0 6px rgba(47, 163, 176, .18), 0 10px 20px -8px rgba(33, 116, 125, .6); }
.tp-ui .tp-ui__walkie-btn .tp-icon { width: 24px; height: 24px; stroke-width: 2.4; }
.tp-ui__walkie-hint { margin-top: -2px; }
.tp-wave { display: flex; align-items: center; gap: 3px; height: 30px; }
.tp-wave i { display: block; width: 4px; height: 30%; border-radius: 4px; background: var(--tp-teal-500); animation: tp-wave 1.1s ease-in-out infinite; }
.tp-wave i:nth-child(3n) { animation-delay: -.2s; }
.tp-wave i:nth-child(3n+1) { animation-delay: -.45s; }
.tp-wave i:nth-child(4n) { animation-delay: -.7s; }
.tp-wave i:nth-child(5n) { animation-delay: -.9s; }
@keyframes tp-wave { 0%, 100% { height: 18%; } 50% { height: 100%; } }
@media (prefers-reduced-motion: reduce) { .tp-wave i, .tp-ui__walkie-avatar img { animation: none; } .tp-wave i { height: 60%; } }

/* Resultado de un test */
.tp-ui--test { gap: 9px; }
.tp-ui__test-top { display: flex; align-items: center; gap: 8px; padding: 2px 0; font-size: 13px; }
.tp-ui__test-card { display: grid; justify-items: center; gap: 3px; padding: 14px 12px; border-radius: 16px; background: #fff; box-shadow: var(--tp-shadow-sm); text-align: center; }
.tp-ui .tp-ui__test-card > small { color: var(--tp-purple-500); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.tp-ui__test-card > b { font-size: 14px; }
.tp-ui__gauge { position: relative; display: grid; place-items: center; width: 96px; height: 96px; margin: 8px 0 4px; border-radius: 50%; background: conic-gradient(var(--tp-purple-300) calc(var(--v) * 1%), var(--tp-purple-50) 0); }
.tp-ui__gauge::before { content: ""; position: absolute; inset: 10px; border-radius: 50%; background: #fff; }
.tp-ui__gauge span { position: relative; color: var(--tp-ink); font-size: 24px; font-weight: 700; }
.tp-ui .tp-ui__gauge small { display: inline; color: var(--tp-muted); font-size: 12px; }
.tp-ui__test-level { color: var(--tp-purple-500); font-size: 12.5px; font-weight: 700; }
.tp-ui__test-note { font-size: 10.5px; }

/* --------------------------------------------------------------------------
   Mindfulness
   -------------------------------------------------------------------------- */
.tp-mind { background: linear-gradient(180deg, #fff 0, var(--tp-purple-50) 100%); }
.tp-mind__head { grid-template-columns: minmax(0, 1fr) clamp(180px, 22vw, 270px); margin-bottom: clamp(20px, 3vw, 36px); }
@media (max-width: 900px) { .tp-mind__head { grid-template-columns: minmax(0, 1fr); } .tp-mind__head .tp-section__art img { max-width: 190px; } }
.tp-mind .tp-eyebrow,
.tp-mind .tp-link { color: var(--tp-purple-500); }
.tp-mind__grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(24px, 4vw, 48px); align-items: center; }
.tp-mind__covers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.tp-cover { margin: 0; }
.tp-cover img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 20px; box-shadow: var(--tp-shadow); transition: transform .35s var(--tp-ease); }
.tp-cover:hover img { transform: translateY(-4px) rotate(-1deg); }
.tp-cover figcaption { margin-top: 10px; color: var(--tp-ink); font-size: .92rem; font-weight: 600; }
.tp-player { display: grid; gap: 18px; padding: 26px; border-radius: var(--tp-radius-lg); background: #fff; box-shadow: var(--tp-shadow-lg); }
.tp-player__cover { width: 100% !important; aspect-ratio: 1.6; object-fit: cover; border-radius: 16px; }
.tp-player__label { color: var(--tp-purple-500); font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.tp-player__title { margin-top: 6px !important; color: var(--tp-ink); font-size: 1.5rem; font-weight: 700; }
.tp-player__meta { color: var(--tp-muted); font-size: .92rem; }
.tp-player__controls { display: flex; align-items: center; gap: 14px; margin-top: 16px; }
.tp-player__btn { flex: none; display: grid; place-items: center; width: 54px; height: 54px; border: 0; border-radius: 50%; background: var(--tp-purple-300); color: #fff; cursor: pointer; box-shadow: 0 8px 18px -8px rgba(150, 84, 244, .7); transition: transform .2s; }
.tp-player__btn:hover { transform: scale(1.05); }
.tp-player__btn .tp-icon { width: 22px; height: 22px; }
.tp-player__play { margin-left: 3px; }
.tp-player__pause { display: none; }
.tp-player.is-playing .tp-player__play { display: none; }
.tp-player.is-playing .tp-player__pause { display: block; }
.tp-player__bar { position: relative; flex: 1; height: 6px; border-radius: 6px; background: var(--tp-purple-50); cursor: pointer; }
.tp-player__bar span { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: 6px; background: var(--tp-purple-300); }
.tp-player__time { color: var(--tp-muted); font-size: .85rem; font-variant-numeric: tabular-nums; }
@media (max-width: 960px) {
  .tp-mind__grid { grid-template-columns: 1fr; }
  .tp-mind__covers { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 520px) { .tp-mind__covers { grid-template-columns: repeat(2, 1fr); gap: 14px; } }

/* --------------------------------------------------------------------------
   Evidencia científica
   -------------------------------------------------------------------------- */
.tp-evidence { background: var(--tp-sky-100); }
.tp-evidence .tp-eyebrow,
.tp-evidence .tp-link:not(.tp-link--muted) { color: var(--tp-blue-500); }
/* Estudios: texto + gráfica, alternando el lado */
.tp-studies { display: grid; gap: 28px; }
.tp-study {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  grid-template-areas: "head visual" "body visual";
  grid-template-rows: auto 1fr;
  gap: 0 clamp(28px, 4vw, 56px);
  align-items: center;
  padding: clamp(22px, 3.5vw, 44px);
  border-radius: var(--tp-radius-xl);
  background: #fff;
  border: 1px solid var(--tp-line);
  box-shadow: var(--tp-shadow);
}
.tp-study--flip { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); grid-template-areas: "visual head" "visual body"; }
.tp-study__head { grid-area: head; align-self: end; }
.tp-study__body { grid-area: body; align-self: start; }
.tp-study__visual { grid-area: visual; }
.tp-study__eyebrow { color: var(--tp-blue-500); font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.tp-study__headline { margin-top: 10px !important; font-size: clamp(1.55rem, 1.2rem + 1.1vw, 2.1rem) !important; }
.tp-study__lead { margin-top: 14px !important; font-size: 1.06rem; }
.tp-study__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 22px; }
.tp-study__stat { padding: 16px 18px; border-radius: var(--tp-radius); background: var(--tp-sky-100); }
.tp-study__stat b { display: block; color: var(--tp-teal-500); font-size: clamp(2rem, 1.6rem + 1.2vw, 2.6rem); font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.tp-study__stat--wide { grid-column: 1 / -1; }
.tp-study__stat span { display: block; margin-top: 8px; color: var(--tp-text); font-size: .98rem; line-height: 1.45; }
.tp-study .tp-paper__ref { margin-top: 22px; }
.tp-study .tp-paper__links { padding-top: 18px; }
.tp-study__visual { min-width: 0; }
@media (max-width: 960px) {
  .tp-study, .tp-study--flip { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "visual" "body"; grid-template-rows: auto; }
  .tp-study__visual { margin-top: 22px; }
}
@media (max-width: 560px) { .tp-study { padding: 20px 16px; border-radius: var(--tp-radius-lg); } .tp-chart { padding: 14px 12px; } }
@media (max-width: 420px) { .tp-study__stats { grid-template-columns: 1fr; } }
.tp-paper__stat { color: var(--tp-teal-500); font-size: clamp(3.2rem, 2.4rem + 3vw, 4.8rem); font-weight: 800; letter-spacing: -.04em; line-height: 1; }
.tp-paper__claim { margin-top: 14px !important; color: var(--tp-ink); font-size: 1.2rem; font-weight: 600; line-height: 1.4; }
.tp-paper__detail { margin-top: 10px !important; color: var(--tp-text); }
.tp-paper__ref { display: flex; gap: 12px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--tp-line-strong); }
.tp-paper__ref .tp-icon { color: var(--tp-blue-500); width: 22px; height: 22px; margin-top: 2px; }
.tp-paper__title { color: var(--tp-ink); font-size: .92rem; font-weight: 600; font-style: italic; line-height: 1.4; }
.tp-paper__meta { margin-top: 4px !important; color: var(--tp-muted); font-size: .84rem; }
.tp-paper__links { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: auto; padding-top: 22px; }
.tp-papers__note { display: flex; gap: 10px; align-items: flex-start; max-width: 860px; margin-top: 24px; color: var(--tp-muted); font-size: .9rem; }
.tp-papers__note .tp-icon { color: var(--tp-blue-500); margin-top: 2px; }

/* Gráficas */
.tp-chart { margin: 0; padding: clamp(16px, 2.4vw, 26px); border-radius: var(--tp-radius-lg); background: linear-gradient(180deg, var(--tp-sky-100), #fff 70%); border: 1px solid var(--tp-line); }
.tp-chart svg { display: block; width: 100%; height: auto; overflow: visible; font-family: var(--tp-font); }
.tp-chart figcaption { margin-top: 12px; color: var(--tp-muted); font-size: .84rem; line-height: 1.45; }
.tp-chart__legend { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-bottom: 12px; font-size: .95rem; font-weight: 600; }
.tp-chart__key { display: inline-flex; align-items: center; gap: 8px; }
.tp-chart__key::before { content: ""; width: 24px; height: 4px; border-radius: 2px; }
.tp-chart__key--end { color: var(--tp-teal-700); }
.tp-chart__key--end::before { background: var(--tp-teal-500); }
.tp-chart__key--start { color: var(--tp-muted); }
.tp-chart__key--start::before { background: var(--tp-sky-700); }
.tp-chart__grid line { stroke: var(--tp-aqua-100); stroke-width: 1.5; }
.tp-chart__tick { fill: var(--tp-muted); font-size: 15px; }
.tp-chart__axis { fill: var(--tp-text); font-size: 15px; font-weight: 600; }
.tp-chart__band--end { fill: rgba(47, 163, 176, .16); }
.tp-chart__band--start { fill: rgba(146, 168, 180, .2); }
.tp-chart__line { fill: none; stroke-width: 4; stroke-linejoin: round; stroke-linecap: round; }
.tp-chart__line--end { stroke: var(--tp-teal-500); }
.tp-chart__line--start { stroke: var(--tp-sky-700); }
.tp-chart__dot { fill: #fff; stroke-width: 3.5; }
.tp-chart__dot--end { stroke: var(--tp-teal-500); }
.tp-chart__dot--start { stroke: var(--tp-sky-700); }
.tp-chart__value { font-size: 17px; font-weight: 700; }
.tp-chart__value--end { fill: var(--tp-teal-700); }
.tp-chart__value--start { fill: #5f7682; }
.tp-chart__value--big { font-size: 28px; }
.tp-chart__note { fill: var(--tp-text); font-size: 15px; font-style: italic; }
.tp-chart__gap { stroke: var(--tp-teal-500); stroke-width: 2.5; stroke-dasharray: 5 4; }
.tp-chart marker path { fill: var(--tp-teal-500); }
.tp-chart .tp-chart__svg--narrow,
.tp-chart__notes { display: none; }
@media (max-width: 600px) {
  .tp-chart .tp-chart__svg--wide { display: none; }
  .tp-chart .tp-chart__svg--narrow { display: block; }
  .tp-chart__notes { display: grid; gap: 4px; margin-top: 10px; padding-left: 1.1em; color: var(--tp-text); font-size: .9rem; font-style: italic; }
  .tp-chart__svg--narrow .tp-chart__tick, .tp-chart__svg--narrow .tp-chart__axis { font-size: 17px; }
  .tp-chart__svg--narrow .tp-chart__value { font-size: 19px; }
  .tp-chart__svg--narrow .tp-chart__value--big { font-size: 26px; }
}

/* Pía frente a ChatGPT */
.tp-chart--versus { display: grid; gap: 26px; }
.tp-vs__title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; margin-bottom: 12px !important; color: var(--tp-ink); font-size: 1.02rem; font-weight: 700; }
.tp-vs__title small { color: var(--tp-muted); font-size: .84rem; font-weight: 500; }
.tp-vs__duel { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 8px; }
.tp-vs__side { display: flex; align-items: baseline; gap: 8px; }
.tp-vs__side b { color: var(--tp-ink); font-size: 1.05rem; }
.tp-vs__side em { color: var(--tp-teal-500); font-size: clamp(2rem, 1.6rem + 1.2vw, 2.6rem); font-style: normal; font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.tp-vs__side--ref { flex-direction: row-reverse; }
.tp-vs__side--ref em { color: var(--tp-sky-700); }
.tp-vs__bar { display: flex; height: 46px; overflow: hidden; border-radius: 12px; background: var(--tp-gray); }
.tp-vs__seg { display: flex; align-items: center; padding: 0 14px; color: #fff; font-size: 1rem; font-weight: 700; white-space: nowrap; }
.tp-vs__seg--pia { background: var(--tp-teal-500); }
.tp-vs__seg--tie { padding: 0; background: repeating-linear-gradient(135deg, var(--tp-aqua-300) 0 5px, #fff 5px 9px); }
.tp-vs__seg--ref { justify-content: flex-end; background: var(--tp-sky-700); }
.tp-vs__tie { margin-top: 6px !important; color: var(--tp-muted); font-size: .84rem; text-align: center; }
.tp-vs__rows { --tp-vs-label: 84px; --tp-vs-end: 70px; position: relative; display: grid; gap: 12px; padding-top: 20px; }
.tp-vs__rows--words { --tp-vs-end: 108px; padding-top: 0; }
.tp-vs__row { display: grid; grid-template-columns: var(--tp-vs-label) minmax(0, 1fr) var(--tp-vs-end); align-items: center; gap: 12px; font-size: .95rem; }
.tp-vs__label { color: var(--tp-text); font-weight: 600; }
.tp-vs__track { height: 18px; overflow: hidden; border-radius: 9px; background: var(--tp-gray); }
.tp-vs__track i { display: block; height: 100%; border-radius: 9px; background: var(--tp-aqua-500); }
.tp-vs__row.is-strong .tp-vs__track i { background: var(--tp-teal-500); }
.tp-vs__row--ref .tp-vs__track i { background: var(--tp-sky-700); }
.tp-vs__row b { color: var(--tp-ink); font-size: 1.02rem; white-space: nowrap; }
.tp-vs__row.is-strong b { color: var(--tp-teal-700); }
.tp-vs__parity { position: absolute; top: 14px; bottom: -6px; left: calc(var(--tp-vs-label) + 12px + (100% - var(--tp-vs-label) - var(--tp-vs-end) - 24px) / 2); border-left: 2px dashed rgba(27, 43, 48, .4); }
.tp-vs__parity span { position: absolute; top: -18px; left: 0; translate: -50% 0; color: var(--tp-muted); font-size: .74rem; font-weight: 600; white-space: nowrap; }
@media (max-width: 420px) { .tp-vs__rows { --tp-vs-label: 70px; } .tp-vs__rows--words { --tp-vs-end: 96px; } .tp-vs__row { gap: 8px; font-size: .88rem; } }

/* --------------------------------------------------------------------------
   Cifras
   -------------------------------------------------------------------------- */
.tp-stats-band { padding-block: clamp(36px, 5vw, 56px); background: #fff; border-block: 1px solid var(--tp-aqua-100); }
.tp-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.tp-stat__value { display: inline-flex; align-items: center; gap: 6px; color: var(--tp-teal-500); font-size: clamp(2rem, 1.5rem + 1.6vw, 2.9rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; }
.tp-stat__star { width: .7em !important; height: .7em !important; color: #f5b300; }
.tp-stat__label { color: var(--tp-text); font-size: .95rem; }
@media (max-width: 720px) { .tp-stats { grid-template-columns: repeat(2, 1fr); row-gap: 28px; } }

/* --------------------------------------------------------------------------
   Testimonios
   -------------------------------------------------------------------------- */
.tp-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.tp-quote { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 28px; border-radius: var(--tp-radius-lg); background: #fff; border: 1px solid var(--tp-line); box-shadow: var(--tp-shadow-sm); }
.tp-quote__title { color: var(--tp-ink); font-weight: 700; font-size: 1.08rem; }
.tp-quote blockquote { margin: 0; padding: 0; border: 0; font-size: 1.04rem; color: var(--tp-text); font-style: normal; }
.tp-quote blockquote p::before { content: "“"; }
.tp-quote blockquote p::after { content: "”"; }
.tp-quote figcaption { margin-top: auto; color: var(--tp-muted); font-size: .9rem; font-weight: 600; }
@media (max-width: 900px) { .tp-quotes { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Empresas: avance, pilares, panel
   -------------------------------------------------------------------------- */
.tp-b2b-teaser { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.tp-b2b-card { display: flex; flex-direction: column; gap: 12px; padding: clamp(26px, 3vw, 40px); border-radius: var(--tp-radius-lg); background: #fff; border: 1px solid var(--tp-line); color: var(--tp-text) !important; box-shadow: var(--tp-shadow-sm); transition: transform .25s var(--tp-ease), box-shadow .25s, border-color .25s; }
.tp-b2b-card:hover { transform: translateY(-4px); box-shadow: var(--tp-shadow); border-color: var(--tp-aqua-300); }
.tp-b2b-card b { color: var(--tp-ink); font-size: 1.4rem; letter-spacing: -.01em; }
.tp-b2b-card .tp-link { margin-top: auto; padding-top: 8px; }
.tp-b2b-card__art { display: flex; align-items: center; justify-content: center; height: clamp(170px, 18vw, 220px); margin-bottom: 8px; padding: 14px; overflow: hidden; border-radius: var(--tp-radius); background: linear-gradient(135deg, var(--tp-aqua-100), var(--tp-sky-100)); }
.tp-b2b-card__art img { min-width: 0; width: auto; max-width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 820px) { .tp-b2b-teaser { grid-template-columns: 1fr; } }

.tp-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.tp-pillar { padding: 30px; border-radius: var(--tp-radius-lg); background: #fff; border: 1px solid var(--tp-line); box-shadow: var(--tp-shadow-sm); }
.tp-pillar h3 { font-size: 1.22rem !important; margin: 18px 0 10px !important; }
.tp-pillar p { font-size: 1.02rem; }
.tp-pillar__icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; }
.tp-pillar__icon .tp-icon { width: 26px; height: 26px; }
@media (max-width: 900px) { .tp-pillars { grid-template-columns: 1fr; } }

.tp-privacy { display: grid; grid-template-columns: clamp(150px, 17vw, 210px) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: end; margin-top: 28px; padding: clamp(24px, 3vw, 36px) clamp(24px, 3vw, 40px) 0; overflow: hidden; border-radius: var(--tp-radius-lg); background: linear-gradient(135deg, var(--tp-aqua-100), var(--tp-sky-100)); }
.tp-privacy__art img { width: 100%; height: auto; }
.tp-privacy__body { align-self: center; padding-bottom: clamp(24px, 3vw, 36px); }
.tp-privacy__body > p { margin-top: 10px !important; font-size: 1.05rem; }
.tp-privacy-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin-top: 22px; color: var(--tp-text); font-size: .95rem; }
.tp-privacy-strip > div { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--tp-radius); background: rgba(255, 255, 255, .75); }
.tp-privacy-strip .tp-icon { color: var(--tp-teal-500); width: 24px; height: 24px; }
.tp-privacy-strip b { display: block; color: var(--tp-ink); font-size: 1rem; }
@media (max-width: 700px) {
  .tp-privacy { grid-template-columns: minmax(0, 1fr); }
  .tp-privacy__art { order: 2; width: 150px; margin-inline: auto; }
  .tp-privacy__body { padding-bottom: 0; }
  .tp-privacy-strip { grid-template-columns: minmax(0, 1fr); }
}

.tp-b2b-form { margin-top: clamp(40px, 5vw, 64px); padding: clamp(24px, 4vw, 48px); border-radius: var(--tp-radius-xl); background: linear-gradient(140deg, var(--tp-aqua-100), #fff 60%); border: 1px solid var(--tp-teal-100); }
.tp-b2b-form .tp-h3 + p { margin-top: 12px; }

.tp-dash { position: relative; padding: 22px; border-radius: var(--tp-radius-lg); background: #fff; box-shadow: var(--tp-shadow-lg); border: 1px solid var(--tp-line); }
.tp-dash__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.tp-dash__title { display: flex; align-items: center; gap: 12px; }
.tp-dash__title b { display: block; color: var(--tp-ink); font-size: 1.05rem; line-height: 1.25; }
.tp-dash__title small { display: block; color: var(--tp-muted); font-size: .8rem; }
.tp-dash__logo { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--tp-aqua-100); color: var(--tp-teal-500); }
.tp-dash__badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--tp-aqua-100); color: var(--tp-teal-700); font-size: .8rem; font-weight: 600; }
.tp-dash__badge .tp-icon { width: 16px; height: 16px; }
.tp-dash__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 12px; margin-top: 18px; }
.tp-dash__panel { padding: 16px; border-radius: 16px; background: var(--tp-surface); }
.tp-dash__panel > small { display: block; color: var(--tp-muted); font-size: .8rem; font-weight: 600; }
.tp-dash__panel--chart { grid-column: 1 / -1; padding-bottom: 12px; background: linear-gradient(180deg, var(--tp-sky-100), #fff); border: 1px solid var(--tp-line); }
.tp-dash__panel-head { display: flex; justify-content: space-between; align-items: center; }
.tp-dash__panel-head small { color: var(--tp-muted); font-size: .8rem; font-weight: 600; }
.tp-dash__big { display: block; color: var(--tp-ink); font-size: 2rem; line-height: 1.15; letter-spacing: -.02em; }
.tp-dash__big em { font-style: normal; font-size: 1rem; font-weight: 500; color: var(--tp-muted); }
.tp-dash__up { display: inline-block; padding: 3px 9px; border-radius: 999px; background: var(--tp-aqua-100); color: var(--tp-teal-700); font-size: .78rem; font-weight: 700; }
.tp-dash__svg { width: 100%; height: auto; margin-top: 4px; overflow: visible; }
.tp-dash__months { display: flex; justify-content: space-between; margin-top: 4px; color: var(--tp-muted); font-size: .72rem; }
.tp-dash__panel--ring { display: grid; justify-items: center; align-content: start; gap: 8px; text-align: center; }
.tp-dash__ring { display: grid; place-items: center; width: 92px; height: 92px; border-radius: 50%; background: radial-gradient(closest-side, var(--tp-surface) 74%, transparent 75% 100%), conic-gradient(var(--tp-teal-500) calc(var(--v) * 1%), var(--tp-aqua-300) 0); }
.tp-dash__ring b { color: var(--tp-ink); font-size: 1.2rem; }
.tp-dash__panel--events ul { list-style: none; display: grid; gap: 8px; margin-top: 10px; }
.tp-dash__panel--events li { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 12px; background: #fff; color: var(--tp-muted); font-size: .78rem; line-height: 1.3; }
.tp-dash__panel--events li b { display: block; color: var(--tp-ink); font-size: .88rem; }
.tp-dash__date { flex: none; display: grid; place-items: center; align-content: center; width: 44px; height: 44px; border-radius: 10px; background: var(--tp-purple-50); color: var(--tp-purple-500); font-size: .66rem; font-weight: 700; text-transform: uppercase; line-height: 1.05; }
.tp-dash__panel--events .tp-dash__date b { color: var(--tp-purple-500); font-size: 1.05rem; }
.tp-dash__foot { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 16px !important; color: var(--tp-muted); font-size: .85rem; }
.tp-dash__foot .tp-icon { color: var(--tp-teal-500); width: 16px; height: 16px; }
.tp-dash__caption { margin-top: 10px !important; color: var(--tp-muted); font-size: .78rem; text-align: right; }
.tp-float--dash { left: -32px; bottom: 4px; }
.tp-float--dash img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.tp-float--dash span { display: grid; font-size: .82rem; line-height: 1.3; }
@media (max-width: 1023px) { .tp-float--dash { position: relative; left: auto; bottom: auto; display: inline-flex; margin: -24px 0 0 14px; animation: none; } .tp-hero--b2b .tp-dash__caption { margin-top: 8px !important; } }
@media (max-width: 520px) { .tp-dash { padding: 16px; } .tp-dash__grid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Blog
   -------------------------------------------------------------------------- */
.tp-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.tp-post-card { display: flex; flex-direction: column; border-radius: var(--tp-radius-lg); background: #fff; border: 1px solid var(--tp-line); overflow: hidden; box-shadow: var(--tp-shadow-sm); transition: transform .25s var(--tp-ease), box-shadow .25s; }
.tp-post-card:hover { transform: translateY(-4px); box-shadow: var(--tp-shadow); }
.tp-post-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--tp-aqua-100); }
.tp-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--tp-ease); }
.tp-post-card:hover .tp-post-card__media img { transform: scale(1.04); }
.tp-post-card__placeholder { display: grid; place-items: end center; height: 100%; background: radial-gradient(circle at 50% 60%, #fff 0 18%, transparent 55%), linear-gradient(160deg, var(--tp-aqua-300), var(--tp-aqua-100) 55%, var(--tp-sky-300)); }
.tp-post-card .tp-post-card__placeholder img { width: auto; height: 92%; object-fit: contain; }
.tp-post-card__body { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 26px; }
.tp-post-card__meta { color: var(--tp-muted); font-size: .84rem; }
.tp-post-card__meta span { color: var(--tp-teal-500); font-weight: 600; }
.tp-post-card__title { font-size: 1.2rem !important; line-height: 1.3 !important; }
.tp-post-card__title a { color: var(--tp-ink) !important; }
.tp-post-card__title a:hover { color: var(--tp-teal-500) !important; }
.tp-post-card__excerpt { font-size: 1rem; color: var(--tp-text); }
@media (max-width: 1000px) { .tp-posts { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .tp-posts { grid-template-columns: 1fr; } }

.tp-search { display: flex; gap: 10px; max-width: 620px; margin-top: 28px; }
.tp-search input { flex: 1; min-width: 0; height: 54px; padding: 0 20px; border: 1.5px solid var(--tp-line-strong); border-radius: 14px; background: #fff; font: inherit; color: var(--tp-ink); }
.tp-search input:focus { outline: none; border-color: var(--tp-teal-500); box-shadow: 0 0 0 4px rgba(47, 163, 176, .12); }
.tp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.tp-chip { padding: 8px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--tp-line-strong); color: var(--tp-text) !important; font-size: .9rem; font-weight: 500; }
.tp-chip:hover { border-color: var(--tp-teal-500); color: var(--tp-teal-500) !important; }
.tp-chip.is-current { background: var(--tp-teal-500); border-color: var(--tp-teal-500); color: #fff !important; }
.tp-pagination { margin-top: 48px; }
.tp-pagination ul { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.tp-pagination a,
.tp-pagination span { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--tp-line-strong); color: var(--tp-ink); font-weight: 600; }
.tp-pagination .current { background: var(--tp-teal-500); border-color: var(--tp-teal-500); color: #fff; }
.tp-empty { text-align: center; color: var(--tp-muted); }

/* Artículo */
.tp-article__hero { padding-top: clamp(36px, 5vw, 64px); background: linear-gradient(180deg, var(--tp-surface), #fff); }
.tp-article__narrow { max-width: calc(820px + 2 * var(--tp-gutter)); }
.tp-crumbs { display: flex; gap: 8px; margin-bottom: 18px; font-size: .9rem; font-weight: 600; }
.tp-crumbs span { color: var(--tp-muted); }
.tp-article__hero h1 { font-size: clamp(2rem, 1.4rem + 2.2vw, 3rem) !important; }
.tp-article__meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px !important; color: var(--tp-muted); font-size: .95rem; }
.tp-article__cover { max-width: calc(1040px + 2 * var(--tp-gutter)); margin-top: 36px; }
.tp-article__cover img { width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--tp-radius-lg); box-shadow: var(--tp-shadow); }
.tp-article__layout { display: grid; grid-template-columns: minmax(0, 720px) 300px; justify-content: center; gap: 64px; padding-block: clamp(40px, 5vw, 64px) 24px; }
.tp-article__aside { position: relative; }
.tp-aside-card { position: sticky; top: calc(var(--tp-header-h) + 24px); display: grid; gap: 12px; padding: 26px; border-radius: var(--tp-radius-lg); background: var(--tp-aqua-100); border: 1px solid var(--tp-teal-100); }
.tp-aside-card__avatar { width: 64px !important; height: 64px !important; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 4px #fff; }
.tp-aside-card__title { color: var(--tp-ink); font-size: 1.15rem; font-weight: 700; }
.tp-aside-card p { font-size: .95rem; }
.tp-aside-card__stores { display: grid; gap: 8px; }
.tp-aside-card__stores .tp-btn { min-height: 44px; font-size: .92rem; background: #fff; color: var(--tp-teal-700) !important; border-color: var(--tp-aqua-300); box-shadow: none; }
@media (max-width: 1000px) {
  .tp-article__layout { grid-template-columns: minmax(0, 1fr); }
  .tp-aside-card { position: static; }
}

.tp-prose { color: var(--tp-text); font-size: 1.08rem; line-height: 1.75; }
.tp-prose > * + * { margin-top: 1.1em !important; }
.tp-prose h2 { margin-top: 1.9em !important; font-size: 1.7rem !important; }
.tp-prose h3 { margin-top: 1.6em !important; font-size: 1.3rem !important; }
.tp-prose a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tp-prose ul,
.tp-prose ol { padding-left: 1.4em; }
.tp-prose li + li { margin-top: .4em; }
.tp-prose blockquote { margin: 1.6em 0; padding: 18px 24px; border-left: 4px solid var(--tp-teal-500); border-radius: 0 12px 12px 0; background: var(--tp-aqua-100); color: var(--tp-ink); }
.tp-prose img { border-radius: 16px; height: auto; }
.tp-prose figure { margin-inline: 0; }
.tp-prose table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.tp-prose th,
.tp-prose td { padding: 10px 12px; border-bottom: 1px solid var(--tp-line); text-align: left; }
.tp-prose th { color: var(--tp-ink); background: var(--tp-surface); }
.tp-prose strong { color: var(--tp-ink); }

/* --------------------------------------------------------------------------
   Preguntas frecuentes
   -------------------------------------------------------------------------- */
.tp-faq-wrap { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.tp-faq-wrap__head .tp-lead { margin-top: 16px; }
.tp-faq { display: grid; gap: 12px; }
.tp-faq__item { border-radius: var(--tp-radius); background: #fff; border: 1px solid var(--tp-line); transition: border-color .2s, box-shadow .2s; }
.tp-faq__item[open] { border-color: var(--tp-aqua-300); box-shadow: var(--tp-shadow-sm); }
.tp-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; list-style: none; cursor: pointer; color: var(--tp-ink); font-size: 1.05rem; font-weight: 600; }
.tp-faq__item summary::-webkit-details-marker { display: none; }
.tp-faq__item summary .tp-icon { color: var(--tp-teal-500); transition: transform .25s var(--tp-ease); }
.tp-faq__item[open] summary .tp-icon { transform: rotate(180deg); }
.tp-faq__answer { padding: 0 22px 22px; color: var(--tp-text); }
@media (max-width: 900px) { .tp-faq-wrap { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Llamada final
   -------------------------------------------------------------------------- */
.tp-cta-final { padding-top: 0; }
.tp-section--soft + .tp-cta-final { padding-top: var(--tp-section); }
.tp-cta-final__card {
  position: relative;
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  align-items: end;
  gap: 24px;
  overflow: hidden;
  padding: clamp(32px, 5vw, 64px) clamp(28px, 5vw, 64px) 0;
  border-radius: var(--tp-radius-xl);
  background: radial-gradient(700px 400px at 90% 10%, rgba(255, 255, 255, .75), transparent 60%), linear-gradient(135deg, var(--tp-aqua-100), var(--tp-sky-300) 55%, var(--tp-coral-300));
}
.tp-cta-final__text { padding-bottom: clamp(32px, 5vw, 64px); }
.tp-cta-final__text h2 { font-size: clamp(1.9rem, 1.3rem + 2vw, 2.9rem) !important; }
.tp-cta-final__text p { margin-top: 14px; font-size: 1.1rem; }
.tp-cta-final__visual img { width: 100%; max-width: 330px; margin: 0 clamp(0px, 4vw, 56px) 0 auto; }
@media (max-width: 900px) {
  .tp-cta-final__card { grid-template-columns: 1fr; }
  .tp-cta-final__visual img { margin-inline: auto; max-width: 250px; }
}

/* --------------------------------------------------------------------------
   Historia
   -------------------------------------------------------------------------- */
.tp-quote-band { padding-block: clamp(40px, 5vw, 64px); border-bottom: 1px solid var(--tp-line); }
.tp-quote-band p { position: relative; max-width: 820px; margin: 0 auto; text-align: center; color: var(--tp-ink); font-size: clamp(1.3rem, 1rem + 1.2vw, 1.9rem); font-weight: 700; letter-spacing: -.015em; line-height: 1.3; }
.tp-quote-band p::before,
.tp-quote-band p::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 34px;
  height: 40px;
  translate: 0 -50%;
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 40' fill='none' stroke='%230d7e85' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M30 4 22 12M32 20H20M30 36l-8-8'/%3E%3C/svg%3E");
}
.tp-quote-band p::before { left: -64px; transform: scaleX(-1); }
.tp-quote-band p::after { right: -64px; }
@media (max-width: 1000px) { .tp-quote-band p::before, .tp-quote-band p::after { display: none; } }

.tp-team { display: grid; grid-template-columns: repeat(4, minmax(0, 280px)); justify-content: center; gap: 24px; }
.tp-member { position: relative; margin: 0; }
.tp-member__photo { aspect-ratio: 1 / 1.05; overflow: hidden; border-radius: var(--tp-radius-lg); background: linear-gradient(160deg, var(--tp-aqua-100), var(--tp-aqua-300)); }
.tp-member__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--tp-ease); }
.tp-member:hover .tp-member__photo img { transform: scale(1.04); }
.tp-member__silhouette { width: 70%; height: auto; margin: 22% auto 0; color: var(--tp-aqua-700); }
.tp-member figcaption {
  position: absolute;
  left: 50%;
  bottom: 22px;
  translate: -50% 0;
  display: grid;
  justify-items: center;
  gap: 6px;
  min-width: 70%;
  padding: 12px 22px 10px;
  border-radius: 12px;
  background: var(--tp-teal-500);
  color: #fff;
  text-align: center;
  box-shadow: 0 10px 24px -12px rgba(47, 163, 176, .8);
}
.tp-member figcaption b { font-size: 1.15rem; font-weight: 600; white-space: nowrap; }
.tp-member figcaption span { padding: 2px 12px; border-radius: 6px; background: #fff; color: var(--tp-teal-700); font-size: .8rem; font-weight: 600; }
/* Cuarta tarjeta: el resto del equipo, sin nombres. */
.tp-member--more .tp-member__photo { display: grid; place-items: start center; background: linear-gradient(160deg, #fff, var(--tp-sky-100) 55%, var(--tp-aqua-100)); border: 1.5px dashed var(--tp-aqua-300); }
.tp-member__crowd { display: grid; grid-template-columns: repeat(3, auto); justify-content: center; gap: 12px; margin-top: 18%; }
.tp-member__crowd span { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; border: 3px solid #fff; box-shadow: var(--tp-shadow-sm); }
.tp-member__crowd .tp-icon { width: 24px; height: 24px; }
.tp-member__crowd .tp-member__plus { background: var(--tp-teal-500); color: #fff; }
.tp-member--more figcaption { background: #fff; color: var(--tp-ink); box-shadow: var(--tp-shadow); }
.tp-member--more figcaption span { background: var(--tp-aqua-100); }
@media (max-width: 1180px) { .tp-team { grid-template-columns: repeat(2, minmax(0, 300px)); } }
@media (max-width: 640px) { .tp-team { grid-template-columns: minmax(0, 340px); } }

.tp-timeline { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; position: relative; }
.tp-timeline::before { content: ""; position: absolute; left: 24px; right: 24px; top: 24px; border-top: 2px dashed var(--tp-aqua-300); }
.tp-timeline li { position: relative; }
.tp-timeline b { display: block; margin-top: 18px; color: var(--tp-ink); font-size: 1.05rem; }
.tp-timeline p { margin-top: 6px !important; font-size: 1rem; }
.tp-timeline__dot { position: relative; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #fff; border: 2px solid var(--tp-teal-500); color: var(--tp-teal-500); }
@media (max-width: 960px) {
  .tp-timeline { grid-template-columns: 1fr; gap: 28px; padding-left: 4px; }
  .tp-timeline::before { left: 27px; right: auto; top: 24px; bottom: 24px; border-top: 0; border-left: 2px dashed var(--tp-aqua-300); }
  .tp-timeline li { padding-left: 72px; }
  .tp-timeline__dot { position: absolute; left: 4px; top: 0; }
  .tp-timeline b { margin-top: 10px; }
}

/* --------------------------------------------------------------------------
   ¿Qué hacemos?
   -------------------------------------------------------------------------- */
.tp-hero--story h1 { font-size: clamp(2.1rem, 1.4rem + 2.2vw, 3.1rem); }
.tp-hero--product { padding-bottom: clamp(88px, 9vw, 130px); }
.tp-hero--product .tp-hero__text > .tp-lead b { color: var(--tp-ink); }
.tp-float--pia { left: 0; top: 26%; padding: 10px 16px 10px 10px; }
.tp-float--pia img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.tp-float--pia span { display: grid; font-size: .86rem; line-height: 1.3; }
.tp-hero--product .tp-float--rating { left: auto; right: 0; bottom: 18%; }

/* Accesos a las cuatro funciones clave, montados sobre el borde del hero */
.tp-jump { position: relative; z-index: 2; margin-top: clamp(-72px, -6vw, -40px); }
.tp-jump__list { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.tp-jump__item { display: flex; align-items: center; gap: 14px; height: 100%; padding: 18px 20px; border-radius: var(--tp-radius); background: #fff; border: 1px solid var(--tp-line); box-shadow: var(--tp-shadow); color: var(--tp-text) !important; transition: transform .25s var(--tp-ease), border-color .25s; }
.tp-jump__item:hover { transform: translateY(-3px); border-color: var(--tp-aqua-300); }
.tp-jump__icon { flex: none; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; }
.tp-jump__icon .tp-icon { width: 26px; height: 26px; stroke-width: 1.6; }
.tp-jump__item b { display: block; color: var(--tp-ink); font-size: 1.1rem; line-height: 1.25; }
.tp-jump__item small { display: block; margin-top: 2px; color: var(--tp-muted); font-size: .92rem; line-height: 1.35; }
@media (max-width: 1100px) { .tp-jump__list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .tp-jump__list { grid-template-columns: 1fr; gap: 10px; } .tp-jump__item { padding: 14px 16px; } }

/* Secciones grandes de cada función */
.tp-pillar-block { scroll-margin-top: var(--tp-header-h); }
.tp-pillar-block .tp-h2 { font-size: clamp(1.9rem, 1.3rem + 2vw, 2.85rem); }
.tp-pillar-block .tp-split__text .tp-lead { font-size: clamp(1.08rem, 1rem + .35vw, 1.27rem); }
.tp-pillar-block .tp-btn-row { align-items: center; gap: 14px 26px; }
.tp-pillar-block--soft { background: var(--tp-surface); }
.tp-pillar-block.tp-mind .tp-btn-row { margin-top: 0; }
.tp-checks--lg { gap: 14px; }
.tp-checks--lg li { font-size: 1.06rem; line-height: 1.5; }
.tp-checks--purple .tp-icon { background: var(--tp-purple-300); }

.tp-showcase { position: relative; display: flex; justify-content: center; width: 100%; padding: 10px 0; }
.tp-showcase::before { content: ""; position: absolute; inset: 4% 0; border-radius: 50%; background: radial-gradient(circle, rgba(47, 163, 176, .18), transparent 64%); }
.tp-float--proof { left: max(0px, calc(50% - 300px)); bottom: 12%; max-width: 230px; flex-direction: column; align-items: flex-start; gap: 4px; }
.tp-float--proof b { color: var(--tp-teal-500); font-size: 1.9rem; line-height: 1; }
.tp-float--proof span { font-size: .88rem; line-height: 1.35; }

/* Dos móviles: la pantalla principal delante y otra detrás */
.tp-duo { position: relative; display: flex; justify-content: center; width: 100%; padding: 10px 0; }
/* El móvil de delante va recto: las capturas solo se leen nítidas si el navegador no las gira.
   El de detrás asoma más de la mitad, con una ligera inclinación (es decorativo). */
.tp-duo { --tp-duo-w: clamp(180px, 23vw, 290px); }
.tp-duo .tp-phone { width: var(--tp-duo-w); }
.tp-duo__front { position: relative; z-index: 1; margin-right: calc(var(--tp-duo-w) * .36); }
.tp-duo .tp-duo__back { position: absolute; top: 6%; left: 50%; width: calc(var(--tp-duo-w) * .88); margin-left: calc(var(--tp-duo-w) * .02); transform: rotate(5deg); }

.tp-player--compact { margin-top: 28px; padding: 18px 22px; gap: 0; border: 1px solid var(--tp-purple-50); box-shadow: var(--tp-shadow); }
.tp-player--compact .tp-player__title { margin-top: 2px !important; font-size: 1.2rem; }
.tp-player--compact .tp-player__controls { margin-top: 12px; }

.tp-extras { list-style: none; display: grid; gap: 14px; margin: 28px 0 26px; }
.tp-extras li { display: flex; gap: 18px; align-items: flex-start; padding: 20px 22px; border-radius: var(--tp-radius); background: #fff; border: 1px solid var(--tp-line); box-shadow: var(--tp-shadow-sm); scroll-margin-top: calc(var(--tp-header-h) + 24px); }
.tp-extras__icon { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; }
.tp-extras__icon .tp-icon { width: 26px; height: 26px; stroke-width: 1.6; }
.tp-extras b { display: block; margin-bottom: 4px; color: var(--tp-ink); font-size: 1.12rem; }
.tp-extras li > span:last-child { font-size: 1.02rem; line-height: 1.55; }

@media (max-width: 900px) {
  .tp-float--pia { top: auto; bottom: 8%; }
  .tp-float--proof { left: 0; bottom: 6%; max-width: 200px; }
}

.tp-isnot { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.tp-isnot__card { position: relative; overflow: hidden; padding: clamp(26px, 3vw, 36px); border-radius: var(--tp-radius-lg); }
.tp-isnot__card h3 { display: flex; align-items: center; gap: 14px; margin-bottom: 20px !important; font-size: 1.5rem !important; }
.tp-isnot__card h3 .tp-icon { width: 40px; height: 40px; stroke-width: 1.5; }
.tp-isnot__card ul { list-style: none; display: grid; gap: 12px; }
.tp-isnot__card li { display: flex; gap: 12px; align-items: center; }
.tp-isnot__card li .tp-icon { width: 18px; height: 18px; }
.tp-isnot__card--yes { background: var(--tp-aqua-100); border: 1px solid var(--tp-teal-100); }
.tp-isnot__card--yes h3 { color: var(--tp-teal-500) !important; }
.tp-isnot__card--yes .tp-icon { color: var(--tp-teal-500); }
.tp-isnot__card--no { background: var(--tp-coral-300); border: 1px solid var(--tp-coral-500); }
.tp-isnot__card--no h3 { color: var(--tp-ink) !important; }
.tp-isnot__card--no .tp-icon { color: var(--tp-coral-ink); }
@media (max-width: 760px) { .tp-isnot { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Destinatarios
   -------------------------------------------------------------------------- */
.tp-personas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.tp-persona { display: flex; align-items: center; gap: 12px; padding: 18px 14px; border-radius: var(--tp-radius); background: #fff; border: 1px solid var(--tp-line); box-shadow: var(--tp-shadow-sm); color: var(--tp-text) !important; transition: transform .25s var(--tp-ease), box-shadow .25s, border-color .25s; }
.tp-persona--link:hover { transform: translateY(-4px); box-shadow: var(--tp-shadow); border-color: var(--tp-aqua-300); }
.tp-persona__img { flex: none; width: 100px; }
.tp-persona__img img { width: 100px; height: auto; }
.tp-persona__body { display: flex; flex-direction: column; gap: 8px; font-size: .97rem; line-height: 1.5; }
.tp-persona__body b { color: var(--tp-ink); font-size: 1.12rem; line-height: 1.25; }
.tp-persona__body .tp-link { font-size: .95rem; }
@media (max-width: 1180px) { .tp-personas { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .tp-personas { grid-template-columns: 1fr; } }

.tp-assurance { display: grid; grid-template-columns: 1fr 1fr; margin-top: 32px; padding: 26px 32px; border-radius: var(--tp-radius-lg); background: var(--tp-aqua-100); border: 1px solid var(--tp-teal-100); }
.tp-assurance > div { display: flex; gap: 18px; align-items: flex-start; padding-inline: 24px; }
.tp-assurance > div + div { border-left: 1px solid var(--tp-aqua-300); }
.tp-assurance .tp-icon { width: 40px; height: 40px; color: var(--tp-teal-500); stroke-width: 1.4; }
.tp-assurance b { display: block; color: var(--tp-ink); font-size: 1.08rem; }
.tp-assurance span { display: block; margin-top: 4px; font-size: .98rem; }
@media (max-width: 800px) {
  .tp-assurance { grid-template-columns: 1fr; gap: 20px; padding: 24px; }
  .tp-assurance > div { padding: 0; }
  .tp-assurance > div + div { border-left: 0; border-top: 1px solid var(--tp-aqua-300); padding-top: 20px; }
}

/* --------------------------------------------------------------------------
   Contacto y formularios
   -------------------------------------------------------------------------- */
.tp-hero--contact { padding-block: clamp(56px, 8vw, 112px); background: radial-gradient(800px 500px at 100% 0, var(--tp-aqua-100), transparent 70%), radial-gradient(700px 500px at 0 100%, var(--tp-sky-100), transparent 70%), #fff; }
.tp-contact { position: relative; max-width: 980px; text-align: center; }
.tp-contact h1 { font-size: clamp(2.4rem, 1.5rem + 3.2vw, 4rem) !important; }
.tp-contact .tp-lead { max-width: 680px; margin-top: 22px; }
.tp-contact__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; max-width: 880px; margin: 48px auto 0; padding-bottom: 48px; border-bottom: 1px solid var(--tp-line); }
.tp-contact__stores { display: grid; gap: 16px; }
.tp-contact__stores .tp-btn { min-height: 62px; border-radius: 999px; font-size: 1.1rem; }
.tp-contact__social { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 36px; }
.tp-pill { display: inline-flex; align-items: center; gap: 10px; padding: 14px 26px; border-radius: 999px; background: #fff; border: 1.5px solid var(--tp-line-strong); color: var(--tp-ink) !important; font-weight: 600; transition: border-color .2s, color .2s; }
.tp-pill .tp-icon { color: var(--tp-teal-500); width: 22px; height: 22px; }
.tp-pill:hover { border-color: var(--tp-teal-500); color: var(--tp-teal-500) !important; }
@media (max-width: 760px) { .tp-contact__actions { grid-template-columns: 1fr; } .tp-btn--xl { width: 100%; } }

.tp-side-card { display: flex; gap: 16px; margin-top: 28px; padding: 22px; border-radius: var(--tp-radius); background: #fff; border: 1px solid var(--tp-line); }
.tp-side-card > .tp-icon { width: 32px; height: 32px; color: var(--tp-teal-500); flex: none; }
.tp-side-card b { color: var(--tp-ink); }
.tp-side-card p { margin: 6px 0 10px !important; font-size: .95rem; }

.tp-form-card { padding: clamp(22px, 3vw, 36px); border-radius: var(--tp-radius-lg); background: #fff; border: 1px solid var(--tp-line); box-shadow: var(--tp-shadow); }
.tp-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tp-field { display: grid; gap: 6px; }
.tp-field--full { grid-column: 1 / -1; }
.tp-field span { color: var(--tp-ink); font-size: .9rem; font-weight: 600; }
.tp-field input,
.tp-field select,
.tp-field textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1.5px solid var(--tp-line-strong); border-radius: 12px; background: #fff; color: var(--tp-ink); font: inherit; font-size: 1rem; transition: border-color .2s, box-shadow .2s; }
.tp-field textarea { resize: vertical; min-height: 110px; }
.tp-field input:focus,
.tp-field select:focus,
.tp-field textarea:focus { outline: none; border-color: var(--tp-teal-500); box-shadow: 0 0 0 4px rgba(47, 163, 176, .12); }
.tp-check { display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 22px; font-size: .9rem; }
.tp-check input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--tp-teal-500); }
.tp-form .tp-btn[disabled] { opacity: .6; pointer-events: none; }
.tp-form__hp { position: absolute; left: -9999px; }
.tp-form__error { margin-bottom: 16px !important; padding: 12px 16px; border-radius: 12px; background: var(--tp-coral-300); color: #8f3d20; font-size: .95rem; }
.tp-form__done { display: flex; gap: 16px; align-items: flex-start; padding: 26px; border-radius: var(--tp-radius); background: var(--tp-aqua-100); color: var(--tp-text); }
.tp-form__done > .tp-icon { width: 36px; height: 36px; color: var(--tp-teal-500); flex: none; }
.tp-form__done-title { color: var(--tp-ink); font-size: 1.2rem; font-weight: 700; }
@media (max-width: 560px) { .tp-form__grid { grid-template-columns: 1fr; } .tp-form .tp-btn { width: 100%; } }

/* --------------------------------------------------------------------------
   Prensa
   -------------------------------------------------------------------------- */
.tp-press { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.tp-press-card { display: grid; grid-template-columns: 200px 1fr; overflow: hidden; border-radius: var(--tp-radius-lg); background: #fff; border: 1px solid var(--tp-line); box-shadow: var(--tp-shadow-sm); transition: box-shadow .25s; }
.tp-press-card:hover { box-shadow: var(--tp-shadow); }
.tp-press-card__media img { width: 100%; height: 100%; object-fit: cover; }
.tp-press-card__body { display: flex; flex-direction: column; gap: 8px; padding: 24px; }
.tp-press-card__outlet { color: var(--tp-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 700; }
.tp-press-card__meta { color: var(--tp-muted); font-size: .85rem; }
.tp-press-card h3 { font-size: 1.12rem !important; line-height: 1.35 !important; }
.tp-press-card h3 a { color: var(--tp-ink) !important; }
.tp-press-card h3 a:hover { color: var(--tp-teal-500) !important; }
.tp-press-card__links { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: auto; padding-top: 8px; font-size: .92rem; }
@media (max-width: 960px) { .tp-press { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .tp-press-card { grid-template-columns: minmax(0, 1fr); } .tp-press-card__media { aspect-ratio: 16 / 9; } .tp-press-card__media--art img { max-height: 100%; } }

.tp-event { display: grid; grid-template-columns: 280px 1fr; gap: 32px; align-items: center; margin-top: 24px; padding: 20px; border-radius: var(--tp-radius-lg); background: var(--tp-surface); }
.tp-event img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--tp-radius); }
.tp-event .tp-h3 { margin: 0 0 10px !important; }
.tp-event:has(.tp-coverage) { align-items: start; grid-template-columns: 340px 1fr; padding: 24px; }
.tp-coverage__label { margin-top: 22px; color: var(--tp-muted); font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.tp-coverage { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.tp-coverage a { position: relative; display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 14px 40px 14px 16px; border-radius: var(--tp-radius); background: #fff; border: 1px solid var(--tp-line); color: var(--tp-text) !important; transition: border-color .2s, box-shadow .2s; }
.tp-coverage a:hover { border-color: var(--tp-aqua-300); box-shadow: var(--tp-shadow-sm); }
.tp-coverage a > .tp-icon { position: absolute; top: 14px; right: 14px; width: 16px; height: 16px; color: var(--tp-teal-700); }
.tp-coverage__outlet { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; color: var(--tp-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; font-weight: 700; }
.tp-coverage__outlet small { color: var(--tp-muted); font-family: var(--tp-font); font-size: .78rem; font-weight: 500; }
.tp-coverage__title { font-size: .9rem; line-height: 1.4; }
.tp-press-card__media--art { display: grid; grid-template-columns: minmax(0, 1fr); place-items: end center; padding: 16px 12px 0; background: linear-gradient(160deg, var(--tp-aqua-100), var(--tp-sky-100)); }
.tp-press-card__media--art img { height: auto; max-height: 220px; object-fit: contain; }
@media (max-width: 960px) { .tp-event:has(.tp-coverage) { grid-template-columns: 1fr; } .tp-event:has(.tp-coverage) img { max-height: 320px; } }
@media (max-width: 700px) { .tp-event { grid-template-columns: 1fr; } .tp-coverage { grid-template-columns: 1fr; } }

.tp-kit-hero { position: relative; display: grid; grid-template-columns: 1fr minmax(0, 300px); gap: 24px; align-items: end; margin-bottom: 18px; padding: clamp(26px, 4vw, 40px) clamp(26px, 4vw, 44px) 0; overflow: hidden; border-radius: var(--tp-radius-lg); background: linear-gradient(135deg, var(--tp-aqua-100), var(--tp-sky-100)); border: 1px solid var(--tp-line); }
.tp-kit-hero__text { padding-bottom: clamp(26px, 4vw, 40px); }
.tp-kit-hero__text .tp-checks { margin: 16px 0 26px; }
.tp-kit-hero__art img { width: 100%; height: auto; }
.tp-kit { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.tp-kit__item { display: grid; grid-template-rows: auto 1fr; gap: 14px; padding: 18px; border-radius: var(--tp-radius); background: #fff; border: 1px solid var(--tp-line); color: var(--tp-text) !important; position: relative; transition: border-color .2s, transform .2s; }
.tp-kit__item:hover { border-color: var(--tp-teal-500); transform: translateY(-3px); }
.tp-kit__item > .tp-icon { position: absolute; right: 18px; bottom: 20px; color: var(--tp-teal-500); }
.tp-kit__item b { display: block; padding-right: 26px; color: var(--tp-ink); line-height: 1.3; }
.tp-kit__item small { display: block; color: var(--tp-muted); font-size: .85rem; overflow-wrap: anywhere; }
.tp-kit__preview { display: grid; place-items: center; height: 130px; overflow: hidden; border-radius: 12px; background: var(--tp-surface); }
.tp-kit__preview img { max-height: 110px; width: auto; object-fit: contain; }
.tp-kit__preview--pia { place-items: end center; background: linear-gradient(180deg, var(--tp-aqua-100), var(--tp-sky-100)); }
.tp-kit__preview--pia img { max-height: 124px; }
.tp-kit__preview .tp-icon { width: 40px; height: 40px; color: var(--tp-teal-500); }
@media (max-width: 1100px) { .tp-kit { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .tp-kit-hero { grid-template-columns: 1fr; } .tp-kit-hero__art { max-width: 240px; margin-inline: auto; } .tp-kit { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .tp-kit { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Pie
   -------------------------------------------------------------------------- */
.tp-footer { padding: clamp(48px, 6vw, 72px) 0 calc(28px + env(safe-area-inset-bottom)); background: var(--tp-surface); border-top: 1px solid var(--tp-line); color: var(--tp-text); font-family: var(--tp-font); font-size: .95rem; line-height: 1.6; }
.tp-footer *,
.tp-footer *::before,
.tp-footer *::after { box-sizing: border-box; }
.tp-footer .tp-footer__top { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr) 1.2fr; gap: 32px; }
.tp-footer .tp-footer__brand img { width: 150px; height: auto; }
.tp-footer .tp-footer__brand p { margin: 18px 0 0; color: var(--tp-text); }
.tp-footer .tp-footer__title { margin: 0 0 14px; color: var(--tp-teal-500); font-size: .92rem; font-weight: 700; }
.tp-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.tp-footer a { color: var(--tp-text); text-decoration: none; }
.tp-footer a:hover { color: var(--tp-teal-500); }
.tp-footer .tp-footer__social { display: flex; gap: 10px; margin-bottom: 22px; }
.tp-footer .tp-footer__social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; border: 1px solid var(--tp-line-strong); color: var(--tp-teal-500); transition: background .2s, color .2s; }
.tp-footer .tp-footer__social a:hover { background: var(--tp-teal-500); color: #fff; }
.tp-footer .tp-footer__social .tp-icon { width: 20px; height: 20px; }
.tp-footer .tp-footer__stores { display: flex; flex-wrap: wrap; gap: 8px; }
.tp-footer .tp-footer__stores .tp-btn { min-height: 40px; padding: 0 14px; border-radius: 999px; font-size: .86rem; color: #fff; }
.tp-footer .tp-footer__stores .tp-btn .tp-icon { width: 16px; height: 16px; }
.tp-footer .tp-footer__crisis { display: flex; gap: 10px; align-items: flex-start; margin: 40px 0 0; padding: 14px 18px; border-radius: 12px; background: #fff; border: 1px solid var(--tp-line); font-size: .88rem; }
.tp-footer .tp-footer__crisis .tp-icon { color: var(--tp-teal-500); width: 18px; height: 18px; margin-top: 2px; }
.tp-footer .tp-footer__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--tp-line); color: var(--tp-muted); font-size: .86rem; }
.tp-footer .tp-footer__bottom p { margin: 0; }
.tp-footer .tp-footer__bottom a { color: var(--tp-teal-500); font-weight: 600; }
@media (max-width: 1100px) { .tp-footer .tp-footer__top { grid-template-columns: repeat(3, 1fr); } .tp-footer .tp-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 640px) { .tp-footer .tp-footer__top { grid-template-columns: 1fr 1fr; } .tp-footer .tp-footer__col--social { grid-column: 1 / -1; } }
@media (max-width: 767px) { .tp-footer { padding-bottom: 104px; } }

/* La cabecera y el pie también se ven en páginas de Elementor: tipografía y botones propios. */
.tp-header .tp-btn,
.tp-footer .tp-btn,
.tp-drawer .tp-btn,
.tp-mobilebar .tp-btn { font-family: var(--tp-font); text-decoration: none; }
.tp-header svg.tp-icon,
.tp-footer svg.tp-icon,
.tp-mobilebar svg.tp-icon { display: inline-block; vertical-align: middle; }
.tp-header .tp-container,
.tp-footer .tp-container { box-sizing: border-box; }

/* --------------------------------------------------------------------------
   Animación de aparición
   -------------------------------------------------------------------------- */
.tp-js [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--tp-ease), transform .7s var(--tp-ease); }
.tp-js [data-reveal].is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .tp-js [data-reveal] { opacity: 1; transform: none; transition: none; } }

