/* ============================================================
   Tensoria Digital · Páginas internas
   Mismo lenguaje que la home: papel azulado, tinta ultramar,
   señal naranja, nodos y líneas en tensión.
   ============================================================ */

.td-page{
  --td-paper:#f4f5fa;
  --td-paper-deep:#eceef7;
  --td-white:#ffffff;
  --td-ink:#10173a;
  --td-ink-soft:#4c5578;
  --td-blue:#2337e4;
  --td-blue-deep:#17227f;
  --td-blue-tint:rgba(35,55,228,.08);
  --td-signal:#e8500a;
  --td-line:rgba(16,23,58,.14);
  --td-line-soft:rgba(16,23,58,.08);
  --td-radius:14px;
  --td-navy:#0b1128;
  --td-navy-soft:#131b3d;

  background:var(--td-paper);
  color:var(--td-ink);
  font-family:"Instrument Sans","Segoe UI",system-ui,sans-serif;
  font-size:1rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

.td-page ::selection{
  background:var(--td-blue);
  color:#ffffff;
}

.td-page h1,
.td-page h2,
.td-page h3{
  margin:0;
  font-family:"Bricolage Grotesque","Instrument Sans","Segoe UI",sans-serif;
  font-weight:500;
  letter-spacing:-.02em;
  color:var(--td-ink);
}

.td-page a:focus-visible,
.td-page button:focus-visible,
.td-page input:focus-visible,
.td-page select:focus-visible,
.td-page textarea:focus-visible,
.td-page summary:focus-visible{
  outline:2px solid var(--td-blue);
  outline-offset:3px;
}

/* ---------- Animación de entrada (main.js añade .is-visible) ---------- */

.td-page .reveal-on-scroll{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1);
}

.td-page .reveal-on-scroll.is-visible{
  opacity:1;
  transform:none;
}

/* ---------- Piezas compartidas ---------- */

.td-eyebrow{
  display:flex;
  align-items:center;
  gap:.7rem;
  width:max-content;
  max-width:100%;
  margin:0;
  font-family:"IBM Plex Mono","Consolas",monospace;
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--td-ink-soft);
}

.td-eyebrow__node{
  position:relative;
  display:inline-block;
  flex-shrink:0;
  width:34px;
  height:1px;
  background:var(--td-ink);
}

.td-eyebrow__node::after{
  content:"";
  position:absolute;
  top:50%;
  right:-3px;
  width:7px;
  height:7px;
  border-radius:50%;
  transform:translateY(-50%);
  background:var(--td-blue);
}

.td-eyebrow--light{
  color:rgba(214,224,255,.72);
}

.td-eyebrow--light .td-eyebrow__node{
  background:rgba(214,224,255,.6);
}

.td-page .button,
.td-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  min-height:3rem;
  padding:.2rem 1.4rem;
  border-radius:10px;
  border:1px solid transparent;
  font-family:"Instrument Sans","Segoe UI",sans-serif;
  font-size:.95rem;
  font-weight:600;
  letter-spacing:.01em;
  transition:transform .22s ease, box-shadow .22s ease, background-color .22s ease, border-color .22s ease;
}

.td-page .button:hover,
.td-btn:hover{
  transform:translateY(-2px);
}

.td-btn--primary{
  color:#ffffff;
  background:var(--td-blue);
  box-shadow:0 10px 24px rgba(35,55,228,.22);
}

.td-btn--primary:hover,
.td-btn--primary:focus-visible{
  background:var(--td-blue-deep);
  box-shadow:0 14px 28px rgba(23,34,127,.26);
}

.td-btn--ghost{
  color:var(--td-ink);
  border-color:var(--td-line);
  background:var(--td-white);
}

.td-btn--ghost:hover,
.td-btn--ghost:focus-visible{
  border-color:var(--td-ink);
}

.td-btn--light{
  color:var(--td-ink);
  background:#ffffff;
  box-shadow:0 10px 24px rgba(4,8,24,.28);
}

