/* Footer styles (extracted from components/footer.html) */
footer {
  background: linear-gradient(135deg, var(--gray-900) 0%, var(--gray-800) 100%);
  position: relative;
  overflow: hidden;
}

footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);
}

.footer-brand h5 { font-weight: 700; letter-spacing: -0.5px; }
.footer-links { line-height: 1.8; }

.footer-link {
  color: var(--gray-400);
  text-decoration: none;
  transition: all var(--transition-fast);
  display: inline-flex;
  align-items: center;
  padding: var(--space-xs) 0;
}

.footer-link:hover { color: var(--accent-gold); transform: translateX(4px); }

.social-links { display: flex; gap: var(--space-md); align-items: center; flex-wrap: wrap; }
.social-link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; color: var(--white);
  background: transparent; border: 2px solid rgba(255,255,255,0.3);
  border-radius: 50%; text-decoration: none; transition: all var(--transition-fast);
}
.social-link:hover {
  background: var(--accent-gold); color: var(--primary-purple);
  border-color: transparent; transform: translateY(-2px) scale(1.03); box-shadow: var(--shadow-md);
}
.social-link:active { transform: translateY(-1px) scale(0.98); }
/* Hide placeholder links */
.social-link[href="#"] { display: none; }
/* Ensure icons within are centered and sized appropriately */
.social-link i { line-height: 1; font-size: 1.1rem; }

.newsletter-form .input-group { box-shadow: var(--shadow-sm); border-radius: var(--radius-lg); overflow: hidden; }
.newsletter-form .form-control { border: none; background: rgba(255,255,255,0.1); color: var(--white); backdrop-filter: blur(10px); }
.newsletter-form .form-control::placeholder { color: var(--gray-400); }
.newsletter-form .form-control:focus { background: rgba(255,255,255,0.15); box-shadow: none; border: 1px solid var(--accent-gold); }
.newsletter-form .btn-accent { background: var(--accent-gold); color: var(--primary-purple); border: none; font-weight: 600; transition: all var(--transition-fast); }
.newsletter-form .btn-accent:hover { background: var(--accent-gold-dark); transform: translateY(-1px); box-shadow: var(--shadow-md); }

.contact-info a { color: var(--gray-400); text-decoration: none; transition: color var(--transition-fast); }
.contact-info a:hover { color: var(--accent-gold); }

@media (max-width: 768px) {
  footer { text-align: center; }
  .social-links { justify-content: start; gap: var(--space-md); margin-bottom: var(--space-lg); }
  .social-link { width: 56px; height: 56px; }
  .footer-links { text-align: center; }
  .contact-info { text-align: center; }
}

.newsletter-form { position: relative; }
.newsletter-form.success .form-control { border-color: var(--success); }
.newsletter-form.error .form-control { border-color: var(--danger); }

.footer-brand, .footer-links, .contact-info { transition: transform var(--transition-fast); }
.footer-brand:hover, .footer-links:hover, .contact-info:hover { transform: translateY(-2px); }

.footer-link:focus, .social-link:focus { outline: 2px solid var(--accent-gold); outline-offset: 2px; }

.newsletter-form.loading .btn-accent { pointer-events: none; opacity: 0.7; }
.newsletter-form.loading .btn-accent::after {
  content: ''; position: absolute; width: 16px; height: 16px; border: 2px solid transparent; border-top: 2px solid var(--primary-purple); border-radius: 50%; animation: spin 1s linear infinite;
}
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }


