/* Piscinas y Jacuzzis de Honduras — estilos compartidos */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Sora:wght@400;600;700;800&display=swap');

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: 'DM Sans', sans-serif;
  color: #0c2340;
  margin: 0;
  background: #ffffff;
}

.font-sora { font-family: 'Sora', sans-serif; }

/* ── Fade-in on scroll ── */
.fade-in {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.fade-in.from-left { transform: translateX(-32px); }
.fade-in.from-right { transform: translateX(32px); }
.fade-in.visible {
  opacity: 1;
  transform: translate(0, 0);
}

/* ── Header link hover (color depends on scrolled state, handled via class) ── */
.nav-link {
  color: rgba(255, 255, 255, 0.88);
  transition: color 0.2s ease;
}
.nav-link:hover { color: #0ea5e9; }
header.scrolled .nav-link { color: #0c2340; }
header.scrolled .nav-link:hover { color: #0ea5e9; }

header.scrolled { background: rgba(255, 255, 255, 0.94); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(14,165,233,0.10); box-shadow: 0 2px 24px rgba(14,165,233,0.06); }
header.not-scrolled { background: transparent; }

.menu-btn-scrolled { color: #0c2340; }
.menu-btn-top { color: #ffffff; }

/* ── Service card hover border ── */
.service-card { border-color: rgba(14,165,233,0.12); transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.service-card:hover { border-color: rgba(14,165,233,0.3); box-shadow: 0 4px 14px rgba(14,165,233,0.08); transform: translateY(-2px); }

/* ── Project card ── */
.project-card { transition: transform .4s ease, box-shadow .4s ease; }
.project-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(12,35,64,0.18); }
.project-card img { transition: transform .6s ease; }
.project-card:hover img { transform: scale(1.05); }

/* ── Process card ── */
.process-card { border-color: rgba(14,165,233,0.14); transition: box-shadow .3s ease, transform .3s ease; }
.process-card:hover { box-shadow: 0 4px 14px rgba(14,165,233,0.08); transform: translateY(-2px); }

/* ── Product card ── */
.product-card { border-color: rgba(14,165,233,0.12); transition: box-shadow .3s ease, transform .3s ease; overflow: hidden; }
.product-card:hover { box-shadow: 0 12px 28px rgba(14,165,233,0.15); transform: translateY(-4px); }
.product-card img { transition: transform .3s ease; }
.product-card:hover img { transform: scale(1.05); }

/* ── Filter buttons ── */
.filter-btn { font-family: 'Sora', sans-serif; border: 1px solid rgba(14,165,233,0.2); background: white; color: #4a6a8a; transition: all .2s ease; }
.filter-btn.active { background: #0ea5e9; color: white; border-color: #0ea5e9; }

/* ── Form inputs ── */
.form-input { background: #f7fbff; border: 1px solid rgba(14,165,233,0.18); transition: border-color .2s ease, box-shadow .2s ease; }
.form-input:focus { outline: none; border-color: #0ea5e9; box-shadow: 0 0 0 3px rgba(14,165,233,0.10); }

/* ── Contact info card ── */
.contact-card { border-color: rgba(14,165,233,0.12); background: #f7fbff; }

/* ── Social icon ── */
.social-icon { transition: background .2s ease; }
.social-icon:hover { background: #bae6fd; }

/* ── Testimonial card ── */
.testimonial-card { background: rgba(255,255,255,0.07); backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,0.12); }

/* Bounce for scroll cue */
@keyframes bounce-y {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(6px); }
}
.animate-bounce-slow { animation: bounce-y 1.6s infinite; }

/* Mobile menu */
.mobile-menu { display: none; }
.mobile-menu.open { display: flex; }
