/* ============================================
   VARIABLES
   ============================================ */
:root {
    --primary-dark: #0a1922;
    --primary: #1a3a4a;
    --primary-light: #2c5a6e;
    --accent: rgb(2, 103, 182);
    --accent-dark: #2d5aff;
    --accent-light: #737373;
    --gray-dark: #2d3e48;
    --gray: #5a7a8a;
    --gray-light: #f5f7fa;
    --white: #ffffff;
    --black: #0a1a22;
    --shadow-sm: 0 2px 4px rgba(0,0,0,0.05);
    --shadow-md: 0 4px 15px rgba(0,0,0,0.08);
    --shadow-lg: 0 20px 40px rgba(0,0,0,0.1);
    --transition: all 0.3s ease;
}

/* ============================================
   RESET
   ============================================ */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Poppins', 'Segoe UI', 'Roboto', sans-serif;
    background: var(--white);
    color: var(--gray-dark);
    line-height: 1.6;
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
}

a {
    text-decoration: none;
    transition: var(--transition);
}

/* ============================================
   ANIMACIONES DE CONSTRUCCIÓN
   ============================================ */

/* Animación de aparecer desde abajo */
@keyframes buildUp {
    0% {
        opacity: 0;
        transform: translateY(40px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Animación de aparecer desde la izquierda */
@keyframes buildLeft {
    0% {
        opacity: 0;
        transform: translateX(-40px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Animación de aparecer desde la derecha */
@keyframes buildRight {
    0% {
        opacity: 0;
        transform: translateX(40px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Animación de escala (como si creciera) */
@keyframes buildScale {
    0% {
        opacity: 0;
        transform: scale(0.8);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Animación de construcción tipo "bloques" */
@keyframes buildBlocks {
    0% {
        opacity: 0;
        clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    }
    100% {
        opacity: 1;
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    }
}

/* Clases base para elementos animados (ocultos inicialmente) */
.animate-build {
    opacity: 0;
    visibility: hidden;
}

/* Estado visible - cada elemento tendrá su animación específica */
.animate-build.visible {
    visibility: visible;
}

/* Diferentes tipos de animación */
.build-up.animate-build.visible {
    animation: buildUp 0.8s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards;
}

.build-left.animate-build.visible {
    animation: buildLeft 0.7s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards;
}

.build-right.animate-build.visible {
    animation: buildRight 0.7s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards;
}

.build-scale.animate-build.visible {
    animation: buildScale 0.6s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards;
}

.build-blocks.animate-build.visible {
    animation: buildBlocks 0.9s ease-out forwards;
}

/* Retrasos escalonados para elementos en serie */
.delay-1 { transition-delay: 0s; animation-delay: 0s; }
.delay-2 { transition-delay: 0.1s; animation-delay: 0.1s; }
.delay-3 { transition-delay: 0.2s; animation-delay: 0.2s; }
.delay-4 { transition-delay: 0.3s; animation-delay: 0.3s; }
.delay-5 { transition-delay: 0.4s; animation-delay: 0.4s; }

/* ============================================
   TIPOGRAFÍA
   ============================================ */
h1, h2, h3, h4, h5, h6 {
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: 1rem;
}

h1 { font-size: 4rem; font-weight: 700; }
h2 { font-size: 2.2rem; }
h3 { font-size: 1.8rem; }
h4 { font-size: 1.4rem; }

/* ============================================
   LAYOUT
   ============================================ */
.container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    width: 100%;
}

/* ============================================
   HEADER OVERLAY
   ============================================ */
.header-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0) 100%);
    padding: 10px 0;
}

.header-overlay .row {
    display: flex;
    justify-content: flex-start;
}

.header-overlay .brand img {
    margin-top: 20px;
    max-height: 63px;
}

/* ============================================
   NAVBAR
   ============================================ */
 #menu {
    position: absolute;
    top: 90px;
    width: 100%;
    z-index: 150;
    padding: 10px 0;
    background: transparent;
    transition: var(--transition);
}

/* SCROLL */
#menu.scrolled {
    position: fixed;
    top: 0;
    background: var(--white);
    box-shadow: var(--shadow-md);
}

/* NAV CONTENEDOR */
.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* LOGO */
.brand img {
    max-height: 108px;
    transition: 0.3s;
	
}

/* MENÚ */
.nav-menu {
    display: flex;
    list-style: none;
    gap: 2.2rem;
	align-content: center;
	margin-right: 50px;
	margin-left: 50px;
	
}

.nav-menu li {
    position: relative;
}

.nav-menu li a {
    display: block;
    padding: 1rem 1.25rem;
    color: var(--white);
    font-size: 0.9rem;
    font-weight: 500;
    text-shadow: 1px 1px 4px rgba(0, 0, 0, 0);
}

/* HOVER */
.nav-menu li a:hover {
    color: var(--accent);
}

/* SCROLL COLOR */
#menu.scrolled .nav-menu li a {
   color: #0a1922;
    text-shadow: none;
	background-color: #ffffff;
}

#menu.scrolled .nav-menu {
   background-color: #ffffff;
}


/* ============================================
   DROPDOWN
   ============================================ */
 .submenu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    min-width: 260px;
    opacity: 0;
    transform: translateY(10px);
    transition: var(--transition);
	background-color: rgb(6, 38, 58);
	
    
   
}

.submenu li  {
    list-style: none;
	
	
}

.submenu li a {
	
    padding: 0.75rem 1.5rem;
    font-size: 0.85rem;
}


/* SHOW */
.nav-menu li:hover > .submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* ============================================
   HERO / SLIDER
   ============================================ */
.hero-fullscreen {
    position: relative;
    width: 100%;
    height: 75vh;
    overflow: hidden;
	z-index: 0;
}

/* OVERLAY */
.hero-fullscreen::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 2;
    transition: 0.3s;
}

.hero-fullscreen:hover::before {
    background: rgba(0,0,0,0.55);
}

/* SLIDER (REEMPLAZO DE CAMERA) */
.slider {
    position: absolute;
    width: 100%;
    height: 100%;
}

.slide {
    position: absolute;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 1s ease;
}

.slide.active {
    opacity: 1;
}


/* ============================================
   TABLET (768px - 1024px)
   ============================================ */
@media (max-width: 1024px) {

    .container {
        padding: 0 20px;
    }

    /* NAV */
    #menu {
        top: 70px;
    }

    .nav-menu li a {
        padding: 0.8rem 0.9rem;
        font-size: 0.8rem;
    }

    .brand img {
        max-height: 80px;
    }

    /* HERO */
    .hero-buttons {
        bottom: 20%;
        left: 5%;
    }

    .btn-hero {
        padding: 0.8rem 1.8rem;
        font-size: 0.8rem;
    }
}

