html {
  scroll-behavior: smooth;
}

/* =========================================
   Estilos del Hero Section
   ========================================= */

.hero-tvc {
  position: relative;
  width: 100%;
  /* --- CAMBIO PRINCIPAL --- */
  /* Restamos los 108px del navbar al 100% de la altura del viewport */
  min-height: calc(100dvh - 108px);
  /* ------------------------ */

  display: flex;
  align-items: center;
  justify-content: center;
  /* Reemplaza con la ruta real de tu imagen */
  background-image: url("../assets/internet.png");
  background-size: cover;
  background-position: bottom;
  background-position: 50% 70%;
  background-repeat: no-repeat;
  overflow: hidden;
}

/* Capa para oscurecer el fondo */
.hero-tvc .hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(
    0,
    0,
    0,
    0.529
  ); /* 0.65 es la opacidad, modifícala a tu gusto */
  z-index: 1;
}

/* Contenedor del texto y botón */
.hero-tvc .hero-content {
  position: relative;
  z-index: 2; /* Para que quede por encima del overlay */
  text-align: center;
  padding: 0 20px;
  transform: translateY(-10px);
}

/* Tipografía del título */
.hero-tvc .hero-content .hero-title {
  color: #ffffff;
  /* Uso de clamp para que el texto sea responsive automáticamente */
  font-size: clamp(2.5rem, 6vw, 5.5rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
}

.hero-tvc .hero-content .hero-title .text-highlight {
  color: var(--secundario); /* El tono amarillo/dorado de la imagen */
}

/* =========================================
        Estilos del Botón Llamativo
========================================= */

.hero-tvc .hero-content .btn-llamativo {
  display: inline-block;
  padding: 16px 48px;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--secundario);
  text-decoration: none;
  letter-spacing: 1px;

  /* Efecto Glassmorphism del diseño original */
  background-color: var(--secundario-desvanecido);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);

  border: 2px solid var(--secundario);
  border-radius: 50px;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* Transición con un pequeño rebote */
}

/* El Hover interactivo */
.hero-tvc .hero-content .btn-llamativo:hover {
  background-color: var(--secundario);
  color: #ffffff; /* Texto oscuro para contrastar con el fondo amarillo */
  transform: translateY(-6px) scale(1.05); /* Se levanta y se agranda un poco */
  box-shadow: 0 15px 25px rgba(51, 113, 248, 0.4); /* Resplandor dorado debajo */
  border-color: var(--secundario);
}

/* Efecto al hacer clic */
.hero-tvc .hero-content .btn-llamativo:active {
  transform: translateY(2px) scale(0.98);
  box-shadow: 0 5px 10px rgba(248, 177, 51, 0.3);
}

/* =========================================
   Sección Planes de Internet
   ========================================= */

.seccion-planes {
  padding: 40px 5%;
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}

.seccion-planes .planes-header {
  margin-bottom: 60px;
}

.seccion-planes .planes-header h2 {
  font-size: clamp(40px, 5vw, 60px);
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 20px;
}

/* Reutilizamos el verde que ya tienes o forzamos este específico */
.seccion-planes .planes-header h2 .highlight-green {
  color: var(--secundario); /* El verde claro de la imagen */
}

.seccion-planes .planes-header p {
  font-size: clamp(16px, 2vw, 22px);
  color: var(--gris);
  max-width: 1200px;
  margin: 0 auto;
}

/* =========================================
 Grid de Planes
 ========================================= */

.seccion-planes .planes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  align-items: stretch; /* Asegura que todas las tarjetas midan lo mismo de alto */
}

/* =========================================
 Diseño Base de la Tarjeta
 ========================================= */

.seccion-planes .plan-card {
  background-color: #fff;
  border: 3px solid #e5e7eb; /* Borde por defecto */
  border-radius: 40px;
  padding: 50px 30px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.3s ease;
}

.seccion-planes .plan-card:hover {
  transform: translateY(-10px); /* Pequeño salto al pasar el mouse */
}

/* Títulos con manchas de color detrás */
.seccion-planes .plan-card .plan-title-wrapper {
  position: relative;
  margin-bottom: 30px;
  z-index: 1;
}

