/* =========================================================
RALITECH — style.css (ORDENADO Y SIN DUPLICADOS)
=========================================================
SECCIONES:
1) PALETA / VARIABLES (:root)
2) BASE (body, h1-h5, p, section)
3) COMPONENTES (botones, cards, listas, títulos)
4) NAVBAR
5) CARRUSEL
6) SECCIONES (Nosotros, Soluciones, Blog, Comentarios, Clientes, Proyectos, Footer)
7) PÁGINAS (Soluciones*, Términos)
8) COOKIES
9) FORMULARIO / WHATSAPP
10) RESPONSIVE (media queries)
=========================================================*/
/* =========================================================
   1. VARIABLES DE MARCA Y CONFIGURACIÓN GLOBAL
   Define la paleta oficial de Ralitech y variables reutilizables
   ========================================================= */
:root{
  /* Colores obligatorios de tu marca */
  --brand-blue: #061c43;
  --brand-yellow: #ffb700;
  --white: #ffffff;
  --black: #000000;
  --gray: #6a6a68;
  --gray-ui: #e4e5ec;
  --bg-soft: #f0f2fd;

  /* Extras (no cambian tus colores, solo ordenan el uso) */
  --text-main: var(--black);
  --text-soft: var(--gray);
  --border-soft: var(--gray-ui);

  /* Sombras (misma idea, unificadas) */
  --shadow-soft: 0 8px 20px rgba(0,0,0,0.12);
  --shadow-strong: 0 12px 30px rgba(0,0,0,0.18);
}
/* =========================================================
   FIN VARIABLES DE MARCA
   ========================================================= */

body { font-family: 'Titillium Web', sans-serif; color: var(--text-main); }
.text-muted, .small, .card-text { color: var(--text-soft); }

html { scroll-behavior: smooth;}

.content-center{
    max-width: 1000px;
    margin: 0 auto 60px auto;
    text-align: center;
    color: var(--brand-yellow);
}

/* =========================================================
   2. TIPOGRAFÍA GLOBAL
   Define tamaños base de títulos, párrafos y secciones
   ========================================================= */
h1 { font-size: 40px; font-weight: 600; line-height: 80px;}
h2 { font-size: 35px; margin-bottom: 30px;}
h3 { font-size: 30px;}
h4 { font-size: 25px;}
h5 { font-size: 20px;}
p { font-size: 18px; color: var(--text-main); line-height: 1.8; margin-bottom: 20px;}

section { padding: 120px 0;}

.bg-dark { background-color:var(--brand-blue) !important;  }

.topmargin-lg { margin-top: 60px; }

/*** LOGO - INICIO ***/
.logo-brand {
    min-width: 160px;
    max-width: 180px;
}
/*** LOGO - FIN ***/

/*** ICONS - INICIO ***/
.icon { color: var(--brand-blue); }
.icon:hover{ color: var(--brand-yellow); }
/*** ICONS - FIN ***/

/* =========================================================
   3. COMPONENTES GENERALES
   Botones reutilizables en todo el sitio
   ========================================================= */
.btn {
    font-size: 24px;
    padding: 15px 26px;
    min-width: 160px;
    border-radius: 2px;
    display: inline-block;
    transition: 0.25s ease;
}

.btn-light {
    background-color: var(--brand-yellow);
    color: var(--brand-blue);    
    border: 2px solid var(--brand-yellow);
    font-weight: bold;
    transition: 0.25s ease;
}
.btn-light:hover {
    background-color: var(--brand-blue);
    color: var(--brand-yellow);   
    border: 2px solid var(--brand-blue); 
    font-weight: bold;
}

.btn-dark {
    background-color: var(--brand-blue);
    color: var(--brand-yellow);   
    border: 2px solid var(--brand-blue); 
    font-weight: bold;
    transition: 0.25s ease;
}
.btn-dark:hover {
    background-color:var(--brand-yellow);
    color: var(--brand-blue);    
    border: 2px solid var(--brand-yellow);
    font-weight: bold;
}
.btn i { font-size: 14px; margin-left: 5px;}
.btn-transparent {
    background-color: transparent;
    color: var(--white);
    border: 2px solid var(--white);
}
.btn-transparent:hover{ color: var(--white);}
/*** BUTON - FIN ***/

/* =========================================================
   COMPONENTE: TARJETAS (CARDS)
   Usadas en:
   - Solucion
   - Blog
   - Proyectos
   - Comentarios
   ========================================================= */
.card {
    background: var(--white);
    border: 1px solid var(--border-soft);
    box-shadow: var(--shadow-soft);
    border-radius: 14px;
    overflow: hidden;
}
.card:hover {
    box-shadow: var(--shadow-strong);
}

/*******************************************************
  TARJETAS (CARD) — TIPOGRAFÍA UNIFICADA
  - Evita que cada página ponga Poppins/Roboto distinto.
  - Mantiene consistencia de marca.
*******************************************************/

.card .card-title{
  font-family: 'Titillium Web', sans-serif;
  font-size: 1.25rem;
  margin-bottom: 1rem;
  color: var(--brand-blue);
  font-weight: 700;
}

.card .card-text{
  font-family: 'Titillium Web', sans-serif;
  font-size: 0.95rem;
  color: var(--gray);
  line-height: 1.6;
}

/*******************************************************
  LISTAS DENTRO DE TARJETAS (UNIFICADO)
*******************************************************/
.card .list-unstyled{
  padding-left: 1.5rem;
  margin: 0;
}

.card .list-unstyled li{
  margin-bottom: 0.5rem;
  color: var(--brand-blue);
}

/*******************************************************
  TÍTULOS DE SECCIONES (UNIFICADO)
  - Para clientes, proyectos, comentarios, blog, etc.
*******************************************************/
.section-title{
  font-size: 34px;
  font-weight: 800;
  color: var(--brand-yellow);
  margin-bottom: 30px;
}

.section-title span{
  color: var(--brand-blue);
}

/*******************************************************

/********************************** LANDING PAGE - INICIO ************************************/
/* =========================================================
   4. NAVBAR (MENÚ PRINCIPAL)
   - Navbar fijo superior
   - Cambio de color al hacer scroll
   - Comportamiento responsive
   ========================================================= */
#logoRalitech {
    height: 60px;      /* altura fija del logo */
    width: auto;       /* ancho proporcional */
    display: block;
}

.navbar {
    background-color: var(--white);
    box-shadow: none;
    min-height: 100px;
    transition: none;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1050;          /* Asegura que siempre quede encima de todo */
}
.navbar-toggler {font-size: 40px;}
.navbar-toggler:focus{outline: none;}
.nav-link { color: var(--brand-blue);  font-size: 20px;}
.nav-link:hover{ color: var(--brand-yellow);font-size: 20px }

/* 25-02-2026 ===== FIX: al hacer scroll el menú cambia de estilo ===== */
#menu.header2{
    background-color: var(--brand-blue) !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.12);
    min-height: 80px; /* opcional: un poco más compacto */
}

#menu.header2 .nav-link{
    color: var(--white) !important;
}

#menu.header2 .nav-link:hover{
    color: var(--brand-yellow) !important;
}
/* 25-02-2026 ===== FIN FIX menú scroll ===== */