/* ============================================
   MÓVIL (max 768px)
   ============================================ */
@media (max-width: 768px) {

    /* NAVBAR */
    .navbar {
        flex-direction: column;
        align-items: flex-start;
    }

    .brand img {
        max-height: 70px;
        margin-bottom: 10px;
    }

    /* MENÚ EN COLUMNA */
    .nav-menu {
        flex-direction: column;
        width: 100%;
        background: rgba(0,0,0,0.9);
        border-radius: 10px;
        padding: 10px;
    }

    .nav-menu li {
        width: 100%;
		
    }

    .nav-menu li a {
        width: 100%;
        padding: 0.8rem;
        font-size: 0.85rem;
       
    }

    /* CUANDO SCROLL */
    #menu.scrolled .nav-menu {
        background: #000000;
    }

    #menu.scrolled .nav-menu li a {
        color: var(--gray-dark);
    }

    /* DROPDOWN */
    .submenu {
        position: relative;
        box-shadow: none;
        border-radius: 0;
        transform: none;
        opacity: 1;
        visibility: visible;
        display: none;
		background-color: rgb(6, 38, 58);
    }

	
	.submenu li {
    list-style: none;
	
}

	
    .nav-menu li:hover > .submenu {
        display: block;
		
    }

    /* HERO */
    .hero-fullscreen {
        height: 80vh;
    }

    .hero-buttons {
        bottom: 15%;
        left: 5%;
    }

    .btn-hero {
        width: 90%;
        text-align: center;
        font-size: 0.8rem;
        padding: 0.8rem;
    }
}

