/* =========================================================
   FUNDACIÓN ADA — Paquete de animaciones y mejoras visuales

   Cargado automáticamente por el tema (Assets::enqueue_frontend_assets).
   Pensado para crecer: además de las secciones de Home, define las
   clases genéricas "ada-reveal" y "ada-counter" (ver ada-animaciones.js)
   listas para usarse en páginas futuras sin añadir CSS nuevo.
   ========================================================= */

:root {
  --ada-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ada-duration: 0.6s;
  --ada-stagger-step: 0.08s;
}

/* Respeta a usuarios que prefieren menos movimiento */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .nfd-wb-hero__hero-35 .content-hero,
  .nfd-wb-hero__hero-35 .title-home,
  .nfd-wb-hero__hero-35 .p-home,
  .nfd-wb-hero__hero-35 .wp-block-buttons,
  .nfd-wb-features__features-67 .wp-block-column,
  .nfd-wb-gallery__gallery-3 .wp-block-column,
  .nfd-wb-features__features-69 > .nfd-gap-md.nfd-pb-sm,
  .nfd-wb-testimonials__testimonials-14 .wp-block-column > .wp-block-group,
  .nfd-wb-team__team-4 .wp-block-column,
  .nfd-wb-features__features-4 .wp-block-column,
  .nfd-wb-faq__faq-3 .wp-block-column,
  .nfd-wb-features__features-87 .wp-block-column,
  .nfd-wb-gallery__gallery-11 .wp-block-column,
  .nfd-wb-text__text-8,
  .nfd-wb-text__text-28,
  .nfd-wb-call-to-action__cta-26,
  .ada-reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

html { scroll-behavior: smooth; }

/* =========================================================
   0. GLOBAL

   Bordes redondeados en todas las imágenes del sitio. Las
   imágenes con su propio radio (avatares circulares "is-style-
   rounded", radios ya definidos en línea desde el editor) no se
   ven afectadas: su selector es más específico y gana. Los dos
   fondos de portada a todo el ancho (hero y el banner CTA de
   Contacto) se excluyen para que no se les corte la esquina en
   el borde del viewport.
   ========================================================= */

img {
  border-radius: 10px;
}

.nfd-wb-hero__hero-35 .wp-block-cover__image-background,
.nfd-wb-call-to-action__cta-26 .wp-block-cover__image-background {
  border-radius: 0 !important;
}

/* =========================================================
   1. HERO
   ========================================================= */

.nfd-wb-hero__hero-35 .content-hero {
  opacity: 0;
  transform: translateY(24px);
  animation: ada-fade-up 0.9s var(--ada-ease) 0.15s forwards;
}

.nfd-wb-hero__hero-35 .title-home {
  opacity: 0;
  animation: ada-fade-up 0.8s var(--ada-ease) 0.35s forwards;
}

.nfd-wb-hero__hero-35 .p-home {
  opacity: 0;
  animation: ada-fade-up 0.8s var(--ada-ease) 0.5s forwards;
}

.nfd-wb-hero__hero-35 .wp-block-buttons {
  opacity: 0;
  animation: ada-fade-up 0.8s var(--ada-ease) 0.65s forwards;
}

/* Botón "Dona aquí": hover/foco con elevación y brillo */
.nfd-wb-hero__hero-35 .nfd-btn-xl .wp-block-button__link {
  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
}
.nfd-wb-hero__hero-35 .nfd-btn-xl .wp-block-button__link:hover,
.nfd-wb-hero__hero-35 .nfd-btn-xl .wp-block-button__link:focus-visible {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25);
  filter: brightness(1.06);
}

/* Zoom lento y continuo de la imagen de fondo del hero (efecto "ken burns") */
.nfd-wb-hero__hero-35 .wp-block-cover__image-background {
  animation: ada-kenburns 18s ease-in-out infinite alternate;
  will-change: transform;
}

@keyframes ada-fade-up {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes ada-kenburns {
  from { transform: scale(1); }
  to   { transform: scale(1.08); }
}

/* =========================================================
   2. ESTADÍSTICAS (contador + entrada escalonada)
   ========================================================= */

.nfd-wb-features__features-67 .wp-block-column {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--ada-duration) ease, transform var(--ada-duration) ease;
}
.nfd-wb-features__features-67.ada-in-view .wp-block-column {
  opacity: 1;
  transform: translateY(0);
}
/* Retraso escalonado por columna */
.nfd-wb-features__features-67 .wp-block-column:nth-child(1) { transition-delay: calc(var(--ada-stagger-step) * 1); }
.nfd-wb-features__features-67 .wp-block-column:nth-child(2) { transition-delay: calc(var(--ada-stagger-step) * 2); }
.nfd-wb-features__features-67 .wp-block-column:nth-child(3) { transition-delay: calc(var(--ada-stagger-step) * 3); }
.nfd-wb-features__features-67 .wp-block-column:nth-child(4) { transition-delay: calc(var(--ada-stagger-step) * 4); }