/*** BARRA NAVEGACION - MOVIMIENTO - INICIO ***/

/* La barra siempre ocupa el 100% en mobile, tenga o no la clase top-nav-collapse */
@media (max-width: 768px) {
    .navbar {
        width: 100%;
    }
}
/*** BARRA NAVEGACION - MOVIMIENTO - FIN ***/
/*------------- BARRA DE NAVEGACION - FIN -------------*/

/* =========================================================
   5. HERO / CARRUSEL PRINCIPAL
   Controla:
   - altura
   - imagen responsive
   - caption
   - botón del carrusel
   ========================================================= */
/*------------- CARRUSEL - IMAGEN PRINCIPAL -------------*/
/* ===== FIX carrusel: altura fija para que no “salte” y no aparezca blanco ===== */
#carouselExampleControls,
#carouselExampleControls .carousel-inner,
#carouselExampleControls .carousel-item{
  height: calc(100vh - 110px); /* 110px = alto aprox del header */
  min-height: 420px;
  background: var(--brand-blue);
}

#carouselExampleControls .carousel-item img{
  width: 100%;
  height: 100%;              /* CLAVE: ya no auto */
  object-fit: cover;         /* recorta para llenar */
  display: block;
}

/* Evita que se vea vacío mientras carga la imagen */
#carouselExampleControls {
  min-height: 70vh;           /* ajusta si quieres 60vh / 80vh */
  background: var(--brand-blue);        /* color de fondo mientras carga */
}

.carousel-item img{
  display: block;             /* evita parpadeo */
}

.carousel-caption { top: 35%;}
.asesoriaInte-position{ top: 25%;}
.carousel-caption p { margin-bottom: 80px;}
/*** CARRUSEL - FIN ***/
/*** IMAGEN PRINCIPAL - INICIO ***/
#imagenPrincipal {
    background-size:cover;
    padding-top: 0;
    min-height: none;
}
#imagenPrincipal .content-center{ max-width: 100%;}
#imagenPrincipal p { color: var(--white); font-size: 24px;}
#imagenPrincipal h2 { font-weight: bold;}
/*** IMAGEN PRINCIPAL - FIN ***/

.fondo-tenue {
    background-color: rgba(6, 28, 67, 0.6);
    padding: 10px 15px;
    border-radius: 6px;
    display: inline-block;
  }
/*------------- CARRUSEL - IMAGEN PRINCIPAL -------------*/
/* =========================================================
   FIX: Botón del carrusel siempre alineado y visible
   (sin tocar lo ya trabajado)
========================================================= */

/* 1) La "caption" ocupa todo el alto del slide y centra el contenido */
#carouselExampleControls .carousel-caption{
  position: absolute;
  inset: 0;                     /* top:0 right:0 bottom:0 left:0 */
  display: flex;
  flex-direction: column;
  justify-content: center;       /* centra verticalmente */
  align-items: center;           /* centra horizontalmente */
  padding: 0 5vw;
  z-index: 5;                    /* por encima de la imagen */
}

/* 2) Bloque de texto (tu caja azul) no empuja el botón de forma rara */
#carouselExampleControls .carousel-caption .cuadroTexto,
#carouselExampleControls .carousel-caption .textoCarrusel,
#carouselExampleControls .carousel-caption .caption-box{
  margin: 0 auto;
  max-width: 1100px;
}

/* 3) El botón siempre queda debajo del texto con distancia fija */
#carouselExampleControls .carousel-caption .btn,
#carouselExampleControls .carousel-caption a.btn{
  margin-top: 22px;
}

/* 4) En pantallas bajas/móviles: reduce un poco y asegura que el botón se vea */
@media (max-width: 768px){
  #carouselExampleControls .carousel-caption{
    justify-content: flex-end;   /* baja el bloque para que el botón no se corte */
    padding-bottom: 10vh;
  }

  #carouselExampleControls .carousel-caption .btn,
  #carouselExampleControls .carousel-caption a.btn{
    margin-top: 16px;
    padding: 12px 18px;
    font-size: 18px;
  }

  /* Opcional: si tu texto es muy largo, evita que tape todo */
  #carouselExampleControls .carousel-caption .cuadroTexto,
  #carouselExampleControls .carousel-caption .textoCarrusel,
  #carouselExampleControls .carousel-caption .caption-box{
    max-width: 92vw;
  }
}

/* =========================================================
   HERO CAPTION FIJO - MEJORA PROFESIONAL
   Mantiene un solo texto sobre todas las imágenes
   ========================================================= */

#carouselExampleControls {
  position: relative;
}

#carouselExampleControls .caption-fijo {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0 5vw;
  z-index: 6;
  text-align: center;
  pointer-events: none;
}

#carouselExampleControls .caption-fijo .btn,
#carouselExampleControls .caption-fijo a {
  pointer-events: auto;
}

.hero-title-blue {
  color: var(--brand-blue);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  text-shadow: 0 2px 10px rgba(255,255,255,0.20);
  max-width: 1000px;
}

.hero-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 10px;
}

#carouselExampleControls .caption-fijo .fondo-tenue {
  max-width: 980px;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .hero-title-blue {
    font-size: 30px;
    line-height: 1.2;
  }

  #carouselExampleControls .caption-fijo {
    padding: 0 20px;
    justify-content: center;
  }

  .hero-buttons {
    gap: 12px;
  }
}

/*------------- CARRUSEL - FIN --------------------------*/
/*------------- REGION MENSAJERIA - INICIO -------------*/
.fab{
    position: fixed;
    bottom: 32px;
    right: 32px;
    border-radius:  50%;
    width: 60px;
    height: 60px;
    background: transparent;
    z-index: 3;
     display: flex;
     flex-direction:  column;
     align-items:  center;
     justify-content: center;
}
.fab:hover{ cursor: pointer;}
.fab img { width: 100%;}
.fab img:hover{
    transform: rotate(15deg);
    transition: transform 0.25s ease;
    display:block;
    margin: auto;
    margin-top:5px ;
    width: 80%;  
}

/*------------- REGION MENSAJERIA - FIN -------------*/

/********************************** LANDING PAGE - FIN ************************************/

/* =========================================================*/

.problema-card {
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.problema-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-strong);
}

.problema-card .icon {
  font-size: 36px;
  color: var(--brand-yellow);
}
/*========================================================= */

/* =========================================================
   OFERTA COMERCIAL - DIAGNOSTICO GRATUITO
   ========================================================= */

#oferta-diagnostico {
  background: var(--brand-blue);
  padding: 90px 20px;
}

.oferta-box {
  max-width: 800px;
  margin: 0 auto;
}

.oferta-badge {
  display: inline-block;
  background: var(--brand-yellow);
  color: var(--brand-blue);
  font-weight: 800;
  padding: 8px 18px;
  border-radius: 30px;
  margin-bottom: 18px;
}

.oferta-box h2 {
  color: var(--white);
  font-size: 36px;
  font-weight: 800;
  margin-bottom: 15px;
}

.oferta-desc {
  color: var(--white);
  opacity: 0.9;
  margin-bottom: 25px;
}

.oferta-beneficios {
  margin-bottom: 25px;
}