/* ============================================
   MÓVIL PEQUEÑO (max 480px)
   ============================================ */
@media (max-width: 480px) {

    .brand img {
        max-height: 100px;
    }

    .hero-fullscreen {
        height: 75vh;
    }

    .btn-hero {
        font-size: 0.85rem;
        padding: 0.7rem;
    }

    .nav-menu li a {
        font-size: 0.75rem;
    }
}

/* BOTÓN HAMBUGUESA */
.menu-toggle {
    display: none;
    font-size: 46px;
    color: #ffffff;
    cursor: pointer;
    z-index: 200;
}

/* TABLET Y MÓVIL */
@media (max-width: 768px) {

    .menu-toggle {
        display: block;
        position: absolute;
        right: 20px;
        top: 15px;
    }

    /* MENÚ OCULTO POR DEFECTO */
    .nav-menu {
        position: absolute;
        top: 70px;
        left: 0;
        width: 100%;
        flex-direction: column;
        background: rgba(0,0,0,0.95);
        padding: 15px;
        display: none;
        border-radius: 0 0 10px 10px;
    }

    /* CUANDO SE ABRE */
    .nav-menu.active {
        display: flex;
    }

    .nav-menu li a {
        color: #ffffff;
        padding: 10px;
    }
	
	 

    /* SCROLL */
    #menu.scrolled .menu-toggle {
        color: #0a1922;
    }

    #menu.scrolled .nav-menu {
        background: #ffffff;
    }

    #menu.scrolled .nav-menu li a {
        color: var(--gray-dark);
    }
}

.modal-gif {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.71);
    backdrop-filter: blur(5px);
    z-index: 9999;
    justify-content: center;
    align-items: center;
    animation: fadeIn 0.3s ease;
}

.modal-gif.active {
    display: flex;
}

.modal-content {
    position: relative;
    max-width: 90%;
    max-height: 90%;
    background: transparent;
    border-radius: 20px;
    animation: slideIn 0.4s ease;
}

.modal-content img {
    width: 100%;
    height: auto;
    max-width: 600px;
    max-height: 80vh;
    border-radius: 20px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    display: block;
}

/* Botón de cerrar (tache) */
.modal-close {
    position: absolute;
    top: -15px;
    right: -15px;
    width: 40px;
    height: 40px;
    
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: var(--transition, all 0.3s ease);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    border: 2px solid rgba(202, 199, 199, 0.66);
}

.modal-close:hover {
    background: rgba(128, 128, 128, 0.43);
    transform: scale(1.1) rotate(90deg);
}

.modal-close::before,
.modal-close::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 3px;
    background: gray;
    border-radius: 2px;
}

.modal-close::before {
    transform: rotate(45deg);
}

.modal-close::after {
    transform: rotate(-45deg);
}

/* Animaciones */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideIn {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(30px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Responsive para el modal */
@media (max-width: 768px) {
    .modal-content img {
        max-width: 95%;
        max-height: 70vh;
    }
    
    .modal-close {
        top: -10px;
        right: -10px;
        width: 35px;
        height: 35px;
    }
    
    .modal-close::before,
    .modal-close::after {
        width: 16px;
    }
}

/*primera sección de inicio*/

/* ===== SECCIÓN GENERAL ===== */
.border {
    padding: 4rem 2rem;
    background: #ffffff;
    color: #222;
}

/* ===== LAYOUT ===== */
.row {
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
}

.span8 {
    flex: 2;
    min-width: 300px;
}

.span4 {
    flex: 1;
    min-width: 280px;
}


/* ============================================
    SERVICIOS - VERSIÓN CON VOLTEO 3D COMPLETO
   ============================================ */

/* Lista */
.list0 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(347px, 1fr));
    gap: 3rem;
    margin-top: -138px;
    z-index: 7;
    list-style: none;
    padding: 0;
}