.nfd-wb-features__features-67 img {
  transition: transform 0.3s ease;
}
.nfd-wb-features__features-67 .wp-block-column:hover img {
  transform: scale(1.08) rotate(-2deg);
}

.ada-counting {
  font-variant-numeric: tabular-nums;
}

/* =========================================================
   3. SERVICIOS (galería de tarjetas con overlay)
   ========================================================= */

.nfd-wb-gallery__gallery-3 .wp-block-column {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.nfd-wb-gallery__gallery-3.ada-in-view .wp-block-column {
  opacity: 1;
  transform: translateY(0);
}
.nfd-wb-gallery__gallery-3 .wp-block-column:nth-child(1) { transition-delay: calc(var(--ada-stagger-step) * 1); }
.nfd-wb-gallery__gallery-3 .wp-block-column:nth-child(2) { transition-delay: calc(var(--ada-stagger-step) * 2); }
.nfd-wb-gallery__gallery-3 .wp-block-column:nth-child(3) { transition-delay: calc(var(--ada-stagger-step) * 3); }
.nfd-wb-gallery__gallery-3 .wp-block-column:nth-child(4) { transition-delay: calc(var(--ada-stagger-step) * 4); }
.nfd-wb-gallery__gallery-3 .wp-block-column:nth-child(5) { transition-delay: calc(var(--ada-stagger-step) * 5); }
.nfd-wb-gallery__gallery-3 .wp-block-column:nth-child(6) { transition-delay: calc(var(--ada-stagger-step) * 6); }
.nfd-wb-gallery__gallery-3 .wp-block-column:nth-child(7) { transition-delay: calc(var(--ada-stagger-step) * 7); }

/* Deja solo el degradado de fondo, sin la cuadrícula 3D superpuesta */
.nfd-wb-gallery__gallery-3.nfd-bg-effect-grid-perspective::after {
  display: none !important;
}

.nfd-wb-gallery__gallery-3 .wp-block-cover {
  overflow: hidden;
  cursor: pointer;
  border-radius: 10px;
}
.nfd-wb-gallery__gallery-3 .wp-block-cover__image-background {
  transition: transform 0.45s var(--ada-ease), filter 0.45s ease;
  will-change: transform;
}
.nfd-wb-gallery__gallery-3 .wp-block-cover__background {
  transition: opacity 0.35s ease;
}
.nfd-wb-gallery__gallery-3 .wp-block-cover:hover .wp-block-cover__image-background,
.nfd-wb-gallery__gallery-3 .wp-block-cover:focus-within .wp-block-cover__image-background {
  transform: scale(1.1);
}
.nfd-wb-gallery__gallery-3 .wp-block-cover:hover .wp-block-cover__background,
.nfd-wb-gallery__gallery-3 .wp-block-cover:focus-within .wp-block-cover__background {
  opacity: 0.75;
}
.nfd-wb-gallery__gallery-3 .wp-block-cover p {
  transition: transform 0.35s ease;
  background-color: rgba(4, 60, 130, 0.6);
  border-radius: 10px;
  padding: 8px 16px;
  display: inline-block;
}
.nfd-wb-gallery__gallery-3 .wp-block-cover:hover p,
.nfd-wb-gallery__gallery-3 .wp-block-cover:focus-within p {
  transform: translateY(-4px);
}

@media (max-width: 1024px) {
  .nfd-wb-gallery__gallery-3 .wp-block-cover p {
    font-size: calc(var(--wp--preset--font-size--large, 1.125rem) - 0.5em);
  }
}

/* =========================================================
   4. TEXTO DE MISIÓN
   ========================================================= */

.nfd-wb-features__features-69 > .nfd-gap-md.nfd-pb-sm {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.nfd-wb-features__features-69.ada-in-view > .nfd-gap-md.nfd-pb-sm {
  opacity: 1;
  transform: translateY(0);
}

/* =========================================================
   5. GRID DE FOTOS CON BOTONES (Quiénes somos / Participa / Proyectos)
   ========================================================= */

.nfd-wb-features__features-69 .wp-block-cover {
  overflow: hidden;
}
.nfd-wb-features__features-69 .wp-block-cover__image-background {
  transition: transform 0.5s var(--ada-ease);
  will-change: transform;
}
.nfd-wb-features__features-69 .wp-block-cover:hover .wp-block-cover__image-background {
  transform: scale(1.07);
}

/* Fondo de contraste sobre la foto: "Quiénes somos", "Apoyando el
   crecimiento local", "Participa hoy mismo" y "Proyectos" son
   botones, no párrafos; se sobrescribe su color de fondo original
   (accent-2 / secundario) por el mismo tono usado en Servicios. */
.nfd-wb-features__features-69 .wp-block-cover .wp-block-button__link {
  background-color: rgba(4, 60, 130, 0.6) !important;
}

.nfd-wb-features__features-69 .wp-block-button__link {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.nfd-wb-features__features-69 .wp-block-button__link:hover,
.nfd-wb-features__features-69 .wp-block-button__link:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* =========================================================
   6. TESTIMONIOS (carrusel automático)

   El JS (initCarousel) mueve las tarjetas ".wp-block-column"
   dentro de ".ada-carousel-viewport > .ada-carousel-track",
   duplicando el set completo para un loop continuo. Muestra 3
   tarjetas a la vez en escritorio (2 en tablet, 1 en móvil) y
   se desliza automáticamente hacia la izquierda.
   ========================================================= */

.nfd-wb-testimonials__testimonials-14 .wp-block-column > .wp-block-group {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--ada-duration) ease, transform var(--ada-duration) ease, box-shadow 0.25s ease;
}
.nfd-wb-testimonials__testimonials-14.ada-in-view .wp-block-column > .wp-block-group {
  opacity: 1;
  transform: translateY(0);
}

.nfd-wb-testimonials__testimonials-14 .wp-block-column > .wp-block-group:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12);
}