.oferta-beneficios div {
  color: var(--white);
  margin-bottom: 8px;
  font-size: 16px;
}
   
/* =========================================================
   7. SECCIÓN: SOLUCION
   - Tabs principales
   - Subtabs
   - Paneles de contenido
   - Tarjetas de solucion
   ========================================================= */

.solucion-header {
  text-align: center;
  margin-bottom: 40px;
}

.solucion-header h2 {
  font-size: 34px;
  font-weight: 800;
  color: var(--brand-yellow);
}

.solucion-header h2 span {
  color: var(--brand-blue);
}

.solucion-header p {
  max-width: 800px;
  margin: 15px auto 0;
  color: var(--brand-blue);
}

/* TABS */

.solucion-tabs {
  display: flex;
  justify-content: space-between;
  background: var(--white);
  box-shadow: var(--shadow-soft);
  border: 1px solid var(--border-soft);
  overflow: hidden;
  margin-bottom: 40px;
}

/* ===== SUBTABS (subcards) ===== */
.solucion-subtabs{
  margin-top: 10px;
  margin-bottom: 28px;
  box-shadow: 0 5px 16px rgba(0,0,0,0.25); /* más suave que el de arriba */
  border-radius: 14px;
}

.solucion-subtabs .tab-item{
  padding: 16px 10px;         /* un poco más compacto */
}

.solucion-subtabs .tab-item i{
  font-size: 20px;            /* un poco más pequeño */
}

.solucion-subtabs .tab-item span{
  font-size: 14px;
}
/* */

.tab-item {
  flex: 1;
  text-align: center;
  padding: 20px 10px;
  cursor: pointer;
  transition: 0.3s ease;
  border-bottom: 3px solid transparent;
}

.tab-item i {
  display: block;
  font-size: 22px;
  margin-bottom: 8px;
  color: var(--brand-blue);
}

.tab-item span {
  font-size: 13px;
  font-weight: bold
}

.tab-item:hover {
 border-bottom: 3px solid var(--brand-yellow);
}

.tab-item.active {
  border-bottom: 3px solid var(--brand-blue);
  background: var(--white);
}

/* ===== PANELES PRINCIPALES (Tabs) ===== */
.tab-panel{
  display: none;
  margin-top: 22px;
}

.tab-panel.active{
  display: block;
}

/* CONTENIDO */

.solucion-content {
  display: none;
  animation: fadeEffect 0.4s ease;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.solucion-content.active {
  display: flex;
}

@keyframes fadeEffect {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
/* */
.solucion-info {
  flex: 1;
}

.solucion-info h3 {
  font-size: 22px;
  color: var(--brand-yellow);
  margin-bottom: 15px;
}

.solucion-info p {
  color: var(--brand-blue);
  margin-bottom: 20px;
}

.solucion-info ul {
  list-style: none;
  padding: 0;
  margin-bottom: 25px;
}

.solucion-info ul li {
  position: relative;
  padding-left: 25px;
  margin-bottom: 12px;
  color: var(--brand-blue);
}

.solucion-info ul li::before {
  content: "✔";
  position: absolute;
  left: 0;
  color: var(--brand-blue);
  font-weight: bold;
}

.solucion-img {
  flex: 1;
  text-align: right;
}

.solucion-img img {
  max-width: 100%;
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

/* BOTON */

.btn-solucion {
  display: inline-block;
  padding: 12px 28px;
  background: var(--brand-yellow);
  color: var(--brand-blue);
  border-radius: 30px;
  text-decoration: none;
  font-weight: bold;
  transition: 0.25s ease;
}

.btn-solucion:hover {
  background: var(--brand-blue);
    color: var(--brand-yellow);
    font-weight: bold;
}

@media (max-width: 992px) {
  .solucion-tabs {
    flex-wrap: wrap;
  }

  .tab-item {
    flex: 50%;
  }

  .solucion-content {
    flex-direction: column;
    text-align: center;
  }

  .solucion-img {
    text-align: center;
  }
}
/* =========================================================
   MEJORAS SECCIÓN SOLUCIÓN
   ========================================================= */

.solucion-header {
  text-align: center;
  max-width: 950px;
  margin: 0 auto 30px auto;
}

.solucion-header h2 {
  color: var(--brand-blue);
  font-size: 38px;
  font-weight: 800;
  margin-bottom: 18px;
}

.solucion-header h2 span {
  color: var(--brand-yellow);
}

.solucion-header p {
  color: var(--gray);
  max-width: 820px;
  margin: 0 auto;
}

/* BENEFICIOS ARRIBA DE TABS */
.solucion-benefits {
  margin: 35px 0 30px 0;
}

.solucion-benefit-box {
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: 18px;
  padding: 24px 20px;
  height: 100%;
  box-shadow: var(--shadow-soft);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.solucion-benefit-box:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-strong);
}

.solucion-benefit-box i {
  font-size: 28px;
  color: var(--brand-blue);
  margin-bottom: 14px;
}

.solucion-benefit-box h5 {
  color: var(--brand-blue);
  font-weight: 700;
  margin-bottom: 10px;
}

.solucion-benefit-box p {
  color: var(--gray);
  font-size: 15px;
  line-height: 1.6;
  margin-bottom: 0;
}

/* CONTENIDO DE CADA SERVICIO */
.solucion-content {
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: 22px;
  box-shadow: var(--shadow-soft);
  padding: 30px;
  margin-top: 20px;
}

.solucion-info h3 {
  color: var(--brand-blue);
  font-weight: 800;
  margin-bottom: 16px;
}

.solucion-info p {
  color: var(--gray);
}

.solucion-info ul {
  padding-left: 20px;
  margin-bottom: 18px;
}

.solucion-info ul li {
  color: var(--brand-blue);
  margin-bottom: 8px;
  line-height: 1.6;
}

/* HIGHLIGHT DE IMPACTO */
.solucion-highlight {
  background: var(--bg-soft);
  border-left: 4px solid var(--brand-yellow);
  border-radius: 10px;
  padding: 14px 16px;
  margin: 18px 0 20px 0;
  color: var(--brand-blue);
  font-size: 15px;
  line-height: 1.6;
}

.solucion-highlight strong {
  color: var(--brand-blue);
}

/* BOTÓN */
.btn-solucion {
  display: inline-block;
  background: var(--brand-yellow);
  color: var(--brand-blue);
  border: 2px solid var(--brand-yellow);
  padding: 12px 22px;
  border-radius: 8px;
  font-weight: 700;
  text-decoration: none;
  transition: 0.25s ease;
}

.btn-solucion:hover {
  background: var(--brand-blue);
  color: var(--brand-yellow);
  border-color: var(--brand-blue);
  text-decoration: none;
}

/* RESPONSIVE */
@media (max-width: 768px) {
  .solucion-header h2 {
    font-size: 30px;
  }

  .solucion-content {
    padding: 22px;
  }
}

/* =========================================================
   TAB PRINCIPAL ACTIVO (CORREGIDO)
   ========================================================= */

/* Estado base */
.solucion-tabs .tab-item {
  transition: all 0.25s ease;
  position: relative;
  border-radius: 14px;
}

/* Hover */
.solucion-tabs .tab-item:hover {
  transform: translateY(-3px);
}

/* TAB PRINCIPAL ACTIVO */
.solucion-tabs > .tab-item.active {
  background: var(--brand-blue);
  color: var(--white);
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Ícono activo */
.solucion-tabs > .tab-item.active i {
  color: var(--brand-yellow);
}

/* Texto activo */
.solucion-tabs > .tab-item.active span {
  color: var(--white);
  font-weight: 700;
}

/* Línea amarilla inferior */
.solucion-tabs > .tab-item.active::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 18%;
  width: 64%;
  height: 4px;
  background: var(--brand-yellow);
  border-radius: 2px;
}

/* =========================================
   SUBTABS STICKY EN SOLUCIÓN
   ========================================= */
.solucion-subtabs {
  position: sticky;
  top: 110px; /* ajusta según la altura de tu navbar */
  z-index: 20;
  background: var(--white);
  border-radius: 22px;
  box-shadow: var(--shadow-soft);
  padding: 12px 14px;
  margin-bottom: 24px;
}

/* evita que el contenido tape visualmente los subtabs */
.sub-content-wrap {
  position: relative;
  z-index: 1;
}

/* móvil: que no quede muy pegado al menú */
@media (max-width: 768px) {
  .solucion-subtabs {
    top: 90px;
    padding: 10px 10px;
  }
}

/********************************** REGION SOLUCION  - FIN ************************************/

/* =========================================================
   SECCIÓN RESULTADOS
   - Métricas circulares
   - Enfoque comercial / impacto
   ========================================================= */
#resultados {
  background: var(--brand-blue);
  padding: 100px 0;
}

#resultados .resultados-header h2 {
  color: var(--white);
  font-size: 38px;
  font-weight: 800;
  margin-bottom: 20px;
}