.td-arrow-link{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  width:max-content;
  font-family:"IBM Plex Mono","Consolas",monospace;
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--td-blue);
  border-bottom:1px solid transparent;
  transition:gap .25s ease, color .25s ease, border-color .25s ease;
}

.td-arrow-link:hover,
.td-arrow-link:focus-visible{
  gap:.95rem;
  color:var(--td-blue-deep);
  border-color:currentColor;
}

.td-arrow-link svg{
  flex-shrink:0;
}

/* ---------- Hero de página ---------- */

.td-page-hero{
  position:relative;
  overflow:hidden;
  padding:6rem 0 4.5rem;
  background:
    radial-gradient(rgba(16,23,58,.07) 1px, transparent 1px) 0 0 / 28px 28px,
    var(--td-paper);
}

.td-page-hero__grid{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(300px, .85fr);
  gap:3.5rem;
  align-items:center;
}

.td-page-hero__copy{
  display:grid;
  gap:1.4rem;
  min-width:0;
}

.td-page-hero h1{
  font-size:clamp(2.3rem, 4.6vw, 3.9rem);
  font-weight:500;
  line-height:1.04;
  letter-spacing:-.028em;
  max-width:19ch;
}

.td-page-hero h1 .accent{
  color:var(--td-blue);
}

.td-page-hero__lead{
  margin:0;
  max-width:54ch;
  font-size:1.08rem;
  line-height:1.75;
  color:var(--td-ink-soft);
}

.td-page-hero__meta{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem 1.6rem;
  margin:0;
  padding:1.2rem 0 0;
  border-top:1px solid var(--td-line);
  font-family:"IBM Plex Mono","Consolas",monospace;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--td-ink-soft);
}

.td-page-hero__meta span{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}

.td-page-hero__meta span::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--td-blue);
}

.td-page-hero__visual{
  margin:0;
  padding:0;
  border:0;
  border-radius:16px;
  background:transparent;
}

.td-page-hero__visual svg{
  display:block;
  width:100%;
  height:auto;
}

/* ---------- Bloques ---------- */

.td-block{
  padding:5.75rem 0;
  background:var(--td-white);
}

.td-block--tinted{
  background:var(--td-paper);
  border-top:1px solid var(--td-line-soft);
  border-bottom:1px solid var(--td-line-soft);
}

.td-block__head{
  display:grid;
  gap:1.1rem;
  max-width:46rem;
  margin-bottom:3rem;
}

.td-block__head h2{
  font-size:clamp(1.9rem, 3.4vw, 3rem);
  line-height:1.06;
  letter-spacing:-.025em;
}

.td-block__head p{
  margin:0;
  max-width:56ch;
  color:var(--td-ink-soft);
  line-height:1.75;
}

/* ---------- Tarjetas ---------- */

.td-cards{
  display:grid;
  gap:1.5rem;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.td-cards--3{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.td-card{
  position:relative;
  display:grid;
  gap:.9rem;
  align-content:start;
  padding:2rem;
  border:1px solid var(--td-line-soft);
  border-radius:var(--td-radius);
  background:var(--td-white);
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.td-card:hover{
  border-color:rgba(35,55,228,.35);
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(16,23,58,.08);
}

.td-card--tinted{
  background:var(--td-paper);
}

.td-card__eyebrow{
  font-family:"IBM Plex Mono","Consolas",monospace;
  font-size:.66rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--td-blue);
}

.td-card h2,
.td-card h3{
  font-size:1.4rem;
  line-height:1.12;
  letter-spacing:-.018em;
}

.td-card p{
  margin:0;
  color:var(--td-ink-soft);
  line-height:1.7;
}

/* Lista con nodos */
.td-list{
  display:grid;
  gap:.7rem;
  margin:0;
  padding:0;
  list-style:none;
}

.td-list li{
  position:relative;
  padding-left:1.15rem;
  color:var(--td-ink);
  line-height:1.6;
}

.td-list li::before{
  content:"";
  position:absolute;
  top:.58em;
  left:0;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--td-blue);
}

.td-list--light li{
  color:rgba(226,233,255,.88);
}

/* Etiquetas técnicas */
.td-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
}

