/* ==========================================================================
   ACODISA — CSS DE COMPONENTES (companion)
   Header + Home + Footer. Depende de acodisa-kit.css (cárgalo antes).
   Destino: Elementor → Ajustes del sitio → CSS personalizado
            (o style.css del tema hijo, después del kit)
   ========================================================================== */

/* ==========================================================================
   HEADER
   ========================================================================== */

/* --- Barra de utilidad --- */
.acd-utilbar{
  background:var(--acd-p900);
  color:rgba(255,255,255,.74);
  font-size:11.5px;
  line-height:1;
}
.acd-utilbar__inner{
  min-height:34px;
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--acd-s4);
  flex-wrap:wrap;
}
.acd-utilbar a{ color:inherit; text-decoration:none; }
.acd-utilbar a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.acd-utilbar__group{ display:flex; align-items:center; gap:var(--acd-s6); flex-wrap:wrap; }
.acd-utilbar strong{ color:#fff; font-weight:600; }
.acd-utilbar__zone{ color:var(--acd-a500); font-weight:600; }
.acd-utilbar__zone:hover{ color:var(--acd-a500); }
@media (max-width:767px){ .acd-utilbar{ display:none; } }

/* --- Barra principal --- */
.acd-header{
  background:var(--acd-surface);
  border-bottom:1px solid var(--acd-border);
}
.acd-header__inner{
  min-height:82px;
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--acd-s6);
}
.acd-header__logo img{
  height:46px; width:auto; display:block;
  transition:height var(--acd-t-base) var(--acd-ease);
}

/* --- Navegación --- */
.acd-nav{ display:flex; align-items:center; gap:26px; }
.acd-nav__link{
  position:relative;
  display:block;
  padding:6px 0;
  font-size:15px; font-weight:500; line-height:1.4;
  color:var(--acd-i700);
  text-decoration:none;
  white-space:nowrap;
  transition:color var(--acd-t-fast) var(--acd-ease);
}
.acd-nav__link::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-8px;
  height:2px; background:var(--acd-a500);
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--acd-t-fast) var(--acd-ease);
}
.acd-nav__link:hover{ color:var(--acd-p700); }
.acd-nav__link:hover::after{ transform:scaleX(1); }
.acd-nav__link[aria-current="page"]{ color:var(--acd-p700); font-weight:650; }
.acd-nav__link[aria-current="page"]::after{ transform:scaleX(1); }
@media (max-width:1024px){ .acd-nav,.acd-header__cta{ display:none; } }

/* --- Sticky dentro de Elementor -------------------------------------------
   `position:sticky` solo actua dentro de su bloque contenedor. En WordPress,
   Elementor envuelve la plantilla de cabecera en <header class="elementor-
   location-header">, cuya altura es exactamente la del propio header: sin
   recorrido, el sticky no se fija y la cabecera se va con el scroll.
   Se hace sticky al envoltorio, cuyo contenedor ya es el <body>.
   En la landing estatica esta regla es inerte (no existe ese envoltorio).  */
.elementor-location-header{
  position:sticky; top:0; z-index:500;
}

/* --- Estado sticky --- */
.acd-headerwrap{ position:sticky; top:0; z-index:500; }

/* UN SOLO sticky. En WordPress quedaban dos anidados con el mismo top:0 —el
   envoltorio de Elementor y este— y el interior no tiene recorrido dentro
   del exterior, asi que el navegador recalculaba los dos mientras la barra
   de utilidades se retraia. La regla de arriba se mantiene para la landing
   estatica, donde ese envoltorio no existe.                               */
.elementor-location-header .acd-headerwrap{ position:static; }
.acd-headerwrap.is-stuck .acd-utilbar{
  /* se retrae sin desmontarse: conserva el espacio reservado y evita CLS */
  max-height:0; overflow:hidden;
  transition:max-height var(--acd-t-base) var(--acd-ease);
}
.acd-utilbar{ max-height:60px; transition:max-height var(--acd-t-base) var(--acd-ease); }
.acd-headerwrap.is-stuck .acd-header{
  background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  box-shadow:var(--acd-sh-sm);
}
.acd-headerwrap.is-stuck .acd-header__inner{ min-height:58px; }
.acd-headerwrap.is-stuck .acd-header__logo img{ height:34px; }
.acd-header,.acd-header__inner{
  transition:background-color var(--acd-t-base) var(--acd-ease),
             min-height var(--acd-t-base) var(--acd-ease),
             box-shadow var(--acd-t-base) var(--acd-ease);
}

/* --- Hamburguesa --- */
.acd-burger{
  display:none;
  width:44px; height:44px;
  align-items:center; justify-content:center;
  flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer; padding:0;
}
.acd-burger span{
  display:block; width:24px; height:1.5px; border-radius:2px;
  background:var(--acd-p700);
  transition:transform var(--acd-t-base) var(--acd-ease),
             opacity var(--acd-t-fast) var(--acd-ease),
             width var(--acd-t-base) var(--acd-ease);
}
.acd-burger span:last-child{ width:16px; }
.acd-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.acd-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.acd-burger[aria-expanded="true"] span:nth-child(3){ width:24px; transform:translateY(-6.5px) rotate(-45deg); }
@media (max-width:1024px){
  .acd-burger{ display:flex; }
  .acd-header__inner{ min-height:60px; }
  .acd-header__logo img{ height:34px; }
}

/* --- Panel de menú móvil --- */
.acd-mobilemenu{
  position:fixed; inset:0; top:60px;
  background:var(--acd-bg);
  z-index:490;
  display:flex; flex-direction:column;
  padding:var(--acd-s2) 0 var(--acd-s8);
  overflow-y:auto;
  opacity:0; visibility:hidden;
  transform:translateY(-8px);
  /* visibility conmuta de golpe, retrasada hasta el final SOLO al cerrar.
     Si se interpolara, el panel seguiría en `hidden` durante el primer frame
     y .focus() sobre el primer enlace no haría nada (fallo de WCAG 2.4.3). */
  transition:opacity var(--acd-t-base) var(--acd-ease),
             transform var(--acd-t-base) var(--acd-ease),
             visibility 0s linear var(--acd-t-base);
}
.acd-mobilemenu.is-open{
  opacity:1; visibility:visible; transform:none;
  transition:opacity var(--acd-t-base) var(--acd-ease),
             transform var(--acd-t-base) var(--acd-ease),
             visibility 0s linear 0s;
}
.acd-mobilemenu__link{
  display:flex; align-items:center; justify-content:space-between;
  padding:15px var(--acd-gutter);
  border-bottom:1px solid var(--acd-border);
  font-family:var(--acd-font-display);
  font-size:21px; font-weight:500; line-height:1.3;
  color:var(--acd-i900); text-decoration:none;
  min-height:44px;
  opacity:0; transform:translateY(8px);
}
.acd-mobilemenu.is-open .acd-mobilemenu__link{
  animation:acd-menu-in var(--acd-t-base) var(--acd-ease-in) forwards;
}
.acd-mobilemenu.is-open .acd-mobilemenu__link:nth-child(1){ animation-delay:40ms; }
.acd-mobilemenu.is-open .acd-mobilemenu__link:nth-child(2){ animation-delay:80ms; }
.acd-mobilemenu.is-open .acd-mobilemenu__link:nth-child(3){ animation-delay:120ms; }
.acd-mobilemenu.is-open .acd-mobilemenu__link:nth-child(4){ animation-delay:160ms; }
.acd-mobilemenu.is-open .acd-mobilemenu__link:nth-child(5){ animation-delay:200ms; }
.acd-mobilemenu.is-open .acd-mobilemenu__link:nth-child(6){ animation-delay:240ms; }
@keyframes acd-menu-in{ to{ opacity:1; transform:none; } }
.acd-mobilemenu__link[aria-current="page"]{ color:var(--acd-p700); }
.acd-mobilemenu__zone{
  font-family:var(--acd-font-sans);
  font-size:14px; font-weight:600;
  color:var(--acd-a700);
  border-bottom:none;
}
.acd-mobilemenu__foot{
  margin-top:auto;
  padding:var(--acd-s6) var(--acd-gutter) 0;
  border-top:1px solid var(--acd-border);
}
.acd-mobilemenu__contact{
  font-size:13px; line-height:1.6; color:var(--acd-i500);
  margin-bottom:var(--acd-s4);
}
.acd-mobilemenu__contact strong{ color:var(--acd-i900); font-weight:650; }
body.acd-menu-open{ overflow:hidden; }
@media (prefers-reduced-motion:reduce){
  .acd-mobilemenu__link{ opacity:1; transform:none; animation:none !important; }
}

/* ==========================================================================
   LAYOUT DE SECCIÓN
   ========================================================================== */