.nfd-wb-testimonials__testimonials-14 .ada-carousel-viewport {
  overflow: hidden;
  width: 100%;
}
.nfd-wb-testimonials__testimonials-14 .ada-carousel-track {
  display: flex;
  gap: 24px;
  width: max-content;
  animation: ada-carousel-slide 32s linear infinite;
  will-change: transform;
}
.nfd-wb-testimonials__testimonials-14 .ada-carousel-viewport:hover .ada-carousel-track {
  animation-play-state: paused;
}
.nfd-wb-testimonials__testimonials-14 .ada-carousel-item {
  flex: 0 0 var(--ada-card-width, calc(33.333% - 16px));
}

@keyframes ada-carousel-slide {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* =========================================================
   7. CONÓCENOS (equipo + tarjetas de esencia/misión/visión)
   ========================================================= */

/* Deja solo el fondo oscuro, sin la cuadrícula de puntos superpuesta */
.nfd-wb-features__features-4.nfd-bg-effect-dots::after {
  display: none !important;
}

.nfd-wb-team__team-4 .wp-block-column,
.nfd-wb-features__features-4 .wp-block-column {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--ada-duration) ease, transform var(--ada-duration) ease;
}
.nfd-wb-team__team-4.ada-in-view .wp-block-column,
.nfd-wb-features__features-4.ada-in-view .wp-block-column {
  opacity: 1;
  transform: translateY(0);
}
.nfd-wb-team__team-4 .wp-block-column:nth-child(1),
.nfd-wb-features__features-4 .wp-block-column:nth-child(1) { transition-delay: calc(var(--ada-stagger-step) * 1); }
.nfd-wb-team__team-4 .wp-block-column:nth-child(2),
.nfd-wb-features__features-4 .wp-block-column:nth-child(2) { transition-delay: calc(var(--ada-stagger-step) * 2); }
.nfd-wb-team__team-4 .wp-block-column:nth-child(3),
.nfd-wb-features__features-4 .wp-block-column:nth-child(3) { transition-delay: calc(var(--ada-stagger-step) * 3); }
.nfd-wb-team__team-4 .wp-block-column:nth-child(4) { transition-delay: calc(var(--ada-stagger-step) * 4); }
.nfd-wb-team__team-4 .wp-block-column:nth-child(5) { transition-delay: calc(var(--ada-stagger-step) * 5); }
.nfd-wb-team__team-4 .wp-block-column:nth-child(6) { transition-delay: calc(var(--ada-stagger-step) * 6); }

