/* =============================================================
   ABGN — Capa de mejora visual (aditiva)
   Tono: corporativo premium. Movimiento presente pero elegante.
   Respeta prefers-reduced-motion. Totalmente reversible.
   ============================================================= */

:root{
  --abgn-blue:#2c4a9c;
  --abgn-blue-dark:#1d3370;
  --abgn-navy:#001f3f;
  --abgn-ease: cubic-bezier(.16,1,.3,1);         /* expo-out: desaceleración premium */
  --abgn-shadow-sm: 0 6px 20px -10px rgba(0,31,63,.18);
  --abgn-shadow-md: 0 20px 44px -20px rgba(0,31,63,.32);
}

/* ---------- Scroll suave ---------- */
@media (prefers-reduced-motion: no-preference){
  html{ scroll-behavior:smooth; }
}

/* ---------- Aparición al hacer scroll (fundido + ascenso con desaceleración) ----------
   El JS marca .abgn-reveal; sin JS nada se oculta. */
@media (prefers-reduced-motion: no-preference){
  html.abgn-on .abgn-reveal{
    opacity:0;
    transform: translateY(30px);
    transition: opacity .8s var(--abgn-ease), transform .8s var(--abgn-ease);
    will-change: opacity, transform;
  }
  html.abgn-on .abgn-reveal.abgn-in{
    opacity:1;
    transform:none;
  }
}

/* ---------- Línea de acento que se dibuja bajo los títulos de sección ---------- */
h2.wp-block-heading{ position:relative; }
@media (prefers-reduced-motion: no-preference){
  h2.wp-block-heading.abgn-reveal::after{
    content:"";
    position:absolute; left:50%; bottom:-.42em;
    transform: translateX(-50%);
    width:0; height:3px; border-radius:3px;
    background:linear-gradient(90deg, var(--abgn-blue), var(--abgn-blue-dark));
    transition: width .85s var(--abgn-ease) .2s;
  }
  h2.wp-block-heading.abgn-reveal.abgn-in::after{ width:60px; }
}

/* ---------- Botones: relleno direccional + leve elevación ---------- */
:where(.wp-block-button__link){
  transition: box-shadow .25s var(--abgn-ease);
}
:where(.wp-block-button__link):hover{
  box-shadow: 0 10px 22px -10px rgba(0,31,63,.32);
}
@media (prefers-reduced-motion: no-preference){
  :where(.wp-block-button__link){
    background-image: linear-gradient(rgba(0,31,63,.20), rgba(0,31,63,.20));
    background-repeat:no-repeat;
    background-position:left center;
    background-size:0% 100%;
    transition: background-size .45s var(--abgn-ease),
                transform .25s var(--abgn-ease),
                box-shadow .25s var(--abgn-ease);
  }
  :where(.wp-block-button__link):hover{
    background-size:100% 100%;
    transform: translateY(-2px);
  }
}

/* ---------- Tarjetas: elevación + barra de acento superior ---------- */
:where(.wp-block-column.has-background){
  position:relative;
  /*overflow:hidden;*/
  border-radius:14px;
  box-shadow: var(--abgn-shadow-sm);
  transition: transform .32s var(--abgn-ease), box-shadow .32s var(--abgn-ease);
}
.wp-block-column.has-background::before{
  content:"";
  position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--abgn-blue), var(--abgn-blue-dark));
  transform: scaleX(0);
  transform-origin:left center;
  transition: transform .4s var(--abgn-ease);
}
@media (prefers-reduced-motion: no-preference){
  :where(.wp-block-column.has-background):hover{
    transform: translateY(-6px);
    box-shadow: var(--abgn-shadow-md);
  }
  .wp-block-column.has-background:hover::before{
    transform: scaleX(1);
  }
}

/* ---------- Cover no-completo (mosaicos de servicios): elevación + zoom sutil ---------- */
:where(.wp-block-cover:not(.alignfull)){
  border-radius:14px;
  overflow:hidden;
  transition: transform .4s var(--abgn-ease), box-shadow .4s var(--abgn-ease);
}
.wp-block-cover:not(.alignfull) .wp-block-cover__image-background{
  transition: transform .9s var(--abgn-ease);
}
@media (prefers-reduced-motion: no-preference){
  .wp-block-cover:not(.alignfull):hover{
    transform: translateY(-6px);
    box-shadow: var(--abgn-shadow-md);
  }
  .wp-block-cover:not(.alignfull):hover .wp-block-cover__image-background{
    transform: scale(1.05);
  }
}

/* ---------- Imágenes de contenido: bordes redondeados ---------- */
:where(.wp-block-column .wp-block-image img, .wp-block-columns .wp-block-image img){
  border-radius:10px;
}

/* ---------- Navegación: subrayado que aparece al pasar ---------- */
.wp-block-navigation .wp-block-navigation-item__content{
  position:relative;
  transition: color .2s var(--abgn-ease);
}
@media (prefers-reduced-motion: no-preference){
  .wp-block-navigation .wp-block-navigation-item__content::after{
    content:"";
    position:absolute; left:0; right:100%; bottom:-3px;
    height:2px; background:currentColor; opacity:.7;
    transition: right .3s var(--abgn-ease);
  }
  .wp-block-navigation .wp-block-navigation-item:hover .wp-block-navigation-item__content::after{
    right:0;
  }
}

/* ---------- Cabecera: sombra al hacer scroll ---------- */
header.wp-block-template-part{
  transition: box-shadow .3s var(--abgn-ease);
}
body.abgn-scrolled header.wp-block-template-part{
  box-shadow: 0 8px 24px -14px rgba(0,31,63,.4);
}
