/*

Ramayana CSS Template

https://templatemo.com/tm-529-ramayana

*/
/* ---------------------------------------- FRANJA CABECERA ------------------------------------- */

.header-custom-blue {
    background-color: #535ba0 !important;
    width: 86%; 
    margin: 15px auto;
    
    /* Aseguramos que se comporte como un bloque flexible */
    display: flex !important;
    align-items: center;
    
    /* Espacio interno de seguridad */
    padding: 40px 30px !important; 
    
    border-radius: 20px;
    position: relative;
    z-index: 1000;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.7);
    box-sizing: border-box;
}

.logo-img-header {
    /* TRUCO MAESTRO: Esto empuja el logo a la derecha pase lo que pase */
    margin-left: auto !important;
    margin-right: 0 !important;
    
    max-width: 220px;
    height: auto;
    display: block;
}

/* ESTILO GENERAL (Escritorio / Desktop) */
.logo-img-header {
    max-width: 650px; /* Ajusta este valor al tamaño que desees para escritorio */
    width: 100%;      /* Asegura que sea responsivo si el contenedor es menor */
    height: auto;     /* Mantiene la proporción de la imagen */
    display: block;   /* Evita espacios en blanco extra debajo de la imagen */
    margin: 0 auto;   /* Centra el logo si el contenedor lo permite */
}

/* TU CÓDIGO EXISTENTE (Móviles) */
@media (max-width: 767px) {
    .header-custom-blue {
        width: 95%; /* ----------------- ANCHO FRANJA CABECERA ----------------------------------- */
        padding: 15px 5px !important; /* ------ ALTO FRANJA AZUL, POSICIÓN LOGO ------------------ */
    }
    .logo-img-header {
        max-width: 250px; /* ------ TAMAÑO LOGO EN MOBILES --------------------------------------- */
    }
}
/* ------------------------------------- FIN FRANJA CABECERA ------------------------------------- */

@import url(fontawesome.css);
@import url("https://fonts.googleapis.com/css?family=Roboto+Slab:400,700");

body { 
	font-family: 'Roboto Slab', sans-serif;
}

/* Basic */

input, select, textarea {
	outline: none;
}

a:hover {
	color: #FC3;
	text-decoration: none;
}

p {
	font-size: 14px;
	line-height: 25px;
	color: #7a7a7a;
	letter-spacing: 0.2px;
}

h4 {
	font-size: 19px;
	font-weight: 700;
	color: #31323a;
	letter-spacing: 0.25px;
}

img {
	width: 100%;
	overflow: hidden;
}

.primary-button a,
button {
    border-radius: 20px; /* Ajusta este valor a tu gusto  para los bordes redondeados */
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
    background-color:  rgba(83,91,160,0.85);
	display: inline-block;
	padding: 8px 20px;
	color: #fff;
	border: 2px solid #ffffff; /* Borde del botón brouchure */
	transition: all 0.5s;
}
.primary-button a:hover,
button:hover {
    transform: scale(1.05); /* 1.1 significa que crece un 10% */
	color: #fff;
	background-color: rgb(62, 71, 151);
}

section {
	border-bottom: 3px solid #eee;
	padding-bottom: 100px;
}

/* Wrapper */

#wrapper {
    display: -moz-flex;
    display: -webkit-flex;
    display: -ms-flex;
    display: flex;
    -moz-flex-direction: row-reverse;
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
    min-height: 100vh;
}

/* Main */

#main {
    -moz-flex-grow: 1;
    -webkit-flex-grow: 1;
    -ms-flex-grow: 1;
    flex-grow: 1;
    -moz-flex-shrink: 1;
    -webkit-flex-shrink: 1;
    -ms-flex-shrink: 1;
    flex-shrink: 1;
    width: 100%;
}
/* Esta regla se aplica a pantallas de 768px o menos */
@media screen and (max-width: 768px) {
    #main > .inner {
        /* Forzamos 20px arriba/abajo y 20px a los lados */
        padding: 20px !important; 
    }

    /* Eliminamos posibles márgenes que Bootstrap añade por defecto */
    .services, 
    .services .container-fluid,
    .services .row {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }

    /* El último ítem no debe tener margen inferior para no sumar espacio extra */
    .service-item.sixth-item {
        margin-bottom: 0 !important;
    }
}