.seccion-planes .plan-card .plan-title-wrapper h3 {
  font-size: 2.5rem;
  font-weight: 700;
  margin: 0;
  color: #000;
}

/* La forma redondeada detrás del texto */
.seccion-planes .plan-card .plan-title-wrapper::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  border-radius: 20px;
  z-index: -1; /* Lo manda detrás del texto */
}

/* Info del Plan (Velocidad y Precio) */
.seccion-planes .plan-card .plan-info {
  margin-bottom: 30px;
}

.seccion-planes .plan-card .plan-info h4 {
  font-size: 2.2rem;
  font-weight: 400;
  color: #1a1a1a;
  margin-bottom: 10px;
}

.seccion-planes .plan-card .plan-info .plan-price {
  font-size: 2.2rem;
  font-weight: 500;
  margin: 0;
}

/* Extras y Logos de Streaming */
.seccion-planes .plan-card .plan-extras {
  margin-bottom: 30px;
  width: 100%;
}

.seccion-planes .plan-card .plan-extras p {
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 15px;
}

.seccion-planes .plan-card .plan-extras .streaming-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-weight: bold;
}

.seccion-planes .plan-card .plan-extras .streaming-logos .badge-tvc-light {
  background-color: var(--primario-fondotvc);
  color: var(--primario);
  padding: 15px 15px;
  border-radius: 50%; /* Círculo perfecto */
  font-weight: 800;
  font-size: 1.5rem;
}

.seccion-planes .plan-card .plan-extras .streaming-logos .plus-sign,
.seccion-planes .plan-card .plan-extras .streaming-logos .or-sign {
  font-size: 1.2rem;
  color: #000000;
}

.seccion-planes .plan-card .plan-extras .streaming-logos .mini-logo {
  height: 70px; /* Ajusta según el tamaño de tus iconos de Netflix/Disney */
  object-fit: contain;
}

.seccion-planes .plan-card .plan-desc {
  font-size: 0.95rem;
  color: #4a4a4a;
  line-height: 1.5;
  margin-bottom: 25px;
}

/* Espaciador flexible para empujar el botón al final de la tarjeta */
.seccion-planes .plan-card .spacer {
  flex-grow: 1;
}

/* Botón Base */
.seccion-planes .plan-card .btn-plan {
  display: block;
  width: 90%;
  padding: 15px 0;
  border-radius: 30px;
  color: #fff;
  font-weight: 700;
  font-size: 1.2rem;
  text-decoration: none;
}

.seccion-planes .plan-card .btn-plan:hover {
  opacity: 0.85;
}

/* =========================================
 Variaciones de Color (Bronce, Plata, Oro)
 ========================================= */

/* BRONCE */
.card-bronce {
  border-color: var(--bronce);
}
.card-bronce .plan-title-wrapper::before {
  background-color: var(--bronce-desvanecido);
}
.card-bronce .btn-plan {
  background-color: var(--bronce);
}

/* PLATA */
.card-plata {
  border-color: var(--plata);
}
.card-plata .plan-title-wrapper::before {
  background-color: var(--plata-desvanecido);
}
.card-plata .btn-plan {
  background-color: var(--plata);
  color: #fff;
}

/* ORO */
.card-oro {
  border-color: var(--oro);
}
.card-oro .plan-title-wrapper::before {
  background-color: var(--oro-desvanecido);
}
.card-oro .btn-plan {
  background-color: var(--oro);
}

/* =========================================
 Responsive Planes
 ========================================= */
@media (max-width: 992px) {
  .seccion-planes .planes-grid {
    grid-template-columns: 1fr; /* Una columna en celulares */
    gap: 40px;
    padding: 0 20px;
  }
}

/* =========================================
   Sección Características (Fibra)
   ========================================= */

.seccion-caracteristicas {
  padding: 80px 5%;
  max-width: 1200px;
  margin: 0 auto;
}

.seccion-caracteristicas .caracteristicas-header {
  text-align: center;
  margin-bottom: 60px;
}