#resultados .resultados-header h2 span {
  color: var(--brand-yellow);
}

#resultados .resultados-header p {
  color: var(--white);
  max-width: 800px;
  margin: 0 auto 50px auto;
  opacity: 0.95;
}

.resultado-card {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  padding: 30px 20px;
  height: 100%;
  backdrop-filter: blur(4px);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.resultado-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
}

.resultado-card h5 {
  color: var(--brand-yellow);
  font-weight: 700;
  margin-top: 20px;
  margin-bottom: 12px;
}

.resultado-card p {
  color: var(--white);
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 0;
}

/* Círculo / rueda */
.resultado-circle {
  --size: 150px;
  --thickness: 12px;
  --percent: 60;

  width: var(--size);
  height: var(--size);
  margin: 0 auto;
  border-radius: 50%;
  background:
    conic-gradient(var(--brand-yellow) calc(var(--percent) * 1%), rgba(255,255,255,0.15) 0);
  display: grid;
  place-items: center;
  position: relative;
}

.resultado-circle::before {
  content: "";
  position: absolute;
  inset: var(--thickness);
  background: var(--brand-blue);
  border-radius: 50%;
}

.resultado-inner {
  position: relative;
  z-index: 1;
  text-align: center;
}

.resultado-inner strong {
  color: var(--white);
  font-size: 28px;
  font-weight: 800;
  display: block;
}

#resultados .resultados-footer {
  margin-top: 15px;
}

#resultados .resultados-footer small {
  color: rgba(255,255,255,0.75);
  display: block;
  margin-bottom: 20px;
}

#resultados .btn-light {
  min-width: 220px;
}

/* Responsive */
@media (max-width: 768px) {
  #resultados {
    padding: 80px 0;
  }

  #resultados .resultados-header h2 {
    font-size: 30px;
  }

  .resultado-circle {
    --size: 130px;
    --thickness: 10px;
  }

  .resultado-inner strong {
    font-size: 24px;
  }
}
/* =========================================================
   SECCIÓN CASOS DE IMPACTO REFERENCIALES
   ========================================================= */

#casos-impacto {
  background: var(--bg-soft);
  padding: 100px 0;
}

.casos-header {
  max-width: 900px;
  margin: 0 auto 45px auto;
}

.casos-header h2 {
  color: var(--brand-blue);
  font-size: 38px;
  font-weight: 800;
  margin-bottom: 18px;
}

.casos-header h2 span {
  color: var(--brand-yellow);
}

.casos-header p {
  color: var(--gray);
  max-width: 780px;
  margin: 0 auto;
}

.caso-card {
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: 22px;
  padding: 28px;
  box-shadow: var(--shadow-soft);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.caso-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-strong);
}

.caso-badge {
  display: inline-block;
  background: rgba(255, 183, 0, 0.18);
  color: var(--brand-blue);
  font-weight: 800;
  padding: 7px 14px;
  border-radius: 20px;
  margin-bottom: 18px;
  font-size: 14px;
}

.caso-card h5 {
  color: var(--brand-blue);
  font-weight: 800;
  line-height: 1.35;
  margin-bottom: 15px;
}

.caso-card p {
  color: var(--gray);
  font-size: 16px;
  line-height: 1.65;
}

.caso-resultado {
  background: var(--brand-blue);
  color: var(--white);
  border-left: 5px solid var(--brand-yellow);
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 20px;
  font-size: 15px;
}

.caso-resultado strong {
  color: var(--brand-yellow);
}

.casos-footer {
  margin-top: 25px;
}

.casos-footer p {
  color: var(--gray);
  max-width: 760px;
  margin: 0 auto 25px auto;
}

@media (max-width: 768px) {
  .casos-header h2 {
    font-size: 30px;
  }

  .caso-card {
    padding: 24px;
  }
}
/********************************** REGION RESULTADOS  - FIN ************************************/

/* =========================================================
   SECCIÓN ¿POR QUÉ RALITECH?
   - Diferenciadores comerciales
   - Cards con íconos
   ========================================================= */
#porque-ralitech {
  background: var(--bg-soft);
  padding: 100px 0;
}

#porque-ralitech .porque-header h2 {
  color: var(--brand-blue);
  font-size: 38px;
  font-weight: 800;
  margin-bottom: 20px;
}

#porque-ralitech .porque-header h2 span {
  color: var(--brand-yellow);
}

#porque-ralitech .porque-header p {
  max-width: 820px;
  margin: 0 auto 50px auto;
  color: var(--gray);
}

.porque-card {
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: 18px;
  padding: 32px 24px;
  box-shadow: var(--shadow-soft);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.porque-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-strong);
}

.porque-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 20px auto;
  border-radius: 50%;
  background: rgba(255, 183, 0, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}

.porque-icon i {
  font-size: 28px;
  color: var(--brand-blue);
}

.porque-card h5 {
  color: var(--brand-blue);
  font-weight: 700;
  margin-bottom: 12px;
}

.porque-card p {
  color: var(--gray);
  font-size: 16px;
  line-height: 1.65;
  margin-bottom: 0;
}

#porque-ralitech .porque-footer {
  margin-top: 20px;
}

#porque-ralitech .btn-light {
  min-width: 220px;
}

/* Responsive */
@media (max-width: 768px) {
  #porque-ralitech {
    padding: 80px 0;
  }

  #porque-ralitech .porque-header h2 {
    font-size: 30px;
  }

  .porque-card {
    padding: 28px 20px;
  }

  .porque-icon {
    width: 64px;
    height: 64px;
  }

  .porque-icon i {
    font-size: 24px;
  }
}
/********************************** REGION SECCIÓN ¿POR QUÉ RALITECH?  - FIN ************************************/