.td-tags span{
  padding:.42rem .8rem;
  border:1px solid var(--td-line);
  border-radius:8px;
  font-family:"IBM Plex Mono","Consolas",monospace;
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--td-ink-soft);
  background:var(--td-white);
}

/* ---------- Directorio de servicios ---------- */

.td-dir{
  display:grid;
  gap:1.75rem;
}

.td-dir__bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.6rem;
}

.td-chip{
  padding:.68rem 1.05rem;
  border:1px solid var(--td-line);
  border-radius:999px;
  background:var(--td-white);
  color:var(--td-ink);
  font-size:.86rem;
  font-weight:500;
  line-height:1.2;
  transition:border-color .2s ease, background-color .2s ease, color .2s ease;
}

.td-chip:hover,
.td-chip:focus-visible{
  border-color:var(--td-blue);
  color:var(--td-blue);
}

.td-chip.is-current{
  color:#ffffff;
  border-color:var(--td-blue);
  background:var(--td-blue);
}

.td-dir__select{
  width:100%;
  max-width:24rem;
  min-height:3.1rem;
  padding:.8rem 1rem;
  border:1px solid var(--td-line);
  border-radius:10px;
  background:var(--td-white);
  color:var(--td-ink);
  font-size:.92rem;
}

/* ---------- Servicio individual (hub) ---------- */

.td-services{
  display:grid;
  gap:2.5rem;
}

.td-service{
  display:grid;
  gap:2.5rem;
  padding:2.5rem;
  border:1px solid var(--td-line-soft);
  border-radius:calc(var(--td-radius) + 6px);
  background:var(--td-white);
  scroll-margin-top:6.5rem;
}

.td-service__top{
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);
  gap:2.75rem;
  align-items:start;
}

.td-service__schematic{
  margin:0;
  padding:0;
  border:0;
  border-radius:16px;
  background:transparent;
}

.td-service__schematic svg{
  display:block;
  width:100%;
  height:auto;
}

.td-service__schematic figcaption{
  margin-top:1.1rem;
  font-family:"IBM Plex Mono","Consolas",monospace;
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--td-ink-soft);
}

.td-service__intro{
  display:grid;
  gap:1rem;
}

.td-service__intro h3{
  font-size:clamp(1.7rem, 2.6vw, 2.3rem);
  line-height:1.05;
  letter-spacing:-.024em;
}

.td-service__summary{
  margin:0;
  color:var(--td-blue-deep);
  font-weight:500;
  line-height:1.6;
}

.td-service__desc{
  margin:0;
  color:var(--td-ink-soft);
  line-height:1.75;
}

.td-service__cols{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:2rem;
  padding-top:2rem;
  border-top:1px solid var(--td-line-soft);
}

.td-service__col{
  display:grid;
  gap:1rem;
  align-content:start;
}

.td-service__col h4{
  margin:0;
  font-family:"IBM Plex Mono","Consolas",monospace;
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--td-ink-soft);
}

.td-service__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
}

/* ---------- Soluciones: fichas comerciales ---------- */

.td-soluciones-page #productos > .container{
  max-width:1080px;
}

.td-soluciones-page #productos .td-block__head{
  max-width:46rem;
}

.td-soluciones-page #productos .td-service{
  gap:0;
  padding:0;
  overflow:hidden;
  background:#fff;
}

.td-soluciones-page #productos .td-service + .td-service{
  margin-top:1.5rem!important;
}

.td-soluciones-page #productos .td-service__top{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:0;
}

.td-soluciones-page #productos .td-service__intro{
  align-self:stretch;
  gap:1rem;
  padding:2.5rem 2.5rem 2.65rem;
}

.td-soluciones-page #productos .td-service__intro .td-eyebrow{
  max-width:60ch;
  line-height:1.45;
}

