/* Ajustes finos de composición: ritmo tipográfico y bloques que respiran.
   Corrige quiebres de texto y aprieta detalles del plan destacado. */

/* --- Plan destacado --- */
.featured-plan-copy .plan-kicker {
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 6px 12px;
  border: 1px solid rgba(230, 0, 18, .18);
  border-radius: 999px;
  background: rgba(230, 0, 18, .05);
  font-size: .68rem !important;
  letter-spacing: .12em;
}
.featured-plan-copy h3 {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 10px 0 6px;
  border: 0;
}
.featured-plan-copy h3 small {
  font-size: clamp(1rem, 1.4vw, 1.35rem);
  color: var(--pv-red, #e60012);
  letter-spacing: -.02em;
}
.featured-plan-copy > ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
.featured-plan-copy > ul li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 13px;
  border: 1px solid var(--pv-hair, rgba(20, 24, 30, .07));
  border-radius: 999px;
  background: #fff;
  color: #3f4854;
  font: 600 .72rem/1.2 'DM Sans', sans-serif;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(16, 22, 30, .04);
}
.featured-plan-copy > ul li::before {
  content: "✓";
  color: var(--pv-red, #e60012);
  font-weight: 800;
  font-size: .78rem;
}
.featured-plan-copy > ul li::marker { content: none; }

/* --- Selector de velocidad: la pastilla activa no debe recortarse --- */
.plan-speed-tabs { overflow: visible !important; padding-bottom: 14px; }
.plan-speed-tabs button {
  transition: transform .3s var(--pv-ease, ease), box-shadow .3s var(--pv-ease, ease);
}
.plan-speed-tabs button[aria-selected="true"],
.plan-speed-tabs button.is-active {
  box-shadow: 0 14px 30px -16px rgba(230, 0, 18, .75);
}
.plan-speed-tabs button:not([aria-selected="true"]):hover { transform: translateY(-2px); }

/* --- Bloques de confianza --- */
.plan-trust > * {
  transition: transform .3s var(--pv-ease, ease), box-shadow .3s var(--pv-ease, ease);
}
.plan-trust > *:hover { transform: translateY(-3px); }

/* --- Ritmo tipográfico general --- */
main h2 { letter-spacing: -.035em; }
main h3 { letter-spacing: -.02em; }
main p { max-width: 68ch; }
main p:where([style*="text-align:center"], [style*="text-align: center"]),
main :is(.showcase-heading, .solutions-intro, .isp-heading, .section-head, .plan-selector, .connection-solutions, .process, .contact, .support) > p,
main :is(.showcase-heading, .solutions-intro, .isp-heading, .section-head, .plan-selector, .connection-solutions, .process, .contact, .support) p { margin-inline: auto !important; }
main li { text-wrap: pretty; }

/* --- Listas de puntos con viñeta de fibra --- */
.isp-card-points li,
.showcase-grid li { position: relative; }
.isp-card-points li::marker { color: var(--pv-red, #e60012); }

/* --- Fotos: encuadre uniforme --- */
.plan-device, .plan-visual, .service-media, .isp-media { overflow: hidden; }

/* --- Enlaces de texto en contenido --- */
main a:not(.button):not(.tab):not([class*="plan"]):not(.tv-guide) {
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

@media (max-width: 700px) {
  .featured-plan-copy > ul li { font-size: .68rem; padding: 6px 11px; }
  .featured-plan-copy .plan-kicker { white-space: normal; }
}