/* =========================================================
   SECCIÓN BLOG (VERSIÓN PREMIUM / EDITORIAL)
   ========================================================= */
#blog {
  background: var(--bg-soft);
  padding: 100px 0;
}

#blog .blog-header h2 {
  font-size: 38px;
  font-weight: 800;
  color: var(--brand-blue);
  margin-bottom: 18px;
}

#blog .blog-header h2 span {
  color: var(--brand-yellow);
}

#blog .blog-header p {
  max-width: 820px;
  margin: 0 auto 40px auto;
  color: var(--gray);
}

.blog-frame {
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: 24px;
  box-shadow: var(--shadow-soft);
  padding: 30px 24px 60px 24px;
  position: relative;
}

#blog .carousel-item .card {
  max-width: 920px;
  width: 100%;
  border: 1px solid var(--border-soft);
  border-radius: 22px;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

#blog .carousel-item .card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-strong);
}

#blog .carousel-item .card-img-top {
  height: 320px;
  object-fit: cover;
}

#blog .carousel-item .card-body {
  padding: 24px;
  text-align: left;
}

#blog .carousel-item .card-title {
  color: var(--brand-blue);
  font-size: 24px;
  font-weight: 800;
  margin-bottom: 12px;
}

#blog .carousel-item .card-text {
  color: var(--gray);
  font-size: 16px;
  line-height: 1.7;
}

/* Controles */
.blog-control {
  width: 5%;
  color: var(--brand-blue);
  opacity: 1;
}

.blog-control i {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(6, 28, 67, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand-blue);
  transition: 0.25s ease;
}

.blog-control i:hover {
  background: var(--brand-blue);
  color: var(--brand-yellow);
}

/* Indicadores */
.blog-indicators {
  bottom: -45px;
}

.blog-indicators li {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: rgba(6, 28, 67, 0.25);
  border: none;
  margin: 0 6px;
}

.blog-indicators .active {
  background-color: var(--brand-yellow);
}

/* Footer */
.blog-footer {
  max-width: 760px;
  margin: 28px auto 0 auto;
}

.blog-footer p {
  color: var(--gray);
  margin-bottom: 22px;
}

#blog .btn-light {
  min-width: 220px;
}

/* Responsive */
@media (max-width: 768px) {
  #blog {
    padding: 80px 0;
  }

  #blog .blog-header h2 {
    font-size: 30px;
  }

  .blog-frame {
    padding: 22px 16px 55px 16px;
  }

  #blog .carousel-item .card-img-top {
    height: 220px;
  }

  #blog .carousel-item .card-body {
    padding: 20px;
  }

  #blog .carousel-item .card-title {
    font-size: 21px;
  }

  .blog-control {
    display: none;
  }

  .blog-indicators {
    bottom: -38px;
  }
}

/* =========================================================
   PÁGINA BLOG - RALITECH
   ========================================================= */

.blog-page {
  background: var(--bg-soft);
  padding-bottom: 100px;
}

.blog-page-header {
  max-width: 900px;
  margin: 0 auto 35px auto;
}

.blog-page-header p {
  color: var(--gray);
  max-width: 760px;
  margin: 0 auto;
}

.blog-categories {
  margin-bottom: 45px;
}

.blog-categories span {
  display: inline-block;
  background: var(--white);
  color: var(--brand-blue);
  border: 1px solid var(--border-soft);
  border-radius: 30px;
  padding: 8px 16px;
  margin: 5px;
  font-weight: 700;
  box-shadow: var(--shadow-soft);
}

.blog-grid {
  margin-top: 20px;
}

.blog-post-card {
  border-radius: 18px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.blog-post-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-strong);
}

.blog-post-card img {
  height: 220px;
  object-fit: cover;
}

.blog-post-card .card-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.blog-tag {
  display: inline-block;
  background: rgba(255, 183, 0, 0.18);
  color: var(--brand-blue);
  font-size: 13px;
  font-weight: 800;
  padding: 6px 12px;
  border-radius: 20px;
  margin-bottom: 14px;
}

.blog-post-card .card-title {
  color: var(--brand-blue);
  font-weight: 800;
  line-height: 1.3;
}

.blog-post-card .card-text {
  color: var(--gray);
  font-size: 15px;
}

.blog-read-more {
  color: var(--brand-blue);
  font-weight: 800;
  text-decoration: none;
}

.blog-read-more:hover {
  color: var(--brand-yellow);
  text-decoration: none;
}

.blog-page-cta {
  margin-top: 50px;
  background: var(--brand-blue);
  padding: 45px 25px;
  border-radius: 24px;
  box-shadow: var(--shadow-strong);
}

.blog-page h2 {
  font-size: 34px;
  font-weight: 800;
  color: var(--brand-yellow);
}

.blog-page h2 span {
  color: var(--brand-blue);
}

.blog-page p {
  max-width: 800px;
  margin: 15px auto 0;
  color: var(--brand-blue);
}


.blog-page-cta h2 {
  color: var(--brand-yellow);
  font-weight: 800;
  margin-bottom: 12px;
}

.blog-page-cta p {
  color: var(--white);
  max-width: 720px;
  margin: 0 auto 25px auto;
}

/* Ajuste para las cards del blog cargadas en el index */
#blog .blog-post-card {
  max-width: 430px;
  width: 100%;
}

#blog .blog-post-card img {
  height: 230px;
  object-fit: cover;
}


.blog-actions {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.blog-cta {
  display: inline-block;
  background: var(--brand-yellow);
  color: var(--brand-blue);
  font-weight: 800;
  text-align: center;
  padding: 10px 14px;
  border-radius: 24px;
  text-decoration: none;
  transition: 0.25s ease;
}

.blog-cta:hover {
  background: var(--brand-blue);
  color: var(--brand-yellow);
  text-decoration: none;
}
/********************************** REGION BLOG  - FIN ************************************/

/* =========================================================
   9. SECCIÓN: TESTIMONIOS / COMENTARIOS
   ========================================================= */

#comentarios {
  background: var(--brand-blue);
  padding: 100px 0;
  position: relative;
}

#comentarios .comentarios-header h2 {
  font-size: 38px;
  font-weight: 800;
  color: var(--white);
  margin-bottom: 18px;
}

#comentarios .comentarios-header h2 span {
  color: var(--brand-yellow);
}

#comentarios .comentarios-header p {
  max-width: 860px;
  margin: 0 auto 40px auto;
  color: rgba(255,255,255,0.88);
}

.comentario-card {
  background: var(--white);
  border-radius: 22px;
  box-shadow: var(--shadow-strong);
  padding: 34px 32px;
  max-width: 860px;
  min-height: 320px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.comentario-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}