.seccion-caracteristicas .caracteristicas-header h2 {
  font-size: clamp(40px, 5vw, 60px);
  font-weight: 400;
  color: #1a1a1a;
  line-height: 1.2;
}

.seccion-caracteristicas .caracteristicas-header h2 .highlight-blue {
  color: var(--secundario);
}

/* =========================================
 Grid de Características
 ========================================= */

.seccion-caracteristicas .caracteristicas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  align-items: stretch;
}

/* =========================================
Diseño de las Tarjetas de Características
========================================= */
.seccion-caracteristicas .caracteristicas-grid .feature-card {
  background-color: #f8f9fa; /* Un gris súper clarito según tu imagen */
  border-radius: 40px;
  padding: 40px 30px;
  display: flex;
  flex-direction: column;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.seccion-caracteristicas .caracteristicas-grid .feature-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
}

/* Iconos superiores */
.seccion-caracteristicas .caracteristicas-grid .feature-card .feature-icon {
  margin-bottom: 25px;
  height: 80px; /* Altura fija para que todos los iconos se alineen */
  display: flex;
  place-content: center;
}

.seccion-caracteristicas .caracteristicas-grid .feature-card .feature-icon svg {
  height: 100%;
  width: auto;
  object-fit: contain;
  color: var(--secundario);
}

/* Textos de la tarjeta */
.seccion-caracteristicas .caracteristicas-grid .feature-card h3 {
  font-size: 1.8rem;
  font-weight: 500;
  color: #000;
  margin-bottom: 20px;
  line-height: 1.2;
}

.seccion-caracteristicas .caracteristicas-grid .feature-card .feature-desc {
  font-size: 0.95rem;
  color: #4a4a4a;
  line-height: 1.5;
  margin-bottom: 30px;
  flex-grow: 1; /* Empuja la sección "Incluido con" hacia abajo */
}

/* =========================================
Sección "Incluido con" (Badges)
========================================= */
.seccion-caracteristicas .caracteristicas-grid .feature-card .feature-included {
  margin-top: auto;
}

.seccion-caracteristicas
  .caracteristicas-grid
  .feature-card
  .feature-included
  .included-label {
  font-size: 0.85rem;
  color: #1a1a1a;
  margin-bottom: 10px;
}

.seccion-caracteristicas
  .caracteristicas-grid
  .feature-card
  .feature-included
  .badges-row {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
}

/* Estilo base para las etiquetas con mancha de color */
.seccion-caracteristicas
  .caracteristicas-grid
  .feature-card
  .feature-included
  .badges-row
  .badge-plan {
  position: relative;
  font-weight: 700;
  font-size: 1.1rem;
  color: #000;
  z-index: 1;
}

.seccion-caracteristicas
  .caracteristicas-grid
  .feature-card
  .feature-included
  .badges-row
  .badge-plan::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70%; /* La mancha */
  height: 150%;
  border-radius: 50%;
  z-index: -1;
}

.seccion-caracteristicas
  .caracteristicas-grid
  .feature-card
  .feature-included
  .badges-row
  .badge-bronce::before {
  background-color: var(--bronce-desvanecido);
}

.seccion-caracteristicas
  .caracteristicas-grid
  .feature-card
  .feature-included
  .badges-row
  .badge-plata::before {
  background-color: var(--plata-desvanecido);
}

.seccion-caracteristicas
  .caracteristicas-grid
  .feature-card
  .feature-included
  .badges-row
  .badge-oro::before {
  background-color: var(--oro-desvanecido);
}

/* =========================================
 Responsive Características
 ========================================= */
@media (max-width: 992px) {
  .seccion-caracteristicas .caracteristicas-grid {
    display: grid; /* Reafirmamos el display */
    grid-template-columns: minmax(
      0,
      1fr
    ); /* minmax(0, 1fr) fuerza a que no desborde y respete 1 sola columna */
    gap: 30px;
    padding: 40px 20px; /* Añadí padding arriba y abajo para que las tarjetas no peguen con los bordes de la caja azul */
  }
}

.mt-15 {
  margin-top: 15px;
}