.list0 li {
    list-style: none;
    padding: 0;
    height: 205px; /* Altura fija para todas las tarjetas */
}

/* Contenedor principal de la tarjeta */
.card-container {
    width: 100%;
    height: 100%;
    perspective: 1000px;
}

/* Inner de la tarjeta */
.card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    transform-style: preserve-3d;
}

/* Volteo de la tarjeta */
.card-container.flipped .card-inner {
    transform: rotateY(180deg);
}

/* Caras frontal y posterior */
.card-front, 
.card-back {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    border-radius: 20px;
    overflow: hidden;
}

/* Cara frontal */
.card-front {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    background: rgba(6, 71, 110, 0.98);
    border: 1px solid rgba(0, 0, 0, 0.05);
    box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.05);
    transition: all 0.4s cubic-bezier(0.34, 1.2, 0.64, 1);
    position: relative;
    z-index: 2;
}

/* Efecto hover en cara frontal */
.card-container:not(.flipped):hover .card-front {
    transform: translateY(-12px) scale(1.02);
    box-shadow: 0 25px 40px -12px rgba(0, 0, 0, 0.25);
    border-color: #00eefd;
    background: rgb(8, 85, 130);
}

/* Línea decorativa */
.card-front::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0%;
    height: 4px;
    background: linear-gradient(90deg, #00fffa, #00b8ff);
    transition: width 0.5s cubic-bezier(0.65, 0, 0.35, 1);
    border-radius: 2px;
}

.card-container:not(.flipped):hover .card-front::after {
    width: 100%;
}

/* Cara posterior - IMAGEN OCUPA TODO */
.card-back {
    transform: rotateY(180deg);
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.card-back img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; 
   
}

/* Overlay en la imagen posterior */
.card-back::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(0,0,0,0.1), rgba(0,0,0,0.7));
    z-index: 1;
    border-radius: 20px;
}

/* Botón volver sobre la imagen */
.btn-back {
    position: relative;
    z-index: 2;
    color: #ffffff;
    border: none;
    padding: 12px 30px;
    border-radius: 25px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    opacity: 0;
    transform: translateY(20px);
	margin-top: 4px;
	margin-right: 305px;
	background-color: rgba(2, 2, 2, 0.72);
    
}

.card-container.flipped .btn-back {
    opacity: 1;
    transform: translateY(0);
}



/* ICONOS */
.bd {
    overflow: visible;
    border-radius: -9px;
    flex-shrink: 0;
	width: 60px;
	height: 60px;
	margin-top: 9px;
	margin-left: 10px;
}

.bd img {
    object-fit: contain;
    opacity: 0.9;
    transition: all 0.3s cubic-bezier(0.34, 1.2, 0.64, 1);
}

.card-container:not(.flipped):hover .bd img {
    transform: scale(1.08) rotate(2deg);
    opacity: 1;
}

/* TEXTO */
.extra-wrap {
    flex: 1;
}

.btn-flip {
    background: rgba(10, 22, 29, 0.66);
    border: none;
    color: #ffffff;
    padding: 10px;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.3s ease;
	border-radius: 87px;
	text-align: center;
}

/* Efecto subrayado en botón */
.btn-flip::after {
    content: '';
    display: block;
    width: 0;
    height: 2px;
    background: #ffffff;
    transition: width 0.3s ease;
    margin-top: 4px;
	
}

.card-container:not(.flipped):hover .btn-flip::after {
    width: 100%;
}

.card-container:not(.flipped):hover .btn-flip {
    color: #ffffff;
    transform: translateX(5px);
	
}

.extra-wrap p {
    font-size: 0.95rem;
    color: white;
    line-height: 1.5;
    margin: 0.5rem 0 0 0;
    transition: all 0.3s ease;
}

.card-container:not(.flipped):hover .extra-wrap p {
    transform: translateX(3px);
}

/* Título en la imagen posterior (opcional) */
.card-title-back {
    position: relative;
    z-index: 2;
    color: white;
    font-size: 1.5rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 20px;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
    opacity: 0;
    transform: translateY(-20px);
    transition: all 0.3s ease 0.1s;
}

