/* Eliminar todas las sombras */
.no-shadow {
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
}

.no-shadow:before,
.no-shadow:after {
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
}

.no-shadow *,
.no-shadow *:before,
.no-shadow *:after {
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
}

/* Estilos modernos y animados para el footer */
/* Contenedor de suscripción independiente */
.footer-subscribe-container {
  position: relative;
  z-index: 10;
  margin-bottom: -30px;
  margin-top: 100px;
  padding: 0 15px;
  width: 100%;
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  overflow: visible;
}

/* Estilos para sección Newsletter independiente si aparece en otras páginas */
.newsletter-card {
  margin-top: 80px;
  margin-bottom: 30px;
  position: relative;
  z-index: 5;
}

.footer {
  margin-top: 60px;
  position: relative;
  overflow: hidden;
  padding-top: 80px;
  perspective: 1000px;
  z-index: 1;
}

/* Fondo con degradado y efectos */
.footer:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, #0396a6, #006d77, #004e64);
  z-index: -1;
}

/* Patrón de fondo */
.footer:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23ffffff' fill-opacity='0.03' fill-rule='evenodd'/%3E%3C/svg%3E");
  background-size: 100px 100px;
  z-index: -1;
  opacity: 0.5;
}

/* Efecto de resplandor en el fondo */
.footer .shapes-container {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  overflow: hidden;
}

.footer .shape {
  position: absolute;
  opacity: 0.15;
}

/* Iconos educativos flotantes */
.footer .shape-1 {
  top: 20%;
  left: 10%;
  width: 80px;
  height: 80px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M12 3L1 9l11 6l9-4.91V17h2V9M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82z'/%3E%3C/svg%3E") center/contain no-repeat;
  animation: float 8s infinite ease-in-out;
}

.footer .shape-2 {
  top: 60%;
  left: 30%;
  width: 100px;
  height: 100px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C7.58 3 4 4.79 4 7s3.58 4 8 4 8-1.79 8-4-3.58-4-8-4M4 9v3c0 2.21 3.58 4 8 4s8-1.79 8-4V9c0 2.21-3.58 4-8 4s-8-1.79-8-4m0 5v3c0 2.21 3.58 4 8 4s8-1.79 8-4v-3c0 2.21-3.58 4-8 4s-8-1.79-8-4z'/%3E%3C/svg%3E") center/contain no-repeat;
  animation: float 12s infinite ease-in-out;
}

.footer .shape-3 {
  top: 30%;
  right: 10%;
  width: 90px;
  height: 90px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M19 2l-5 4.5v11l5-4.5V2M6.5 5C4.55 5 2.45 5.4 1 6.5v14.66c0 .25.25.5.5.5.1 0 .15-.07.25-.07 1.35-.65 3.3-1.09 4.75-1.09 1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.31 4.75 1.06.1.05.15.03.25.03.25 0 .5-.25.5-.5V6.5c-.6-.45-1.25-.75-2-1V19c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V6.5C10.55 5.4 8.45 5 6.5 5z'/%3E%3C/svg%3E") center/contain no-repeat;
  animation: float 10s infinite ease-in-out reverse;
}

.footer .shape-4 {
  bottom: 15%;
  right: 20%;
  width: 70px;
  height: 70px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M9 3L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2h-3.17L15 3H9m3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3C/svg%3E") center/contain no-repeat;
  animation: float 9s infinite ease-in-out;
}

.footer .shape-5 {
  bottom: 30%;
  left: 5%;
  width: 60px;
  height: 60px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M19 1l-5 5v11l5-4.5V1m2 4v13.5c-2.5 0-4.5 1.5-4.5 1.5L12 16s-2-1.5-4.5-1.5v-11l6.5 6V6L7.5 0H20c.6 0 1 .5 1 1v4z'/%3E%3C/svg%3E") center/contain no-repeat;
  animation: floatRotate 11s infinite ease-in-out;
}

@keyframes float {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-20px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0); }
}

@keyframes floatRotate {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-15px) rotate(10deg); }
  50% { transform: translateY(0) rotate(20deg); }
  75% { transform: translateY(-15px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0); }
}