/* --------------------------------------- BANNER CABECERA ----------------------------------------- */
.main-banner {
    /* 1. Centrado horizontal (Vital para el 90% de ancho) */
    margin-left: auto;
    margin-right: auto;
    width: 86.5%;
    
    /* 2. Imagen de fondo */
    background-image: url(../images/main-banner.jpg);
    background-size: cover;
    background-position: center; /* Asegura que la imagen no se corte mal en móvil */
    background-repeat: no-repeat;
    
    /* 3. Estructura y Espaciado */
    padding: 0; /* Simplificado */
    border-radius: 20px;
    min-height: 400px;
    
    /* 4. Centrado de contenido interno */
    display: flex;
    justify-content: center; 
    align-items: center;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.7);
}

/* Ajuste opcional para móviles */
@media (max-width: 768px) {
    .main-banner {
        width: 90%; /* Un poco más ancho en móviles para aprovechar espacio */
        min-height: 300px; /* Reducimos altura para que no ocupe toda la pantalla */
    }
}

.main-banner .banner-caption {
    width: 80%; /* Ocupa casi todo el ancho en móviles */
    max-width: 450px;
    background-color: rgba(255, 255, 255, 0.7);  /* ------------------- -------------------  Color tarjeta del header */
    /*backdrop-filter: blur(10px);*/ /* Efecto esmerilado/glassmorphism */
    /*-webkit-backdrop-filter: blur(10px);*/ /* Soporte para Safari */
    border-radius: 20px;
    padding: 30px; /* Un poco menos de padding para móviles */
    margin: 20px auto; /* Centrado automático horizontal */
    text-align: center; /* Texto centrado en móvil */
    /*text-shadow: 2px 2px 4px rgba(0, 0, 0, 1);*/  /* -------------------------------------------Añadimos la sombra de texto */
}
/* Color para el subtítulo y control de espacio */
.main-banner .banner-caption span {
    color: #102d8d !important; 
    display: inline-block;
    margin-top: 10px;
    margin-bottom: 40px;
    font-weight: 600;
    /*text-shadow: 2px 2px 4px rgba(0, 0, 0, 1);*/  /* -------------------------------------------Añadimos la sombra de texto */
}

/* Esto asegura que el texto normal del párrafo sea negro */
.main-banner p {
    color: #102d8d !important;  /* -------------------------------------------Añadimos color de texto */
    margin-bottom: 30px; /* Manteniendo tu margen original */
}

/* Esto asegura que las negritas también sean negro puro */
.main-banner p strong {
    color: #102d8d !important; /* -------------------------------------------Añadimos color de texto */
    font-weight: 700;
}

/* --- AJUSTES PARA ESCRITORIO (Pantallas mayores a 768px) --- */
@media (min-width: 768px) {
    .main-banner {
        justify-content: flex-start; /* Alinea el contenido a la izquierda */
    }

    .main-banner .banner-caption {
        margin: 50px; /* Recupera el margen original de escritorio */
        padding: 50px;
        text-align: left; /* Texto a la izquierda en escritorio */
    }
}
/*  ------------------------------------------------------------------- Tamaño texto encabezado header */
/* Tamaño para computadoras */
h1 {
    font-size: 1.5rem; 
    color: #102d8d ;
    margin-bottom: 20px;
}

/* Tamaño para celulares (pantallas menores a 768px) */
@media (max-width: 500px) {
    h1 {
        font-size: 1rem; /* Se reduce automáticamente en el móvil */
    }
}
/*  ----------------------------------------------------------------- fin amaño texto encabezado header */