.card-container.flipped .card-title-back {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================
    RESPONSIVE
   ============================================ */
@media (max-width: 768px) {
    .list0 {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .list0 li {
        height: 220px;
    }
}
/* ============================================
    BANNER BOX - ESTILOS ORIGINALES
   ============================================ */
.bannerBox {
    background: rgb(239, 234, 234);
    border-radius: 20px;
    padding: 2rem;
	margin-top: 82px;
    text-align: center;
    box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.1);
}

.bannerBox .title1 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #000000;
    margin-bottom: 1.1rem;
}

.btn-primary.btn1 {
    background: #0672b3;
    color: #ffffff;
    padding: 12px 30px;
    border-radius: 10px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-primary.btn1:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(0, 238, 253, 0.3);
}

/* ============================================
    RESPONSIVE
   ============================================ */
@media (max-width: 768px) {
    .list0 {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        margin-top: -100px;
    }
    
    .card-back img {
        max-height: 224px;
    }
    
    .bd img {
        width: 50px;
        height: 75px;
    }
}


/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {

	.list0 {
    
	margin-top: 1px;
	
}
	
    .list1 figure img {
        width: 50px;
        height: 50px;
    }
    
    .bd img {
        width: 208px;
        height: 50px;
		margin-left: 1px;
		
    }
    
    .border {
        padding: 2.5rem 1.2rem;
    }

    .row {
        flex-direction: column;
    }

    .list0 {
        grid-template-columns: 1fr;
    }

    .list0 li {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

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

    .btn1 {
        width: 100%;
    }

    .list1 li {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    
    .list1-box h3::after {
        left: 50%;
        transform: translateX(-50%);
    }
    
    .list1-box h3 {
        display: block;
        text-align: center;
    }
}


/* ===== SECCIÓN PRINCIPAL ===== */
.videoBox {
    background: linear-gradient(135deg, rgba(15, 32, 39, 0.84), #203a43, rgba(44, 83, 100, 0.62));
    padding: 60px 0;
    position: relative;
}

.videoBox {
    background: linear-gradient(rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0.54)), url('../img/picture32.JPG');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    padding: 60px 0;
}

/* ===== CONTENEDOR FLEX ===== */
.contenido-dinamico {
    display: flex;
    align-items: center;
    gap: 40px;
    flex-wrap: wrap;
}

/* ===== TEXTO - OCUPA EL 45% ===== */
.texto-wrapper {
    flex: 1;
    min-width: 280px;
    background: rgba(255, 255, 255, 0.95);
    padding: 40px 35px;
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(2px);
    transition: transform 0.3s ease;
}

.texto-wrapper:hover {
    transform: translateY(-8px);
}

.texto-wrapper h4 {
    color: #1a1a1a;
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 25px;
    border-left: 5px solid #ff6b35;
    padding-left: 20px;
    line-height: 1.3;
}

.texto-wrapper p {
    color: #333;
    font-size: 1.05rem;
    line-height: 1.7;
    margin-bottom: 20px;
    text-align: justify;
}

/* ===== CONTENEDOR CON PROPORCIÓN FIJA ===== */
.fw_video {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* Proporción 16:9 (1920x1080) */
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 25px 45px rgba(0, 0, 0, 0.3);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    background-color: #000;
}

.fw_video:hover {
    transform: scale(1.02);
    box-shadow: 0 30px 55px rgba(0, 0, 0, 0.4);
}




.fw_video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;  /* Video COMPLETO, con bordes negros si es necesario */
    /* Si quieres que llene todo sin bordes, usa object-fit: cover */
}
/* ===== RESPONSIVE ===== */

/* Pantallas grandes (escritorio normal) */
@media (min-width: 1200px) {
    .fw_video video {
        min-height: 480px;
    }
    
    .texto-wrapper h4 {
        font-size: 2rem;
    }
    
    .texto-wrapper p {
        font-size: 1.1rem;
    }
}

/* Pantallas muy grandes (1440px+) */
@media (min-width: 1440px) {
    .fw_video video {
        min-height: 407px;
    }
    
    .videoBox {
        padding: 80px 0;
    }
    
    .texto-wrapper {
        padding: 50px 45px;
    }
}

/* Tablets (768px - 1199px) */
@media (max-width: 1199px) and (min-width: 769px) {
    .fw_video video {
        min-height: 360px;
    }
    
    .texto-wrapper h4 {
        font-size: 1.5rem;
    }
    
    .texto-wrapper p {
        font-size: 0.95rem;
    }
    
    .contenido-dinamico {
        gap: 30px;
    }
}

/* Móviles (menos de 768px) */
@media (max-width: 768px) {
    .videoBox {
        padding: 40px 15px;
    }
    
    .contenido-dinamico {
        flex-direction: column;
        gap: 25px;
    }
    
    .texto-wrapper {
        padding: 25px 20px;
        order: 1;
    }
    
    .video-wrapper {
        order: 2;
        min-width: auto;
    }
    
    .fw_video video {
        min-height: 220px;
    }
    
    .texto-wrapper h4 {
        font-size: 1.3rem;
        padding-left: 15px;
        border-left-width: 4px;
    }
    
    .texto-wrapper p {
        font-size: 0.9rem;
        text-align: left;
    }
}



/* ===== FOOTER ===== */
.footer-estilizado {
    
    background: linear-gradient(rgba(0, 0, 0, 0.84), rgba(0, 0, 0, 0.77)),
                url('../img/picture22.jpg') center/cover no-repeat;
   
    padding: 50px 0 20px;
    color: #ffffff;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* Opción 2: Imagen más sutil (desenfoque) */
.footer-estilizado.estilo-difuminado {
    background: rgba(0, 0, 0, 0.85);
    position: relative;
}



/* ===== TIPOGRAFÍA ===== */
.footer-estilizado h3 {
    font-size: 1.8rem;
    margin-bottom: 10px;
    font-weight: 600;
    letter-spacing: 1px;
}

.footer-estilizado h4 {
    font-size: 1.2rem;
    margin-bottom: 20px;
    position: relative;
    display: inline-block;
}

.footer-estilizado h4::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 40px;
    height: 2px;
    background: #0041ff;
}

/* ===== LISTA DE ENLACES ===== */
.footer-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links ul li {
    margin-bottom: 10px;
}

.footer-links ul li a {
    color: #ccc;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-block;
}

.footer-links ul li a:hover {
    color: #0041ff;
    transform: translateX(5px);
}

/* ===== CONTACTO ===== */
.footer-contacto p {
    margin-bottom: 10px;
    color: #ccc;
}

.footer-contacto i {
    margin-right: 10px;
    color: #0041ff;
}

/* ===== COPYRIGHT ===== */
.footer-bottom {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.copyright {
    text-align: center;
}

.copyright p {
    color: #999;
    font-size: 0.9rem;
    margin: 0;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .footer-estilizado {
        padding: 40px 15px 20px;
        text-align: center;
    }
    
    .footer-estilizado h4::after {
        left: 50%;
        transform: translateX(-50%);
    }
    
    .footer-links ul li a:hover {
        transform: translateX(0);
    }
    
    .footer-logo,
    .footer-links,
    .footer-contacto {
        margin-bottom: 30px;
    }
    
    .copyright p {
        font-size: 0.8rem;
    }
}

/* ===== ICONOS (si no usas FontAwesome) ===== */
/* Iconos simples con CSS puro */
.footer-contacto i {
    display: inline-block;
    width: 20px;
    font-style: normal;
    font-weight: bold;
}


.footer-contacto i {
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
}

.icon-phone::before { content: "\f095"; }
.icon-envelope::before { content: "\f0e0"; }
.icon-map-marker::before { content: "\f3c5"; }


/* ============================================
   TEXTO DINÁMICO SOBRE SLIDER - VERSIÓN CORREGIDA
   ============================================ */

/* Contenedor del texto animado - Posicionamiento mejorado */
.texto-dinamico-container {
    position: absolute;
    top: 57%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    width: 100%;
    text-align: center;
    z-index: 20;
    pointer-events: none;
    padding: 0 20px;
    box-sizing: border-box;
}

/* Estilo de los textos */
.texto-animado {
    display: none;
    width: 100%;
    text-align: center;
    animation: fadeInUp 0.8s ease forwards;
}

.texto-animado.active {
    display: block;
}

/* Aseguramos que el texto se centre perfectamente */
.texto-animado h2 {
    font-size: 3rem;
    font-weight: 800;
    margin: 0 auto 1rem auto;
    padding: 0;
    color: #ffffff;
    text-shadow: 3px 3px 8px rgba(0, 0, 0, 0.5);
    letter-spacing: 2px;
    line-height: 1.2;
    text-align: center;
    width: 100%;
}

.texto-animado p {
    font-size: 1.2rem;
    font-weight: 500;
    margin: 0;
    padding: 0;
    color: #ffffff;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    letter-spacing: 1px;
    text-align: center;
    width: 100%;
}

/* Animaciones */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeOutDown {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-30px);
    }
}

