/* Estilos para el Pie de Página y Scroll-to-Top */
.footer-dark { background-color: var(--dark-color); color: #aab2bb; padding: 4rem 0 0 0; font-size: 0.95rem; }
.footer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; padding-bottom: 3rem; }
.footer-column h4 { color: var(--white-color); font-size: 1.1rem; font-weight: 700; margin-bottom: 1.5rem; text-transform: uppercase; }
.footer-column p { color: #aab2bb; line-height: 1.8; text-align: left; }
.footer-list { list-style: none; padding: 0; margin: 0; }
.footer-list li { margin-bottom: 0.5rem; text-align: left; }
.footer-list strong { color: var(--white-color); }
.footer-phone { font-size: 1.5rem; font-weight: 700; color: var(--white-color); text-decoration: none; }
.social-icons a { display: inline-flex; justify-content: center; align-items: center; width: 40px; height: 40px; border-radius: 50%; background-color: rgba(255,255,255,0.1); color: var(--white-color); margin-right: 0.5rem; transition: background-color 0.3s ease; text-decoration: none; }
.social-icons a:hover { background-color: var(--primary-color); }
.social-icons i { font-family: "Font Awesome 6 Brands", "Font Awesome 6 Free"; font-weight: 900; }
.footer-copyright { background-color: #1a1a1a; padding: 1.5rem 0; text-align: center; font-size: 0.85rem; }
.footer-copyright p { margin: 0; color: #777; text-align: center; }
.scroll-to-top { position: fixed; bottom: 20px; right: 20px; width: 45px; height: 45px; background-color: var(--primary-color); color: var(--white-color); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; text-decoration: none; opacity: 0; visibility: hidden; transform: translateY(20px); transition: all 0.3s ease; z-index: 999; }
.scroll-to-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.scroll-to-top:hover { background-color: var(--primary-color-dark); }

/* --- RESPONSIVE FOOTER --- */
@media (max-width: 992px) {
    .footer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .footer-grid { grid-template-columns: 1fr; text-align: center; }
    .footer-column p, .footer-list li { text-align: center; }
    .social-icons { justify-content: center; }
}