/* Tarjeta de miembro / tarjeta de valor: elevación al pasar el cursor */
.nfd-wb-team__team-4 .wp-block-column > .wp-block-group,
.nfd-wb-features__features-4 .wp-block-column > .wp-block-group {
  transition: transform 0.3s ease, box-shadow 0.25s ease;
}
.nfd-wb-team__team-4 .wp-block-column:hover > .wp-block-group,
.nfd-wb-features__features-4 .wp-block-column:hover > .wp-block-group {
  transform: translateY(-6px);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12);
}

.nfd-wb-team__team-4 img {
  transition: transform 0.3s ease;
}
.nfd-wb-team__team-4 .wp-block-column:hover img {
  transform: scale(1.05);
}

/* Evita que las palabras se corten en las tarjetas a partir de 1024px */
@media (max-width: 1024px) {
  .nfd-wb-team__team-4 .wp-block-column h3,
  .nfd-wb-team__team-4 .wp-block-column p,
  .nfd-wb-features__features-4 .wp-block-column h3,
  .nfd-wb-features__features-4 .wp-block-column p,
  .nfd-wb-features__features-4 .wp-block-column li {
    font-size: 70%;
    overflow-wrap: break-word;
  }
}

/* =========================================================
   8. CONTACTO (FAQ + banner CTA + pasos)
   ========================================================= */

.nfd-wb-faq__faq-3 .wp-block-column {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--ada-duration) ease, transform var(--ada-duration) ease;
}
.nfd-wb-faq__faq-3.ada-in-view .wp-block-column {
  opacity: 1;
  transform: translateY(0);
}
.nfd-wb-faq__faq-3 .wp-block-column:nth-child(1) { transition-delay: calc(var(--ada-stagger-step) * 1); }
.nfd-wb-faq__faq-3 .wp-block-column:nth-child(2) { transition-delay: calc(var(--ada-stagger-step) * 2); }

.nfd-wb-call-to-action__cta-26 .wp-block-cover {
  overflow: hidden;
}
.nfd-wb-call-to-action__cta-26 .wp-block-cover__image-background {
  transition: transform 0.5s var(--ada-ease);
  will-change: transform;
}
.nfd-wb-call-to-action__cta-26 .wp-block-cover:hover .wp-block-cover__image-background {
  transform: scale(1.05);
}
.nfd-wb-call-to-action__cta-26 .wp-block-button__link {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.nfd-wb-call-to-action__cta-26 .wp-block-button__link:hover,
.nfd-wb-call-to-action__cta-26 .wp-block-button__link:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* =========================================================
   9. IMPACTO (intro + galería tipo "storybook")
   ========================================================= */

.nfd-wb-features__features-87 .wp-block-column,
.nfd-wb-gallery__gallery-11 .wp-block-column {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--ada-duration) ease, transform var(--ada-duration) ease;
}
.nfd-wb-features__features-87.ada-in-view .wp-block-column,
.nfd-wb-gallery__gallery-11.ada-in-view .wp-block-column {
  opacity: 1;
  transform: translateY(0);
}
.nfd-wb-features__features-87 .wp-block-column:nth-child(1),
.nfd-wb-gallery__gallery-11 .wp-block-column:nth-child(1) { transition-delay: calc(var(--ada-stagger-step) * 1); }
.nfd-wb-features__features-87 .wp-block-column:nth-child(2),
.nfd-wb-gallery__gallery-11 .wp-block-column:nth-child(2) { transition-delay: calc(var(--ada-stagger-step) * 2); }

.nfd-wb-gallery__gallery-11 img {
  transition: transform 0.4s var(--ada-ease);
}
.nfd-wb-gallery__gallery-11 .wp-block-column:hover img {
  transform: scale(1.05);
}

/* Evita que las palabras de los títulos se corten a partir de 1024px */
@media (max-width: 1024px) {
  .nfd-wb-gallery__gallery-11 h3 {
    font-size: 70%;
    overflow-wrap: break-word;
  }
}

/* =========================================================
   10. MENÚ PRINCIPAL Y BOTÓN "TRABAJA CON NOSOTROS" (header)

   Sticky: el header queda fijo arriba al hacer scroll.

   Mobile: WordPress solo activa el menú hamburguesa por debajo
   de 600px de forma nativa; el @media de abajo extiende ese
   comportamiento hasta los 1024px sobrescribiendo las mismas
   reglas del bloque núcleo de navegación.

   "Activo" cubre dos casos: la página que se está viendo
   (current-menu-item / aria-current, y body.page-id-89 para el
   botón "Trabaja con nosotros", que no es un ítem de menú) y el
   instante de :active al hacer clic/tocar. En ambos, el fondo
   azul aparece con una transición de opacidad (rgba de 0 a
   0.85).
   ========================================================= */