.quote-badge {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--brand-yellow);
  color: var(--brand-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.comentario-stars {
  color: var(--brand-yellow);
  font-size: 16px;
  letter-spacing: 2px;
}

.comentario-texto {
  font-size: 22px;
  line-height: 1.75;
  color: var(--brand-blue) !important;
  font-style: italic;
  margin-bottom: 28px;
  text-align: left;
}

.comentario-cliente {
  display: flex;
  align-items: center;
  gap: 16px;
  text-align: left;
  border-top: 1px solid var(--border-soft);
  padding-top: 18px;
}

.comentario-logo {
  width: 70px;
  height: 70px;
  border-radius: 14px;
  background: var(--bg-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  flex-shrink: 0;
}

.comentario-logo img {
  max-width: 100%;
  max-height: 42px;
  object-fit: contain;
  filter: grayscale(100%);
}

.comentario-info h5 {
  margin: 0 0 6px 0;
  font-size: 18px;
  color: var(--brand-blue);
  font-weight: 700;
}

.comentario-info span {
  font-size: 14px;
  color: var(--gray);
  line-height: 1.5;
  display: block;
}

.comentarios-control {
  width: 5%;
  color: var(--white);
  opacity: 1;
}

.comentarios-control i {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(255,255,255,0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: 0.25s ease;
}

.comentarios-control i:hover {
  background: var(--brand-yellow);
  color: var(--brand-blue);
}

.comentarios-indicators {
  bottom: -55px;
}

.comentarios-indicators li {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: rgba(255,255,255,0.35);
  border: none;
  margin: 0 6px;
}

.comentarios-indicators .active {
  background-color: var(--brand-yellow);
}

.comentarios-footer {
  max-width: 760px;
  margin: 70px auto 0 auto;
}

.comentarios-footer p {
  color: rgba(255,255,255,0.88);
  margin-bottom: 22px;
}

#comentarios .btn-light {
  min-width: 220px;
}

/* Responsive */
@media (max-width: 768px) {
  #comentarios {
    padding: 80px 0;
  }

  #comentarios .comentarios-header h2 {
    font-size: 30px;
  }

  .comentario-card {
    padding: 26px 20px;
    min-height: auto;
  }

  .comentario-top {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .comentario-texto {
    font-size: 18px;
    line-height: 1.65;
  }

  .comentario-cliente {
    align-items: flex-start;
  }

  .comentario-logo {
    width: 60px;
    height: 60px;
  }

  .comentarios-control {
    display: none;
  }

  .comentarios-indicators {
    bottom: -45px;
  }

  .comentarios-footer {
    margin-top: 60px;
  }
}

/********************************** REGION COMENTARIOS - FIN ************************************/

/* =========================================================
   SECCIÓN CLIENTES (VERSIÓN CARRUSEL PREMIUM)
   ========================================================= */

#clientes {
  background: var(--white);
  padding: 100px 0;
}

#clientes .clientes-header h2 {
  font-size: 38px;
  font-weight: 800;
  color: var(--brand-blue);
  margin-bottom: 18px;
}

#clientes .clientes-header h2 span {
  color: var(--brand-yellow);
}

#clientes .clientes-header p {
  max-width: 820px;
  margin: 0 auto 40px auto;
  color: var(--gray);
}

/* TRUST */
.clientes-trust {
  margin-bottom: 35px;
}

.trust-box {
  background: var(--bg-soft);
  border: 1px solid var(--border-soft);
  border-radius: 16px;
  padding: 22px 18px;
  height: 100%;
  box-shadow: var(--shadow-soft);
}

.trust-box strong {
  display: block;
  color: var(--brand-blue);
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 8px;
}

.trust-box span {
  color: var(--gray);
  font-size: 15px;
}

/* CARRUSEL */
.clientes-carousel-wrap {
  overflow: hidden;
  width: 100%;
  margin: 20px 0 30px;
}

.clientes-carousel-track {
  display: flex;
  gap: 24px;
  width: max-content;
  animation: scrollClientes 28s linear infinite;
}

.clientes-carousel-wrap:hover .clientes-carousel-track {
  animation-play-state: paused;
}

/* CARDS */
.cliente-card {
  flex: 0 0 260px;
  min-height: 170px;
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: 18px;
  box-shadow: var(--shadow-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px 20px;
  transition: all 0.25s ease;
}

.cliente-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-strong);
}

.cliente-card img {
  max-height: 72px;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.9;
  transition: all 0.3s ease;
}

.cliente-card:hover img {
  filter: grayscale(0%);
  opacity: 1;
  transform: scale(1.05);
}

/* ANIMACIÓN */
@keyframes scrollClientes {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* FOOTER */
.clientes-footer {
  max-width: 760px;
  margin: 10px auto 0;
}

.clientes-footer p {
  color: var(--gray);
  margin-bottom: 22px;
}

#clientes .btn-light {
  min-width: 220px;
}

.clientes-subtext{
  max-width: 850px;
  margin: 15px auto 0 auto;
  color: var(--gray);
  font-size: 17px;
  line-height: 1.7;
}

/* RESPONSIVE */
@media (max-width: 768px) {
  #clientes {
    padding: 80px 0;
  }

  #clientes .clientes-header h2 {
    font-size: 30px;
  }

  .cliente-card {
    flex: 0 0 220px;
    min-height: 140px;
  }

  .cliente-card img {
    max-height: 58px;
  }
}


/********************************** REGION CLIENTES - FIN ************************************/

/* =========================================================
   11. SECCIÓN: PROYECTOS
   ========================================================= */

#proyectos p {
  color: var(--brand-blue);
}

#proyectos {
  background: var(--bg-soft);
}

.section-offset {
    scroll-margin-top: 80px; /* o ajusta según altura real del navbar */
}

/* =========================================================
   PROYECTOS EN CARRUSEL - PREMIUM
   ========================================================= */

#proyectos {
  background: var(--bg-soft);
}

.proyecto-card-premium {
  max-width: 1050px;
  margin: 0 auto 55px auto;
  border-radius: 26px;
  padding: 38px;
  background: var(--white);
  box-shadow: var(--shadow-strong);
  transition: transform 0.3s ease;
}

.proyecto-card-premium:hover {
  transform: translateY(-8px);
}

.proyecto-metricas {
  margin-top: 12px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.proyecto-metricas span {
  background: var(--brand-yellow);
  color: var(--brand-blue);
  padding: 6px 12px;
  border-radius: 18px;
  font-size: 13px;
  font-weight: 800;
}

.proyecto-resultado {
  margin: 18px 0;
  background: rgba(6, 28, 67, 0.08);
  padding: 12px 16px;
  border-left: 5px solid var(--brand-yellow);
  border-radius: 10px;
  color: var(--brand-blue);
  font-size: 15px;
}

.proyecto-icon-wrap {
  min-height: 210px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--brand-blue);
  border-radius: 24px;
}

.proyecto-icon-wrap i {
  font-size: 86px;
  color: var(--brand-yellow);
}

.proyecto-mockup-wrap {
  background: var(--brand-blue);
  border-radius: 24px;
  overflow: hidden;
  padding: 14px;
  box-shadow: var(--shadow-soft);
}

.proyecto-mockup {
  width: 100%;
  border-radius: 16px;
  transition: transform 0.35s ease;
}

.proyecto-card-premium:hover .proyecto-mockup {
  transform: scale(1.03);
}

.proyectos-control {
  width: 46px;
  height: 46px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--brand-blue);
  border-radius: 50%;
  opacity: 1;
}

.proyectos-control i {
  color: var(--brand-yellow);
  font-size: 20px;
}

