/* Hero general */
.page-hero {
  position: relative;
  min-height: 50vh;
  background: linear-gradient(-45deg, #001f54, #003366, #005f73, #0a9396);
  background-size: 400% 400%;
  animation: heroGradient 15s ease infinite;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-hero .container {
  position: relative;
  z-index: 2;
}

.page-hero h1 {
  font-size: 3rem;
  margin-bottom: 0.5rem;
}

.page-hero p {
  font-size: 1.2rem;
  opacity: 0.9;
}

/* Fondo animado */
@keyframes heroGradient {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Overlay */
.hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 1;
}

/* Formas decorativas */
.hero-shape {
  position: absolute;
  border-radius: 50%;
  opacity: 0.15;
  z-index: 0;
}
.shape1 { width: 200px; height: 200px; background: #f1c40f; top: 10%; left: -80px; animation: float 8s ease-in-out infinite; }
.shape2 { width: 150px; height: 150px; background: #00bcd4; bottom: 15%; right: -60px; animation: float 10s ease-in-out infinite; }
.shape3 { width: 100px; height: 100px; background: #e74c3c; top: 30%; right: 20%; animation: float 12s ease-in-out infinite; }

/* Flotación */
@keyframes float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
  100% { transform: translateY(0); }
}












/* Partículas flotantes sutiles */
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.15) 1px, transparent 1px);
  background-size: 40px 40px;
  animation: moveBg 20s linear infinite;
  z-index: 0;
}

@keyframes moveBg {
  from { background-position: 0 0; }
  to { background-position: 100px 100px; }
}

/* Título colorido animación */
.page-hero h1 {
  font-size: 3rem;
  margin-bottom: 0.5rem;
  background: linear-gradient(90deg, #f1c40f, #00bcd4, #e74c3c);
  background-size: 200% auto;
  background-clip: text;
  -webkit-background-clip: text; /* Soporte Chrome / Safari */
  color: transparent;
  -webkit-text-fill-color: transparent; /* Soporte Safari */
  animation: gradientText 6s linear infinite;
}

@keyframes gradientText {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}