.td-soluciones-page #productos .td-service__intro h3{
  max-width:19ch;
  font-size:clamp(1.7rem,2.6vw,2.35rem)!important;
}

.td-soluciones-page #productos .td-service__intro .td-service__summary{
  max-width:48ch;
  font-size:1rem;
}

.td-soluciones-page #productos .td-service__intro .td-tags{
  margin-top:auto;
  padding-top:.5rem;
}

.td-soluciones-page #productos .td-service__top > .td-service__col{
  align-self:stretch;
  gap:1rem;
  padding:2.5rem 2.5rem 2.65rem;
  border-left:1px solid var(--td-line-soft);
  background:linear-gradient(145deg,#f8f9fd,#f1f3f9);
}

.td-soluciones-page #productos .td-service__top > .td-service__col h4{
  color:var(--td-blue);
}

.td-soluciones-page #productos .td-service__top > .td-service__col .td-list{
  gap:.8rem;
}

.td-soluciones-page #productos .td-service__top > .td-service__col .td-service__desc{
  margin-top:auto!important;
  padding-top:1rem;
  border-top:1px solid var(--td-line-soft);
}

.td-soluciones-page #productos .td-service__top > .td-service__col .td-service__actions{
  padding-top:.2rem;
}

.td-soluciones-page #productos .td-btn{
  min-height:2.8rem;
  padding:.2rem 1.05rem;
  font-size:.82rem;
}

.td-soluciones-page #productos .td-chip{
  padding:.42rem .7rem;
  font-size:.6rem;
}

.td-soluciones-page #productos .td-service:nth-of-type(odd) .td-service__top > .td-service__col{
  background:linear-gradient(145deg,#f3f5ff,#eef1fa);
}

/* Ejemplo aplicado: panel oscuro de contraste */
.td-example{
  display:grid;
  gap:1.6rem;
  padding:2rem;
  border-radius:var(--td-radius);
  background:
    radial-gradient(circle at 85% 15%, rgba(35,55,228,.24), transparent 42%),
    linear-gradient(160deg, var(--td-navy), var(--td-navy-soft));
  color:#e8edff;
}

.td-example__head{
  display:grid;
  gap:.6rem;
  max-width:52rem;
}

.td-example__head h4{
  margin:0;
  font-family:"Bricolage Grotesque","Instrument Sans",sans-serif;
  font-size:1.3rem;
  font-weight:500;
  letter-spacing:-.015em;
  color:#ffffff;
}

.td-example__head p{
  margin:0;
  color:rgba(205,215,246,.82);
  line-height:1.7;
}

.td-example__results{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}

.td-example__result{
  position:relative;
  display:grid;
  gap:.45rem;
  align-content:start;
  padding:1.1rem 1.15rem 1.1rem 1.35rem;
  border:1px solid rgba(146,166,255,.16);
  border-radius:10px;
  background:rgba(255,255,255,.04);
}

.td-example__result::before{
  content:"+";
  position:absolute;
  top:.85rem;
  left:.55rem;
  color:var(--td-signal);
  font-weight:600;
}

.td-example__result p{
  margin:0;
  padding-left:.85rem;
  font-size:.9rem;
  line-height:1.55;
  color:#eef2ff;
}

/* ---------- CTA banner ---------- */

.td-cta{
  position:relative;
  overflow:hidden;
  padding:3rem;
  border-radius:calc(var(--td-radius) + 6px);
  background:
    radial-gradient(circle at 90% 10%, rgba(35,55,228,.32), transparent 45%),
    linear-gradient(150deg, var(--td-navy), var(--td-navy-soft));
  color:#e8edff;
}

.td-cta__grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:2rem;
  align-items:center;
}

.td-cta h2{
  max-width:22ch;
  font-size:clamp(1.7rem, 2.8vw, 2.5rem);
  line-height:1.08;
  color:#ffffff;
}

