/* --- Global Styles --- */
:root {
  --primary-red: #e4003a; /* Aproximado del diseño */
  --dark-bg-1: #4a1a1f; /* Fondo rojo oscuro sección 1 */
  --dark-bg-start: #1a1a2e; /* Azul/morado oscuro inicio gradiente */
  --dark-bg-end: #2a1a4e; /* Azul/morado oscuro fin gradiente */
  --text-light: #ffffff;
  --text-secondary: #cccccc;
  --gradient-1-start: #e4003a;
  --gradient-1-end: #9c27b0; /* Morado */
  --gradient-2-start: #9c27b0;
  --gradient-2-end: #e4003a;
  --bar-color: #4caf50; /* Verde para barras de comisión */
  --box-bg: rgba(
    40,
    40,
    70,
    0.5
  ); /* Fondo semi-transparente para cajas oscuras */
  --light-box-bg: rgba(200, 200, 220, 0.15); /* Fondo caja clara "An ally..." */
  --border-radius: 25px; /* Radio de borde estándar */
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: "Poppins", sans-serif; /* Fuente base */
  background-color: var(--dark-bg-start); /* Fondo por defecto */
  color: var(--text-light);
  line-height: 1.6;
  overflow-x: hidden; /* Evitar scroll horizontal */
}

.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
  transition: color 0.3s ease;
}

ul {
  list-style: none;
}

h1,
h2,
h3 {
  margin-bottom: 1rem;
  font-weight: 700;
}

h1 {
  font-size: 2.8rem;
}
h2 {
  font-size: 2.2rem;
}
h3 {
  font-size: 1.5rem;
}

p {
  margin-bottom: 1rem;
  color: var(--text-secondary);
}

section {
  padding: 60px 0;
}

.text-center {
  text-align: center;
}

.script-font {
  font-family: "Dancing Script", cursive; /* Fuente script para 'Charmss' */
  font-weight: 700;
  color: var(--primary-red);
}

/* --- Header --- */
header {
  background-color: #000000;
  padding: 15px 0;
  position: sticky; /* Opcional: hacer que se quede fijo arriba */
  top: 0;
  z-index: 1000;
  border-bottom: 1px solid #333; /* Pequeño borde si se desea */
}

header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo img {
  height: 40px; /* Ajusta según el tamaño de tu logo */
  width: auto;
}
/* Estilo si usas texto para el logo */
/* .logo { font-size: 1.8em; font-weight: bold; color: var(--text-light); } */
/* .logo span { margin-left: 5px; } */

nav ul {
  display: flex;
}

nav ul li {
  margin-left: 30px;
}

nav ul li a {
  color: var(--text-light);
  font-weight: bold;
  padding-bottom: 5px;
  border-bottom: 2px solid transparent;
}

nav ul li a:hover,
nav ul li a.active {
  color: var(--primary-red);
  border-bottom-color: var(--primary-red); /* Subrayado sutil en activo/hover */
}

/* --- Fondos de Sección --- */
.section-bg-1 {
  background-color: var(--dark-bg-1);
  border-radius: 0 0 var(--border-radius) var(--border-radius); /* Bordes inferiores redondeados */
  margin-bottom: 30px; /* Espacio antes de la siguiente sección */
  padding-bottom: 80px; /* Más padding inferior para el enlace */
  position: relative; /* Para el enlace */
}
.section-bg-1 .website-link {
  margin-top: 40px;
  font-size: 1.2rem;
  color: var(--text-light);
}

.section-bg-2 {
  background: linear-gradient(135deg, var(--dark-bg-start), var(--dark-bg-end));
}

/* --- Contenedores Redondeados --- */
.rounded-box {
  padding: 30px;
  border-radius: var(--border-radius);
  margin-bottom: 20px; /* Espacio por defecto debajo */
}

.dark-gradient-box {
  background: var(--box-bg);
  backdrop-filter: blur(5px); /* Efecto cristal esmerilado (opcional) */
}

.light-box {
  background: var(--light-box-bg);
  backdrop-filter: blur(5px);
}