.acd-section{ padding-block:var(--acd-section-y); }
.acd-section--tight{ padding-block:calc(var(--acd-section-y) * .72); }
.acd-wrap{
  width:100%; max-width:var(--acd-wrap);
  margin-inline:auto;
  padding-inline:var(--acd-gutter);
}
.acd-band-dark{ background:var(--acd-p900); color:rgba(255,255,255,.82); }
.acd-band-dark h1,.acd-band-dark h2,.acd-band-dark h3{ color:#fff; }
.acd-band-tint{ background:var(--acd-p100); }
.acd-band-surface{ background:var(--acd-surface); }
.acd-band-sunken{ background:var(--acd-sunken); }
.acd-band-rule{ border-block:1px solid var(--acd-border); }

.acd-sectionhead{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:var(--acd-s6); flex-wrap:wrap;
  margin-bottom:var(--acd-s12);
}
.acd-sectionhead__text{ max-width:60ch; }

/* ==========================================================================
   1 · HERO
   ========================================================================== */
.acd-hero{
  background:var(--acd-p900);
  min-height:78vh;
  display:flex; align-items:center;
  padding-block:var(--acd-s16);
}
.acd-hero__grid{
  display:grid; gap:var(--acd-s12);
  grid-template-columns:1fr;
  align-items:center;
}
@media (min-width:1025px){
  .acd-hero__grid{ grid-template-columns:7fr 5fr; gap:var(--acd-s16); }
}
.acd-hero__title{
  font-family:var(--acd-font-display);
  font-weight:500;
  font-size:clamp(2.35rem,1.5rem + 3.3vw,4.25rem);
  line-height:1.05; letter-spacing:-.02em;
  color:#fff;
  margin:0 0 var(--acd-s6);
  max-width:18ch;
}
.acd-hero__lead{
  font-size:clamp(1.06rem,1rem + .35vw,1.25rem);
  line-height:1.6;
  color:rgba(255,255,255,.80);
  max-width:56ch;
  margin:0 0 var(--acd-s8);
}
.acd-hero__actions{ display:flex; gap:var(--acd-s3); flex-wrap:wrap; }

/* Índice territorial — columna derecha del hero */
.acd-territory{
  border-top:2px solid var(--acd-a500);
  padding-top:var(--acd-s4);
}
.acd-territory__title{
  font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--acd-a500);
  margin:0 0 var(--acd-s2);
}
.acd-territory__list{ list-style:none; margin:0; padding:0; }
.acd-territory__item{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:var(--acd-s4);
  padding:11px 0;
  border-bottom:1px solid rgba(255,255,255,.14);
  transition:padding-inline-start var(--acd-t-fast) var(--acd-ease);
}
.acd-territory__item:hover{ padding-inline-start:6px; }
.acd-territory__name{
  font-size:15px; font-weight:500; color:rgba(255,255,255,.88);
}
.acd-territory__dots{
  flex:1; height:1px; background:rgba(255,255,255,.16); margin-bottom:4px;
}
.acd-territory__count{
  font-size:15px; font-weight:650; color:#fff;
  font-variant-numeric:tabular-nums;
  min-width:2ch; text-align:right;
}
.acd-territory__foot{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:var(--acd-s4);
  padding-top:var(--acd-s3);
  font-size:12.5px; color:rgba(255,255,255,.60);
}

/* ==========================================================================
   2 · CIFRAS CLAVE
   ========================================================================== */
.acd-stats{
  display:grid; gap:var(--acd-s8);
  grid-template-columns:repeat(2,1fr);
}
@media (min-width:1025px){ .acd-stats{ grid-template-columns:repeat(4,1fr); } }
.acd-stat{ border-left:2px solid var(--acd-a500); padding:2px 0 2px var(--acd-s4); }
.acd-stat__n{
  font-family:var(--acd-font-display);
  font-weight:500;
  font-size:clamp(2.1rem,1.6rem + 1.6vw,2.9rem);
  line-height:1; letter-spacing:-.02em;
  color:var(--acd-p700);
  font-variant-numeric:tabular-nums;
  display:block;
}
.acd-stat__l{
  font-size:12.5px; line-height:1.45; color:var(--acd-i500);
  margin-top:var(--acd-s2);
  max-width:22ch;
}

/* ==========================================================================
   3 · QUIÉNES SOMOS
   ========================================================================== */
.acd-about{
  display:grid; gap:var(--acd-s12);
  grid-template-columns:1fr;
}
@media (min-width:1025px){
  .acd-about{ grid-template-columns:7fr 5fr; gap:var(--acd-s16); align-items:start; }
}
.acd-about__body p{
  font-family:var(--acd-font-display);
  font-size:clamp(1.15rem,1.05rem + .4vw,1.3125rem);
  line-height:1.62;
  color:var(--acd-i700);
  max-width:60ch;
}
.acd-about__body p + p{ margin-top:var(--acd-s4); }

.acd-pillars{ list-style:none; margin:0; padding:0; }
.acd-pillar{
  padding-block:var(--acd-s4);
  border-top:1px solid var(--acd-border);
  display:grid; grid-template-columns:24px 1fr; gap:var(--acd-s4);
  align-items:start;
}
.acd-pillar:last-child{ border-bottom:1px solid var(--acd-border); }
.acd-pillar__icon{ color:var(--acd-p600); margin-top:2px; }
.acd-pillar__icon svg{ width:20px; height:20px; display:block; }
.acd-pillar h4{
  font-size:15.5px; font-weight:650; line-height:1.35;
  color:var(--acd-i900); margin:0 0 4px;
}
.acd-pillar p{ font-size:14px; line-height:1.55; color:var(--acd-i500); margin:0; }

/* ==========================================================================
   4 · QUÉ REPRESENTA
   ========================================================================== */
.acd-repcards{
  display:grid; gap:var(--acd-s6);
  grid-template-columns:1fr;
}
@media (min-width:768px){ .acd-repcards{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1025px){ .acd-repcards{ grid-template-columns:repeat(3,1fr); } }

/* ==========================================================================
   TARJETA — componente compartido
   ========================================================================== */
.acd-card{
  background:var(--acd-surface);
  border:1px solid var(--acd-border);
  border-radius:var(--acd-r-sm);
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:border-color var(--acd-t-base) var(--acd-ease),
             box-shadow var(--acd-t-base) var(--acd-ease);
}
.acd-card:hover{ border-color:var(--acd-p500); box-shadow:var(--acd-sh-md); }
.acd-card__media{
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--acd-sunken);
}
.acd-card__media img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform var(--acd-t-slow) var(--acd-ease);
}
.acd-card:hover .acd-card__media img{ transform:scale(1.03); }
.acd-card__body{
  padding:var(--acd-s6);
  display:flex; flex-direction:column; gap:var(--acd-s2);
  flex:1;
}
@media (min-width:1025px){ .acd-card__body{ padding:28px; } }
.acd-card__title{
  font-size:clamp(1.03rem,.98rem + .25vw,1.15rem);
  font-weight:650; line-height:1.32; letter-spacing:-.008em;
  color:var(--acd-i900); margin:0;
}
/* El enlace envuelve solo el título y se expande a toda la tarjeta:
   el lector de pantalla anuncia un enlace con texto útil (WCAG 2.4.4) */
.acd-card__title a{ color:inherit; text-decoration:none; }
.acd-card__title a::after{ content:""; position:absolute; inset:0; }
.acd-card{ position:relative; }
.acd-card__title a:hover{ color:var(--acd-p700); }
.acd-card__excerpt{
  font-size:14px; line-height:1.55; color:var(--acd-i500); margin:0;
}
.acd-card__foot{
  margin-top:auto;
  padding-top:var(--acd-s3);
  border-top:1px solid var(--acd-sunken);
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  /* i500, no i400: a 12px la fecha y el autor son texto esencial y necesitan
     4.5:1. i400 se queda para elementos no textuales. */
  font-size:12px; color:var(--acd-i500);
  font-variant-numeric:tabular-nums;
}
.acd-chip{
  display:inline-block; align-self:flex-start;
  font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--acd-a700);
  border:1px solid #D9C9A8;
  border-radius:var(--acd-r-xs);
  padding:2px 7px;
}

/* ==========================================================================
   5 · BENEFICIOS
   ========================================================================== */
.acd-benefits{
  display:grid; gap:var(--acd-s8) var(--acd-s6);
  grid-template-columns:1fr;
}
@media (min-width:768px){ .acd-benefits{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1025px){ .acd-benefits{ grid-template-columns:repeat(3,1fr); } }
.acd-benefit__icon{ color:var(--acd-p600); margin-bottom:var(--acd-s3); }
.acd-benefit__icon svg{ width:24px; height:24px; display:block; }
.acd-benefit h4{
  font-size:16px; font-weight:650; line-height:1.35;
  color:var(--acd-i900); margin:0 0 6px;
}
.acd-benefit p{ font-size:14px; line-height:1.6; color:var(--acd-i500); margin:0; }

/* ==========================================================================
   6 · ACTUALIDAD
   ========================================================================== */
.acd-featured{
  display:grid; gap:var(--acd-s6);
  grid-template-columns:1fr;
  margin-bottom:var(--acd-s8);
  position:relative;
  background:var(--acd-surface);
  border:1px solid var(--acd-border);
  border-radius:var(--acd-r-sm);
  overflow:hidden;
  transition:border-color var(--acd-t-base) var(--acd-ease),
             box-shadow var(--acd-t-base) var(--acd-ease);
}
.acd-featured:hover{ border-color:var(--acd-p500); box-shadow:var(--acd-sh-md); }
@media (min-width:768px){
  .acd-featured{ grid-template-columns:1fr 1fr; gap:0; align-items:stretch; }
}
.acd-featured__media{ aspect-ratio:16/10; overflow:hidden; background:var(--acd-sunken); }
.acd-featured__media img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform var(--acd-t-slow) var(--acd-ease); }
.acd-featured:hover .acd-featured__media img{ transform:scale(1.03); }
.acd-featured__body{
  padding:var(--acd-s6);
  display:flex; flex-direction:column; gap:var(--acd-s3);
  justify-content:center;
}
@media (min-width:1025px){ .acd-featured__body{ padding:var(--acd-s12); } }
.acd-featured__title{
  font-family:var(--acd-font-sans);
  font-size:clamp(1.3rem,1.1rem + .9vw,1.75rem);
  font-weight:650; line-height:1.25; letter-spacing:-.012em;
  color:var(--acd-i900); margin:0;
}
.acd-featured__title a{ color:inherit; text-decoration:none; }
.acd-featured__title a::after{ content:""; position:absolute; inset:0; }
.acd-featured__title a:hover{ color:var(--acd-p700); }