.td-cta p{
  margin:1rem 0 0;
  max-width:52ch;
  color:rgba(205,215,246,.82);
  line-height:1.7;
}

.td-cta .td-eyebrow{
  margin-bottom:1.1rem;
}

/* ---------- Acordeón FAQ ---------- */

.td-faq{
  display:grid;
  border-top:1px solid var(--td-line);
}

.td-faq__item{
  border-bottom:1px solid var(--td-line);
}

.td-faq__item summary{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.5rem .25rem;
  cursor:pointer;
  list-style:none;
  font-family:"Bricolage Grotesque","Instrument Sans",sans-serif;
  font-size:1.12rem;
  font-weight:500;
  letter-spacing:-.01em;
  color:var(--td-ink);
  transition:color .2s ease;
}

.td-faq__item summary::-webkit-details-marker{
  display:none;
}

.td-faq__item summary::after{
  content:"+";
  display:grid;
  place-items:center;
  flex-shrink:0;
  width:2rem;
  height:2rem;
  border:1px solid var(--td-line);
  border-radius:50%;
  font-family:"Instrument Sans",sans-serif;
  font-size:1.05rem;
  font-weight:400;
  color:var(--td-blue);
  transition:transform .3s cubic-bezier(.22,1,.36,1), background-color .2s ease, color .2s ease;
}

.td-faq__item summary:hover{
  color:var(--td-blue);
}

.td-faq__item[open] summary::after{
  transform:rotate(45deg);
  color:#ffffff;
  background:var(--td-blue);
  border-color:var(--td-blue);
}

.td-faq__item p{
  margin:0;
  padding:0 .25rem 1.6rem;
  max-width:64ch;
  color:var(--td-ink-soft);
  line-height:1.75;
}

/* ---------- Contacto ---------- */

.td-contact{
  display:grid;
  grid-template-columns:minmax(0, .92fr) minmax(0, 1.08fr);
  gap:1.5rem;
  align-items:stretch;
}

.td-contact__info{
  display:grid;
  gap:1.4rem;
  align-content:start;
  padding:2.5rem;
  border-radius:calc(var(--td-radius) + 6px);
  background:
    radial-gradient(circle at 88% 8%, rgba(35,55,228,.3), transparent 46%),
    linear-gradient(160deg, var(--td-navy), var(--td-navy-soft));
  color:#e8edff;
}

.td-contact__info h2{
  font-size:clamp(1.6rem, 2.4vw, 2.1rem);
  line-height:1.1;
  color:#ffffff;
}

.td-contact__channels{
  display:grid;
  gap:.65rem;
  margin:0;
  padding:0;
  list-style:none;
}

.td-contact__channels li{
  display:grid;
  gap:.15rem;
  padding:.85rem 0;
  border-bottom:1px solid rgba(146,166,255,.14);
}

.td-contact__channels li:last-child{
  border-bottom:0;
}

.td-contact__channels small{
  font-family:"IBM Plex Mono","Consolas",monospace;
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(160,175,220,.75);
}

.td-contact__channels a,
.td-contact__channels span{
  color:#eef2ff;
  font-weight:500;
}

.td-contact__channels a:hover{
  color:#ffffff;
  text-decoration:underline;
  text-underline-offset:3px;
}

.td-contact__brief{
  display:grid;
  gap:.8rem;
  padding-top:1.4rem;
  border-top:1px solid rgba(146,166,255,.16);
}

.td-contact__brief h3{
  font-size:1.05rem;
  color:#ffffff;
}

.td-contact__form{
  display:grid;
  gap:1.4rem;
  padding:2.5rem;
  border:1px solid var(--td-line-soft);
  border-radius:calc(var(--td-radius) + 6px);
  background:var(--td-white);
}

.td-contact__form > h2{
  font-size:1.5rem;
}

.td-contact__form > p{
  margin:0;
  color:var(--td-ink-soft);
}

/* ---------- Metodología (about) ---------- */

.td-method{
  display:grid;
  grid-template-columns:minmax(0, .85fr) minmax(0, 1.15fr);
  gap:3.5rem;
  align-items:start;
}