.texto-animado.hide {
    animation: fadeOutDown 0.6s ease forwards;
    display: block;
}

/* Ajustes responsivos */
@media (max-width: 768px) {
    .texto-animado h2 {
        font-size: 1.8rem;
    }
    
    .texto-animado p {
        font-size: 0.9rem;
    }
}

@media (max-width: 480px) {
    .texto-animado h2 {
        font-size: 1.4rem;
    }
    
    .texto-animado p {
        font-size: 0.8rem;
    }
}






 
/* ---------------------------------------- */
/* TARJETA FLIP                             */
/* ---------------------------------------- */

.contenedor-card {
  width: 340px;
  height: 292px;
  perspective: 1000px;
  position: relative;
}

.card-inner {
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform .7s ease;
  position: relative;
}

.card.flipped .card-inner {
  transform: rotateY(180deg);
}

/* Caras */
.card-front,
.card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  top: 0;
  left: 0;
}

/* FRONT */
.card-front img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card-front span {
  position: absolute;
  bottom: 7px;
  left: 50%;
  transform: translateX(-50%);
  background: #ff9400;
  padding: 7px 20px;
  border-radius: 6px;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
  z-index: 5;
}

/* BACK */
.card-back {
  transform: rotateY(180deg);
  position: relative;
  padding: -47px 20px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
    backface-visibility: hidden;
}