.nfd-wb-header__header-25 {
  position: -webkit-sticky;
  position: sticky !important;
  top: 0;
  z-index: 999;
}

@media (min-width: 600px) and (max-width: 1023px) {
  .nfd-wb-header__header-25 .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }
  .nfd-wb-header__header-25 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none !important;
  }
}

/* El bloque de navegación trae un blockGap de 48px propio; se reduce
   aquí para compensar el padding añadido a cada botón (10px por
   lado) y evitar que la separación total entre ítems quede excesiva. */
.nfd-wb-header__header-25 .wp-block-navigation__container {
  gap: 24px !important;
}

.nfd-wb-header__header-25 .wp-block-navigation-item__content {
  text-decoration: none !important;
  padding: 6px 10px;
  border-radius: 0;
  background-color: rgba(4, 60, 130, 0);
  transition: background-color 0.25s ease, color 0.25s ease;
}
.nfd-wb-header__header-25 .wp-block-navigation-item__content:hover,
.nfd-wb-header__header-25 .wp-block-navigation-item__content:active,
.nfd-wb-header__header-25 .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.nfd-wb-header__header-25 .wp-block-navigation-item__content[aria-current="page"] {
  color: #ffffff;
  background-color: rgba(4, 60, 130, 0.85);
}

.nfd-wb-header__header-25 .wp-block-button.is-style-outline .wp-block-button__link {
  text-decoration: none;
  background-color: rgba(4, 60, 130, 0);
  transition: background-color 0.25s ease, color 0.25s ease, transform 0.2s ease;
}
.nfd-wb-header__header-25 .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: rgba(4, 60, 130, 0.85);
  transform: scale(1.05);
}
.nfd-wb-header__header-25 .wp-block-button.is-style-outline .wp-block-button__link:active,
body.page-id-89 .nfd-wb-header__header-25 .wp-block-button.is-style-outline .wp-block-button__link {
  color: #f9a022;
  background-color: rgba(4, 60, 130, 0.85);
}

/* Botón "Trabaja con nosotros" un 30% más pequeño desde 1024px */
@media (max-width: 1024px) {
  .nfd-wb-header__header-25 .wp-block-button.is-style-outline .wp-block-button__link {
    font-size: 70%;
  }
}

/* =========================================================
   11. SERVICIOS (página completa)

   Cada servicio es un bloque "columns" a todo el ancho con su
   propio color de fondo; WordPress añade un margen entre
   bloques que se veía como una franja blanca entre uno y otro.
   ========================================================= */

body.page-id-62 .wp-block-columns.alignfull {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Quita el espacio en blanco entre el último bloque y el footer */
body.page-id-62 main,
body.page-id-62 .wp-block-post-content {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

@media (max-width: 1024px) {
  body.page-id-62 .wp-block-columns.alignfull h2,
  body.page-id-62 .wp-block-columns.alignfull p {
    font-size: 70%;
  }
}

/* =========================================================
   12. TRABAJA CON NOSOTROS (formulario)
   ========================================================= */

body.page-id-89 #forminator-module-420 {
  background-color: #ffffff;
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
  padding: 24px;
}

/* =========================================================
   13. FOOTER (iconos junto al correo y la dirección)

   El JS (initFooterIcons) reemplaza el emoji "✉️" y el ícono
   Font Awesome existente (que no se ve porque Font Awesome no
   está cargado en el sitio) por SVG planos en línea, sin
   depender de ninguna fuente de íconos externa.
   ========================================================= */

.nfd-wb-footer__footer-22 .ada-icon {
  color: #ffffff;
  vertical-align: -2px;
  margin-right: 4px;
}

/* =========================================================
   14. CLASES GENÉRICAS REUTILIZABLES (futuras páginas)

   Añade "ada-reveal" a cualquier bloque (Ajustes > Avanzado >
   Clases CSS adicionales) para que aparezca con fade/slide al
   entrar en pantalla, sin necesidad de tocar este archivo.
   También cubre, por su mismo patrón de fade único, los bloques
   de texto simples de Conócenos y Contacto.
   ========================================================= */

.ada-reveal,
.nfd-wb-text__text-8,
.nfd-wb-text__text-28,
.nfd-wb-call-to-action__cta-26 {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--ada-duration) ease, transform var(--ada-duration) ease;
}
.ada-reveal.ada-in-view,
.nfd-wb-text__text-8.ada-in-view,
.nfd-wb-text__text-28.ada-in-view,
.nfd-wb-call-to-action__cta-26.ada-in-view {
  opacity: 1;
  transform: translateY(0);
}