.td-steps{
  display:grid;
  gap:1.75rem;
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:step;
}

.td-steps__item{
  position:relative;
  display:grid;
  gap:.4rem;
  padding:1.4rem 0 0 3.4rem;
  border-top:1px solid var(--td-line);
  counter-increment:step;
}

.td-steps__item::before{
  content:"";
  position:absolute;
  top:-4px;
  left:0;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--td-blue);
}

.td-steps__num{
  position:absolute;
  top:1.15rem;
  left:0;
  font-family:"IBM Plex Mono","Consolas",monospace;
  font-size:.82rem;
  letter-spacing:.1em;
  color:var(--td-blue);
}

.td-steps__item span{
  font-size:1.02rem;
  font-weight:500;
  color:var(--td-ink);
  line-height:1.5;
}

/* ---------- Canales (about) ---------- */

.td-channels{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:.9rem;
}

.td-channels a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:3.75rem;
  padding:1rem 1.2rem;
  border:1px solid var(--td-line-soft);
  border-radius:10px;
  background:var(--td-white);
  font-weight:500;
  color:var(--td-ink);
  transition:border-color .2s ease, transform .2s ease;
}

.td-channels a::after{
  content:"↗";
  color:var(--td-blue);
  font-size:.9rem;
}

.td-channels a:hover,
.td-channels a:focus-visible{
  border-color:var(--td-blue);
  transform:translateY(-2px);
}

/* ---------- Legal ---------- */

.td-legal{
  max-width:44rem;
  display:grid;
  gap:1.3rem;
}

.td-legal h1{
  font-size:clamp(2rem, 3.6vw, 3rem);
  line-height:1.08;
}

.td-legal p{
  margin:0;
  color:var(--td-ink-soft);
  line-height:1.8;
}

.td-legal a{
  color:var(--td-blue);
  text-decoration:underline;
  text-underline-offset:3px;
}

/* ---------- Responsive ---------- */

@media (max-width: 1080px){
  .td-page-hero__grid,
  .td-service__top,
  .td-contact,
  .td-method{
    grid-template-columns:1fr;
  }

  .td-page-hero__visual{
    max-width:560px;
  }

  .td-soluciones-page #productos .td-service__top{
    grid-template-columns:1fr;
  }

  .td-soluciones-page #productos .td-service__top > .td-service__col{
    border-top:1px solid var(--td-line-soft);
    border-left:0;
  }

  .td-cards--3,
  .td-example__results,
  .td-channels{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px){
  .td-page-hero{
    padding:4.5rem 0 3.5rem;
  }

  .td-block{
    padding:4rem 0;
  }

  .td-block__head{
    margin-bottom:2.25rem;
  }

  .td-cards,
  .td-cards--3,
  .td-service__cols,
  .td-example__results,
  .td-channels{
    grid-template-columns:1fr;
  }

  .td-service{
    padding:1.5rem;
    gap:1.75rem;
  }

  .td-cta{
    padding:2rem;
  }

  .td-cta__grid{
    grid-template-columns:1fr;
  }

  .td-page .button,
  .td-btn{
    width:100%;
  }

  .td-page-hero .td-eyebrow{
    width:100%;
    min-width:0;
    font-size:.64rem;
    letter-spacing:.1em;
  }

  .td-service__actions{
    display:grid;
  }

  .td-soluciones-page #productos .td-service__intro,
  .td-soluciones-page #productos .td-service__top > .td-service__col{
    padding:1.5rem;
  }

  .td-soluciones-page #productos .td-service__intro .td-tags{
    margin-top:0;
  }
}

/* ---------- Accesibilidad: movimiento reducido ---------- */

@media (prefers-reduced-motion: reduce){
  .td-page .reveal-on-scroll{
    opacity:1;
    transform:none;
    transition:none;
  }

  .td-card:hover,
  .td-channels a:hover{
    transform:none;
  }
}