.main-banner em {
    font-style: normal;
    color: #535ba0;
}

/* Color para el subtítulo (el "BIENVENIDO A...") */
.main-banner .banner-caption span {
    color: #000000; /* Antes era gris #aaaaaa */
}

/* Color para los textos en negrita dentro del párrafo */
.main-banner .banner-caption p strong {
    color: #fffdfd;
    
}

/* ------------------------------------ FIN BANNER CABECERA ------------------------------------- */

/* ----------------------------------------- SERVICIOS ------------------------------------------ */
/* Contenedor principal */
.services {
    margin-top: 100px;
}

/* Ajuste del contenedor */
.services .container-fluid {
    padding-left: 15px;
    padding-right: 15px;
}

/* Fila con comportamiento de grid */
.services .row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -10px;
}

/* Columnas con padding uniforme */
.services .col-md-4 {
    padding: 10px;
}

/* ELEMENTO DE SERVICIO 
   Ahora tiene el estilo "hover" por defecto y sin animaciones
*/
.services .service-item { 
    width: 100%;
    height: 100%;
    border-radius: 20px;
    background-color: #535ba0; /* Color que antes era del hover */
    padding: 50px;
    text-align: center;
    margin-bottom: 0;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.7); 
}

/* Estilos de Iconos */
.services .service-item .icon {
    width: 50px;
    height: 50px;
    display: inline-block;
    margin-bottom: 30px;
    background-size: cover;
    background-repeat: no-repeat;
}

/* Texto en blanco por defecto */
.services .service-item h4 {
    color: #fff;
    margin-bottom: 20px;
}

.services .service-item p {
    color: #fff;
    margin-bottom: 0px;
}
/* Selectores de imágenes (estos se mantienen igual que en tu original) */
.services .first-item .icon { background-image: url(../images/icon_01.png); }
.services .second-item .icon { background-image: url(../images/icon_02.png); }
.services .third-item .icon { background-image: url(../images/icon_03.png); }
.services .fourth-item .icon { background-image: url(../images/icon_04.png); }
.services .fivth-item .icon { background-image: url(../images/icon_05.png); }
.services .sixth-item .icon { background-image: url(../images/icon_06.png); }

/* ----------------------------------------- FIN SERVICIOS ----------------------------------------- */

/* Simple Post */
.simple-post {
    margin-top: 80px;
}

.simple-post .container-fluid {
    padding-left: 0px;
    padding-right: 0px;
}

.simple-post p {
    margin-top: 30px;
    margin-bottom: 0px;
}

/* Tables */

section.tables {
    margin-top: 80px;
    border-top: 3px solid #eee!important;
    padding-top: 100px;
}

section.tables .container-fluid {
    padding-left: 0px;
    padding-right: 0px;
}

.default-table {
    -webkit-overflow-scrolling: touch;
    overflow-x: auto;
    background-color: #f7f7f7;
    padding: 50px;
}

.alternate-table {
    margin-top: 50px;
    -webkit-overflow-scrolling: touch;
    overflow-x: auto;
    background-color: #f7f7f7;
    padding: 50px;
}

.alternate-table table td {
    border-right: 2px solid #f7f7f7;
}

.alternate-table table td:last-child {
    border-right: none;
}


table {
    width: 100%;
}

table tbody tr {
    border-left: 0;
    border-right: 0;
    border-bottom: 10px solid #f7f7f7;
}

table td {
    padding: 20px;
}

table th {
    padding: 0px 20px 20px 20px;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-align: left;
    text-transform: capitalize;
}

@media screen and (max-width: 576px) {
    .services .service-item {
        padding: 30px 15px; /* Menos espacio interno para que el texto respire */
    }
    .custom-card {
        padding: 20px;
    }
}

table.alt {
    border-collapse: separate;
}

table.alt tbody tr td {
    border: solid 1px;
    border-left-width: 0;
    border-top-width: 0;
}

    table.alt tbody tr td:first-child {
        border-left-width: 1px;
    }