.gradient-box-1 {
  background: linear-gradient(
    135deg,
    var(--gradient-1-start),
    var(--gradient-1-end)
  );
  color: var(--text-light);
}
.gradient-box-1 h2 {
  color: var(--text-light);
} /* Asegurar texto blanco */

.gradient-box-2 {
  background: linear-gradient(
    135deg,
    var(--gradient-2-start),
    var(--gradient-2-end)
  );
  color: var(--text-light);
}
.gradient-box-2 h3 {
  color: var(--text-light);
  text-align: center;
}

.full-width-box {
  max-width: 800px; /* Limitar ancho en cajas de título */
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 30px;
}

/* --- Layout de Dos Columnas --- */
.two-columns {
  display: flex;
  align-items: center; /* Alinear verticalmente al centro */
  gap: 40px; /* Espacio entre columnas */
}

.two-columns > div {
  /* Cada columna */
  flex: 1; /* Ocupan el mismo espacio */
}

.column-image img.rounded-image,
.column-image-group img.rounded-image {
  border-radius: var(--border-radius);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); /* Sombra sutil */
}

.column-image-group {
  display: flex;
  flex-direction: column;
  align-items: center; /* Centrar imagen y caja inferior */
  gap: 20px;
}

.column-text ul {
  list-style: disc; /* Usar bullets estándar temporalmente */
  padding-left: 20px; /* Indentación para bullets */
  margin-bottom: 1rem;
}

.column-text ul li {
  margin-bottom: 0.8rem;
  color: var(--text-secondary);
}

/* --- Sección Comisión --- */
.column-graphic {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 300px; /* Altura mínima para el gráfico */
}

.commission-tier {
  margin-bottom: 1.5rem;
}
.commission-tier span {
  display: block;
  margin-bottom: 5px;
  color: var(--text-light);
  font-weight: bold;
}
.commission-tier .arrow {
  color: var(--primary-red);
  margin-left: 5px;
}

.commission-bar {
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: 5px;
  overflow: hidden;
  height: 20px;
}

.commission-fill {
  background-color: var(--bar-color);
  height: 100%;
  border-radius: 5px 0 0 5px; /* Redondear solo lado izquierdo */
  display: flex;
  align-items: center;
  justify-content: flex-end; /* Alinear texto a la derecha */
  padding-right: 10px;
  color: white;
  font-size: 0.8em;
  font-weight: bold;
  white-space: nowrap; /* Evitar que el texto se rompa */
  transition: width 0.5s ease-in-out; /* Animación suave */
}

/* --- Sección Features --- */
#features .container > p {
  /* Párrafos directamente dentro del container */
  max-width: 700px;
  margin: 20px auto 40px auto; /* Centrar y espaciar */
  color: var(--text-secondary);
}

.features-grid {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 30px;
  margin-bottom: 40px;
}

.feature-item {
  flex-basis: calc(
    16.66% - 30px
  ); /* Aprox. 6 por fila, ajustar según necesidad */
  min-width: 120px; /* Ancho mínimo */
  text-align: center;
}

.icon-circle {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  margin: 0 auto 10px auto;
  display: flex;
  justify-content: center;
  align-items: center;
  background: linear-gradient(
    135deg,
    var(--gradient-1-start),
    var(--gradient-1-end)
  ); /* Usar un degradado */
  /* ¡NECESITAS AÑADIR LOS ICONOS! */
  /* Ejemplo con background image (requiere iconos SVG/PNG): */
  /* background-size: 50%; background-repeat: no-repeat; background-position: center; */
}
/* Ejemplo: .icon-live { background-image: url('images/icon-live.svg'); } */
/* Alternativa: Usar Font Awesome o iconos SVG inline */

.feature-item span {
  font-size: 0.9rem;
  color: var(--text-secondary);
}

/* --- Sección Preview --- */
.device-mockups {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
  margin: 30px 0;
}

.mockup {
  flex: 0 1 auto;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
  transition: transform 0.3s ease;
}