.proyectos-indicators {
  bottom: -35px;
}

.proyectos-indicators li {
  background-color: var(--brand-blue);
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.proyectos-indicators .active {
  background-color: var(--brand-yellow);
}

@media (max-width: 768px) {
  .proyecto-card-premium {
    padding: 24px;
  }

  .proyecto-icon-wrap {
    min-height: 160px;
    margin-bottom: 20px;
  }

  .proyecto-icon-wrap i {
    font-size: 58px;
  }

  .proyectos-control {
    display: none;
  }  
}
/********************************** REGION PROYECTOS - FIN ************************************/
.cta-final {
  background: var(--white);
  padding: 80px 20px;
  text-align: center;
}

.cta-final h2 {
  color: var(--brand-yellow);
}

.cta-final p {
  color: var(--brand-blue);
  margin-bottom:25px;
}
/* =========================================================
   12. FOOTER
   Información de contacto y redes sociales
   ========================================================= */
#footer{ 
    padding: 50px;
    text-align: left;
    color: var(--brand-yellow);   
}
#footer p { 
  font-size: 18px; 
  line-height: 1.1; 
  margin-bottom: 10px;
  color: var(--brand-yellow);
}

#footer .contact-info{
    color: var(--brand-yellow);
}

#footer a:not(.btn-light) { 
    color: var(--white);
}

#footer a:not(.btn-light):hover { 
    color: var(--brand-yellow);
}

#footer .list-inline .list-inline-item { padding: 10px 15px;}
#footer i { color: var(--brand-yellow);}
#footer i:hover { color: var(--brand-yellow);}

#footer .list-inline-item a {
  display: inline-flex;
  align-items: center;
  padding: 6px 8px;   /* más área táctil */
  font-size: 0.95rem;
}

#footer .btn-empezar{
    color: var(--brand-blue) !important;
}

/********************************** REGION FOOTER - FIN ************************************/
/* =========================================================
   ESTÁNDAR PÁGINAS INTERNAS
   Nosotros / Blog / Soluciones
   ========================================================= */

.page-hero {
  background: var(--bg-soft);
  padding-top: 170px;
  padding-bottom: 90px;
}

.page-hero-header {
  max-width: 950px;
  margin: 0 auto;
  text-align: center;
}

.page-hero-header h1,
.page-hero-header h2 {
  color: var(--brand-blue);
  font-size: 42px;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
}

.page-hero-header h1 span,
.page-hero-header h2 span {
  color: var(--brand-yellow);
}

.page-hero-header p {
  color: var(--gray);
  max-width: 820px;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.8;
}

@media (max-width: 768px) {
  .page-hero {
    padding-top: 140px;
    padding-bottom: 70px;
  }

  .page-hero-header h1,
  .page-hero-header h2 {
    font-size: 32px;
  }
}

/********************************** PAGINA NOSOTROS - INICIO ************************************/


.nosotros-page {
  background: var(--bg-soft);
  padding-bottom: 100px;
}

.nosotros-page .nosotros-header {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.nosotros-page .blog-label {
  display: inline-block;
  background: var(--brand-yellow);
  color: var(--brand-blue);
  font-weight: 800;
  padding: 8px 18px;
  border-radius: 30px;
  margin-bottom: 18px;
}


.nosotros-page h1 {
  color: var(--brand-yellow);
  font-size: 42px;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 18px;
}

.nosotros-page p {
  max-width: 800px;
  margin: 15px auto 0;
  color: var(--brand-blue);
}


.nosotros-page .nosotros-header p {
  max-width: 860px;
  margin: 0 auto 14px auto;
  color: var(--gray);
}

.nosotros-page .nosotros-subtext {
  font-weight: 600;
  color: var(--brand-blue) !important;
  max-width: 760px;
}

.nosotros-page .nosotros-grid {
  margin-top: 40px;
}

.nosotros-page .nosotros-card {
  border-radius: 18px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.nosotros-page .nosotros-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-strong);
}

.nosotros-page .nosotros-icon-wrap {
  width: 72px;
  height: 72px;
  margin: 0 auto 20px auto;
  border-radius: 50%;
  background: rgba(255, 183, 0, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}

.nosotros-page .nosotros-icon-wrap i {
  font-size: 28px;
  color: var(--brand-blue);
}

.nosotros-page .icon-primary {
  font-size: 48px;
  color: var(--brand-yellow);
}

.nosotros-page .card-title {
  color: var(--brand-blue) !important;
  font-weight: 700;
  margin-bottom: 12px;
}

.nosotros-page .card-text {
  color: var(--gray) !important;
  font-size: 16px;
  line-height: 1.65;
}

.nosotros-page .nosotros-cta {
  margin-top: 20px;
}

.nosotros-page .btn-light {
  min-width: 220px;
}

.nosotros-page .caso-card {
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: 22px;
  padding: 28px;
  box-shadow: var(--shadow-soft);
}

.nosotros-page .caso-badge {
  display: inline-block;
  background: rgba(255, 183, 0, 0.18);
  color: var(--brand-blue);
  font-weight: 800;
  padding: 7px 14px;
  border-radius: 20px;
  margin-bottom: 18px;
  font-size: 14px;
}

.nosotros-page .caso-card h5 {
  color: var(--brand-blue);
  font-weight: 800;
  line-height: 1.35;
  margin-bottom: 15px;
}

.nosotros-page .caso-card p {
  color: var(--gray);
  font-size: 16px;
  line-height: 1.65;
}

@media (max-width: 768px) {
  .nosotros-page {
    padding-top: 130px;
    padding-bottom: 80px;
  }

  .nosotros-page h1 {
    font-size: 32px;
  }

  .nosotros-page .nosotros-icon-wrap {
    width: 64px;
    height: 64px;
  }

  .nosotros-page .nosotros-icon-wrap i {
    font-size: 24px;
  }
}

/********************************** PAGINA NOSOTROS - FIN ************************************/



/********************************** PAGINA TERMINOS - INICIO ************************************/

.terminos-page {
  background: var(--bg-soft);
}

.terminos-content {
  max-width: 950px;
  margin: 45px auto 0 auto;
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: 24px;
  padding: 42px;
  box-shadow: var(--shadow-soft);
}

.terminos-content section {
  padding: 0;
  margin-bottom: 36px;
}

.terminos-content section:last-child {
  margin-bottom: 0;
}

.terminos-content h3 {
  color: var(--brand-blue);
  font-size: 24px;
  font-weight: 800;
  margin-bottom: 16px;
  border-left: 5px solid var(--brand-yellow);
  padding-left: 14px;
}

.terminos-content p {
  color: var(--gray);
  text-align: justify;
  font-size: 17px;
  line-height: 1.75;
}

.terminos-content a {
  color: var(--brand-blue);
  font-weight: 700;
}

.terminos-content a:hover {
  color: var(--brand-yellow);
  text-decoration: none;
}

@media (max-width: 768px) {
  .terminos-content {
    padding: 28px 22px;
  }

  .terminos-content h3 {
    font-size: 21px;
  }

  .terminos-content p {
    font-size: 16px;
  }
}

/********************************** PAGINA TERMINOS - FIN ************************************/

/********************************** Codigo para la política de cookies ************************************/

.cookie-banner {
    display: none;
    position: fixed;
    bottom: 20px;
    left: 0;
    transform: none;
    background-color: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 15px 20px;
    border-radius: 8px;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.5);
    z-index: 9999;
    align-items: center;
    justify-content: space-between;
}