/* =========================================
   Sección Test Velocidad
   ========================================= */

.seccion-velocidad {
  padding: 60px 20px;
  max-width: 1200px;
  display: flex;
  justify-self: center;
  font-family: Arial, sans-serif; /* Cambia a la tipografía de tu web */
}

.seccion-velocidad .contenedor-velocidad {
  display: flex;
  flex-wrap: wrap;
  align-items: center; /* Centra ambos elementos verticalmente */
  width: 100%;
  gap: 10px; /* Espacio entre la caja azul y el test */
}

/* --- CAJA AZUL (Izquierda) --- */
.seccion-velocidad .contenedor-velocidad .caja-texto-azul {
  flex: 1 1 400px; /* Toma la mitad del espacio disponible */
  background-color: #5c7bfa; /* Color azul extraído de la imagen */
  color: #ffffff;
  padding: 80px 50px;
  border-radius: 40px; /* Bordes muy redondeados como en la foto */
  box-sizing: border-box;
  margin-bottom: 20px;
}

.seccion-velocidad .contenedor-velocidad .caja-texto-azul h2 {
  font-size: 2.8rem;
  font-weight: bold;
  margin-top: 0;
  margin-bottom: 20px;
  line-height: 1.2;
}

.seccion-velocidad .contenedor-velocidad .caja-texto-azul p {
  font-size: 1.3rem;
  line-height: 1.5;
  margin: 0;
  opacity: 0.9; /* Suaviza un poco el blanco del texto secundario */
}

/* --- CAJA DEL WIDGET (Derecha) --- */
.seccion-velocidad .contenedor-velocidad .caja-widget {
  flex: 1 1 400px; /* Toma la otra mitad del espacio */
  box-sizing: border-box;
  width: 80%;
}

/* =========================================
Estilos del Widget OpenSpeedTest
========================================= */

.seccion-velocidad .contenedor-velocidad .caja-widget .ost-widget-wrapper {
  overflow: hidden !important;
  display: flex;
  flex-direction: column;
  width: 100%;
  align-items: center;
}

.seccion-velocidad
  .contenedor-velocidad
  .caja-widget
  .ost-widget-wrapper
  .ost-iframe-container {
  width: 400px;
  min-height: 360px;
  position: relative;
}

.seccion-velocidad
  .contenedor-velocidad
  .caja-widget
  .ost-widget-wrapper
  .ost-iframe-container
  iframe {
  border: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  min-height: 360px;
  overflow: hidden !important;
}

.seccion-velocidad
  .contenedor-velocidad
  .caja-widget
  .ost-widget-wrapper
  .ost-credits {
  color: var(--gris);
  width: 100%;
  text-align: center;
}

.seccion-velocidad
  .contenedor-velocidad
  .caja-widget
  .ost-widget-wrapper
  .ost-credits
  a {
  color: #666;
  text-decoration: underline;
}

/* --- DISEÑO RESPONSIVE (Móviles y Tablets) --- */
@media (max-width: 992px) {
  .seccion-velocidad .contenedor-velocidad {
    gap: 30px;
    flex-direction: column; /* Apila la caja azul arriba y el test abajo */
  }

  .seccion-velocidad .contenedor-velocidad .caja-texto-azul {
    flex: 1 1 200px; /* Toma la mitad del espacio disponible */
    padding: 50px 30px;
    border-radius: 30px;
    text-align: center; /* Centra el texto en móviles para mejor lectura */
  }

  .seccion-velocidad .contenedor-velocidad .caja-texto-azul h2 {
    font-size: 2.2rem;
  }

  .seccion-velocidad .contenedor-velocidad .caja-texto-azul p {
    font-size: 1.1rem;
  }

  .seccion-velocidad .contenedor-velocidad .caja-widget {
    transform: scale(120%);
  }

  .seccion-velocidad .contenedor-velocidad .caja-widget .ost-iframe-container {
    /* ¡El truco mágico! 
     Cambiamos la proporción a un cuadrado para que el círculo crezca */
    padding-bottom: 110%;
    min-height: 420px;
    /* Opcional: Centrar los créditos en móvil */
  }
}