.mockup-laptop {
  width: 65%;
}

.mockup-tablet {
  width: 45%;
}

.mockup-phone {
  width: 30%;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .device-mockups {
    flex-direction: column;
    gap: 20px;
  }

  .mockup {
    width: 90%;
    margin: 0 auto;
  }

  .mockup-laptop {
    width: 90%;
  }

  .mockup-tablet {
    width: 70%;
  }

  .mockup-phone {
    width: 50%;
  }
}

/* --- Hero Section --- */
#hero {
  background-color: var(--dark-bg-1); /* Mantiene el fondo rojo */
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(5px);
  border-radius: 8px;
  padding: 2rem;
  margin: 1rem auto;
  position: relative;
}

#hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  pointer-events: none;
}

/* --- Responsive Design --- */
@media (max-width: 992px) {
  h1 {
    font-size: 2.4rem;
  }
  h2 {
    font-size: 1.9rem;
  }
  h3 {
    font-size: 1.3rem;
  }

  .features-grid {
    gap: 20px;
  }
  .feature-item {
    flex-basis: calc(33.33% - 20px);
  } /* 3 por fila */

  .device-mockups {
    height: 350px;
  }
}

@media (max-width: 768px) {
  header .container {
    flex-direction: column;
    gap: 15px;
  }
  nav ul {
    justify-content: center;
  }
  nav ul li {
    margin: 0 15px;
  }

  .two-columns {
    flex-direction: column; /* Apilar columnas */
    text-align: center; /* Centrar texto en móvil */
  }
  .two-columns > div {
    width: 100%; /* Ocupar todo el ancho */
    max-width: 500px; /* Limitar ancho máximo en modo apilado */
    margin: 0 auto; /* Centrar el bloque */
  }
  /* Invertir orden visual en móvil si es necesario (ej: imagen arriba) */
  #benefits .column-image {
    order: -1;
  }
  #commission .column-graphic {
    order: -1;
    min-height: auto;
  }
  #about-system .column-image-group {
    order: -1;
  }
  #cta .column-image {
    order: -1;
  }

  .column-text ul {
    padding-left: 0;
    list-style-position: inside;
  } /* Ajustar bullets */

  .star-icon {
    font-size: 28rem;
    font-weight: bold;
    margin-top: 80px;
    line-height: 0.5;
  }

  .features-grid {
    justify-content: space-around;
  }
  .feature-item {
    flex-basis: calc(50% - 20px);
  } /* 2 por fila */

  .device-mockups {
    height: auto;
    position: static;
    margin-bottom: 30px;
  }
  .mockup {
    position: static;
    transform: none;
    max-width: 80%;
    margin: 15px auto;
    display: block;
  }
  .mockup-laptop {
    max-width: 90%;
  }
  .mockup-tablet {
    max-width: 70%;
  }
  .mockup-phone {
    max-width: 50%;
  }

  .join-box h2 {
    font-size: 1.6rem;
  }
  .cta-box h2 {
    flex-direction: column;
    text-align: center;
  }
}

@media (max-width: 480px) {
  h1 {
    font-size: 2rem;
  }
  h2 {
    font-size: 1.6rem;
  }

  nav ul li {
    margin: 0 10px;
  }
  nav ul li a {
    font-size: 0.9rem;
  }

  .feature-item {
    flex-basis: calc(50% - 15px);
  }
  .icon-circle {
    width: 60px;
    height: 60px;
  }

  .rounded-box {
    padding: 20px;
  }

  .commission-fill {
    font-size: 0.7em;
    padding-right: 5px;
  }
}

/* --- Footer Styles --- */
footer {
  background-color: #2f2f2f; /* Gris oscuro como en la imagen */
  color: var(--text-secondary); /* Usar variable de texto secundario */
  padding: 50px 0 30px 0; /* Padding arriba/abajo */
  font-size: 0.9rem; /* Tamaño de fuente base para el footer */
  line-height: 1.7;
}