.cookie-content {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cookie-content p {
    margin: 0;
    font-size: 14px;
    color: white;
}

.cookie-content a {
    color: var(--brand-yellow);
    text-decoration: underline;
}

.btn-accept,
.btn-settings {
    background-color: var(--brand-yellow);
    color: var(--brand-blue);
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    font-size: 14px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.btn-accept:hover,
.btn-settings:hover {
    background-color: var(--brand-blue);
    color: var(--brand-yellow);
}

@media (max-width: 768px){
  #carouselExampleControls,
  #carouselExampleControls .carousel-inner,
  #carouselExampleControls .carousel-item{
    height: calc(100vh - 90px);
    min-height: 360px;
  }
}



/* ===== Comentarios: que ocupe 1 pantalla y quede centrado al navegar ===== */

/* 1) Ajuste para que el título no quede tapado por el menú fijo */
/* ===== Comentarios equilibrado visualmente ===== */
#comentarios{
  scroll-margin-top: 120px;
  padding: 70px 0 60px 0;
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* 3) Extra: separa del siguiente bloque para que no se asome */
#comentarios{
  margin-bottom: 0;
  padding-bottom: 80px;
}

/* ===== Clientes: que ocupe 1 pantalla y quede centrado al navegar ===== */
#clientes{
  scroll-margin-top: 120px;          /* para que no lo tape el header */
  min-height: calc(100vh - 120px);   /* 120px = alto aprox del header */
  display: flex;
  flex-direction: column;
  justify-content: center;           /* centra verticalmente */
  padding: 40px 0 80px;              /* arriba / abajo para que no se asome Proyectos */
}

/* =========================================================
   13. MODAL CONTACTENOS (ORDENADO Y SIN DUPLICADOS)
   Usa estas clases (según tu index.html):
   - .modal-overlay
   - .modal-contacto
   - .modal-close
   - .modal-header / .modal-sub
   - .modal-form / .modal-form-grid
   - .modal-form-row (Pais + Celular en la MISMA fila)
   - .btn-empezar / .form-msg
   Control de estado:
   - body.modal-open  -> muestra modal y bloquea scroll
   ========================================================= */

/* ===== CTA en el menú (si existe en tu HTML) ===== */
.nav-cta{
  background: var(--brand-yellow);
  color: var(--brand-blue) !important;
  padding: 10px 16px;
  border-radius: 8px;
  font-weight: 700;
  display: inline-block;
  line-height: 1;
}
.nav-cta:hover{
  background: var(--brand-blue);
  color: var(--white) !important;
}

/* ===== Overlay (fondo oscuro) ===== */
.modal-overlay{
  position: fixed;
  inset: 0;
  background: rgba(6, 28, 67, 0.65);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease;
  z-index: 9998;
}

/* ===== Caja del modal ===== */
.modal-contacto{
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  width: min(520px, 92vw);
  max-height: 85vh;
  overflow: auto;
  background: var(--white);
  border-radius: 18px;
  padding: 20px 18px 16px;
  border: 2px solid rgba(255, 183, 0, 0.30);
  box-shadow: 0 20px 55px rgba(0,0,0,0.28);

  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, transform .2s ease;
  z-index: 9999;

  animation: modalFade 0.3s ease;
  font-family: inherit;
}

/* ===== Header del modal ===== */
.modal-header{
  position: relative;
  text-align: center;
  padding: 0 40px;
}

.modal-contacto h2{
  font-size: 22px;
  margin: 0 0 10px 0;       /* ✅ una sola vez (sin duplicidad) */
  line-height: 1.3;
  color: var(--brand-blue);
  font-weight: 800;
}

.modal-sub{
  margin: 0 0 16px 0;
  color: #334155;
  font-size: 14.5px;
  text-align: center;
  max-width: 480px;
}

/* ===== Botón cerrar ===== */
.modal-close{
  position: absolute;
  top: 0;
  right: 10px;
  border: none;
  background: transparent;
  font-size: 20px;
  cursor: pointer;
  line-height: 1;
  color: var(--brand-blue);
  z-index: 10000;
  font-weight: 800;
}

/* Accesibilidad: foco visible */
.modal-close:focus{
  outline: 2px solid rgba(255,183,0,0.5);
  border-radius: 50%;
}

/* ===== Formulario ===== */
.modal-form{ width: 100%; }

.modal-form-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 18px;
}

.modal-form-grid input,
.modal-form-grid select,
.modal-form-grid textarea{
  width: 100%;
  border: 1px solid #d7e2f1;
  background: #fff;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 14px;
  color: var(--brand-blue);
  outline: none;
  box-sizing: border-box;
}

.modal-form-grid textarea{
  min-height: 90px;
  resize: vertical;
}

.modal-form-grid input:focus,
.modal-form-grid select:focus,
.modal-form-grid textarea:focus{
  border-color: var(--brand-yellow);
  box-shadow: 0 0 0 4px rgba(255, 183, 0, 0.25);
}

/* ✅ País + Celular en la MISMA FILA (tu HTML usa modal-form-row) */
.modal-form-row,
.modal-row{
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 10px;
}

/* Botón submit */
.btn-empezar{
  width: 100%;
  background: var(--brand-yellow);
  color: var(--brand-blue);
  border: 0;
  padding: 12px 16px;
  border-radius: 14px;
  font-weight: 800;
  font-size: 15px;
  cursor: pointer;
}
.btn-empezar:hover{
  background: var(--brand-yellow);
}

/* Mensaje de estado */
.form-msg{
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
  margin-top: 6px;
}

/* ===== Estado abierto ===== */
.modal-open .modal-overlay{
  opacity: 1;
  visibility: visible;
}
.modal-open .modal-contacto{
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) scale(1);
}

/* Bloquear scroll del fondo */
.modal-open{
  overflow: hidden;
}

/* ===== Responsive ===== */
@media (max-width: 480px){
  .modal-contacto h2{ font-size: 22px; }
  .modal-form-row,
  .modal-row{
    grid-template-columns: 1fr; /* en móvil se apilan (correcto) */
  }
}

/* ===== Animación ===== */
@keyframes modalFade{
  from{
    opacity: 0;
    transform: translateY(20px);
  }
  to{
    opacity: 1;
    transform: translateY(0);
  }
}
/* =========================================================
   FIN MODAL CONTACTENOS
   ========================================================= */

/* =========================================================
   14. RESPONSIVE / MEDIA QUERIES
   Ajustes para tablets y móviles
   ========================================================= */
/* Extra small devices (portrait phones, less than 576px)*/
@media (max-width: 575.98px) { 
    h1 { font-size: 40px; line-height: normal;}
    #footer-menu{
        display: block !important; 
        padding: 20px 0 !important;
        font-size: 10px;        
    }
	.icon{margin-right: 70px !important; }
    .fab {margin-right: 30px !important; }
}

/********************************** MEDIA QUERIES - FIN ************************************/