table.alt tbody tr:first-child td {
    border-top-width: 1px;
}

table.alt thead {
    border-bottom: 0;
}

table.alt tfoot {
    border-top: 0;
}

table tbody tr {
    background-color: #e7e7e7;
}

    table tbody tr:nth-child(2n + 1) {
        background-color: #fff;
    }

table th {
    color: #4a4a4a;
}

ul.table-pagination {
    padding: 0;
    margin-top: 30px;
    list-style: none;
    text-align: center;
}

ul.table-pagination li {
    display: inline-block;
}

ul.table-pagination li:first-child {
    float: left;
}

ul.table-pagination li:last-child {
    float: right;
}

ul.table-pagination li a {
    display: inline-block;
    height: 40px;
    background-color: #e7e7e7;
    text-align: center;
    line-height: 40px;
    padding: 0px 15px;
    min-width: 40px;
    color: #4a4a4a;
    text-transform: uppercase;
    font-size: 13px;
    transition: all 0.5s;
}

ul.table-pagination li a:hover,
ul.table-pagination li.active a {
    background-color: #535ba0;
    color: #fff;
}
/*-------------------------------------------------- VIDEO ---------------------------------------------------------*/

/* 1. Estilos base (Móvil) */
.video-container {
    width: 100%;
    /* Aseguramos bordes redondeados en móvil también */
    border-radius: 15px; 
    overflow: hidden; 
    background-color: #000;
    display: flex;
    align-items: stretch;
    transition: all 0.3s ease;
}

.video-fluid {
    width: 100%;
    height: auto;
    display: block; 
    /* El video debe tener sus propios bordes redondeados */
    border-radius: 15px; 
}

.video-section {
    padding-top: 40px;
    padding-bottom: 40px;
}

/* 2. Formato Escritorio (min-width: 992px) */
@media (min-width: 992px) {
    .video-container {
        background-color: #535ba0; 
        padding: 25px; /* Efecto marco azul */
        border-radius: 20px; /* Borde exterior más pronunciado */
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.7);
    }
    
    .video-fluid {
        /* Borde interior un poco más pequeño para armonía visual */
        border-radius: 12px; 
    }
}

/*------------------------------------------------ FIN VIDEO -------------------------------------------------------*/
/* ------------------------------ GALERÍA ----------------------------- */

/* Contenedor principal del Swiper */
.mySwiper {
    width: 100%;
    height: 500px; 
    border-radius: 15px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.7);  /* Sombra  */
}

/* Estilos para el título sobre la imagen */
.custom-title-overlay {
    position: absolute;
    bottom: 50px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    background-color: rgba(0, 0, 0, 0.4);
    padding: 10px 25px;
    border-radius: 50px;
    color: white;
    text-align: center;
    pointer-events: none;
    width: fit-content;
    white-space: nowrap;
}

.custom-title-overlay h3 {
    margin: 0;
    font-size: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.mySwiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Botones de navegación personalizados */
.swiper-button-next,
.swiper-button-prev {
    color: #fff !important;
    background-color: rgba(83, 91, 160, 0.5);
    width: 45px !important;
    height: 45px !important;
    border-radius: 50%;
}

/* Ajustes para móviles (Breakpoints unificados) */
@media (max-width: 768px) {
    .mySwiper {
        height: 300px;
    }

    .custom-title-overlay {
        bottom: auto;
        top: 20px; /* Posición superior en móvil para no tapar controles */
        padding: 8px 15px;
        white-space: normal;
        width: 90%;
        max-width: 300px;
        border-radius: 20px;
    }

    .custom-title-overlay h3 {
        font-size: 1rem;
    }
}

/* Contenedor de la flecha (el círculo) */
.swiper-button-next,
.swiper-button-prev {
    background-color:  rgba(80, 64, 226, 0.3); /* Color de fondo del círculo */
    width: 50px;               /* Tamaño del círculo */
    height: 50px;
    border-radius: 50%;        /* Lo hace circular */
    box-shadow: 0 4px 10px rgba(0,0,0,0.4); /* Opcional: sombra para que resalte */
}

/* El icono de la flecha (el símbolo dentro) */
.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 18px !important; /* Ajusta este valor para que la flecha sea más pequeña */
    font-weight: bold;
    color: #ffffff;             /* Color de la flecha */
}

