        @font-face {
            font-family: 'Gotham';
            src: url('fonts/Gotham-Book.woff2') format('woff2'), url('fonts/Gotham-Book.woff') format('woff');
        }

        :root {
            --primary: #172D49;
            --highlight: #F6A41A;
            --white: #ffffff;
            --primary-rgb: 23, 45, 73;
        }

        *,
        *::before,
        *::after {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body,
        html {
            font-family: 'Gotham', sans-serif;
            height: auto;
        }

        /* Navbar */
        nav {
            position: fixed;
            top: 0;
            width: 100%;
            height: 5rem;
            background-color: var(--primary);
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0 1rem;
            transition: background-color 0.3s ease;
            z-index: 1000;
        }

        nav.scrolled {
            background-color: rgba(var(--primary-rgb), 0.75);
        }

        .logo {
            height: 50px;
            opacity: 0;
            transform: scale(0) rotate(-180deg);
            animation: logoPop 1s cubic-bezier(0.68, -0.55, 0.27, 1.55) forwards;
            margin-right: 3rem;
        }

        @keyframes logoPop {
            0% {
                opacity: 0;
                transform: scale(0) rotate(-180deg);
            }

            60% {
                opacity: 1;
                transform: scale(1.2) rotate(15deg);
            }

            100% {
                opacity: 1;
                transform: scale(1) rotate(0deg);
            }
        }

        .nav-menu {
            list-style: none;
            display: flex;
            gap: 1.5rem;
        }

        .nav-menu li a {
            color: var(--white);
            font-weight: bold;
            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
            text-decoration: none;
            transition: transform 0.3s ease, color 0.3s ease;
        }

        .nav-menu li a:hover {
            color: var(--highlight);
            transform: scale(1.1);
        }

        .hamburger {
            display: none;
            background: none;
            border: none;
            cursor: pointer;
            font-size: 2rem;
            color: var(--white);
            position: absolute;
            right: 1rem;
        }

        /* Responsive navbar */
        @media (max-width: 768px) {
            nav {
                justify-content: center;
            }

            nav.scrolled {
                background-color: rgba(var(--primary-rgb), 1);
            }

            .logo {
                margin-right: 0 !important;
            }

            .hamburger {
                display: block;
            }

            .nav-menu {
                display: none;
                flex-direction: column;
                position: absolute;
                top: 5rem;
                left: 0;
                width: 100%;
                background: var(--primary);
                padding: 1rem 0;
                align-items: center;
            }

            .nav-menu.show {
                display: flex;
            }

            .nav-menu li {
                width: 100%;
                text-align: center;
                padding: 0.75rem 0;
                border-bottom: 1px solid rgba(255, 255, 255, 0.2);
            }

            .nav-menu li:last-child {
                border-bottom: none;
            }
        }

        /* Visor de imágenes */
        .visor {
            position: relative;
            width: 100%;
            height: calc(100vh - 5rem);
            margin-top: 5rem;
            overflow: hidden;
        }

        .visor img {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            opacity: 0;
            transform: scale(1);
            transition: opacity 1s ease, transform 5s ease;
        }

        .visor img.active {
            opacity: 1;
            transform: scale(1.05);
        }

        .visor .prev,
        .visor .next {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background: rgba(0, 0, 0, 0.3);
            border: none;
            color: var(--white);
            font-size: 2rem;
            width: 3rem;
            height: 3rem;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            z-index: 10;
            border-radius: 50%;
        }

        .visor .prev {
            left: 1rem;
        }

        .visor .next {
            right: 1rem;
        }

        .visor .indicator {
            position: absolute;
            bottom: 1rem;
            left: 50%;
            transform: translateX(-50%);
            background: rgba(0, 0, 0, 0.5);
            color: var(--white);
            padding: 0.25rem 0.5rem;
            border-radius: 0.25rem;
            font-size: 0.9rem;
        }

        /* Make viewer responsive */
        @media (max-width: 768px) {
            .visor {
                height: 50vh;
            }

            /* adapt height on small screens */
        }

        /* Sección Acerca */
        .about {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 2rem;
            margin-top: 3rem;
            padding: 2rem 8rem;
            /* background: #f5f5f5; */
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 1s ease, transform 1s ease;
        }

        .about.in-view {
            opacity: 1;
            transform: translateY(0);
        }

        .about .text {
            flex: 2;
            max-width: 800px;
            text-align: justify;
            padding-left: 2rem;
        }

        .about .text h2 {
            color: var(--primary);
            margin-bottom: 0.5rem;
            font-size: 1.5rem;
        }

        .about .text h3 {
            color: var(--highlight);
            margin-bottom: 1rem;
            font-size: 1.75rem;
        }

        @media (max-width: 768px) {
            .about .text h2 {
                text-align: center;
                font-size: 1.2rem;
            }

            .about .text h3 {
                text-align: center;
                font-size: 1.3rem;
            }
        }

        .about .text p {
            color: #333;
            line-height: 1.6;
            margin-bottom: 1rem;
        }

        .about .logo-container {
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            transform: translateY(-20px);
            transition: opacity 1s ease, transform 1s ease;
        }

        .about.in-view .logo-container {
            opacity: 1;
            transform: translateY(0);
        }

        .about .logo-container img {
            max-height: 300px;
            width: auto;
        }

        @media(max-width: 768px) {
            .about .logo-container img {
                max-height: 200px;
                width: auto;
            }
        }

        @media(max-width: 768px) {
            .about {
                flex-direction: column;
                padding: 1rem;
            }

            .about .text {
                padding-left: 0;
            }

            .about .logo-container {
                margin-top: 1rem;
            }
        }

        /* Footer */
        footer {
            background-color: var(--primary);
            padding: 1rem;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            margin-top: 2rem;
        }

        .footer-logo {
            width: 120px;
            display: block;
            /* Deja de ser flex */
            margin: 3rem auto 1rem;
            /* 0 arriba, auto a los lados, 1rem abajo */
        }

        .footer-social {
            display: flex;
            gap: 1rem;
            margin-bottom: 1rem;
        }

        .footer-social a {
            background-color: var(--highlight);
            width: 2.5rem;
            height: 2.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 0.5rem;
            color: var(--white);
            font-size: 1rem;
            transform: translateY(-200%);
            opacity: 0;
            transition: transform 0.6s ease, opacity 0.6s ease;
        }

        .footer-social.animate a {
            transform: translateY(0);
            opacity: 1;
        }

        footer p {
            color: var(--white);
            font-size: 0.9rem;
            text-align: center;
        }

        .footer-header h3 {
            display: flex;
            flex-direction: column;
            align-items: center;
            color: #ffffff;
            /* texto en blanco */
            margin: 1.5rem 0;
            /* espacio arriba y abajo */
            font-size: 1.25rem;
            /* opcional: ajusta tamaño si quieres */
        }

        .footer-divider {
            width: calc(100% - 3rem);
            border: none;
            border-top: 1px solid #ffffff;
            /* grosor y color */
            margin: 1rem auto;
            /* espacio arriba/abajo y centrado */
            opacity: 0.5;
            /* opcional, para suavizar */
        }
        /* ============================
/* Sección Contacto
   ============================ */
.contact-section {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  padding: 12rem 1rem;      /* Espacio vertical y lateral */
  max-width: 1200px;
  margin: 0 auto;
}

.contact-text {
  flex: 1 1 40%;
  min-width: 280px;
}

.contact-text h1 {
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

.contact-text p {
  line-height: 1.6;
  color: #555;
}

.contact-form {
  flex: 1 1 50%;
  min-width: 280px;
}

.contact-form form {
  display: grid;
  gap: 1rem;
}

.contact-form input,
.contact-form textarea {
  width: 100%;
  box-sizing: border-box;   /* Asegura que padding no rompa el ancho */
  padding: 0.75rem;
  border: none;
  background: #f0f0f0;
  font-size: 1rem;
  border-radius: 4px;
}

.contact-form textarea {
  resize: vertical;
  min-height: 150px;
}

.btn-submit {
  background-color: var(--highlight);
  color: #fff;
  border: none;
  padding: 0.75rem 1.5rem;
  font-weight: bold;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 4px;
  width: max-content;
  transition: opacity 0.3s;
}

.btn-submit:hover {
  opacity: 0.9;
}

/* Responsive para pantallas pequeñas */
@media (max-width: 768px) {
  .contact-section {
    flex-direction: column;   /* Apila secciones */
    padding: 6rem 1rem;       /* Reduce el padding vertical */
    gap: 1.5rem;
  }

  .contact-text,
  .contact-form {
    width: 100%;              /* Ocupan todo el ancho disponible */
  }

  .btn-submit {
    width: 100%;              /* Botón de ancho completo en móvil */
    text-align: center;
  }
}


/* Para mensajes de confirmación/error */
.form-message {
  margin-top: 1rem;
  padding: 0.75rem;
  border-radius: 4px;
}

.form-message.success {
  background: #d4edda;
  color: #155724;
}

.form-message.error {
  background: #f8d7da;
  color: #721c24;
}

/* Fondo gris y estilo al contenedor del formulario */
.contact-form {
  background-color: #ececec;  /* gris claro */
  padding: 2rem;              /* espacio interior */
  border-radius: 8px;         /* esquinas redondeadas */
}

/* Para que el mensaje de éxito/error no quede muy pegado */
.form-message {
  margin-top: 1rem;
  padding: 0.75rem;
  border-radius: 4px;
}

.form-message.success {
  background-color: #d4edda;
  color: #155724;
}

.form-message.error {
  background-color: #f8d7da;
  color: #721c24;
}

/* Campos de texto con fondo blanco */
.contact-form input,
.contact-form textarea {
  background-color: #ffffff !important;
  border: 1px solid #ccc;
  color: #333;
}
.contact-form .star {
  color: red;
  /* opcional: ajusta tamaño, margen, etc. */
}

/* === Animación de entrada === */
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Prepara las tarjetas para animar */
.team-grid .member {
  opacity: 0;
  /* Duración y easing de la animación */
  animation: fadeInUp 0.6s ease forwards;
}

/* === GRID DE TARJETAS === */
.card-grid {
  display: grid;
  gap: 1rem;
  /* 2 columnas en móvil, 4 en escritorio */
  grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
  padding: 2rem 1rem;
}

/* === CONTAINER 3D === */
.card {
  perspective: 1000px;
}
.card-inner {
  position: relative;
  width: 100%;
  /* altura 2:3 */
  padding-bottom: 66.66%;
  transform-style: preserve-3d;
  transition: transform 0.6s ease;
}
.card:hover .card-inner {
  transform: rotateY(180deg);
}

/* === FRENTE y REVERSO === */
.card-front,
.card-back {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  backface-visibility: hidden;
  border-radius: 8px;
  overflow: hidden;
}

/* Frente: imagen con overlay semitransparente */
.card-front {
  background-size: cover;
  background-position: center;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  font-size: 1.5rem; font-weight: bold;
  text-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.card-front::before {
  content: "";
  position: absolute; top: 0; left: 0;
  width:100%; height:100%;
  background: rgba(246, 164, 26 ,0.3);
}

/* Reverso: fondo azul marino con link centrado */
.card-back {
  background-color: #001f3f;
  display: flex; align-items: center; justify-content: center;
  transform: rotateY(180deg);
}
.card-back a {
  color: #fff;
  font-size: 1.1rem;
  text-decoration: none;
  padding: 0.5rem 1rem;
  border: 2px solid #fff;
  border-radius: 4px;
  transition: background 0.3s;
}
.card-back a:hover {
  background: rgba(255,255,255,0.2);
}