/* Contenedor de suscripción */
.footer-subscribe {
  background: linear-gradient(135deg, #83c5be, #006d77);
  border-radius: 15px;
  padding: 30px;
  transition: none;
  border: 1px solid rgba(255, 255, 255, 0.1);
  overflow: hidden;
  position: relative;
  transform: none;
  margin-bottom: 20px;
  z-index: 5;
}

.footer-subscribe:hover {
  transform: none;
  box-shadow: none;
}

.footer-subscribe:before {
  content: '';
  position: absolute;
  width: 200px;
  height: 200px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  top: -100px;
  right: -100px;
}

/* Efecto de partículas en el contenedor de suscripción */
.footer-subscribe:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.1' fill-rule='evenodd'%3E%3Ccircle cx='3' cy='3' r='3'/%3E%3Ccircle cx='13' cy='13' r='3'/%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 0;
}

.footer-subscribe strong {
  font-size: 30px;
  font-weight: bold;
  background: linear-gradient(90deg, #ffffff, #e0fbfc);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
  position: relative;
  z-index: 2;
}

.footer-subscribe .subscribe-input {
  border-radius: 50px;
  box-shadow: none;
  overflow: hidden;
  transition: all 0.3s ease;
  border: 1px solid rgba(255, 255, 255, 0.2);
  position: relative;
  z-index: 2;
}

.footer-subscribe .subscribe-input:focus-within {
  box-shadow: none;
  transform: none;
}

.footer-subscribe .btn-primary {
  padding: 10px 25px;
  font-weight: 600;
  transition: all 0.3s ease;
}

.footer-subscribe .btn-primary:hover {
  transform: none;
  box-shadow: none;
}

/* Mejoras para las columnas del footer */
.footer-column {
  position: relative;
  transform: translateZ(0);
  transition: transform 0.3s ease;
}

.footer-column:hover {
  transform: translateY(-5px);
}

/* Enlaces del footer con iconos educativos */
.footer ul {
  position: relative;
  z-index: 2;
  list-style: none;
  padding-left: 0;
}

.footer ul li a {
  color: #ffffff !important;
  transition: all 0.3s ease;
  position: relative;
  padding-left: 0;
  font-size: 15px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  margin-bottom: 12px;
  opacity: 0.9;
}

.footer ul li a:before {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background-color: #ffffff;
  transition: all 0.3s ease;
}

.footer ul li a:hover {
  padding-left: 5px;
  opacity: 1;
  text-shadow: 0 0 15px rgba(255, 255, 255, 0.5);
}

.footer ul li a:hover:before {
  width: 100%;
}

.footer ul li.header {
  font-size: 18px;
  margin-bottom: 20px;
  font-weight: 700;
  position: relative;
  padding-left: 28px;
  color: #ffffff;
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

/* Iconos para las categorías del footer */
.footer ul li.header:before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.9;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.2));
}

.footer ul li:first-child.header:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M12 3L1 9l11 6l11-6m-11 7l-9-5v7l9 5l9-5v-7'/%3E%3C/svg%3E");
}

.footer ul li:nth-child(3).header:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-6 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 16c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4m5-12h-2V6h2v2z'/%3E%3C/svg%3E");
}

.footer ul li:nth-child(5).header:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M17.75 4.09l-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91l-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.1.96.5 1.99 1.48 2.48.91.46 1.89.35 2.8-.11.52-.26 1.05.32.75.84-.54.9-.28 2.12.63 2.84.76.61 1.82.62 2.58 0 .46-.37 1.15-.14 1.15.49 0 1.22.5 2.42 1.52 3.04z'/%3E%3C/svg%3E");
}

.footer ul li:nth-child(7).header:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M20 5h-9.5l-.4 2h7.6L17 9h-6.54l-.29 1.5H16l-.6 3H8.58L7.77 18H6l2.25-11H4V5h16z'/%3E%3C/svg%3E");
}

/* Logo del footer con efectos mejorados */
.footer .footer-logo {
  width: auto;
  max-width: 170px;
  transition: all 0.3s ease;
  position: relative;
  z-index: 2;
}

.footer .footer-logo:hover {
  transform: scale(1.05);
}

.footer .footer-logo a:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 20px;
  bottom: -10px;
  left: 0;
  background: radial-gradient(ellipse at center, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 70%);
  opacity: 0;
  transition: all 0.3s ease;
}

.footer .footer-logo:hover a:after {
  opacity: 1;
  bottom: -5px;
}

.footer .footer-logo img {
  width: auto;
  height: 50px;
  max-width: 100%;
  object-fit: contain;
  filter: brightness(0) invert(1);
  transition: all 0.3s ease;
  transform: translateZ(0);
}