/* Ajuste de posición (opcional) */
.swiper-button-next { right: 20px; }
.swiper-button-prev { left: 20px; }

/* --------------------------------------------- FIN GALERÍA --------------------------------------------------------- */

/* ----------------------------------------- FORMULARIO + FOOTER  ---------------------------------------------------- */

/* --- NUEVA ESTRUCTURA DE CONTENEDOR --- */
/* --- ESTILOS BASE Y MÓVIL (Mobile First) --- */
/* --- AJUSTE EN LA SECCIÓN GENERAL --- */
.main-layout-wrapper {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 20px;
    max-width: 1200px;
    margin: 0 auto; /* Esto centra el contenedor en la pantalla */
    width: 100%;    /* Asegura que use el espacio disponible */
}

.custom-card, .footer-custom-blue {
    background-color: #535ba0;
    border-radius: 15px;
    padding: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.7);
    color: white;
}

/* Formulario */
.custom-card h3 { margin-bottom: 20px; font-size: 1.5rem; }
.custom-input {
    border-radius: 8px !important;
    padding: 10px;
    border: 1px solid #ddd;
    margin-bottom: 10px;
}
.btn-custom {
    background-color: white !important;
    color: #535ba0 !important;
    font-weight: 700;
    border-radius: 8px;
    padding: 12px;
    transition: 0.3s;
    border: none;
}

/* Footer Content */
.footer-custom-blue {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.footer-logo-img {
    height: 70px;          /* Mantienes el alto que quieres */
    width: auto;           /* Impide que se estire horizontalmente */
    max-width: 100%;       /* Asegura que no se salga de su contenedor en móviles */
    object-fit: contain;   /* Mantiene la proporción original */
    filter: brightness(0) invert(1);
    margin-bottom: 15px;
    display: block;        /* Ayuda a controlar márgenes */
    margin-left: auto;     /* Centra la imagen dentro de su <a> */
    margin-right: auto;    /* Centra la imagen dentro de su <a> */
}
.social-links {
    display: flex;
    gap: 20px;
    margin-bottom: 15px;
    justify-content: center;
}
.social-icon {
    color: white;
    font-size: 1.5rem;
    transition: 0.3s;
    
}
.social-icon:hover { transform: scale(1.2); color: #ffffff; }
.footer-text { font-size: 0.85rem; opacity: 1; }

.footer-text {
    font-size: 0.85rem;
    color: #ffffff; /* Aquí pones el código de color que prefieras */
}

/* --- DISEÑO ESCRITORIO (Lado a lado) --- */
@media (min-width: 992px) {
    .main-layout-wrapper {
        flex-direction: row; 
        align-items: stretch;
        justify-content: center; /* <--- ESTO CENTRA LOS DOS ELEMENTOS JUNTOS */
        margin-top: 50px;
        margin-bottom: 50px;
        gap: 30px;
    }

    .footer-custom-blue {
        flex: 0 0 400px;    /* Mantiene el ancho fijo de 400px para el footer */
    }

    .footer-logo-img { 
        height: 90px;       /* Un poco más grande en PC, como tenías */
        width: auto;        /* Siempre auto para no deformar */
    }
}

/* Opcional: Si quieres que el formulario no se vea gigante 
       y se mantenga equilibrado con el footer de 400px */
    .contact-section {
        flex: 0 1 500px; /* Crece hasta 500px, pero no más si no es necesario */
    }

    .footer-custom-blue {
        flex: 0 0 400px; 
    }


/* ------------------------------------- FIN FORMULARIO + FOOTER  ---------------------------------------------------- */









