:root { --navy:#10305e; --blue:#1e4ba8; }
* { box-sizing:border-box; }
body { margin:0; font-family:'Work Sans', sans-serif; background:#ffffff; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .5s ease, transform .5s ease; }
.reveal.show { opacity:1; transform:translateY(0); }

/* Nav */
@media (max-width:900px) {
  .nav-desktop { display:none !important; }
  .nav-mobile-btn { display:flex !important; }
}
.nav-item { position:relative; }
.nav-dd { display:none; }
.nav-item:hover .nav-dd { display:block; }
.nav-contacto:hover { background:#1e4ba8 !important; color:#ffffff !important; }
@media (max-width:1150px) {
  .nav-desktop a { padding-left:12px !important; padding-right:12px !important; }
}
.nav-mobile-menu { display:none; }
.nav-mobile-menu.open { display:flex; }
.nav-link:hover { background:#cfe3ff !important; }
.nav-dd-panel { width:340px; background:#ffffff; border:1px solid #e4e7ec; box-shadow:0 16px 40px rgba(16,44,86,0.16); overflow:hidden; }
.nav-dd-photo { aspect-ratio:16/9; background:#eef1f5; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.nav-dd-photo img { width:100%; height:100%; object-fit:cover; display:block; }

/* Footer */
@media (max-width:800px) {
  .footer-grid { grid-template-columns:1fr 1fr !important; }
}

/* Servicios dropdown */
.svc-card { position:relative; transition:background .15s ease, border-color .15s ease; }
.svc-card:hover { background:#eaf1ff; border-color:#2f6fff; }
.svc-card:hover .svc-title { color:#2f6fff !important; }
.svc-card:hover .svc-dd { display:block; }
.svc-dd { display:none; }

/* Nosotros - galeria con zoom al dar click */
.gal-card { position:relative; cursor:zoom-in; }
.gal-card-photo { overflow:hidden; position:relative; }
.gal-img { transition:transform .35s ease; display:block; }
.gal-card:hover .gal-img { transform:scale(1.06); }
.gal-zoom-icon { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .25s ease; background:rgba(6,14,28,0.28); pointer-events:none; }
.gal-card:hover .gal-zoom-icon { opacity:1; }
.gal-zoom-icon span { width:52px; height:52px; border-radius:50%; background:#ffffff; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px rgba(0,0,0,0.3); }

/* Modal de foto completa (activado con JS al hacer click) */
.gal-modal { position:fixed; inset:0; background:rgba(6,14,28,0.86); z-index:999; display:none; align-items:center; justify-content:center; padding:32px; cursor:zoom-out; }
.gal-modal.open { display:flex; }
.gal-modal-inner { position:relative; max-width:calc(100vw - 64px); max-height:calc(100vh - 64px); }
.gal-modal-inner img { display:block; max-width:calc(100vw - 64px); max-height:calc(100vh - 120px); width:auto; height:auto; border-radius:6px; box-shadow:0 30px 70px rgba(0,0,0,0.5); }
.gal-modal-caption { margin-top:14px; text-align:center; color:#ffffff; font:500 15px/1.5 'Work Sans', sans-serif; }
.gal-modal-close { position:absolute; top:-18px; right:-18px; width:36px; height:36px; border-radius:50%; background:#ffffff; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(0,0,0,0.3); font:700 18px/1 sans-serif; color:#14171c; }

/* WhatsApp button */
.wa-btn:hover { transform:scale(1.06); box-shadow:0 12px 28px rgba(0,0,0,0.34); }