.acd-newsgrid{
  display:grid; gap:var(--acd-s6);
  grid-template-columns:1fr;
}
@media (min-width:768px){ .acd-newsgrid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1025px){ .acd-newsgrid{ grid-template-columns:repeat(3,1fr); } }
/* En móvil se recorta la tercera tarjeta para no alargar el scroll */
@media (max-width:767px){ .acd-newsgrid > :nth-child(3){ display:none; } }

/* Fallback gráfico para noticia sin imagen destacada (P-04) */
.acd-fallbackimg{
  width:100%; height:100%;
  background:var(--acd-p900);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.acd-fallbackimg span{
  font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--acd-a500);
  position:relative; z-index:1;
}

/* ==========================================================================
   7 · MURO DE ASOCIADOS
   ========================================================================== */
.acd-logowall{
  display:grid; gap:var(--acd-s4);
  grid-template-columns:repeat(2,1fr);
}
@media (min-width:768px){ .acd-logowall{ grid-template-columns:repeat(3,1fr); gap:20px; } }
@media (min-width:1025px){ .acd-logowall{ grid-template-columns:repeat(5,1fr); gap:var(--acd-s6); } }
.acd-logotile{
  background:var(--acd-surface);
  border:1px solid var(--acd-border);
  border-radius:var(--acd-r-sm);
  min-height:78px;
  display:flex; align-items:center; justify-content:center;
  padding:var(--acd-s4);
  filter:grayscale(1);
  opacity:.62;
  transition:filter var(--acd-t-base) var(--acd-ease),
             opacity var(--acd-t-base) var(--acd-ease),
             border-color var(--acd-t-base) var(--acd-ease);
}
.acd-logotile:hover,.acd-logotile:focus-within{
  filter:grayscale(0); opacity:1; border-color:var(--acd-border-strong);
}
.acd-logotile img{ max-width:70%; max-height:46px; width:auto; height:auto; display:block; }
/* Marcador tipográfico mientras no haya logo normalizado */
.acd-logotile__text{
  font-size:11px; font-weight:600; letter-spacing:.06em; text-align:center;
  color:var(--acd-i500); line-height:1.3;
}
@media (max-width:767px){
  /* 12 logos en móvil + enlace al directorio completo */
  .acd-logowall > :nth-child(n+13){ display:none; }
}

/* ==========================================================================
   8 · CTA DE CIERRE
   ========================================================================== */