.footer-content {
  display: flex;
  justify-content: space-between; /* Distribuye el espacio entre columnas */
  flex-wrap: wrap; /* Permite que las columnas se apilen en pantallas pequeñas */
  gap: 40px; /* Espacio entre columnas */
}

.footer-col {
  flex: 1; /* Intenta que las columnas ocupen espacio similar */
  min-width: 250px; /* Ancho mínimo antes de apilarse */
}

/* Columna 1: About */
.footer-about .footer-logo img {
  max-height: 35px; /* Ajusta el tamaño del logo del footer */
  margin-bottom: 20px;
}
/* Estilo si usas texto para el logo del footer */
/* .footer-about .footer-logo { font-size: 1.5em; font-weight: bold; color: var(--text-light); margin-bottom: 20px; } */
/* .footer-about .footer-logo span { margin-left: 5px; } */

.footer-links ul {
  display: flex;
  flex-wrap: wrap; /* Permitir que los enlaces se ajusten */
  gap: 5px 15px; /* Espacio vertical y horizontal entre enlaces */
  margin-bottom: 20px;
}

.footer-links ul li a {
  color: var(--text-secondary);
  transition: color 0.3s ease;
}

.footer-links ul li a:hover {
  color: var(--text-light);
  text-decoration: underline;
}

/* Añadir separadores (opcional, como en la imagen original) */
/* .footer-links ul li:not(:last-child)::after {
    content: '·';
    margin-left: 15px;
    color: var(--text-secondary);
    display: inline-block; 
} */

.footer-about .description {
  margin-bottom: 15px;
}

.footer-about .copyright {
  font-size: 0.8rem;
  color: #a0a0a0; /* Un gris más claro para el copyright */
}

.footer-about .copyright a {
  color: #f39c12; /* Color naranja/amarillo como en la imagen */
  text-decoration: none;
}
.footer-about .copyright a:hover {
  text-decoration: underline;
}

/* Columna 2 y 3: Títulos y Contenido */
.footer-col h4 {
  font-size: 1.1rem;
  color: var(--text-light);
  margin-bottom: 20px;
  font-weight: 600; /* Un poco más de peso */
  text-transform: uppercase; /* Mayúsculas como en la imagen */
}

.footer-col p,
.footer-col address {
  margin-bottom: 15px;
  font-style: normal; /* Resetear estilo de <address> */
}

.footer-col a {
  color: #f39c12; /* Color naranja/amarillo para enlaces de contacto */
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer-col a:hover {
  color: var(--text-light);
  text-decoration: underline;
}

/* Iconos Sociales */
.social-icons {
  margin-top: 20px;
}

.social-icons a {
  color: var(--text-light); /* Iconos blancos */
  font-size: 1.5rem; /* Tamaño de los iconos */
  margin-right: 15px; /* Espacio entre iconos */
  transition: color 0.3s ease;
}

.social-icons a:hover {
  color: var(--primary-red); /* Cambia al color primario al pasar el ratón */
  text-decoration: none; /* Sin subrayado en iconos */
}

/* --- Responsive Footer --- */
@media (max-width: 768px) {
  .footer-content {
    flex-direction: column; /* Apilar columnas */
    text-align: center; /* Centrar texto en móvil */
    gap: 30px;
  }

  .footer-col {
    min-width: 100%; /* Ocupar todo el ancho */
    margin-bottom: 20px; /* Espacio extra entre columnas apiladas */
  }

  .footer-about .footer-logo {
    margin-left: auto; /* Centrar logo */
    margin-right: auto;
    display: block; /* Asegurar que ocupe su espacio para centrar */
    width: fit-content; /* Ajustar ancho al contenido */
  }
  .footer-about .footer-logo img {
    margin: 0 auto 20px auto; /* Centrar imagen si se usa */
  }

  .footer-links ul {
    justify-content: center; /* Centrar los enlaces de política */
  }

  /* Quitar separadores en móvil si se usan */
  /* .footer-links ul li::after {
        display: none;
    } */

  .social-icons {
    margin-top: 10px;
  }
}