/* Imagen del BACK (misma que en el FRONT) */
.card-back img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.71; 
  z-index: 1;
}

/* Contenido encima de la imagen */
.card-back h3,
.card-back a,
.card-back .back-btn {
  position: relative;
  z-index: 3;
	
}

.card-back h3{
    color: #ffffff;
	margin-top: 50px;
}


/* ============================================
   BANNER EN CARA POSTERIOR
   ============================================ */

/* Contenedor del banner */
.banner-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.banner-container img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}

.banner-container img.active {
    opacity: 1;
}

/* Indicadores (dots) */
.banner-dots {
    position: absolute;
    bottom: 20px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 10px;
    z-index: 15;
}

.banner-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
}

.banner-dot.active {
    background: #00eefd;
    transform: scale(1.2);
}

.banner-dot:hover {
    background: rgba(255, 255, 255, 0.9);
}

/* Botones de navegación */
.banner-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 15;
    font-size: 18px;
    transition: all 0.3s ease;
    opacity: 0;
}

.card-container.flipped .banner-nav {
    opacity: 1;
}

.banner-nav:hover {
    background: rgba(0, 238, 253, 0.8);
    transform: translateY(-50%) scale(1.1);
}

.banner-nav.prev {
    left: 10px;
}

.banner-nav.next {
    right: 10px;
}

/* Ajustes responsivos */
@media (max-width: 768px) {
    .banner-nav {
        width: 25px;
        height: 25px;
        font-size: 12px;
    }
    
    .banner-dots {
        bottom: 10px;
    }
    
    .banner-dot {
        width: 6px;
        height: 6px;
    }
}