.acd-cta{ background:var(--acd-p800); padding-block:112px; }
@media (max-width:767px){ .acd-cta{ padding-block:var(--acd-s16); } }
.acd-cta__grid{
  display:grid; gap:var(--acd-s8);
  grid-template-columns:1fr;
  align-items:center;
}
@media (min-width:1025px){
  .acd-cta__grid{ grid-template-columns:1.5fr 1fr; gap:var(--acd-s16); }
}
.acd-cta__title{
  font-family:var(--acd-font-display); font-weight:500;
  font-size:clamp(1.75rem,1.4rem + 1.6vw,2.6rem);
  line-height:1.15; letter-spacing:-.015em; color:#fff; margin:0 0 var(--acd-s4);
  max-width:22ch;
}
.acd-cta__actions{ display:flex; flex-direction:column; gap:var(--acd-s3); align-items:flex-start; }
@media (min-width:1025px){ .acd-cta__actions{ align-items:stretch; } }
.acd-cta__phone{
  font-size:13.5px; color:rgba(255,255,255,.66); margin-top:var(--acd-s2);
}
.acd-cta__phone a{ color:#fff; text-decoration:none; font-weight:600; }
.acd-cta__phone a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.acd-footer{
  background:var(--acd-p900);
  color:rgba(255,255,255,.80);
  font-size:13.5px;
  padding-top:var(--acd-s24);
}
@media (max-width:767px){ .acd-footer{ padding-top:var(--acd-s16); } }
.acd-footer__cols{
  display:grid; gap:var(--acd-s8);
  grid-template-columns:1fr;
}
@media (min-width:768px){ .acd-footer__cols{ grid-template-columns:repeat(2,1fr); gap:var(--acd-s12) var(--acd-s8); } }
@media (min-width:1025px){ .acd-footer__cols{ grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:var(--acd-s12); } }

.acd-footer__plate{
  background:#fff; border-radius:3px;
  padding:9px 12px; display:inline-block;
  margin-bottom:var(--acd-s4);
}
.acd-footer__plate img{ height:40px; width:auto; display:block; }
.acd-footer__desc{
  color:rgba(255,255,255,.66); line-height:1.6;
  max-width:34ch; margin:0 0 var(--acd-s4);
}
.acd-footer__ft{
  font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--acd-a500);
  margin:0 0 var(--acd-s3);
}
.acd-footer ul{ list-style:none; margin:0; padding:0; }
.acd-footer li{ margin-bottom:var(--acd-s2); }
.acd-footer a{
  color:rgba(255,255,255,.80); text-decoration:none;
  transition:color var(--acd-t-fast) var(--acd-ease);
}
.acd-footer a:hover{
  color:#fff;
  text-decoration:underline; text-decoration-color:var(--acd-a500);
  text-underline-offset:3px; text-decoration-thickness:1px;
}
.acd-footer__addr{ line-height:1.65; font-style:normal; }
.acd-footer__addr strong{ color:#fff; font-weight:600; }
.acd-footer__slot{
  border:1px dashed rgba(184,134,59,.55);
  color:var(--acd-a500);
  font-size:11px; padding:7px 11px;
  border-radius:3px; display:inline-block;
}
.acd-footer__bottom{
  margin-top:var(--acd-s12);
  border-top:1px solid rgba(255,255,255,.14);
  padding-block:var(--acd-s4) var(--acd-s6);
  display:flex; justify-content:space-between; gap:var(--acd-s3);
  flex-wrap:wrap;
  font-size:12px; color:rgba(255,255,255,.60);
}
.acd-footer__legal{ display:flex; gap:var(--acd-s4); flex-wrap:wrap; }
.acd-footer__cookiebtn{
  background:none; border:none; padding:0; cursor:pointer;
  font:inherit; color:rgba(255,255,255,.80);
  text-decoration:underline; text-underline-offset:3px;
}
.acd-footer__cookiebtn:hover{ color:#fff; }

/* Acordeón nativo en móvil, sin JS */
@media (max-width:767px){
  .acd-footer__acc summary{
    cursor:pointer; list-style:none;
    display:flex; align-items:center; justify-content:space-between;
    min-height:44px;
    border-bottom:1px solid rgba(255,255,255,.14);
  }
  .acd-footer__acc summary::-webkit-details-marker{ display:none; }
  .acd-footer__acc summary::after{
    content:"+"; font-size:18px; color:var(--acd-a500); line-height:1;
  }
  .acd-footer__acc[open] summary::after{ content:"–"; }
  .acd-footer__acc ul{ padding-block:var(--acd-s3); }
}
@media (min-width:768px){
  .acd-footer__acc summary{ list-style:none; pointer-events:none; }
  .acd-footer__acc summary::-webkit-details-marker{ display:none; }
}

/* ==========================================================================
   PLACEHOLDERS DE IMAGEN — visibles a propósito
   ========================================================================== */
.acd-imgph{
  width:100%; height:100%; min-height:120px;
  background:var(--acd-a100);
  border:1px dashed var(--acd-a600);
  color:var(--acd-a700);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; gap:4px;
  padding:var(--acd-s4);
}
.acd-imgph__label{ font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.acd-imgph__id{ font-size:11px; opacity:.75; font-variant-numeric:tabular-nums; }

/* ==========================================================================
   PUENTE CON ELEMENTOR
   --------------------------------------------------------------------------
   Elementor aplica las clases del widget (_css_classes) al DIV contenedor
   .elementor-widget-*, NO al elemento que realmente pinta (<a>, <h1>, <img>).
   Sin este bloque los titulares salen en Roboto y azul #6EC1E4, y los botones
   en verde #61CE70: los valores de fabrica del kit.
   Verificado sobre Elementor 4.2.1 con Hello Elementor 3.4.9.
   ========================================================================== */

/* --- 1 - Neutralizar los globales de fabrica del kit ----------------------
   Evita depender de que el kit se pueda guardar: el sistema manda igual.    */
body[class*="elementor-kit-"]{
  --e-global-color-primary:#10503A;
  --e-global-color-secondary:#062A1E;
  --e-global-color-text:#34403A;
  --e-global-color-accent:#7E5518;
  --e-global-typography-primary-font-family:"Newsreader";
  --e-global-typography-primary-font-weight:500;
  --e-global-typography-secondary-font-family:"Newsreader";
  --e-global-typography-secondary-font-weight:500;
  --e-global-typography-text-font-family:"Inter";
  --e-global-typography-text-font-weight:400;
  --e-global-typography-accent-font-family:"Inter";
  --e-global-typography-accent-font-weight:600;
}

/* --- 2 - Contenedores: ancho y espaciado los define el sistema ------------ */
.acd-wrap.e-con{
  --width:100%; max-width:var(--acd-wrap);
  margin-inline:auto; padding:0 var(--acd-gutter);
}
.acd-hero.e-con,.acd-section.e-con,.acd-cta.e-con,.acd-footer.e-con{ padding-inline:0; }
.acd-hero__grid.e-con,.acd-about.e-con,.acd-stats.e-con,.acd-repcards.e-con,
.acd-benefits.e-con,.acd-newsgrid.e-con,.acd-logowall.e-con,.acd-sectionhead.e-con,
.acd-cta__grid.e-con,.acd-footer__cols.e-con,.acd-hero__actions.e-con,
.acd-cta__actions.e-con,.acd-sectionhead__text.e-con,.acd-about__body.e-con,
.acd-benefit.e-con,.acd-card.e-con,.acd-featured.e-con{ --width:100%; padding:0; }
.acd-stat.e-con{ --width:100%; padding:2px 0 2px var(--acd-s4); }
.acd-card__body.e-con,.acd-featured__body.e-con{ --width:100%; padding:var(--acd-s6); }
@media (min-width:1025px){
  .acd-card__body.e-con{ padding:28px; }
  .acd-featured__body.e-con{ padding:var(--acd-s12); }
}

/* --- 3 - Widget Heading -> .elementor-heading-title ----------------------- */
.elementor-widget-heading .elementor-heading-title{
  font-family:var(--acd-font-sans); font-weight:600;
  color:var(--acd-i900); line-height:1.35; letter-spacing:0;
}
.acd-on-dark .elementor-widget-heading .elementor-heading-title{ color:#fff; }
.acd-hero__title .elementor-heading-title{
  font-family:var(--acd-font-display); font-weight:500;
  font-size:clamp(2.35rem, 1.5rem + 3.3vw, 4.25rem);
  line-height:1.05; letter-spacing:-.02em; color:#fff;
}
.acd-h2 .elementor-heading-title{
  font-family:var(--acd-font-display); font-weight:500;
  font-size:clamp(2rem, 1.5rem + 1.9vw, 3rem);
  line-height:1.12; letter-spacing:-.015em;
}
.acd-cta__title .elementor-heading-title{
  font-family:var(--acd-font-display); font-weight:500;
  font-size:clamp(1.75rem, 1.4rem + 1.6vw, 2.6rem);
  line-height:1.15; letter-spacing:-.015em; color:#fff;
}
.acd-stat__n .elementor-heading-title{
  font-family:var(--acd-font-display); font-weight:500;
  font-size:clamp(2.1rem, 1.6rem + 1.6vw, 2.9rem);
  line-height:1; letter-spacing:-.02em;
  color:var(--acd-p700); font-variant-numeric:tabular-nums;
}
.acd-card__title .elementor-heading-title{
  font-family:var(--acd-font-sans); font-weight:650;
  font-size:clamp(1.03rem,.98rem + .25vw,1.15rem);
  line-height:1.32; letter-spacing:-.008em; color:var(--acd-i900);
}
.acd-featured__title .elementor-heading-title{
  font-family:var(--acd-font-sans); font-weight:650;
  font-size:clamp(1.3rem,1.1rem + .9vw,1.75rem);
  line-height:1.25; letter-spacing:-.012em; color:var(--acd-i900);
}
.acd-benefit .elementor-widget-heading .elementor-heading-title{
  font-size:16px; font-weight:650; line-height:1.35; color:var(--acd-i900);
}
.elementor-widget-heading .elementor-heading-title a{ color:inherit; text-decoration:none; }
.acd-card__title .elementor-heading-title a::after,
.acd-featured__title .elementor-heading-title a::after{ content:""; position:absolute; inset:0; }
.acd-card__title .elementor-heading-title a:hover,
.acd-featured__title .elementor-heading-title a:hover{ color:var(--acd-p700); }

/* --- 4 - Widget Button -> .elementor-button ------------------------------- */
.acd-btn.elementor-widget-button{ text-align:left; }
.acd-btn.elementor-widget-button .elementor-button{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:44px; padding:13px 26px;
  font-family:var(--acd-font-sans); font-size:15px; font-weight:600;
  letter-spacing:.005em; line-height:1.2; text-decoration:none;
  border:1px solid transparent; border-radius:var(--acd-r-sm);
  background-color:transparent;
  transition:background-color var(--acd-t-fast) var(--acd-ease),
             color var(--acd-t-fast) var(--acd-ease),
             border-color var(--acd-t-fast) var(--acd-ease),
             transform var(--acd-t-fast) var(--acd-ease);
}
.acd-btn.elementor-widget-button .elementor-button-content-wrapper{ gap:9px; }
.acd-btn--primary.elementor-widget-button .elementor-button{ background-color:var(--acd-p700); color:#fff; }
.acd-btn--primary.elementor-widget-button .elementor-button:hover{ background-color:var(--acd-p800); color:#fff; transform:translateY(-1px); }
.acd-btn--secondary.elementor-widget-button .elementor-button{ background-color:transparent; color:var(--acd-p700); border-color:var(--acd-p700); }
.acd-btn--secondary.elementor-widget-button .elementor-button:hover{ background-color:var(--acd-p050); color:var(--acd-p800); }
.acd-btn--light.elementor-widget-button .elementor-button{ background-color:#fff; color:var(--acd-p900); }
.acd-btn--light.elementor-widget-button .elementor-button:hover{ background-color:var(--acd-p050); color:var(--acd-p900); transform:translateY(-1px); }
.acd-btn--ghost.elementor-widget-button .elementor-button{ background-color:transparent; color:#fff; border-color:rgba(255,255,255,.38); }
.acd-btn--ghost.elementor-widget-button .elementor-button:hover{ background-color:rgba(255,255,255,.10); border-color:rgba(255,255,255,.7); color:#fff; }
.acd-btn--link.elementor-widget-button .elementor-button{
  min-height:0; padding:8px 0; border-radius:0; background-color:transparent;
  color:var(--acd-p700); border-bottom:1px solid var(--acd-border-strong);
}
.acd-btn--link.elementor-widget-button .elementor-button:hover{ border-bottom-color:var(--acd-p700); color:var(--acd-p800); }
/* el widget Button no admite marcado interno: la flecha va por CSS */
.acd-btn--link.elementor-widget-button .elementor-button-text::after{
  content:"\2192"; display:inline-block; margin-left:9px;
  transition:transform var(--acd-t-fast) var(--acd-ease);
}
.acd-btn--link.elementor-widget-button .elementor-button:hover .elementor-button-text::after{ transform:translateX(4px); }
@media (max-width:767px){
  .acd-btn--block-mobile.elementor-widget-button .elementor-button{ width:100%; }
}

/* --- 5 - Widget HTML -----------------------------------------------------
   Elementor 4 con "Optimized DOM Output" inserta el HTML directamente dentro
   de .elementor-widget-html, sin .elementor-widget-container. Cubrimos ambos. */
.acd-utilbar .elementor-widget-html,
.acd-utilbar .elementor-widget-html > .elementor-widget-container{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  gap:var(--acd-s4); flex-wrap:wrap;
}
.acd-utilbar__inner.e-con{
  --width:100%; flex-direction:row; align-items:center;
  max-width:var(--acd-wrap); margin-inline:auto;
  padding:0 var(--acd-gutter); min-height:34px;
}

/* --- 6 - Widget Nav Menu -> .elementor-item ------------------------------- */
.acd-nav.elementor-widget-nav-menu{ width:auto; }
.acd-nav .elementor-nav-menu--main .elementor-nav-menu{ display:flex; align-items:center; gap:26px; }
.acd-nav .elementor-nav-menu--main .elementor-item{
  font-family:var(--acd-font-sans);
  font-size:15px; font-weight:500; line-height:1.4;
  color:var(--acd-i700); fill:var(--acd-i700);
  padding:6px 0; position:relative; white-space:nowrap;
  transition:color var(--acd-t-fast) var(--acd-ease);
}
.acd-nav .elementor-nav-menu--main .elementor-item::after{
  content:""; position:absolute; left:0; right:0; bottom:-8px; height:2px;
  background:var(--acd-a500); transform:scaleX(0); transform-origin:left;
  transition:transform var(--acd-t-fast) var(--acd-ease);
}
/* El `padding` se repite aqui a proposito. Elementor trae
   `.elementor-nav-menu--main .elementor-item:hover{ padding:13px 20px }`,
   que con dos clases y una pseudoclase suma lo mismo que la regla de arriba
   (tres clases) y gana por orden de carga. Sin esto, al pasar el raton el
   item ganaba 40px de ancho y empujaba a los de al lado: medido, «Quienes
   somos» pasaba de 111px a 151px y desplazaba todo el menu.               */
.acd-nav .elementor-nav-menu--main .elementor-item:hover,
.acd-nav .elementor-nav-menu--main .elementor-item:focus{
  color:var(--acd-p700); background:transparent;
  padding:6px 0;
}
.acd-nav .elementor-nav-menu--main .elementor-item:hover::after{ transform:scaleX(1); }
.acd-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{ color:var(--acd-p700); font-weight:650; background:transparent; }
.acd-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after{ transform:scaleX(1); }
/* el desplegable nativo no se usa: el panel movil es propio */
.acd-nav .elementor-menu-toggle,
.acd-nav .elementor-nav-menu--dropdown{ display:none !important; }

@media (prefers-reduced-motion:reduce){
  .acd-btn.elementor-widget-button .elementor-button:hover{ transform:none; }
  .acd-btn--link.elementor-widget-button .elementor-button:hover .elementor-button-text::after{ transform:none; }
  .acd-nav .elementor-nav-menu--main .elementor-item::after{ transition:none; }
}

/* --- 7 - Ocultar la navegacion de escritorio por debajo de 1025 -----------
   La regla generica `.acd-nav{display:none}` no gana: el widget nav-menu
   recibe display de una regla de Elementor con mas especificidad, y a 768 px
   se veian a la vez el menu horizontal y la hamburguesa. */
@media (max-width:1024px){
  .acd-nav.elementor-widget-nav-menu{ display:none !important; }
}

/* ==========================================================================
   NAVEGACION POR ANCLAS  (bloque 2)
   La cabecera es sticky: sin scroll-margin-top el ancla deja el titular
   tapado. Valor = altura de la cabecera comprimida (58 px) + holgura.
   `scroll-behavior:smooth` ya vive en acodisa-kit.css con su excepcion
   de prefers-reduced-motion, no se repite aqui.
   ========================================================================== */
#contenido,#quienes,#asociados,#contacto,
.acd-hero[id],.acd-section[id],.acd-cta[id]{
  scroll-margin-top:72px;
}
@media (max-width:1024px){
  #contenido,#quienes,#asociados,#contacto,
  .acd-hero[id],.acd-section[id],.acd-cta[id]{ scroll-margin-top:68px; }
}

/* --- Muro de asociados: logos a mayor tamano (peticion del cliente) --------
   Todos los ficheros son lienzos 480x240 con el logotipo ocupando el 90 %.
   Mostrando el lienzo completo a un ancho fijo, el equilibrio optico entre
   marcas sale solo: no hace falta ajustar cada logo a mano.
   Se retira el gris de reposo: el cliente pide legibilidad y protagonismo.  */
.acd-logotile{
  min-height:180px; padding:20px;
  filter:none; opacity:1;
  /* el nombre va debajo del logotipo: la ficha pasa a columna */
  flex-direction:column; gap:12px; justify-content:center;
}

/* Nombre del asociado. Lo inyecta acodisa.js leyendo el `alt` de la imagen,
   asi que no hay que escribirlo en 24 widgets ni mantenerlo en dos sitios.
   12px y no menos: es el unico texto que identifica a la empresa, y a este
   tamano da 5,98:1 sobre blanco, por encima del 4,5:1 que exige WCAG.     */
.acd-logotile__nombre{
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:.01em;
  color:var(--acd-i500);
  text-align:center;
  text-wrap:balance;
}
.acd-logotile:hover,.acd-logotile:focus-within{
  filter:none; opacity:1; border-color:var(--acd-border-strong);
}
.acd-logotile img{
  width:78%; height:auto; max-width:78%; max-height:none;
}
@media (min-width:1025px){
  .acd-logowall{ grid-template-columns:repeat(4,1fr); gap:var(--acd-s6); }
}
@media (min-width:768px) and (max-width:1024px){
  .acd-logowall{ grid-template-columns:repeat(3,1fr); gap:20px; }
  .acd-logotile{ min-height:162px; }
}
@media (max-width:767px){
  /* se muestran los 24: no hay pagina de directorio donde ver el resto */
  .acd-logowall > :nth-child(n+13){ display:flex; }
  /* A dos columnas los nombres largos llegan a tres lineas. Con un suelo
     bajo, la reticula iguala cada fila por su ficha mas alta y no sobra
     aire en las filas de nombre corto. Medido: 149/149, 116/116, 132/132. */
  .acd-logotile{ min-height:124px; gap:10px; }
  .acd-logotile img{ width:82%; max-width:82%; }
}

/* ==========================================================================
   MODALES DE FORMULARIO  (<dialog> nativo)
   El markup lo imprime el tema hijo en wp_footer, no Elementor.
   ========================================================================== */
.acd-modal{
  width:min(640px, calc(100vw - 32px));
  max-height:calc(100dvh - 48px);
  padding:0; border:none;
  border-radius:var(--acd-r-sm);
  background:var(--acd-surface);
  color:var(--acd-i700);
  box-shadow:0 24px 64px -24px rgba(6,42,30,.45);
  overflow:visible;
}
.acd-modal::backdrop{ background:rgba(6,42,30,.62); }
.acd-modal__box{
  position:relative;
  padding:var(--acd-s8);
  max-height:calc(100dvh - 48px);
  overflow-y:auto;
}
@media (min-width:768px){ .acd-modal__box{ padding:var(--acd-s12); } }

.acd-modal__close{
  position:absolute; top:12px; right:12px;
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  background:none; border:none; border-radius:var(--acd-r-sm);
  color:var(--acd-i500); cursor:pointer;
  transition:background-color var(--acd-t-fast) var(--acd-ease),
             color var(--acd-t-fast) var(--acd-ease);
}
.acd-modal__close svg{
  /* flex:none — sin esto el SVG se comprime como item flexible y sale a 12px */
  flex:none; display:block; width:22px; height:22px;
}
.acd-modal__close:hover{ background:var(--acd-sunken); color:var(--acd-i900); }

.acd-modal__title{
  font-family:var(--acd-font-display); font-weight:500;
  font-size:clamp(1.5rem, 1.3rem + .8vw, 1.9rem);
  line-height:1.18; letter-spacing:-.015em;
  color:var(--acd-i900);
  margin:0 44px var(--acd-s3) 0;
}
.acd-modal__lead{
  font-size:15.5px; line-height:1.6; color:var(--acd-i500);
  margin:0 0 var(--acd-s6); max-width:52ch;
}
.acd-modal__lead a{ color:var(--acd-p700); font-weight:600; }

/* --- Gravity Forms dentro del modal --------------------------------------
   El formulario en si lo estiliza la hoja de mas abajo, acotada a .acd-form.
   Aqui solo queda lo que depende de estar dentro del <dialog>.            */
.acd-modal .gform_wrapper{ margin:0; }
.acd-modal .gform_wrapper form{ margin:0; }

/* ==========================================================================
   ACODISA — Gravity Forms
   Adapta el formulario a los tokens de acodisa-kit.css.
   Ambito: solo formularios con la clase acd-form, que se asigna desde el
   ajuste "CSS Class Name" de cada formulario en Gravity Forms.
   Asi no se pisa ningun otro formulario del sitio.
   ========================================================================== */

.acd-form .gform_fields{
  gap:var(--acd-s6) var(--acd-s4);
}

/* ---------- Etiquetas ---------- */
.acd-form .gfield_label{
  font-family:var(--acd-font-sans);
  font-size:14px;
  font-weight:600;
  color:var(--acd-i900);
  letter-spacing:.01em;
  margin-bottom:var(--acd-s2);
}
.acd-form .gfield_required{ color:var(--acd-a700); }

.acd-form .gfield_description{
  font-size:13.5px;
  line-height:1.6;
  color:var(--acd-i500);
  padding-top:var(--acd-s2);
}

/* ---------- Campos ---------- */
.acd-form input[type=text],
.acd-form input[type=email],
.acd-form input[type=tel],
.acd-form textarea{
  width:100%;
  min-height:48px;                 /* objetivo tactil holgado */
  padding:12px 14px;
  font-family:var(--acd-font-sans);
  font-size:16px;                  /* 16px evita el zoom automatico en iOS */
  line-height:1.5;
  color:var(--acd-i900);
  background:var(--acd-surface);
  border:1px solid var(--acd-border-strong);
  border-radius:var(--acd-r-sm);
  box-shadow:none;
  transition:border-color var(--acd-t-fast) var(--acd-ease),
             box-shadow  var(--acd-t-fast) var(--acd-ease);
}
.acd-form textarea{ min-height:140px; resize:vertical; }

.acd-form input::placeholder,
.acd-form textarea::placeholder{ color:var(--acd-i400); }

.acd-form input:hover,
.acd-form textarea:hover{ border-color:var(--acd-i400); }

.acd-form input:focus,
.acd-form textarea:focus{
  border-color:var(--acd-p700);
  box-shadow:0 0 0 3px var(--acd-p100);
  outline:none;                    /* lo sustituye el anillo de arriba */
}
/* Navegacion por teclado: se mantiene el foco visible del kit. */
.acd-form :is(input,textarea,button):focus-visible{
  outline:2px solid var(--acd-a600);
  outline-offset:2px;
}

/* ---------- Consentimiento RGPD ---------- */
.acd-form .ginput_container_consent{
  display:flex;
  align-items:flex-start;
  gap:var(--acd-s3);
}
.acd-form .ginput_container_consent input[type=checkbox]{
  width:20px; height:20px;
  margin:2px 0 0;
  flex:0 0 auto;
  accent-color:var(--acd-p700);
}
.acd-form .ginput_container_consent label{
  font-size:14.5px;
  line-height:1.6;
  color:var(--acd-i700);
  font-weight:400;
}
.acd-form .ginput_container_consent a{
  color:var(--acd-p700);
  text-underline-offset:2px;
}
.acd-form .ginput_container_consent a:hover{ color:var(--acd-p800); }

/* Texto legal del consentimiento (Responsable / Finalidad / Derechos).
   Orbital lo mete en un recuadro gris con 16px de relleno que se lee como
   un campo mas del formulario. Se convierte en nota subordinada: filete a
   la izquierda en vez de recuadro, igual criterio que .gform_confirmation_message.
   El relleno y el borde llevan !important porque Orbital los impone y no
   basta con subir especificidad (probado a 0,3,0: seguia ganando Orbital).
   El filete va en --acd-p500 y no en --acd-border: sobre --acd-sunken
   (#EDF1EE) un borde #DDE4DF es invisible.                                */
.acd-form .gfield_consent_description_text{
  padding:var(--acd-s3) var(--acd-s4) !important;
  border:0 !important;
  border-left:2px solid var(--acd-p500) !important;
  border-radius:0 var(--acd-r-sm) var(--acd-r-sm) 0 !important;
  font-size:12.5px;
  line-height:1.55;
  color:var(--acd-i500);
  background:var(--acd-sunken);
}
.acd-on-dark .acd-form .gfield_consent_description_text{
  background:rgba(255,255,255,.06);
  border-left-color:rgba(255,255,255,.35) !important;
  color:rgba(255,255,255,.72);
}

/* ---------- Boton de envio ---------- */
.acd-form .gform_footer{ margin-top:var(--acd-s8); padding:0; }

.acd-form .gform_button{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:48px;
  padding:13px 30px;
  font-family:var(--acd-font-sans);
  font-size:15px; font-weight:600; letter-spacing:.005em; line-height:1.2;
  color:#fff;
  background:var(--acd-p700);
  border:1px solid transparent;
  border-radius:var(--acd-r-sm);
  cursor:pointer;
  transition:background-color var(--acd-t-fast) var(--acd-ease),
             transform        var(--acd-t-fast) var(--acd-ease);
}
.acd-form .gform_button:hover{
  background:var(--acd-p800);
  transform:translateY(-1px);
}
.acd-form .gform_button:disabled{
  opacity:.55; cursor:not-allowed; transform:none;
}
@media (max-width:767px){
  .acd-form .gform_button{ width:100%; }
}

/* ---------- Errores ---------- */
.acd-form .gfield_error input,
.acd-form .gfield_error textarea{
  border-color:var(--acd-err);
  background:#FDF6F5;
}
.acd-form .gfield_validation_message,
.acd-form .validation_message{
  margin-top:var(--acd-s2);
  padding:0;
  font-size:13.5px;
  font-weight:500;
  color:var(--acd-err);
  background:none;
  border:0;
}
.acd-form .gform_validation_errors{
  margin-bottom:var(--acd-s6);
  padding:var(--acd-s4) var(--acd-s6);
  background:#FDF6F5;
  border:1px solid var(--acd-err);
  border-radius:var(--acd-r-sm);
  box-shadow:none;
}
.acd-form .gform_validation_errors h2,
.acd-form .gform_submission_error{
  font-family:var(--acd-font-sans);
  font-size:15px;
  font-weight:600;
  color:var(--acd-err);
}

/* ---------- Confirmacion ----------
   OJO: Gravity Forms genera el wrapper anadiendo "_wrapper" al nombre de
   clase, asi que es .acd-form_wrapper con guion BAJO. Con guion normal
   (.acd-form-wrapper) la regla no casa con nada.                          */
.acd-form_wrapper .gform_confirmation_message,
.gform_confirmation_wrapper .gform_confirmation_message{
  padding:var(--acd-s8);
  background:var(--acd-p050);
  border:1px solid var(--acd-p100);
  border-left:3px solid var(--acd-p700);
  border-radius:var(--acd-r-sm);
  color:var(--acd-i700);
  font-size:16px;
  line-height:1.7;
}

/* ---------- Sobre fondo verde oscuro (seccion CTA de la Home) ----------
   Anade la clase acd-on-dark al contenedor de Elementor que envuelve el
   formulario y el bloque se invierte solo. */
.acd-on-dark .acd-form .gfield_label{ color:#fff; }
.acd-on-dark .acd-form .gfield_description,
.acd-on-dark .acd-form .ginput_container_consent label{ color:rgba(255,255,255,.78); }
.acd-on-dark .acd-form .ginput_container_consent a{ color:var(--acd-a500); }
.acd-on-dark .acd-form input[type=text],
.acd-on-dark .acd-form input[type=email],
.acd-on-dark .acd-form input[type=tel],
.acd-on-dark .acd-form textarea{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.28);
  color:#fff;
}
.acd-on-dark .acd-form input::placeholder,
.acd-on-dark .acd-form textarea::placeholder{ color:rgba(255,255,255,.5); }
.acd-on-dark .acd-form input:focus,
.acd-on-dark .acd-form textarea:focus{
  border-color:#fff;
  box-shadow:0 0 0 3px rgba(255,255,255,.18);
}
.acd-on-dark .acd-form .gform_button{ background:#fff; color:var(--acd-p900); }
.acd-on-dark .acd-form .gform_button:hover{ background:var(--acd-p050); }

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  .acd-form .gform_button:hover{ transform:none; }
  .acd-form input,
  .acd-form textarea,
  .acd-form .gform_button{ transition:none; }
}

/* ---------- Refuerzo frente al tema Orbital de Gravity Forms -------------
   GF 2.9 pinta el boton mediante una cascada de variables --gf-* propias
   que gana por especificidad a `.acd-form .gform_button`. Comprobado con
   captura: sin esto el boton vuelve al azul #204CE5 de Orbital.
   Se repiten aqui SOLO las propiedades que Orbital sobrescribe, con los
   mismos valores de arriba, para no duplicar criterio.                    */
.acd-form .gform_wrapper .gform_footer .gform_button,
.gform_wrapper .acd-form .gform_footer .gform_button{
  background-color:var(--acd-p700) !important;
  background-image:none !important;
  border-color:transparent !important;
  border-radius:var(--acd-r-sm) !important;
  color:#fff !important;
  min-height:48px !important;
  padding:13px 30px !important;
  font-family:var(--acd-font-sans) !important;
  font-size:15px !important;
  font-weight:600 !important;
}
.acd-form .gform_wrapper .gform_footer .gform_button:hover,
.gform_wrapper .acd-form .gform_footer .gform_button:hover{
  background-color:var(--acd-p800) !important;
}
.acd-on-dark .acd-form .gform_footer .gform_button{
  background-color:#fff !important; color:var(--acd-p900) !important;
}
@media (max-width:767px){
  .acd-form .gform_wrapper .gform_footer .gform_button,
  .gform_wrapper .acd-form .gform_footer .gform_button{ width:100% !important; }
}

/* Foco de los campos. Orbital impone su azul en el borde y en el halo, asi
   que las reglas :focus / :focus-visible de arriba no llegan a verse.
   Mismos valores, solo con el peso necesario. Importa mas que un detalle
   estetico: el indicador de foco es WCAG 2.4.7, y sin esto el sitio tiene
   dos lenguajes de foco (ambar fuera de los formularios, azul dentro).
   Verificado con captura tabulando dentro del modal.                      */
.acd-form input:focus,
.acd-form select:focus,
.acd-form textarea:focus{
  border-color:var(--acd-p700) !important;
  box-shadow:0 0 0 3px var(--acd-p100) !important;
}
.acd-form :is(input,select,textarea,button):focus-visible{
  outline:2px solid var(--acd-a600) !important;
  outline-offset:2px !important;
}
.acd-on-dark .acd-form input:focus,
.acd-on-dark .acd-form select:focus,
.acd-on-dark .acd-form textarea:focus{
  border-color:#fff !important;
  box-shadow:0 0 0 3px rgba(255,255,255,.18) !important;
}
.acd-on-dark .acd-form :is(input,select,textarea,button):focus-visible{
  outline-color:var(--acd-a500) !important;
}

/* ==========================================================================
   ARTICULO — entrada individual de Actualidad
   La estructura la pone la plantilla Single Post de Elementor; aqui va solo
   el diseno. Clases previstas:
     .acd-article__head    cabecera (contenedor)
     .acd-eyebrow          categoria — ya existe en el kit, se reutiliza
     .acd-article__title   titular
     .acd-article__meta    fecha
     .acd-article__media   imagen destacada
     .acd-prose            cuerpo del articulo
     .acd-article__foot    pie con vuelta a Actualidad
   ========================================================================== */

.acd-article__head{ max-width:64ch; }

.acd-article__title{
  font-family:var(--acd-font-display);
  font-weight:500;
  font-size:clamp(2rem, 1.45rem + 2.1vw, 3.05rem);
  line-height:1.14;
  letter-spacing:-.02em;
  color:var(--acd-i900);
  margin:var(--acd-s4) 0 0;
}

.acd-article__meta{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:var(--acd-s2) var(--acd-s3);
  margin-top:var(--acd-s6);
  font-size:13.5px; line-height:1.4;
  color:var(--acd-i500);
  font-variant-numeric:tabular-nums;   /* la fecha no baila */
}

/* Imagen destacada. No se recorta NUNCA: las noticias de ACODISA llevan
   documentos y esquemas con texto legible, y cualquier recorte les quita
   informacion. En vez de limitar la altura —que obliga a recortar— se
   limita el ANCHO a 920px: la imagen entra entera y guarda proporcion con
   la columna de texto, que mide 68 caracteres.                            */
.acd-article__media{
  max-width:920px;
  margin-top:var(--acd-s8);
  border-radius:var(--acd-r-sm);
  overflow:hidden;
  background:var(--acd-sunken);
}
.acd-article__media img{
  display:block;
  width:100%; height:auto;
}

/* --- Cuerpo -------------------------------------------------------------
   Los selectores van por descendencia y no por hijo directo, porque
   Elementor mete un .elementor-widget-container entre la clase y el texto.
   Solo el ritmo vertical necesita contemplar los dos casos.               */
.acd-prose{
  max-width:68ch;
  font-size:17px;
  line-height:1.72;
  color:var(--acd-i700);
}
.acd-prose > * + *,
.acd-prose > .elementor-widget-container > * + *{ margin-top:var(--acd-s6); }

.acd-prose h2{
  font-family:var(--acd-font-display); font-weight:500;
  font-size:clamp(1.4rem, 1.2rem + .8vw, 1.75rem);
  line-height:1.25; letter-spacing:-.015em;
  color:var(--acd-i900);
}
.acd-prose h3{
  font-family:var(--acd-font-sans); font-weight:650;
  font-size:17.5px; line-height:1.35;
  color:var(--acd-i900);
}
.acd-prose > h2 + *,
.acd-prose > h3 + *,
.acd-prose > .elementor-widget-container > h2 + *,
.acd-prose > .elementor-widget-container > h3 + *{ margin-top:var(--acd-s3); }
.acd-prose > * + h2,
.acd-prose > .elementor-widget-container > * + h2{ margin-top:var(--acd-s12); }
.acd-prose > * + h3,
.acd-prose > .elementor-widget-container > * + h3{ margin-top:var(--acd-s8); }

.acd-prose a{
  color:var(--acd-p700);
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.acd-prose a:hover{ color:var(--acd-p800); }
.acd-prose strong{ font-weight:650; color:var(--acd-i900); }

.acd-prose ul,
.acd-prose ol{ padding-left:1.35em; }
.acd-prose li + li{ margin-top:var(--acd-s2); }
.acd-prose li::marker{ color:var(--acd-p600); }

.acd-prose blockquote{
  margin-left:0; margin-right:0;
  padding-left:var(--acd-s6);
  border-left:3px solid var(--acd-p500);
  font-family:var(--acd-font-display);
  font-size:1.15em; line-height:1.6;
  color:var(--acd-i700);
}
.acd-prose blockquote cite{
  display:block; margin-top:var(--acd-s3);
  font-family:var(--acd-font-sans); font-size:13.5px; font-style:normal;
  color:var(--acd-i500);
}

.acd-prose img{
  display:block; width:100%; height:auto;
  border-radius:var(--acd-r-sm);
}
.acd-prose figcaption{
  margin-top:var(--acd-s2);
  font-size:13px; line-height:1.5;
  color:var(--acd-i500);
}

.acd-prose hr{
  border:0; border-top:1px solid var(--acd-border);
  margin-block:var(--acd-s12);
}

/* Tablas. Las circulares de ACODISA traen cuadros de calculo, asi que la
   tabla tiene que poder desbordar sin romper la pagina: Gutenberg envuelve
   siempre en <figure class="wp-block-table">, y ahi va el scroll.         */
.acd-prose .wp-block-table{ overflow-x:auto; }
.acd-prose table{
  width:100%; border-collapse:collapse;
  font-size:15px; line-height:1.5;
  font-variant-numeric:tabular-nums;
}
.acd-prose th,
.acd-prose td{ padding:10px 12px; text-align:left; vertical-align:top; }
.acd-prose th{
  font-weight:650; color:var(--acd-i900);
  background:var(--acd-sunken);
  border-bottom:2px solid var(--acd-border-strong);
}
.acd-prose td{ border-bottom:1px solid var(--acd-border); }
.acd-prose caption{
  caption-side:bottom; padding-top:var(--acd-s3);
  font-size:13px; color:var(--acd-i500); text-align:left;
}

.acd-article__foot{
  max-width:68ch;                      /* alineado con la columna de texto */
  margin-top:var(--acd-s16);
  padding-top:var(--acd-s6);
  border-top:1px solid var(--acd-border);
}

/* --- Puente con Elementor -----------------------------------------------
   Elementor pone la clase en el envoltorio del widget, no en el elemento
   que pinta. Mismo criterio que el resto de la seccion PUENTE.            */
.acd-article__title .elementor-heading-title{
  font-family:inherit; font-weight:inherit; font-size:inherit;
  line-height:inherit; letter-spacing:inherit; color:inherit;
}
.acd-article__meta .elementor-heading-title{
  font-family:var(--acd-font-sans); font-weight:400;
  font-size:13.5px; line-height:1.4; letter-spacing:0;
  color:var(--acd-i500);
}
.acd-eyebrow .elementor-heading-title{
  font-family:inherit; font-weight:inherit; font-size:inherit;
  line-height:inherit; letter-spacing:inherit; color:inherit;
  text-transform:inherit;
}
.acd-article__media .elementor-widget-container,
.acd-article__media figure,
.acd-article__media a{ display:block; line-height:0; }
.acd-article__head.e-con,
.acd-article__foot.e-con{ --width:100%; padding:0; }
.acd-prose.e-con{ --width:100%; padding:0; }

/* Ancho de los widgets. Sin esto el cuerpo se estira a los 1280px del
   contenedor y se pierde la medida de lectura, y la imagen ocupa el ancho
   completo aunque la columna de texto mida la mitad.

   Aqui no basta con subir especificidad. Quien impone el ancho no es el CSS
   generico de Elementor sino el que genera POR ELEMENTO para esta plantilla
   (`.elementor-148 .elementor-element.elementor-element-XXX`), que ya son
   tres clases y se encola despues del tema: con tres clases hay empate y
   pierde el tema, y subir a cuatro obligaria a escribir el ID de la
   plantilla en el CSS, que se romperia al recrearla.

   Probado con capturas: dos clases -> 1265px, tres clases sin !important ->
   1169px, tres clases con !important -> 920px. Mismo criterio que el boton
   de Gravity Forms y el aviso de consentimiento.                          */
.acd-prose.elementor-widget.elementor-widget-theme-post-content{
  max-width:68ch !important;
}
.acd-article__media.elementor-widget.elementor-widget-theme-post-featured-image{
  max-width:920px !important;
}
.acd-article__foot.e-con{ max-width:68ch !important; }

/* El widget Boton de Elementor 4 es un flex con justify-content:center, asi
   que el enlace de vuelta salia centrado mientras el resto del articulo va
   alineado a la izquierda. Se acota al pie del articulo para no cambiar el
   comportamiento de los botones del resto del sitio.                      */
.acd-article__foot .elementor-widget-button{ justify-content:flex-start; }

/* --- Bloque de descarga de Download Manager dentro del articulo ----------
   El plugin trae su propio Bootstrap: boton azul, tarjeta con sombra y
   tipografia ajena al kit. Se reviste con el sistema de diseno y se trata
   como una nota destacada, con el mismo filete verde que el aviso de
   consentimiento y el mensaje de confirmacion.

   Ambito: solo `.acd-prose`, es decir, dentro del cuerpo de una entrada.
   Si algun dia se usa el plugin en otra pagina, seguira con su estilo.    */
.acd-prose .w3eden .card{
  margin:0;
  background:var(--acd-sunken);
  border:0;
  border-left:3px solid var(--acd-p700);
  border-radius:0 var(--acd-r-sm) var(--acd-r-sm) 0;
  box-shadow:none;
}
.acd-prose .w3eden .card-body{ padding:var(--acd-s4) var(--acd-s6); }
.acd-prose .w3eden .media{ align-items:center; gap:var(--acd-s4); }
.acd-prose .w3eden .img-48{ margin:0 !important; flex:none; }   /* .mr-3 de Bootstrap */
.acd-prose .w3eden .wpdm_icon{ width:34px; height:auto; }
.acd-prose .w3eden .media-body{ min-width:0; }  /* deja encoger el titulo largo */

.acd-prose .w3eden .package-title{
  margin:0;
  font-family:var(--acd-font-sans);
  font-size:15.5px; font-weight:650; line-height:1.35;
  letter-spacing:0; text-transform:none;
}
.acd-prose .w3eden .package-title a{ color:var(--acd-i900); text-decoration:none; }
.acd-prose .w3eden .package-title a:hover{
  color:var(--acd-p700); text-decoration:underline; text-underline-offset:3px;
}
.acd-prose .w3eden .text-muted{
  margin-top:3px;
  font-size:13px; line-height:1.5;
  color:var(--acd-i500) !important;   /* .text-muted del plugin lleva su gris */
}
.acd-prose .w3eden .ml-3{ margin-left:0 !important; flex:none; }

/* El boton lo pinta Bootstrap con .btn-primary; se impone el verde de marca
   igual que en Gravity Forms.                                             */
.acd-prose .w3eden .btn-primary{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px;
  background:var(--acd-p700) !important;
  background-image:none !important;
  border:1px solid transparent !important;
  border-radius:var(--acd-r-sm) !important;
  color:#fff !important;
  box-shadow:none !important;
  padding:11px 22px !important;
  font-family:var(--acd-font-sans) !important;
  font-size:14.5px !important;
  font-weight:600 !important;
}
.acd-prose .w3eden .btn-primary:hover{ background:var(--acd-p800) !important; }
.acd-prose .w3eden .btn-primary:focus-visible{
  outline:2px solid var(--acd-a600) !important; outline-offset:2px !important;
}

/* En movil el boton no cabe al lado del titulo: baja a linea completa. Esto
   ademas corrige el desbordamiento de 15px que sacaba la tarjeta fuera de
   la columna del articulo a 375px.                                        */
@media (max-width:639px){
  .acd-prose .w3eden .media{ flex-wrap:wrap; }
  .acd-prose .w3eden .ml-3{ width:100%; }
  .acd-prose .w3eden .btn-primary{ width:100%; }
}

/* ==========================================================================
   ARCHIVO DE NOTICIAS  (/actualidad/)
   Plantillas de Elementor: "ACODISA — Archivo de noticias" (Archive) y
   "ACODISA — Tarjeta de noticia" (Loop Item).

   Nota de especificidad, comprobada con capturas en la propia pagina:
   Elementor pinta los titulares con `.elementor-widget-heading
   .elementor-heading-title` (dos clases) y su CSS se encola despues del
   tema, asi que dos clases empatan y pierden. Con TRES clases gana el tema
   sin necesidad de !important. Por eso los selectores de titular repiten
   la clase del widget.
   ========================================================================== */

/* --- Cabecera del archivo ------------------------------------------------ */
.acd-archivehead{ max-width:60ch; }
.acd-archivehead.e-con{ --width:100%; padding:0; }

.acd-archivehead__title{ margin-top:var(--acd-s3); }
.acd-archivehead__title.elementor-widget.elementor-widget-heading .elementor-heading-title{
  font-family:var(--acd-font-display);
  font-weight:500;
  font-size:clamp(2.1rem, 1.6rem + 1.9vw, 3.05rem);
  line-height:1.14;
  letter-spacing:-.02em;
  color:var(--acd-i900);
}

.acd-archivehead__lead{ margin-top:var(--acd-s4); max-width:56ch; }
.acd-archivehead__lead .elementor-widget-container{
  font-size:16.5px; line-height:1.65; color:var(--acd-i500);
}
.acd-archivehead__lead p{ margin:0; }

/* --- Reticula del Loop Grid ---------------------------------------------
   Las columnas las pone el propio widget (3 / 2 / 1); aqui solo el aire,
   para que use el mismo token que el resto del sitio.                     */
.acd-loopgrid .elementor-loop-container{ gap:var(--acd-s6); }

/* --- Tarjeta dentro del bucle ------------------------------------------- */
.acd-card__media.e-con,
.acd-card__foot.e-con{ --width:100%; padding:0; }

/* Imagen de la tarjeta. El panel de marca queda DEBAJO de la imagen: si la
   entrada no tiene imagen destacada, el widget no imprime nada y se ve el
   panel. Asi no hace falta una imagen de reserva en la biblioteca.        */
.acd-card__media--news{
  aspect-ratio:16/10;
  background:var(--acd-p900);
  position:relative;
  overflow:hidden;
}
.acd-card__media--news::after{
  content:"ACODISA";
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--acd-font-sans);
  font-size:11px; font-weight:700; letter-spacing:.14em;
  color:var(--acd-a500);
}
.acd-card__media--news > .elementor-widget{
  position:relative; z-index:1; width:100%; height:100%;
}
.acd-card__media--news .elementor-widget-container{ height:100%; }
.acd-card__media--news img{
  width:100%; height:100%; object-fit:cover; display:block;
}

/* Se usa .elementor-element como tercera clase, y no la del tipo de widget,
   para que la regla siga valiendo si el titular cambia de widget.         */
.acd-card__title.elementor-element.elementor-widget .elementor-heading-title{
  font-family:var(--acd-font-sans);
  font-size:clamp(1.03rem, .98rem + .25vw, 1.15rem);
  font-weight:650;
  line-height:1.32;
  letter-spacing:-.008em;
  color:var(--acd-i900);
}
.acd-card__title.elementor-widget .elementor-heading-title a{
  color:inherit; text-decoration:none;
}

/* Superficie clicable de la tarjeta. El enlace del titular se extiende a
   toda la tarjeta con un ::after, que es el patron accesible: el lector de
   pantalla anuncia un solo enlace y con texto util (WCAG 2.4.4).
   Tres condiciones que Elementor rompia. El ::after se posiciona respecto
   al antepasado colocado mas cercano, asi que CUALQUIER position:relative
   entre el enlace y la tarjeta lo encoge:
   1. El contenedor .acd-card__body sale con position:relative -> el
      recuadro medi­a 372x154 en vez de 372x407.
   2. El envoltorio del widget del titular tambien -> 316x73.
   3. La imagen lleva z-index 1 para tapar el panel de marca, asi que el
      ::after necesita 2 para quedar por encima.
   Las dos primeras van con tres clases porque Elementor las declara con
   tres y con dos hay empate que pierde el tema. Verificado haciendo clic
   sobre la fotografia, no midiendo: la medicion del ::after no es fiable
   en este navegador.                                                      */
.acd-card__body.e-con{ position:static; }
.acd-card__title.elementor-element.elementor-widget{ position:static; }
.acd-card__title a::after{ z-index:2; }

.acd-card__excerpt .elementor-widget-container{
  font-size:14px; line-height:1.55; color:var(--acd-i500);
}
.acd-card__excerpt p{ margin:0; }

/* Pie de la tarjeta: fecha y categoria en una linea. El contenedor de
   Elementor es flex en columna, hay que devolverlo a fila.                */
.acd-card__foot.e-con{
  flex-direction:row; align-items:center; justify-content:flex-start;
  gap:10px; flex-wrap:wrap;
}
.acd-card__foot > .elementor-widget{ width:auto; }
.acd-card__foot .elementor-widget.elementor-widget-heading .elementor-heading-title{
  font-family:var(--acd-font-sans);
  font-size:12px; font-weight:500; line-height:1.4; letter-spacing:0;
  color:var(--acd-i500);
  text-align:left;
}
/* El separador va dentro del texto y no en el envoltorio del widget: el
   envoltorio es un flex en columna y el punto caia en su propia linea.   */
.acd-card__foot > * + * .elementor-heading-title::before{
  content:"\00b7";
  margin-right:8px;
  color:var(--acd-i400);
}

/* --- Paginacion ---------------------------------------------------------- */
.acd-loopgrid .elementor-pagination{
  margin-top:var(--acd-s12);
  display:flex; flex-wrap:wrap; gap:6px; justify-content:center;
}
.acd-loopgrid .page-numbers{
  min-width:44px; min-height:44px; padding:0 12px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--acd-border);
  border-radius:var(--acd-r-sm);
  font-family:var(--acd-font-sans);
  font-size:14px; font-weight:600;
  color:var(--acd-i700); text-decoration:none;
  transition:border-color var(--acd-t-fast) var(--acd-ease),
             color var(--acd-t-fast) var(--acd-ease);
}
.acd-loopgrid .page-numbers:hover{ border-color:var(--acd-p500); color:var(--acd-p700); }
.acd-loopgrid .page-numbers:focus-visible{
  outline:2px solid var(--acd-a600); outline-offset:2px;
}
.acd-loopgrid .page-numbers.current{
  background:var(--acd-p700); border-color:var(--acd-p700); color:#fff;
}

/* --- Estado vacio -------------------------------------------------------- */
.acd-loopgrid .e-loop-nothing-found-message{
  padding:var(--acd-s8);
  background:var(--acd-sunken);
  border-left:3px solid var(--acd-p700);
  border-radius:0 var(--acd-r-sm) var(--acd-r-sm) 0;
  font-size:16px; line-height:1.6;
  color:var(--acd-i500);
  text-align:left;
}

/* ==========================================================================
   NOTICIA DESTACADA DE LA HOME
   Plantilla de Elementor: "ACODISA — Noticia destacada" (Loop Item), servida
   por un Loop Grid de una sola entrada en la seccion Actualidad de la Home.
   Reutiliza el componente .acd-featured de la Fase 1; aqui van solo los
   puentes que hacen falta al venir de Elementor.
   ========================================================================== */

.acd-featuredgrid .elementor-loop-container{ gap:0; }

.acd-featured__media.e-con{ --width:100%; padding:0; }

/* Mismo criterio que la tarjeta del archivo: el panel de marca queda debajo
   de la imagen, asi que si la entrada no tiene destacada se ve el panel.   */
.acd-featured__media--news{
  background:var(--acd-p900);
  position:relative;
  overflow:hidden;
}
.acd-featured__media--news::after{
  content:"ACODISA";
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--acd-font-sans);
  font-size:11px; font-weight:700; letter-spacing:.14em;
  color:var(--acd-a500);
}
.acd-featured__media--news > .elementor-widget{
  position:relative; z-index:1; width:100%; height:100%;
}
.acd-featured__media--news .elementor-widget-container{ height:100%; }
.acd-featured__media--news img{
  width:100%; height:100%; object-fit:cover; display:block;
}

.acd-featured__title.elementor-element.elementor-widget .elementor-heading-title{
  font-family:var(--acd-font-sans);
  font-size:clamp(1.3rem, 1.1rem + .9vw, 1.75rem);
  font-weight:650;
  line-height:1.25;
  letter-spacing:-.012em;
  color:var(--acd-i900);
}
.acd-featured__title.elementor-widget .elementor-heading-title a{
  color:inherit; text-decoration:none;
}

/* Superficie clicable: mismo problema y misma solucion que en la tarjeta del
   archivo. Cualquier position:relative entre el enlace y .acd-featured
   encoge el ::after. Verificado haciendo clic sobre la fotografia.        */
.acd-featured__body.e-con{ position:static; }
.acd-featured__title.elementor-element.elementor-widget{ position:static; }
.acd-featured__title a::after{ z-index:2; }

/* Sin extracto, el margin-top:auto de .acd-card__foot dejaba la fecha
   pegada al fondo y un hueco en medio. En el destacado el pie va con el
   grupo, que es lo que espera el justify-content:center del cuerpo.       */
.acd-featured__body .acd-card__foot{ margin-top:var(--acd-s2); }

/* --- Envoltorio del widget Boton ----------------------------------------
   NO es de este bloque, pero afectaba a toda la web. `.acd-btn` del kit
   pinta el elemento (fondo, relleno, borde) porque en HTML plano la clase
   va en el <a>. Elementor la pone en el ENVOLTORIO del widget, que es de
   bloque y ocupa todo el ancho: el resultado era una franja de color
   detras de cada boton, y en los dos `--block-mobile` de la Home una barra
   verde de 1169px. El puente ya estilaba el <a> interior correctamente,
   pero nadie neutralizaba el envoltorio.                                  */
.acd-btn.elementor-widget-button{
  display:block;
  background:none;
  border:0;
  padding:0;
  min-height:0;
  border-radius:0;
}

/* --- Tarjetas del bucle a la misma altura --------------------------------
   Con una sola noticia no se veia. Con seis, las tarjetas de una misma fila
   acababan a alturas distintas (408/384/360/433) y el borde inferior de la
   fila quedaba dentado, porque el titular ocupa dos o tres lineas.

   Tres piezas, y las dos ultimas con !important porque el CSS por elemento
   de Elementor —tres clases, encolado despues del tema— fija el margen y la
   flexibilidad de sus contenedores:
     1. cada elemento del bucle ocupa toda la altura de su celda,
     2. el cuerpo crece para llenar lo que sobra,
     3. el pie se ancla abajo, asi la fecha queda a ras en toda la fila.
   Medido despues: fila 1 a 408px con los tres pies en la misma linea.     */
.acd-loopgrid .elementor-loop-container > *{ height:100%; }
.acd-card.elementor-element.e-con{ height:100%; }
.acd-card__body.elementor-element.e-con{ flex:1 1 auto !important; }
.acd-card__foot.elementor-element.e-con{ margin-top:auto !important; }