.footer .footer-logo:hover img {
  filter: brightness(0) invert(1) drop-shadow(0 0 5px rgba(255,255,255,0.5));
}

/* Iconos de redes sociales */
.footer .footer-social {
  display: flex;
  align-items: center;
  position: relative;
  z-index: 2;
}

.footer .footer-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.1);
  margin-left: 10px;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  overflow: hidden;
  position: relative;
}

.footer .footer-social a:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 70%);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.footer .footer-social a:hover {
  transform: translateY(-5px);
  background-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.footer .footer-social a:hover:before {
  opacity: 1;
}

.footer .footer-social img {
  width: 20px;
  height: 20px;
  transition: all 0.3s ease;
}

.footer .footer-social a:hover img {
  transform: scale(1.15);
}

/* Separador con efecto de brillo */
.footer .border-blue {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  position: relative;
}

.footer .border-blue:after {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, 
    rgba(255, 255, 255, 0) 0%, 
    rgba(255, 255, 255, 0.3) 20%, 
    rgba(255, 255, 255, 0.3) 80%, 
    rgba(255, 255, 255, 0) 100%);
  opacity: 0;
  transition: opacity 0.5s ease;
}

.footer .border-blue:hover:after {
  opacity: 1;
}

/* Sección inferior de copyright con efecto de vidrio */
.footer .footer-copyright-card {
  position: relative;
  background-color: rgba(0, 0, 0, 0.15);
  backdrop-filter: blur(8px);
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding: 5px 0;
  box-shadow: 0 -5px 15px rgba(0, 0, 0, 0.05);
}

.footer .footer-copyright-card .container {
  position: relative;
  z-index: 2;
}

/* Mejora del contenedor de copyright y contacto */
.footer-copyright-content {
  padding: 10px 0;
}

.footer-copyright-text {
  font-size: 14px;
  color: #ffffff;
  line-height: 1.4;
  max-width: 600px;
  margin: 0 auto;
}

.footer-contact {
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer-contact div {
  display: flex;
  align-items: center;
  white-space: nowrap;
}

.footer-contact i {
  margin-right: 8px;
  animation: pulse 2s infinite;
  filter: drop-shadow(0 0 2px rgba(255,255,255,0.3));
}

.me-sm-4 {
  margin-right: 1.5rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-sm-0 {
  margin-bottom: 0;
}

.text-center {
  text-align: center;
}

.text-md-start {
  text-align: center;
}

@media (min-width: 768px) {
  .text-md-start {
    text-align: left;
  }
}

@keyframes pulse {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}

/* Responsivo */
@media (max-width: 767px) {
  .footer-subscribe-container {
    margin-bottom: -30px;
    margin-top: 60px;
  }

  .footer {
    margin-top: 50px;
    padding-top: 50px;
  }
  
  .footer-subscribe {
    padding: 20px;
  }
  
  .footer-subscribe strong {
    font-size: 24px;
  }

  .footer .shape {
    opacity: 0.05;
  }
  
  .footer-column {
    margin-bottom: 20px;
  }
  
  .footer ul li.header {
    font-size: 16px;
    margin-bottom: 15px;
  }
  
  .footer ul li a {
    font-size: 14px;
    margin-bottom: 8px;
  }
  
  /* Mejoras para copyright y contacto en móvil */
  .footer-copyright-card {
    padding: 10px 0;
  }
  
  .footer-copyright-text {
    font-size: 13px;
    margin-bottom: 12px;
    padding: 0 15px;
  }
  
  .footer-contact {
    flex-direction: column;
    gap: 10px;
  }
  
  .footer-contact div {
    font-size: 13px;
  }
  
  .footer-contact i {
    width: 16px !important;
    height: 16px !important;
  }
}

/* Efecto de brillo en el hover de los elementos */
.footer a, .footer-subscribe, .footer .btn {
  position: relative;
  overflow: hidden;
}

.footer a:after, .footer-subscribe:after, .footer .btn:after {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 80%);
  transform: scale(0);
  opacity: 0;
  transition: transform 0.8s, opacity 0.8s;
  pointer-events: none;
}

.footer a:hover:after, .footer-subscribe:hover:after, .footer .btn:hover:after {
  transform: scale(1);
  opacity: 0.05;
} 