/*
Theme Name:   Enfold Child
Template:     enfold
Version:      7.0
*/

/* =========================================================================
   GENESAL - style.css del TEMA HIJO (enfold-child)
   IMPORTANTE: la cabecera de arriba (Theme Name + Template: enfold) es
   OBLIGATORIA y debe ser lo PRIMERO del archivo. No la borres.
   Pega este archivo COMPLETO como contenido del style.css del tema hijo.
   Capas: (1) tokens DS - (2) base global - (3) componentes .gen-*
   ========================================================================= */

/* ============================ (1) TOKENS DS ============================ */
/* =========================================================================
   DS-GENESAL · Foundations (CAPA LIMPIA)
   Fuente: Figma · página "❖ Foundations" (nodeId 0:1) · Figma MCP
   Espejo fiel de origen: ./_raw/foundations.raw.json
   --------------------------------------------------------------------------
   Convenciones:
   - Namespace --gen-* para evitar colisiones en el proyecto (50 páginas).
   - Valores numéricos de Figma (px) expresados con unidad explícita.
   - Tokens SEMÁNTICOS referencian PRIMITIVOS vía var() — no repiten hex.
   - Excluidos (viven sólo en raw): var(--p-...) Polaris, Shapermint/*,
     Avenir Next. Erratas corregidas: succes→success, subtittle→subtitle,
     pretittle→pretitle.
   - NO editar a mano valores: regenerar desde Figma (ver ../README.md).
   ========================================================================= */

:root {
  /* ----------------------------------------------------------------------
     COLOR · PRIMITIVOS
     ---------------------------------------------------------------------- */

  /* Primary (rojo corporativo) */
  --gen-color-primary-025: #fdf6f9;
  --gen-color-primary-050: #fae6ec;
  --gen-color-primary-100: #f0b2c4;
  --gen-color-primary-200: #e98ca7;
  --gen-color-primary-300: #df587f;
  --gen-color-primary-400: #d93766;
  --gen-color-primary-500: #cf0540; /* base */
  --gen-color-primary-600: #bc053a;
  --gen-color-primary-700: #93042d;
  --gen-color-primary-800: #720323;
  --gen-color-primary-900: #720323; /* ⚠ idéntico a 800 en origen */

  /* Grey / Secondary */
  --gen-color-grey-0:   #ffffff; /* origen: "Grey/Secondary 00" */
  --gen-color-grey-025: #fafafa;
  --gen-color-grey-050: #f5f5f5;
  --gen-color-grey-100: #efefef;
  --gen-color-grey-200: #e1e1e1;
  --gen-color-grey-300: #bebebe;
  --gen-color-grey-400: #9f9f9f;
  --gen-color-grey-500: #767676;
  --gen-color-grey-600: #626262;
  --gen-color-grey-700: #434343;
  --gen-color-grey-800: #222222;
  --gen-color-grey-900: #000000;

  /* Light (verde-blancos de superficie) */
  --gen-color-light-100: #fefefe;
  --gen-color-light-200: #fdfefd;
  --gen-color-light-300: #fdfefc;
  --gen-color-light-400: #fcfdfb;
  --gen-color-light-500: #fafcf8;
  --gen-color-light-600: #f5f9f1;
  --gen-color-light-700: #f0f6ea;
  --gen-color-light-800: #e5f0db;
  --gen-color-light-900: #e0edd4;

  /* Otros primitivos */
  --gen-color-corporate-secondary: #151515;
  --gen-color-neutral-500: #4c4c4c;
  --gen-color-red-500: #e30613;          /* ⚠ rojo distinto al primary-500 */
  --gen-color-black-alpha-8: #0000001c;  /* RGBA-hex de origen */

  /* ----------------------------------------------------------------------
     COLOR · SEMÁNTICOS  (referencian primitivos)
     ---------------------------------------------------------------------- */

  /* Texto */
  --gen-text-primary:   #292929; /* origen: text/primary · text/default/primary */
  --gen-text-secondary: #585d5c;
  --gen-text-medium:    var(--gen-color-grey-600); /* #626262 */
  --gen-text-dark:      var(--gen-color-grey-700); /* #434343 */
  --gen-text-darker:    var(--gen-color-grey-900); /* #000000 */
  --gen-text-error:     #801313;

  /* Bordes */
  --gen-border-primary:   #e2e3e3;
  --gen-border-secondary: #a6a6a6; /* origen: border/default/secondary */

  /* Superficies */
  --gen-surface-1:                #f9f9fa; /* origen: surface-surface_1 */
  --gen-bg-surface-primary:         var(--gen-color-grey-0);    /* #ffffff */
  --gen-bg-surface-secondary-light: var(--gen-color-light-500); /* #fafcf8 */
  --gen-bg-surface-secondary-dark:  var(--gen-color-light-600); /* #f5f9f1 */
  --gen-bg-surface-tertiary-light:  var(--gen-color-grey-100);  /* #efefef */
  --gen-bg-surface-tertiary-dark:   var(--gen-color-grey-200);  /* #e1e1e1 */
  --gen-bg-surface-accent-subtle:   var(--gen-color-primary-025); /* #fdf6f9 */
  --gen-bg-surface-accent:          var(--gen-color-primary-500); /* #cf0540 */
  --gen-bg-surface-dark:            var(--gen-color-grey-900);  /* #000000 */

  /* Rellenos (fill) */
  --gen-bg-fill-white:    var(--gen-color-grey-0);     /* #ffffff */
  --gen-bg-fill-primary:  var(--gen-color-primary-500); /* #cf0540 */
  --gen-bg-fill-hover:    var(--gen-color-primary-600); /* #bc053a */
  --gen-bg-fill-pressed:  var(--gen-color-primary-700); /* #93042d */
  --gen-bg-fill-disabled: var(--gen-color-grey-100);   /* #efefef */
  --gen-bg-fill-medium:   var(--gen-color-grey-400);   /* #9f9f9f */
  --gen-bg-fill-dark:     var(--gen-color-grey-700);   /* #434343 */

  /* Estados — Success (corrige errata "succes") */
  --gen-bg-success-primary:   #8abd89;
  --gen-bg-success-secondary: #4c684b;

  /* Estados — Danger */
  --gen-bg-danger-primary:    #ca2a2c;
  --gen-bg-danger-secondary:  #6f1718;
  --gen-bg-danger-tertiary:   #faeaea;

  /* Estados — Warning */
  --gen-bg-warning-primary:   #d69451;
  --gen-bg-warning-secondary: #98693a;
  --gen-bg-warning-tertiary:  #f2dec9;

  /* Estados — Error */
  --gen-bg-error-tertiary:    #fce3e3;

  /* ----------------------------------------------------------------------
     ESPACIADO  (escala por valor en px)
     ---------------------------------------------------------------------- */
  --gen-space-0:   0;
  --gen-space-4:   4px;
  --gen-space-6:   6px;   /* origen: space/1,5 */
  --gen-space-8:   8px;
  --gen-space-12:  12px;
  --gen-space-16:  16px;
  --gen-space-24:  24px;
  --gen-space-32:  32px;
  --gen-space-40:  40px;
  --gen-space-48:  48px;
  --gen-space-56:  56px;
  --gen-space-64:  64px;
  --gen-space-72:  72px;  /* origen: "Size - 11" (≠ size-11=64) */
  --gen-space-80:  80px;
  --gen-space-104: 104px;
  --gen-space-160: 160px;

  /* ----------------------------------------------------------------------
     RADIOS
     ---------------------------------------------------------------------- */
  --gen-radius-8:  8px;   /* origen: var(--p-border-radius-200) */
  --gen-radius-12: 12px;  /* origen: var(--p-border-radius-card) */

  /* ----------------------------------------------------------------------
     ELEVACIÓN / SOMBRAS
     ---------------------------------------------------------------------- */
  --gen-elevation-e2:
    0 3px 3px -1.5px var(--gen-color-black-alpha-8),
    0 1px 1px -0.5px var(--gen-color-black-alpha-8);

  /* ----------------------------------------------------------------------
     GRID / LAYOUT  (referencia Web de Figma)
     ---------------------------------------------------------------------- */
  --gen-layout-container:     343px; /* Container 4/6/8/9/12 cols (todos 343 en origen) */
  --gen-layout-section:       375px;
  --gen-layout-margin:        16px;
  --gen-grid-columns:         4;
  --gen-grid-gutter:          12px;
  --gen-grid-row-height:      4px;
  --gen-grid-row-gutter:      4px;
  --gen-grid-row-offset:      4px;

  /* ----------------------------------------------------------------------
     TIPOGRAFÍA · PRIMITIVOS
     ---------------------------------------------------------------------- */
  --gen-font-helvetica: "Helvetica Neue", Arial, sans-serif; /* family/helvetica · Family/Content */
  --gen-font-inter:     "Inter", sans-serif;                 /* family/inter (uso legacy) */

  --gen-font-weight-regular: 400;
  --gen-font-weight-medium:  500;
  --gen-font-weight-bold:    700;

  /* Tamaños (px) */
  --gen-font-size-display-md: 68px;
  --gen-font-size-heading-lg: 39px;
  --gen-font-size-heading-md: 31px;
  --gen-font-size-heading-sm: 25px;
  --gen-font-size-heading-xs: 18px;
  --gen-font-size-subtitle-md: 18px;
  --gen-font-size-body-md: 15px;
  --gen-font-size-body-sm: 13px;
  --gen-font-size-body-xs: 12px;
  --gen-font-size-label-md: 14px;
  --gen-font-size-label-sm: 12px;
  --gen-font-size-caption-md: 12px;
  --gen-font-size-button-md: 15px;
  --gen-font-size-button-sm: 14px;
  --gen-font-size-pretitle: 13px;

  /* Interlineados (px) */
  --gen-line-height-display-md: 68px;
  --gen-line-height-heading-lg: 44px;
  --gen-line-height-heading-md: 38px;
  --gen-line-height-heading-sm: 31px;
  --gen-line-height-heading-xs: 24px;
  --gen-line-height-subtitle-md: 24px;
  --gen-line-height-body-md: 21px;
  --gen-line-height-body-sm: 16px;
  --gen-line-height-body-xs: 16px;
  --gen-line-height-label-md: 20px;
  --gen-line-height-label-sm: 20px;
  --gen-line-height-caption-md: 20px;
  --gen-line-height-button-md: 21px;
  --gen-line-height-button-sm: 20px;
  --gen-line-height-pretitle: 16px;

  /* Tracking / letter-spacing (px) — ruido de float normalizado */
  --gen-letter-spacing-heading-lg: -0.5px;
  --gen-letter-spacing-heading-md: -0.5px;
  --gen-letter-spacing-heading-sm: -0.5px;
  --gen-letter-spacing-heading-xs: -0.2px;
  --gen-letter-spacing-subtitle-md: -0.2px;
  --gen-letter-spacing-pretitle: 0.3px;
  --gen-letter-spacing-body-sm: 0.5px;
  --gen-letter-spacing-body-xs: 0.5px;
  --gen-letter-spacing-display-md: 0;
  --gen-letter-spacing-body-md: 0;
  --gen-letter-spacing-label-md: 0;
  --gen-letter-spacing-label-sm: 0;
  --gen-letter-spacing-caption-md: 0;
  --gen-letter-spacing-button-md: 0;
  --gen-letter-spacing-button-sm: 0;
}

/* =========================================================================
   TIPOGRAFÍA · ESTILOS COMPUESTOS (text styles GENESAL · familia Helvetica)
   Clases utilitarias listas para aplicar. Los estilos legacy basados en Inter
   y Avenir Next se conservan sólo en _raw/foundations.raw.json.
   ========================================================================= */

.gen-display-md {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-display-md);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-display-md);
  letter-spacing: var(--gen-letter-spacing-display-md);
}
.gen-heading-lg {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-heading-lg);
  font-weight: var(--gen-font-weight-bold);
  line-height: var(--gen-line-height-heading-lg);
  letter-spacing: var(--gen-letter-spacing-heading-lg);
}
.gen-heading-md {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-heading-md);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-heading-md);
  letter-spacing: var(--gen-letter-spacing-heading-md);
}
.gen-heading-sm {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-heading-sm);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-heading-sm);
  letter-spacing: var(--gen-letter-spacing-heading-sm);
}
.gen-heading-xs {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-heading-xs);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-heading-xs);
  letter-spacing: var(--gen-letter-spacing-heading-xs);
}
.gen-subtitle-md {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-subtitle-md);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-subtitle-md);
  letter-spacing: var(--gen-letter-spacing-subtitle-md);
}
.gen-pretitle {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-pretitle);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-pretitle);
  letter-spacing: var(--gen-letter-spacing-pretitle);
}
.gen-body-md-regular {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-body-md);
  font-weight: var(--gen-font-weight-regular);
  line-height: var(--gen-line-height-body-md);
  letter-spacing: var(--gen-letter-spacing-body-md);
}
.gen-body-md-medium {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-body-md);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-body-md);
  letter-spacing: var(--gen-letter-spacing-body-md);
}
.gen-body-sm-regular {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-body-sm);
  font-weight: var(--gen-font-weight-regular);
  line-height: var(--gen-line-height-body-sm);
  letter-spacing: var(--gen-letter-spacing-body-sm);
}
.gen-body-sm-medium {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-body-sm);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-body-sm);
  letter-spacing: var(--gen-letter-spacing-body-sm);
}
.gen-body-xs-regular {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-body-xs);
  font-weight: var(--gen-font-weight-regular);
  line-height: var(--gen-line-height-body-xs);
  letter-spacing: var(--gen-letter-spacing-body-xs);
}
.gen-label-md-regular {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-label-md);
  font-weight: var(--gen-font-weight-regular);
  line-height: var(--gen-line-height-label-md);
  letter-spacing: var(--gen-letter-spacing-label-md);
}
.gen-label-md-medium {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-label-md);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-label-md);
  letter-spacing: var(--gen-letter-spacing-label-md);
}
.gen-label-sm {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-label-sm);
  font-weight: var(--gen-font-weight-regular);
  line-height: var(--gen-line-height-label-sm);
  letter-spacing: var(--gen-letter-spacing-label-sm);
}
.gen-caption-md {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-caption-md);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-caption-md);
  letter-spacing: var(--gen-letter-spacing-caption-md);
}
.gen-button-md {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-button-md);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-button-md);
  letter-spacing: var(--gen-letter-spacing-button-md);
}
.gen-button-sm {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-button-sm);
  font-weight: var(--gen-font-weight-medium);
  line-height: var(--gen-line-height-button-sm);
  letter-spacing: var(--gen-letter-spacing-button-sm);
}

/* =========================================================================
   (2) BASE GLOBAL · aplica a toda la web (complementa Theme Options)
   Theme Options ya fija: tamaños de heading/body, pesos, colores.
   Aquí va lo que Theme Options NO expone.
   ========================================================================= */

/* Familia de marca (por si Fuentes no la fija en algún elemento) */
#top body, #top .av-special-heading-tag,
#top h1, #top h2, #top h3, #top h4, #top h5, #top h6 { font-family: var(--gen-font-helvetica); text-transform: none; }
/* Color de titulares = negro del DS (text/darker #000). Sin !important para no pisar el
   barrido gris->oscuro de gen-anim-reveal (que anima opacity sobre este color base). */
#top h1, #top h2, #top h3, #top h4, #top h5, #top h6,
#top .av-special-heading-tag { color: var(--gen-text-darker, #000000); }

/* Interlineado de párrafos de contenido al ritmo del DS (Theme Options deja body a 1.65em) */
#top .avia_textblock, #top .avia_textblock p, #top .avia_textblock li {
  font-size: var(--gen-font-size-body-md, 15px) !important;
  line-height: var(--gen-line-height-body-md, 21px) !important;
  color: var(--gen-text-medium, #626262) !important;
}
/* Negritas del cuerpo: nunca rojo, siempre gris oscuro de marca */
#top .avia_textblock strong, #top .avia_textblock b { color: var(--gen-text-dark, #434343) !important; }

/* Tracking de titulares (no está en Theme Options) */
#top .av-special-heading-h1 .av-special-heading-tag, #top h1 { letter-spacing: var(--gen-letter-spacing-heading-lg, -0.5px); }
#top .av-special-heading-h2 .av-special-heading-tag, #top h2 { letter-spacing: var(--gen-letter-spacing-heading-md, -0.5px); }
#top .av-special-heading-h3 .av-special-heading-tag, #top h3 { letter-spacing: var(--gen-letter-spacing-heading-sm, -0.5px); }
#top .av-special-heading-h4 .av-special-heading-tag, #top h4 { letter-spacing: var(--gen-letter-spacing-heading-xs, -0.2px); }

/* Quitar el separador decorativo de los headings de Enfold */
#top .special-heading-border, #top .special-heading-inner-border { display: none !important; }

/* Hover de enlaces a rojo oscuro de marca */
#top .main_color a:hover { color: var(--gen-bg-fill-hover, #bc053a); }

/* Ancho de contenido del DS: contenedor 1310px, padding 15px/lado -> 1280px utiles.
   El grid de 12 columnas (gutter 24px) vive dentro de esos 1280px. */
#top .container { max-width: 1310px; padding-left: 15px !important; padding-right: 15px !important; }
/* GLOBAL: quitar el padding 50px del contenedor de pagina de Enfold;
   el espacio arriba/abajo lo define el padding de cada seccion. */
#top .template-page { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Formularios (av_contact) coherentes en toda la web */
#top .avia_ajax_form .text_input,
#top .avia_ajax_form textarea,
#top .avia_ajax_form select {
  border: 1px solid var(--gen-border-primary, #e2e3e3);
  border-radius: var(--g-ui-radius, 4px);
  padding: var(--gen-space-12, 12px) 14px;
  font-size: var(--gen-font-size-body-md, 15px);
  background: var(--gen-bg-fill-white, #fff);
}
#top .avia_ajax_form .button {
  background: var(--gen-bg-fill-primary, #cf0540);
  color: var(--gen-bg-fill-white, #fff);
  border: 0; border-radius: var(--g-ui-radius, 4px);
  padding: 14px var(--gen-space-40, 40px); text-shadow: none;
}
#top .avia_ajax_form .button:hover { background: var(--gen-bg-fill-hover, #bc053a); }


/* =========================================================================
   (3) COMPONENTES opt-in · aplica solo donde pongas la clase .gen-*
   ========================================================================= */

:root {
  /* radio de UI: el DS define 8/12; la página usaba 4. Pendiente decidir con diseño. */
  --g-ui-radius: 4px;
  /* placeholder de la banda de vídeo del hero (hasta poner vídeo/imagen real) */
  --g-video-bg: #2a2a2a;

  /* SISTEMA DE ICONOS DS = Lucide (trazo, frame 24px, stroke 1.5, caps/joins redondeados).
     Se aplican con `mask` + `background-color: currentColor` para que hereden el color.
     Fuente: DS-GENESAL · "24px / arrows" (Figma). Añadir aquí más iconos según haga falta. */
  --gen-icon-move-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12H22'/%3E%3Cpath d='M18 8L22 12L18 16'/%3E%3C/svg%3E");
  --gen-icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9L12 15L18 9'/%3E%3C/svg%3E");
  --gen-icon-chevron-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 15L12 9L6 15'/%3E%3C/svg%3E");
  /* Flecha izquierda (Lucide move-left) — enlace "Volver" del single de noticia */
  --gen-icon-move-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8L2 12L6 16'/%3E%3Cpath d='M2 12H22'/%3E%3C/svg%3E");
  /* Iconos de "Compartir esta entrada" (glifos de marca + sobre Lucide) */
  --gen-icon-linkedin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.13 1.45-2.13 2.94v5.67H9.35V9h3.42v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28zM5.34 7.43a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM7.12 20.45H3.55V9h3.57v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0z'/%3E%3C/svg%3E");
  --gen-icon-facebook: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M24 12.07C24 5.4 18.63 0 12 0S0 5.4 0 12.07C0 18.1 4.39 23.1 10.13 24v-8.44H7.08v-3.49h3.05V9.41c0-3.02 1.79-4.69 4.53-4.69 1.31 0 2.68.24 2.68.24v2.97h-1.51c-1.49 0-1.96.93-1.96 1.89v2.26h3.32l-.53 3.49h-2.79V24C19.61 23.1 24 18.1 24 12.07z'/%3E%3C/svg%3E");
  --gen-icon-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M18.9 1.5h3.68l-8.04 9.19L24 22.5h-7.41l-5.8-7.58-6.64 7.58H.46l8.6-9.83L0 1.5h7.6l5.24 6.93L18.9 1.5zm-1.29 18.8h2.04L6.48 3.6H4.29L17.61 20.3z'/%3E%3C/svg%3E");
  --gen-icon-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
}

/* Pretitle / eyebrow */
#top .gen-eyebrow, #top .gen-eyebrow p, #top .gen-eyebrow .avia_textblock p {
  font-family: var(--gen-font-helvetica);
  font-size: var(--gen-font-size-pretitle, 13px) !important;
  line-height: var(--gen-line-height-pretitle, 16px) !important;
  font-weight: var(--gen-font-weight-medium, 500);
  letter-spacing: var(--gen-letter-spacing-pretitle, 0.3px);
  text-transform: uppercase;
  color: var(--gen-text-dark, #434343);
  margin: 0;
}
#top .gen-eyebrow { margin: 0 0 var(--gen-space-24, 24px); }
/* GLOBAL: anular el margin-top por defecto (~50px) de Enfold en TODOS los titulos.
   El espacio superior lo controla el padding de la seccion. */
#top .av-special-heading { margin-top: 0 !important; }

/* Filete rojo sobre un titular (poner la clase en el Heading) */
.gen-acc:before {
  content: ""; display: block; width: 24px; height: 4px;
  background: var(--gen-bg-fill-primary, #cf0540);
  border-radius: 0;
  margin: 0 0 var(--gen-space-16, 16px);
}

/* CTA: Boton de Avia como enlace rojo con flecha (la clase gen-cta puede ir en el wrap o en el boton) */
#top .gen-cta.avia-button, #top .gen-cta .avia-button {
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  padding: 0 !important; min-width: 0 !important; height: auto !important;
  line-height: var(--gen-line-height-body-md, 21px) !important;
  color: var(--gen-bg-fill-primary, #cf0540) !important;
  font-size: var(--gen-font-size-body-md, 15px); font-weight: var(--gen-font-weight-medium, 500);
  letter-spacing: var(--gen-letter-spacing-body-md, 0); text-transform: none !important;
}
#top .gen-cta .avia_button_background { display: none !important; }
#top .gen-cta.avia-button .avia_iconbox_title, #top .gen-cta .avia-button .avia_iconbox_title,
#top .gen-cta.avia-button span, #top .gen-cta .avia-button span { color: var(--gen-bg-fill-primary, #cf0540) !important; }
#top .gen-cta.avia-button:after, #top .gen-cta .avia-button:after {
  content: ""; display: inline-block; width: 20px; height: 20px; margin-left: 8px;
  vertical-align: middle; background-color: currentColor;
  -webkit-mask: var(--gen-icon-move-right) no-repeat center / contain;
          mask: var(--gen-icon-move-right) no-repeat center / contain;
}
#top .gen-cta.avia-button:hover, #top .gen-cta .avia-button:hover,
#top .gen-cta .avia-button:hover span { color: var(--gen-bg-fill-hover, #bc053a) !important; }

/* =========================================================================
   BOTÓN DE RELLENO PRIMARIO (Avia theme-color) — estados normal/hover/pressed.
   El texto SIEMPRE blanco: Enfold y la regla global `#top .main_color a:hover`
   (color #bc053a) teñían el texto de rojo al pasar el ratón → ilegible sobre el
   fondo rojo. Fondos: normal #CF0540 · hover #BC053A · pressed (:active) #93042D.
   Se EXCLUYEN las variantes NO rellenas (gen-cta = enlace, gen-cta--light,
   gen-btn-outline), que tienen sus propias reglas; la exclusión va en el wrap Y en
   el botón porque el custom_class de Avia puede caer en cualquiera de los dos.
   La capa .avia_button_background de Enfold se oculta para que el fondo lo controle
   el <a> de forma determinista en todos los estados.
   ========================================================================= */
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) {
  background: var(--gen-bg-fill-primary, #cf0540) !important;
  color: #fff !important;
}
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia_iconbox_title,
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) span { color: #fff !important; }
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia_button_background { display: none !important; }
/* hover */
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline):hover {
  background: var(--gen-bg-fill-hover, #bc053a) !important;
  color: #fff !important;
}
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline):hover .avia_iconbox_title,
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline):hover span { color: #fff !important; }
/* pressed */
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline):active {
  background: var(--gen-bg-fill-pressed, #93042d) !important;
  color: #fff !important;
}
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline):active .avia_iconbox_title,
#top .avia-button-wrap:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline) .avia-button.avia-color-theme-color:not(.gen-cta):not(.gen-cta--light):not(.gen-btn-outline):active span { color: #fff !important; }

/* Botón de envío del formulario (Avia ajax form) — mismos estados/colores. */
#top .avia_ajax_form .button { color: #fff !important; }
#top .avia_ajax_form .button:active { background: var(--gen-bg-fill-pressed, #93042d) !important; color: #fff !important; }

/* Imagen a ancho completo (tarjetas / banda) */
.gen-card-img.avia-image-container, .gen-media.avia-image-container { width: 100%; max-width: 100%; margin: 0; }
.gen-card-img .avia-image-container-inner, .gen-media .avia-image-container-inner { margin: 0; }
.gen-card-img img, .gen-media img { width: 100%; height: auto; display: block; }
/* Imagen en columna con bloque rojo (filete) debajo: 24px imagen -> bloque, SIEMPRE */
#top .gen-card-img.avia-image-container { margin: 0 0 var(--gen-space-24, 24px) !important; }
.gen-media { margin-top: var(--gen-space-24, 24px); }

/* Tarjeta con H4 (filete encima del h4):
   - bloque de color 16x4px  - bloque -> h4 = 24px  - h4 -> body = 24px  - body -> CTA = 32px */
#top .av-special-heading-h4.gen-acc:before { width: 16px; height: 4px; margin-bottom: var(--gen-space-24, 24px); }
#top .av-special-heading-h4 { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .av-special-heading-h4 + .av_textblock_section { margin-top: 0 !important; }
#top .av_textblock_section:has(+ .avia-button-wrap.gen-cta) { margin-bottom: 0 !important; }
#top .av_textblock_section + .avia-button-wrap.gen-cta { margin-top: var(--gen-space-32, 32px) !important; }

/* Destacado (poner la clase en el Heading; tag = p):
   ancho máx 750px, padding interno 48px, texto centrado 500, líneas 1px #bc053a arriba/abajo
   al mismo ancho que el bloque (box-sizing border-box -> línea = 750px). */
.gen-highlight {
  max-width: 750px; margin: 0 auto; box-sizing: border-box;
  padding: var(--gen-space-48, 48px) !important;
  border-top: 1px solid var(--gen-color-primary-600, #bc053a) !important;
  border-bottom: 1px solid var(--gen-color-primary-600, #bc053a) !important;
}
.gen-highlight:before, .gen-highlight:after { display: none !important; }
.gen-highlight .av-special-heading-tag { text-align: center; font-weight: var(--gen-font-weight-medium, 500) !important; letter-spacing: -0.5px !important; line-height: var(--gen-line-height-heading-sm, 31px) !important; }

/* ============================================================
   HOME · bloque rojo (gen-claimband) — Figma node 1:27886 "Section - destacado".
   Sección roja, contenido 954 alineado a la IZQUIERDA, padding 72/72.
   Ceja blanca + titular heading-lg "de corrido" (39/44/700, -0.5) blanco + CTA claro.
   ⚠ Medir en staging.
   ============================================================ */
/* Hero: la ceja "Grupos electrógenos en Perú" ES el H1 (39/44) con filete 24x8 encima */
#top .av-special-heading-h1.gen-acc:before { width: 24px; height: 8px; margin-bottom: var(--gen-space-24, 24px); }

/* Sección roja, contenido 954 a la izquierda */
#top .gen-claimband { background: var(--gen-bg-fill-primary, #cf0540) !important; }
.gen-claimband.avia-section { padding-top: var(--gen-space-72, 72px); padding-bottom: var(--gen-space-72, 72px); }
#top .gen-claimband .av-special-heading, #top .gen-claimband .av_textblock_section, #top .gen-claimband .avia-button-wrap { max-width: 954px; }
/* Ceja blanca */
#top .gen-claimband .gen-eyebrow, #top .gen-claimband .gen-eyebrow p { color: #fff !important; }
/* Titular "de corrido": heading-lg blanco (tag p), tope 954 */
#top .gen-claim__title .av-special-heading-tag {
  color: #fff !important;
  font-size: var(--gen-font-size-heading-lg, 39px) !important;
  line-height: var(--gen-line-height-heading-lg, 44px) !important;
  font-weight: var(--gen-font-weight-bold, 700) !important;
  letter-spacing: var(--gen-letter-spacing-heading-lg, -0.5px) !important;
}
#top .gen-claim__title { margin-bottom: var(--gen-space-24, 24px) !important; }
/* CTA claro (variante de gen-cta): texto (incl. .avia_iconbox_title, donde va la etiqueta)
   y flecha en BLANCO (fondos oscuros/rojos). */
#top .gen-cta--light.avia-button, #top .gen-cta--light .avia-button,
#top .gen-cta--light.avia-button span, #top .gen-cta--light .avia-button span,
#top .gen-cta--light.avia-button .avia_iconbox_title, #top .gen-cta--light .avia-button .avia_iconbox_title { color: #fff !important; }
#top .gen-cta--light.avia-button:hover, #top .gen-cta--light .avia-button:hover,
#top .gen-cta--light .avia-button:hover span, #top .gen-cta--light .avia-button:hover .avia_iconbox_title { color: rgba(255,255,255,.85) !important; }

/* Hero mosaico (plugin [gen_hero]): los títulos son <p>, y el `#top p` del tema (con id)
   les gana el tamaño → salían 15/21 en vez de 25/31 (main) y 18/24 (sec). El letter-spacing
   del plugin sí entra. Forzamos aquí los tamaños del diseño para no tocar el plugin. */
#top .gen-he-main .gen-he-title { font-size: 25px !important; line-height: 31px !important; }
#top .gen-he-sec .gen-he-title  { font-size: 18px !important; line-height: 24px !important; }
#top .gen-he .gen-he-title { color: #000 !important; }

/* ============================================================
   HOME · banda de VÍDEO de fondo con texto (bloque Alquiler).
   Vídeo a sangre que cubre TODA la sección (alto 560), scrim para legibilidad,
   contenido en columna ~410 a la DERECHA (filete 24x8 + H2 31/38 + body 18/24 +
   2 botones). 56px de gap blanco ARRIBA y ABAJO. El vídeo va en av_codeblock.
   ⚠ Primera pasada — confirmar con Figma y MEDIR en staging.
   ============================================================ */
#top .gen-vidband { position: relative; overflow: hidden; margin-top: var(--gen-space-56, 56px); margin-bottom: var(--gen-space-56, 56px); }
/* El contenedor NO debe recortar: si Enfold le pone overflow:hidden, el vídeo a 100vw
   quedaría clipado a 1310 y NO iría de lado a lado. La sección (overflow:hidden) recorta a viewport. */
#top .gen-vidband > .container { position: relative; overflow: visible !important; max-width: var(--gen-w-content, 1310px); }
/* Vídeo de fondo a sangre: cubre toda la sección (100vw × alto completo, sin franja) */
#top .gen-vidband .gen-vidband__media { position: absolute; top: 0; bottom: 0; left: 50%; width: 100vw; z-index: 0; margin: 0 0 0 -50vw !important; padding: 0 !important; }
#top .gen-vidband .gen-vidband__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* Scrim (más oscuro a la DERECHA, donde va el texto) */
#top .gen-vidband .gen-vidband__media:after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(0,0,0,.1), rgba(0,0,0,.55)); }
/* Columna de contenido (~410, one_third) por encima, a la derecha */
#top .gen-vidband .flex_column { position: relative; z-index: 2; }
#top .gen-vidband .av-special-heading-tag { color: #fff !important; }
#top .gen-vidband .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-vidband .gen-vidband__body, #top .gen-vidband .gen-vidband__body p { color: #fff !important; font-size: 18px !important; line-height: 24px !important; }
#top .gen-vidband .gen-vidband__body { margin-bottom: var(--gen-space-32, 32px) !important; }
/* Ceja "ALQUILER" en BLANCO sobre el vídeo, con filete rojo encima. El filete
   pasa de la H2 a la ceja para el orden Figma filete→ceja→H2. */
#top .gen-vidband .gen-eyebrow, #top .gen-vidband .gen-eyebrow p { color: #fff !important; }
#top .gen-vidband .gen-vidband__eyebrow:before { content: ""; display: block; width: 24px; height: 4px; background: var(--gen-bg-fill-primary, #cf0540); margin: 0 0 var(--gen-space-16, 16px); }
#top .gen-vidband .av-special-heading-h2.gen-acc:before { display: none !important; }
/* Dos botones en línea (la columna es contexto de bloque -> inline-block funciona) */
#top .gen-vidband .avia-button-wrap { display: inline-block; margin: 0 16px 0 0; }
/* Botones del bloque: texto en MAYÚSCULAS + padding interno 8/24 (8 24 8 24) */
#top .gen-vidband .avia-button, #top .gen-vidband .avia-button .avia_iconbox_title { text-transform: uppercase !important; }
#top .gen-vidband .avia-button { padding: 8px 24px 8px 24px !important; height: auto !important; min-height: 0 !important; line-height: var(--gen-line-height-button-md, 21px) !important; }
/* Botón outline claro (2º botón, sobre vídeo) */
#top .gen-btn-outline .avia-button { background: transparent !important; border: 1px solid #fff !important; box-shadow: none !important; color: #fff !important; }
#top .gen-btn-outline .avia-button span { color: #fff !important; }
#top .gen-btn-outline .avia-button:hover { background: rgba(255,255,255,.12) !important; }

/* Botón RELLENO estándar (gen-btn): rojo (Enfold color=theme-color) + texto en MAYÚSCULAS
   + padding interno 8/24. Reutilizable (p.ej. "Cotizar grupo", "Ver equipos disponibles"). */
#top .gen-btn .avia-button, #top .gen-btn.avia-button { text-transform: uppercase !important; padding: 8px 24px 8px 24px !important; height: auto !important; min-height: 0 !important; line-height: var(--gen-line-height-button-md, 21px) !important; }
#top .gen-btn .avia-button .avia_iconbox_title, #top .gen-btn.avia-button .avia_iconbox_title { text-transform: uppercase !important; }

/* ============================================================
   HOME · bloque OCASIÓN centrado (gen-s-ocasion).
   Filete 24x8 + H2 + body en columna CENTRADA de 608, imagen centrada debajo,
   CTA centrado. Fondo #FAFCF8, padding 80/80. Sin ceja.
   ⚠ Huecos body→imagen (48) e imagen→CTA (32): confirmar/medir en staging.
   ============================================================ */
#top .gen-s-ocasion { text-align: center; }
.gen-s-ocasion.avia-section { padding-top: var(--gen-space-56, 56px); padding-bottom: var(--gen-space-56, 56px); }
/* bloque de texto (filete + H2 + body) centrado, máx 608 */
/* Ceja "OCASIÓN" en ROJO corporativo, centrada, con filete encima (reubicado desde
   la H2 → orden filete→ceja→H2). */
#top .gen-s-ocasion .gen-oca-eyebrow, #top .gen-s-ocasion .gen-oca-eyebrow p { color: var(--gen-bg-fill-primary, #cf0540) !important; }
#top .gen-s-ocasion .gen-oca-eyebrow:before { content: ""; display: block; width: 24px; height: 4px; background: var(--gen-bg-fill-primary, #cf0540); margin: 0 auto var(--gen-space-16, 16px); }
#top .gen-s-ocasion .av-special-heading-h2.gen-acc:before { display: none !important; }
#top .gen-s-ocasion .av-special-heading, #top .gen-s-ocasion .gen-oca-body { max-width: 608px; margin-left: auto; margin-right: auto; }
#top .gen-s-ocasion .av-special-heading-h2.gen-acc .av-special-heading-tag { max-width: 608px !important; text-align: center; }
#top .gen-s-ocasion .gen-oca-body, #top .gen-s-ocasion .gen-oca-body p { text-align: center; }
/* filete rojo centrado (sigue 24x8) */
#top .gen-s-ocasion .gen-acc:before { margin-left: auto; margin-right: auto; }
/* H2 -> body = 24 (no los 64 del titular de bloque) */
#top .gen-s-ocasion .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
/* imagen centrada y con tope de ancho (evita que salga a 1043px), separación body->imagen */
#top .gen-s-ocasion .gen-oca-img.avia-image-container { margin: var(--gen-space-48, 48px) auto 0 !important; max-width: 608px; text-align: center; }
#top .gen-s-ocasion .gen-oca-img .avia-image-container-inner { margin-left: auto !important; margin-right: auto !important; max-width: 608px; }
#top .gen-s-ocasion .gen-oca-img img { margin-left: auto !important; margin-right: auto !important; max-width: 608px; height: auto; }
/* Fundir el blanco de la foto con el fondo (#FAFCF8): multiply */
#top .gen-s-ocasion .gen-oca-img img { mix-blend-mode: multiply; }
/* Botón centrado bajo la imagen */
#top .gen-s-ocasion .avia-button-wrap { margin-top: var(--gen-space-32, 32px) !important; }
/* Móvil: el tope de 608px del contenedor de imagen desborda por la derecha en
   viewports estrechos (margin:auto no puede centrar un bloque más ancho que su
   contenedor) → se capa a 100% para que quede centrada. */
@media (max-width: 767px) {
  #top .gen-s-ocasion .gen-oca-img.avia-image-container,
  #top .gen-s-ocasion .gen-oca-img .avia-image-container-inner,
  #top .gen-s-ocasion .gen-oca-img img { max-width: 100% !important; }
}

/* ============================================================
   HOME · Mantenimiento (gen-s-mant) — Figma node 12232:12157.
   bg #fafcf8, padding 80/80. Título a 501 IZQUIERDA (filete 24x4 + ceja #bc053a +
   H2 31/38 #222 + body 15/21 #626262). 64px al bloque de 3 columnas
   (icono 72 + filete 16x4 + subtítulo 18/28 #222). Sin CTA en el nodo.
   ⚠ Iconos = placeholder: exportar los 3 SVG de Figma y subirlos. Medir en staging.
   ============================================================ */
#top .gen-s-mant { background: var(--gen-bg-surface-secondary-light, #fafcf8) !important; }
.gen-s-mant.avia-section { padding-top: var(--gen-space-80, 80px); padding-bottom: var(--gen-space-80, 80px); }
/* Título (izquierda, máx 501) */
#top .gen-s-mant .gen-mant-eyebrow { max-width: 501px; margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-s-mant .gen-mant-eyebrow:before { content: ""; display: block; width: 24px; height: 4px; background: var(--gen-bg-fill-primary, #cf0540); margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-s-mant .gen-mant-eyebrow, #top .gen-s-mant .gen-mant-eyebrow p { color: var(--gen-color-primary-600, #bc053a) !important; }
#top .gen-s-mant .gen-mant-h2 { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-s-mant .gen-mant-h2 .av-special-heading-tag { max-width: 501px !important; color: #222 !important; }
#top .gen-s-mant .gen-mant-body, #top .gen-s-mant .gen-mant-body p { max-width: 501px; color: #626262 !important; }
#top .gen-s-mant .gen-mant-body { margin-bottom: var(--gen-space-64, 64px) !important; }
/* 3 columnas: anular el margin-top ~50px de Enfold en las flex_column para que el gap
   body→columnas sea el margin-bottom del body (64) y no 64+50=114. */
#top .gen-s-mant .gen-mant-col { margin-top: 0 !important; }
/* 3 columnas: icono 72 + filete 16x4 + subtítulo 18/28 */
#top .gen-s-mant .gen-mant-ico { width: 72px; height: 72px; margin: 0 0 var(--gen-space-24, 24px); background-repeat: no-repeat; background-position: left center; background-size: contain; }
/* iconos: SVG subidos a la Media Library */
#top .gen-s-mant .gen-mant-ico--emp { background-image: url("/wp-content/uploads/2026/07/employee.svg"); }
#top .gen-s-mant .gen-mant-ico--trans { background-image: url("/wp-content/uploads/2026/07/transport.svg"); }
#top .gen-s-mant .gen-mant-ico--equip { background-image: url("/wp-content/uploads/2026/07/equipos.svg"); }
#top .gen-s-mant .gen-mant-sub:before { content: ""; display: block; width: 16px; height: 4px; background: var(--gen-bg-fill-primary, #cf0540); margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-s-mant .gen-mant-sub, #top .gen-s-mant .gen-mant-sub p { max-width: 286px; color: #222 !important; font-size: 18px !important; line-height: 28px !important; letter-spacing: -0.2px; font-weight: var(--gen-font-weight-medium, 500); }
/* CTA "Solicitar asistencia técnica" (gen-cta: texto + flecha) bajo las 3 columnas,
   a 64px. El clear:both de gen-cta introduce CLEARANCE que se come el margin-top
   (el CTA quedaba pegado a las columnas), así que el hueco se da con padding-top. */
#top .gen-s-mant .gen-mant-cta { margin-top: 0 !important; padding-top: var(--gen-space-64, 64px) !important; }

/* ============================================================
   HOME · Red de servicios (gen-s-red) — Figma node 12232:12172.
   Sin bg, padding 80/80. Contenido ~1035 centrado: texto IZQUIERDA (608) + mapa DERECHA (415).
   Título: filete 24x4 + ceja #bc053a + H2 31/38 #222 + body 15/21 #626262 (máx 498).
   Sedes: "Sedes:" (25/28) + Lima/Piura apiladas (filete 16x4 + nombre 18/28 + dirección 15/21).
   ⚠ Mapa = placeholder: exportar el mapa (415x480, marcadores Lima/Piura) de Figma y subir. Medir en staging.
   ============================================================ */
.gen-s-red.avia-section { padding-top: var(--gen-space-80, 80px); padding-bottom: var(--gen-space-80, 80px); }
/* Contenido a ANCHO COMPLETO (1280, x=80→1360) para alinear con el resto de la
   página (Mantenimiento/Claim/Alquiler arrancan en x=80): texto a la IZQUIERDA
   + mapa pegado al borde DERECHO (space-between). Mapa centrado verticalmente
   respecto al texto (align-items:center). Nota: Figma dic2025 mete esta banda a
   1035 centrada (x≈203); se usa ancho completo por coherencia con el build. */
#top .gen-s-red .entry-content-wrapper { display: flex; align-items: center; justify-content: space-between; max-width: none; gap: 24px; }
/* El .clearfix añade ::before/::after que en flex cuentan como ítems (0-width) y
   desplazan las columnas 12px (el hueco extra). Anularlos deja SOLO texto + mapa. */
#top .gen-s-red .entry-content-wrapper:before, #top .gen-s-red .entry-content-wrapper:after { content: none !important; display: none !important; }
#top .gen-s-red .flex_column { width: auto !important; margin: 0 !important; }
#top .gen-s-red .flex_column.gen-red-text { flex: 0 0 608px; width: 608px; max-width: 608px; }
/* Mapa AUMENTADO a 480×555 (proporción 415:480 del diseño) y movido a la
   IZQUIERDA: margin-right 122 lleva su borde dcho a x≈1238 (cota Figma del mapa),
   en vez de pegado al borde de página (1360). */
#top .gen-s-red .flex_column.gen-red-mapcol { flex: 0 0 480px; width: 480px; max-width: 480px; margin-right: 122px !important; }
/* Título (Tittle_S, máx 498) */
#top .gen-s-red .gen-red-eyebrow { max-width: 498px; margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-s-red .gen-red-eyebrow:before { content: ""; display: block; width: 24px; height: 4px; background: var(--gen-bg-fill-primary, #cf0540); margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-s-red .gen-red-eyebrow, #top .gen-s-red .gen-red-eyebrow p { color: var(--gen-color-primary-600, #bc053a) !important; }
#top .gen-s-red .gen-red-h2 { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-s-red .gen-red-h2 .av-special-heading-tag { max-width: 498px !important; color: #222 !important; }
#top .gen-s-red .gen-red-body, #top .gen-s-red .gen-red-body p { max-width: 498px; color: #626262 !important; }
#top .gen-s-red .gen-red-body { margin-bottom: var(--gen-space-64, 64px) !important; }
/* "Sedes:" (25/28) */
#top .gen-s-red .gen-red-sedes .av-special-heading-tag { font-size: 25px !important; line-height: 28px !important; color: #222 !important; letter-spacing: -0.5px; }
#top .gen-s-red .gen-red-sedes { margin-bottom: var(--gen-space-32, 32px) !important; }
/* Sede: filete 16x4 + nombre 18/28 + dirección 15/21 */
#top .gen-s-red .gen-red-sede-name:before { content: ""; display: block; width: 16px; height: 4px; background: var(--gen-bg-fill-primary, #cf0540); margin: 0 0 var(--gen-space-16, 16px); }
#top .gen-s-red .gen-red-sede-name, #top .gen-s-red .gen-red-sede-name p { color: #222 !important; font-size: 18px !important; line-height: 28px !important; letter-spacing: -0.2px; font-weight: var(--gen-font-weight-medium, 500); margin-bottom: var(--gen-space-16, 16px) !important; }
#top .gen-s-red .gen-red-sede-addr, #top .gen-s-red .gen-red-sede-addr p { color: #626262 !important; font-size: 15px !important; line-height: 21px !important; }
#top .gen-s-red .gen-red-sede-name--2 { margin-top: var(--gen-space-40, 40px) !important; }
/* mapa: SVG subido a la Media Library (415x480, marcadores Lima/Piura) */
#top .gen-s-red .gen-red-map { width: 480px; height: 555px; max-width: 100%; background: url("/wp-content/uploads/2026/07/mapa.svg") no-repeat center / contain; }

/* Contenedor del formulario Mautic (antes placeholder gris).
   Ya no es placeholder: envuelve el formulario real que inyecta el shortcode [gen_mautic].
   Neutralizado — sin caja gris, sin min-height ni centrado; el estilo lo pone el propio
   Mautic, igual que en el Code Block de la página Flota. */
#top .gen-mautic {
  display: block; min-height: 0; background: none;
  color: inherit; text-align: left; letter-spacing: normal;
}
#top .gen-mautic p { margin: 0; }

/* Botón de envío del formulario Mautic ("Quiero mi cotización"): rojo corporativo + texto blanco.
   Mautic trae el botón con clases Bootstrap (.btn.btn-default) y su hoja fuerza fondo blanco,
   por eso hace falta !important para que gane el rojo del DS. */
#top .gen-mautic .mauticform-button.btn.btn-default,
#top .gen-mautic button.mauticform-button {
  background: var(--gen-bg-fill-primary, #cf0540) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 3px !important;
  padding: 13px 30px !important;
  font-size: 15px !important; font-weight: 500 !important; line-height: 1.2 !important;
  box-shadow: none !important; text-shadow: none !important;
  cursor: pointer; transition: background .2s ease;
}
#top .gen-mautic .mauticform-button.btn.btn-default:hover,
#top .gen-mautic button.mauticform-button:hover {
  background: var(--gen-bg-fill-hover, #bc053a) !important;
}

/* Formulario Mautic a DOS COLUMNAS en desktop (≥768px).
   El contenedor de campos (.mauticform-page-wrapper) pasa a flex-wrap; por defecto cada
   fila ocupa el 100% (una columna) y solo los pares indicados van al 50%.
   ⚠ Los pares se identifican por la clase numérica .mauticform-field-N que Mautic asigna
   por ORDEN de campo. Mapa actual del form 66:
     f2 Nombre · f3 Apellidos            → par
     f4 Empresa · f5 RUC de la Empresa   → par
     f6 Correo · f7 Teléfono             → par
     f8 Tipo de cliente · f9 Sector      → par
     f11 ¿Qué necesita? · f12 Tiempo de alquiler → par
     f14 Potencia · f15 Voltaje          → par
   El resto (f1/f10 cabeceras, f13 Lugar de instalación, f16 Otros detalles, condiciones,
   captcha y botón) quedan a ancho completo. Si se reordenan/añaden campos en Mautic, estos
   números cambian y hay que revisar el mapa.
   La especificidad del selector del par incluye .mauticform-row para ganar al width:100%. */
@media (min-width: 768px) {
  #top .gen-mautic .mauticform-page-wrapper {
    display: flex; flex-wrap: wrap; column-gap: 24px; align-items: flex-start;
  }
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row { width: 100%; }
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-2,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-3,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-4,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-5,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-6,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-7,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-8,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-9,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-11,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-12,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-14,
  #top .gen-mautic .mauticform-page-wrapper > .mauticform-row.mauticform-field-15 {
    width: calc(50% - 12px);
  }
}

/* Formulario Mautic en MÓVIL (<768px): la columna del formulario (2/3) no colapsaba a
   ancho completo (se quedaba en ~215px e indentada). Enfold la fija con
   `#top .flex_column.av_two_third { width: calc(66.6667% - 8px) !important }`, que además
   vence a su propia regla de colapso móvil (esa NO lleva !important). Para ganarle hay que
   igualar/superar su especificidad Y usar !important → por eso el selector incluye
   .av_two_third/.av_one_third (no basta con `.gen-s-form .flex_column`, empataba y perdía por
   orden de carga). Así el form ocupa el mismo ancho que el contenido (p. ej. 335px en un
   iPhone de 430px). */
@media (max-width: 767px) {
  #top .gen-s-form .flex_column.av_one_third,
  #top .gen-s-form .flex_column.av_two_third { width: 100% !important; margin-left: 0 !important; clear: both !important; }
  #top .gen-s-form .gen-mautic,
  #top .gen-s-form .gen-mautic .mauticform-page-wrapper { width: 100% !important; }
}

/* Densidad vertical del formulario Mautic: entre campos 12px (Mautic trae 20px);
   las cabeceras de sección (freehtml: "Datos personales" / "Datos técnicos") dejan 24px
   hasta los primeros campos. Aplica en todos los tamaños. */
#top .gen-mautic .mauticform-row { margin-bottom: 12px !important; }
#top .gen-mautic .mauticform-row.mauticform-freehtml { margin-bottom: 24px !important; }

/* Página de agradecimiento (/agradecimiento-de-contacto/): pantalla de confirmación
   centrada. Reutiliza el hero del DS (gen-section--hero) pero centra todo el contenido
   y le da aire vertical. Hay que anular el float:left que Enfold pone en el H1 y el
   botón, si no quedan a la izquierda. Provisional hasta cotejar con Figma. */
#top .gen-s-gracias { padding-top: 140px; padding-bottom: 140px; }
#top .gen-s-gracias .container { text-align: center !important; }
#top .gen-s-gracias .gen-eyebrow,
#top .gen-s-gracias .gen-eyebrow p,
#top .gen-s-gracias .av-special-heading h1,
#top .gen-s-gracias .gen-subtitle,
#top .gen-s-gracias .gen-subtitle p { text-align: center !important; }
#top .gen-s-gracias .av-special-heading,
#top .gen-s-gracias .av-special-heading h1 {
  float: none !important; margin-left: auto !important; margin-right: auto !important;
}
/* El subtítulo y la ceja son av_textblock_section: se topan a 560 y se centran con margin auto.
   Hay que anular el float de Enfold en TODOS (H1, botón, textblocks), si no se van a la izquierda. */
#top .gen-s-gracias .av_textblock_section,
#top .gen-s-gracias .gen-subtitle {
  max-width: 560px !important; margin-left: auto !important; margin-right: auto !important; float: none !important;
}
#top .gen-s-gracias .avia-button-wrap {
  display: inline-block !important; float: none !important; margin: 32px auto 0 !important;
}
#top .gen-s-gracias .avia-button { float: none !important; }

/* Etiqueta de la Biblioteca de bloques: barra AMARILLO LIMA con el nombre del bloque
   encima de cada estructura, con gran separación arriba para distinguir bloques.
   Uso interno del repositorio (no de páginas reales). */
#top .gen-lbl { display: inline-block !important; background: #c6ff00 !important; padding: 5px 9px !important; margin: 96px 0 0 !important; }
#top .gen-lbl, #top .gen-lbl p {
  font-family: var(--gen-font-helvetica); color: #111 !important;
  font-size: 11px !important; line-height: 15px !important; font-weight: 700;
  letter-spacing: 0.5px; text-transform: uppercase;
}
#top .gen-lbl p { margin: 0 !important; }

/* Aviso rojo (Promobox) */
.gen-notice { background: var(--gen-bg-fill-primary, #cf0540) !important; border: 0 !important; border-radius: var(--g-ui-radius, 4px); }
.gen-notice, .gen-notice * { color: #fff !important; }

/* Modificadores de ritmo de sección (poner la clase en la Color Section) */
.gen-section.avia-section { padding-top: var(--gen-space-56, 56px); padding-bottom: var(--gen-space-56, 56px); }
.gen-section--lg.avia-section { padding-top: var(--gen-space-80, 80px); padding-bottom: var(--gen-space-80, 80px); }
.gen-section--hero.avia-section { padding-top: var(--gen-space-40, 40px) !important; padding-bottom: var(--gen-space-72, 72px) !important; }

/* Banda de imagen a sangre completa (reutilizable, cualquier posición).
   Sin imagen real muestra un placeholder gris claro y SIN círculo.
   La altura la fija Enfold (min_height del Layout Builder). */
.gen-imgband.avia-section { position: relative; padding: 0; min-height: 460px; background: var(--gen-color-grey-100, #efefef); }

/* Banda de vídeo del hero (oscura + botón play) */
.gen-video.avia-section { position: relative; padding: 0; min-height: 460px; background: var(--g-video-bg, #2a2a2a); }
.gen-video.avia-section:after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 78px; height: 78px;
  margin: -39px 0 0 -39px; border-radius: 50%;
  background: rgba(255,255,255,0.18); border: 2px solid rgba(255,255,255,0.8);
}

/* =========================================================================
   GLOBALES (revisión por puntos)
   ========================================================================= */

/* Botones: por defecto RELLENOS (Enviar, Pide tu presupuesto). Las CTAs
   estilo enlace van con la clase .gen-cta (sin fondo + flecha) -> ver Componentes. */

/* Sin líneas de lado a lado: quitar bordes de las secciones */
#top .avia-section { border-top: 0 !important; border-bottom: 0 !important; }

/* Line-heights de titulares EXACTOS en px (evita el redondeo em de Theme Options) */
#top .av-special-heading-h1 .av-special-heading-tag { line-height: var(--gen-line-height-heading-lg, 44px) !important; }
#top .av-special-heading-h2 .av-special-heading-tag { line-height: var(--gen-line-height-heading-md, 38px) !important; }
/* H2 MENSAJE GENERAL (sin filete): ancho máximo 954px */
#top .av-special-heading-h2 .av-special-heading-tag { max-width: 954px !important; }
/* H2 TITULAR DE BLOQUE (con filete .gen-acc): ancho máximo 628px */
#top .av-special-heading-h2.gen-acc .av-special-heading-tag { max-width: 628px !important; }
/* H2 TITULAR (con filete): separación al bloque siguiente = 64px SIEMPRE */
#top .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-64, 64px) !important; }
/* H2 GENERAL (sin filete): separación al CTA inferior = 24px SIEMPRE.
   Determinista: el H2 aporta los 24px y se anula el margin-top del CTA contiguo. */
#top .av-special-heading-h2:not(.gen-acc) { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .av-special-heading-h2:not(.gen-acc) + .avia-button-wrap.gen-cta { margin-top: 0 !important; }
/* H2 con filete (.gen-acc): bloque rojo 24x8 y 24px de hueco hasta el titular */
#top .av-special-heading-h2.gen-acc:before { width: 24px; height: 8px; margin-bottom: var(--gen-space-24, 24px); }
#top .av-special-heading-h3 .av-special-heading-tag { line-height: var(--gen-line-height-heading-sm, 31px) !important; }
#top .av-special-heading-h4 .av-special-heading-tag { line-height: var(--gen-line-height-heading-xs, 24px) !important; }

/* Grid: gutter lateral de 24px entre columnas (grid 12 columnas, gutter 24px) */
#top .flex_column { margin-left: 24px !important; }
#top .flex_column.first { margin-left: 0 !important; }
#top .flex_column.av_one_half  { width: calc((100% - 24px) / 2) !important; }
#top .flex_column.av_one_third { width: calc((100% - 48px) / 3) !important; }
#top .flex_column.av_two_third { width: calc((100% - 48px) / 3 * 2 + 24px) !important; }

/* Suavizado de fuentes (antialiasing) en toda la web */
#top, #top body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* CTA (.gen-cta) SIEMPRE en bloque, debajo del texto, a 24px */
#top .gen-cta { display: block !important; clear: both; margin-top: var(--gen-space-24, 24px) !important; }

/* Sin líneas horizontales NUNCA: sombra de sección (avia-shadow), hr y divisores */
#top .avia-section { box-shadow: none !important; }
#top .container_wrap { box-shadow: none !important; border: 0 !important; }
#top hr, #top .av_hr, #top .avia-divider, #top .hr_invisible, #top .av-section-color-overlay { border: 0 !important; box-shadow: none !important; }

/* FIX raíz: al ocultar special-heading-border el wrapper colapsaba (título flotado).
   flow-root hace que el wrapper contenga su texto -> alturas y gaps correctos. */
#top .av-special-heading { display: flow-root; }

/* =========================================================================
   H3 con filete + Subtítulo (header de columna) + sección Nacional/Internacional
   ========================================================================= */

/* H3 con filete: bloque rojo 24x4 y 24px hasta el h3 */
#top .av-special-heading-h3.gen-acc:before { width: 24px; height: 4px; margin-bottom: var(--gen-space-24, 24px); }

/* Subtítulo / header de columna (18/24/500, no negrita). Clase .gen-subtitle en el textblock.
   Gana al base de .avia_textblock por orden de cascada. */
#top .gen-subtitle, #top .gen-subtitle p {
  font-size: var(--gen-font-size-subtitle-md, 18px) !important;
  line-height: var(--gen-line-height-subtitle-md, 24px) !important;
  font-weight: var(--gen-font-weight-medium, 500) !important;
  letter-spacing: var(--gen-letter-spacing-subtitle-md, -0.2px);
  color: var(--gen-color-grey-800, #222222) !important; /* DS: subtítulo = text/Genesal/dark #222 */
  margin: 0;
}

/* LAYOUT REUTILIZABLE .gen-cols-5-5 (en la Color Section): dos bloques de 5 columnas
   con 2 columnas (3 gutters) de separación. 1 col = (100% - 11*24px)/12 ;
   bloque = 5col+4g ; separación = 2col+3g. Usado en Nacional/Internacional y Seguimiento. */
#top .gen-cols-5-5 .flex_column.av_one_half { width: calc((100% - 264px) / 12 * 5 + 96px) !important; }
#top .gen-cols-5-5 .flex_column.av_one_half.first { margin-left: 0 !important; }
#top .gen-cols-5-5 .flex_column.av_one_half:not(.first) { margin-left: calc((100% - 264px) / 12 * 2 + 72px) !important; }

/* Variante .gen-cols-6-6: dos bloques iguales (6+6) con gutter 24px = comportamiento por
   defecto de av_one_half (628px c/u). No necesita override de ancho; solo el espaciado interno. */

/* Espaciado interno de cada bloque (compartido por gen-cols-5-5 y gen-cols-6-6):
   filete->h3 24 (arriba) · h3->subtítulo/body 24 · subtítulo->body 24 */
#top .gen-cols-5-5 .av-special-heading-h3, #top .gen-cols-6-6 .av-special-heading-h3 { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-cols-5-5 .av_textblock_section, #top .gen-cols-6-6 .av_textblock_section { margin: 0 !important; }
#top .gen-cols-5-5 .av_textblock_section + .av_textblock_section, #top .gen-cols-6-6 .av_textblock_section + .av_textblock_section { margin-top: var(--gen-space-24, 24px) !important; }

/* Bloque .gen-band (imagen banda a sangre): la imagen "posee" sus huecos = 64px ARRIBA y ABAJO.
   Arriba via padding-top (la imagen tiene clear:both y la clearance absorbería un margin-top);
   abajo via margin-bottom. Hay que ganar al !important de Enfold con la clase .avia-image-container.
   Clase reutilizable (en la Color Section); usada en Nacional/Internacional y en band-highlight. */
#top .gen-band .gen-media.avia-image-container { margin-top: 0 !important; padding-top: var(--gen-space-64, 64px) !important; margin-bottom: var(--gen-space-64, 64px) !important; }

/* =========================================================================
   gen-logos — banda de LOGOS de marcas/partners (motores y alternadores). Alternativa a gen-band
   cuando se quieren mostrar marcas en vez de una imagen. FLEX con huecos UNIFORMES de 24px (horizontal
   y vertical) + salto forzado tras el 8º logo (8 fila 1, 7 fila 2, ambas centradas); en tablet/móvil,
   wrap natural. Alto del logo = 80px. Fondo #fff. Cada logo es un
   av_image con enlace manual + target _blank (se abre en NUEVA pestaña) a la web de la marca. Los logos
   van en grayscale + opacidad reducida por defecto y pasan a color al hover. El grid se aplica sobre
   .entry-content-wrapper (padre real de las av_image en el DOM de Enfold). Cada av_image lleva gen-logo.
   ========================================================================= */
#top .gen-logos { background-color: #fff !important; }
#top .gen-logos.avia-section { padding-top: 0 !important; }   /* pegado al bloque de texto anterior (sin los 56 top) */
#top .gen-logos .entry-content-wrapper {
  display: flex !important; flex-wrap: wrap !important;
  justify-content: center !important; align-items: center !important;
  column-gap: var(--gen-space-32, 32px) !important; row-gap: 0 !important;
}
#top .gen-logos .gen-logo.avia-image-container { margin: 0 !important; width: auto !important; flex: 0 0 auto !important; }
#top .gen-logos .gen-logo .avia-image-container-inner { margin: 0 !important; }
#top .gen-logos .gen-logo a.avia_image { display: block; }
#top .gen-logos .gen-logo img {
  width: auto; height: 80px; max-width: 138px; object-fit: contain; display: block;
  filter: grayscale(100%); opacity: 0.55; transition: filter .25s ease, opacity .25s ease;
}
#top .gen-logos .gen-logo:hover img { filter: none; opacity: 1; }
/* salto de fila forzado tras el 8º logo (8 arriba / 7 abajo, ambas filas centradas). El break es un
   av_textblock vacío a ancho completo; su altura = el hueco vertical entre las dos filas (32, verificado
   en el DOM real de staging: el break rinde 1:1). En tablet/móvil se oculta y el hueco lo da row-gap (32). */
#top .gen-logos .av_textblock_section { flex: 0 0 100% !important; width: 100% !important; height: var(--gen-space-32, 32px) !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; }
#top .gen-logos .av_textblock_section .avia_textblock { display: none !important; }
/* tablet/móvil: wrap natural con hueco 32 y sin salto forzado */
@media (max-width: 989px) {
  #top .gen-logos .entry-content-wrapper { row-gap: var(--gen-space-32, 32px) !important; }
  #top .gen-logos .av_textblock_section { display: none !important; }
}

/* Ajustes de hueco POR PÁGINA (scope a la clase semántica única de cada banda): distancia
   bloque anterior -> imagen de la banda = 120px. Se anula el padding-top de la sección banda (80)
   y se fija el hueco en el padding-top de la imagen, contando el padding-bottom (80) de la sección
   de contenido anterior. Verificar el 120 exacto en staging y afinar el padding-top de la imagen. */
/* P1 Sobre nosotros — CTA "Experiencia en Perú" -> imagen banda (80 + 40 = 120) */
#top .gen-s-ccl.avia-section { padding-top: 0 !important; }
#top .gen-s-ccl .gen-media.avia-image-container { padding-top: 40px !important; }
/* P3 Experiencia en Perú — bloque "Una trayectoria..." -> imagen banda (80 + 24 lista + 16 = 120) */
#top .gen-s-conocimiento.avia-section { padding-top: 0 !important; }
#top .gen-s-conocimiento .gen-media.avia-image-container { padding-top: 16px !important; }
/* P6 Presencia nacional — bloque "Nuestras sedes" -> imagen banda (80 + 40 = 120) */
#top .gen-s-despliegue.avia-section { padding-top: 0 !important; }
#top .gen-s-despliegue .gen-media.avia-image-container { padding-top: 40px !important; }

/* gen-p-general — PÁRRAFO con la MISMA visualización que el H2 "mensaje general" (31/38/500, tracking
   -0.5, #000, caja normal, ancho 954). Para el bloque intro-cta cuando el texto es un <p> y no un H2:
   misma apariencia + mismo barrido (añadir también la clase gen-anim-reveal) + mismo hueco al CTA (24).
   IMPORTANTE: las clases van en el custom_class del av_textblock (NO en un <p> inline: Avia/TinyMCE
   borra los class de HTML dentro del textblock). El custom_class cae en .avia_textblock; por eso se
   estila también el <p> interno (.gen-p-general p), igual que gen-subtitle. El JS encuentra
   .gen-anim-reveal en .avia_textblock y trocea su texto en .gr-c (respetando los <strong>). */
#top .gen-p-general, #top .gen-p-general p {
  font-size: var(--gen-font-size-heading-md, 31px) !important;
  line-height: var(--gen-line-height-heading-md, 38px) !important;
  font-weight: var(--gen-font-weight-medium, 500) !important;
  letter-spacing: var(--gen-letter-spacing-heading-md, -0.5px) !important;
  color: var(--gen-color-grey-900, #000000) !important;
  text-transform: none !important;
  max-width: 954px !important;
  margin: 0 !important;
}
/* las negritas del brief NO deben romper la apariencia de titular -> heredan color/peso del H2 (uniforme) */
#top .gen-p-general strong, #top .gen-p-general b { color: inherit !important; font-weight: var(--gen-font-weight-medium, 500) !important; }
/* hueco p→CTA = 24 (paridad con el H2 general). El body queda a 0 (regla global del textblock+CTA) y el
   CTA aporta los 24. Scoped a .gen-s-intro (clase de la sección) -> robusto y gana a la regla global de
   textblock+CTA (32), sin depender de dónde caiga la clase gen-p-general (Avia la pone en .av_textblock_section). */
#top .gen-s-intro .av_textblock_section + .avia-button-wrap.gen-cta { margin-top: var(--gen-space-24, 24px) !important; }
/* Varios párrafos en un MISMO gen-p-general de un gen-s-intro (p.ej. 1.6.4/1.6.5: subtítulo movido +
   intro del brief, dentro de un solo av_textblock para que el barrido gen-anim-reveal sea CONTINUO —
   en orden, no al unísono): hueco 24 entre párrafos. El caso de 1 solo párrafo no se ve afectado. */
#top .gen-s-intro .gen-p-general p + p { margin-top: var(--gen-space-24, 24px) !important; }

/* =========================================================================
   TXT + IMG (texto y imagen lado a lado / imagen a sangre debajo)
   1 col = (100% - 11*24px)/12. Texto = 6col+5g (628). Imagen = 5col+4g (519).
   Hueco entre ambos = 1col + 2g (≈133). Variante --rev = imagen a la izquierda.
   ========================================================================= */
#top .gen-txtimg .flex_column.av_one_half.first { width: calc((100% - 264px) / 12 * 6 + 120px) !important; margin-left: 0 !important; }
#top .gen-txtimg .flex_column.av_one_half:not(.first) { width: calc((100% - 264px) / 12 * 5 + 96px) !important; margin-left: calc((100% - 264px) / 12 + 48px) !important; }
/* invertida: imagen (5col) izquierda + texto (6col) derecha */
#top .gen-txtimg--rev .flex_column.av_one_half.first { width: calc((100% - 264px) / 12 * 5 + 96px) !important; margin-left: 0 !important; }
#top .gen-txtimg--rev .flex_column.av_one_half:not(.first) { width: calc((100% - 264px) / 12 * 6 + 120px) !important; margin-left: calc((100% - 264px) / 12 + 48px) !important; }

/* Imagen de txt-img = retrato 519×632 (la imagen real; el placeholder se recorta con cover) */
#top .gen-txtimg .gen-card-img img, #top .gen-txtimg--rev .gen-card-img img { aspect-ratio: 519 / 632; object-fit: cover; height: auto; }
/* Espaciado interno (como en el resto del kit): filete→título 24 (global) · título→body 24 */
#top .gen-txtimg .av-special-heading-h2.gen-acc, #top .gen-txtimg--rev .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }

/* txt-img-full: filete→título 24 · título→body 24 · body→imagen a sangre 48.
   Cuerpo de varios bloques (H3/listas/párrafos): ritmo interno 24; SOLO el textblock pegado a la imagen
   conserva los 48. En el caso simple (un único body antes de la imagen), ese body ES el pegado -> 48
   (sin regresión respecto al comportamiento anterior). */
#top .gen-txtimg-full .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-txtimg-full .av_textblock_section { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-txtimg-full .av_textblock_section:has(+ .gen-media) { margin-bottom: var(--gen-space-48, 48px) !important; }
#top .gen-txtimg-full .gen-media { margin-top: 0 !important; }
/* ancho del bloque de TEXTO = 628 (H2, H3 y body/listas topados a 628; alineados a la izquierda).
   La imagen .gen-media NO se topa -> sigue a sangre (ancho completo del contenedor). */
#top .gen-txtimg-full .av-special-heading .av-special-heading-tag { max-width: 628px !important; }
#top .gen-txtimg-full .avia_textblock { max-width: 628px; }

/* txt-img-full--noimg: variante SIN imagen = cabecera de texto (H2 + body). Conserva el hueco
   inferior de 48 (el que dejaba la imagen) como padding antes del contenido siguiente (p.ej. tablas).
   título→body 24 · body→siguiente 48. El tope de 628 SOLO afecta al título y al body que va justo
   tras él (NO a lo que venga después: shortcodes, tablas, etc.). Reutilizable. */
#top .gen-txtimg-full--noimg .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-txtimg-full--noimg .av-special-heading-h2 .av-special-heading-tag { max-width: 628px !important; }
#top .gen-txtimg-full--noimg .av-special-heading-h2.gen-acc + .av_textblock_section { margin-bottom: var(--gen-space-48, 48px) !important; }
#top .gen-txtimg-full--noimg .av-special-heading-h2.gen-acc + .av_textblock_section .avia_textblock { max-width: 628px; }

/* Bloque de texto a 6 columnas (628): título + body. filete→título 24 (global) · título→body 24 */
#top .gen-txt .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-txt .avia_textblock { max-width: 628px; }

/* =========================================================================
   ACORDEÓN (gen-accordion) — reestilo del av_toggle de Enfold.
   Sin cajas; cada item con línea inferior #767676; tipografía de marca.
   El abrir/cerrar lo gestiona Enfold (no JS propio). Estilos finos a afinar en staging. */
/* línea inferior a TODO el ancho; el contenido (título, body, chevron) va con 16px de padding
   interno a izquierda y derecha (el padding va en .single_toggle; la línea es su border-bottom). */
#top .gen-accordion .single_toggle { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--gen-color-grey-500, #767676) !important; box-shadow: none !important; margin: 0 !important; border-radius: 0 !important; padding: 0 var(--gen-space-16, 16px) !important; }
#top .gen-accordion .toggler {
  background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
  padding: var(--gen-space-16, 16px) 40px var(--gen-space-16, 16px) 0 !important; margin: 0 !important;
  color: var(--gen-text-primary, #292929) !important;
  font-family: var(--gen-font-helvetica) !important;
  font-size: var(--gen-font-size-heading-xs, 18px) !important;
  line-height: var(--gen-line-height-heading-xs, 24px) !important;
  font-weight: var(--gen-font-weight-medium, 500) !important;
  letter-spacing: var(--gen-letter-spacing-heading-xs, -0.2px) !important;
  position: relative; cursor: pointer;
}
#top .gen-accordion .toggler:hover { color: var(--gen-bg-fill-primary, #cf0540) !important; }
/* ABIERTO: el titular del item desplegado va en ROJO (Enfold marca .activeTitle en el .toggler
   y .active_tab en el .single_toggle; se cubren las dos por si cambia el marcado). */
#top .gen-accordion .toggler.activeTitle,
#top .gen-accordion .single_toggle.active_tab .toggler { color: var(--gen-bg-fill-primary, #cf0540) !important; }
/* Icono = chevron del DS (Lucide): down = cerrado, up = abierto. Color ROJO #cf0540 en AMBOS estados
   (el estado abierto solo cambia la máscara, hereda este background-color).
   Se oculta el +/- nativo de Enfold y se pinta el chevron con mask sobre .toggle_icon (derecha). */
#top .gen-accordion .vert_icon, #top .gen-accordion .hor_icon { display: none !important; }
#top .gen-accordion .toggle_icon {
  left: auto !important; right: 0 !important; top: 50% !important; margin-top: -12px !important;
  width: 24px !important; height: 24px !important; border: 0 !important; border-radius: 0 !important;
  transform: none !important; background-color: var(--gen-bg-fill-primary, #cf0540) !important;
  -webkit-mask: var(--gen-icon-chevron-down) no-repeat center / contain;
          mask: var(--gen-icon-chevron-down) no-repeat center / contain;
}
/* abierto: chevron hacia arriba (Enfold marca .activeTitle en el toggler / .active_tab en el item) */
#top .gen-accordion .toggler.activeTitle .toggle_icon,
#top .gen-accordion .single_toggle.active_tab .toggle_icon {
  transform: none !important;
  -webkit-mask-image: var(--gen-icon-chevron-up) !important;
          mask-image: var(--gen-icon-chevron-up) !important;
}
/* cuerpo del item */
#top .gen-accordion .toggle_wrap, #top .gen-accordion .toggle_content { background: transparent !important; border: 0 !important; }
#top .gen-accordion .toggle_content { padding: 0 0 var(--gen-space-16, 16px) !important; }
#top .gen-accordion .toggle_content, #top .gen-accordion .toggle_content p { font-size: var(--gen-font-size-body-md, 15px) !important; line-height: var(--gen-line-height-body-md, 21px) !important; color: var(--gen-text-medium, #626262) !important; }
/* hueco body -> acordeón = 40px (el body anterior no aporta margen inferior) */
#top .gen-accordion { margin-top: var(--gen-space-40, 40px) !important; }
#top .av_textblock_section:has(+ .gen-accordion) { margin-bottom: 0 !important; }

/* =========================================================================
   PÁGINA EMPRESA — bloques de texto del DS (nodo Figma 1-32739)
   Componente maestro "Block text" del DS: stack vertical con gap 24 UNIFORME entre
   TODOS los elementos (filete · pretitle · título · subtítulo · body · botones).
   Filete H2 = 24×8 / H3 = 24×4 (ya global). Variantes de ancho 628 / 954 / 410 (grid 1280/12).
   ========================================================================= */

/* LEAD a 628 — es el H2 "mensaje general" (sin filete -> coge gen-anim-reveal auto) pero topado
   a 628 en vez de 954. Clase .gen-lead-narrow en el av_heading. */
#top .av-special-heading-h2.gen-lead-narrow .av-special-heading-tag { max-width: 628px !important; }

/* gen-textblock — bloque de texto = filete + H2 + (subtítulo) + body. Body a 954, ritmo interno
   uniforme 24 (filete→H2 24 global · H2→subtítulo/body 24 · subtítulo→body 24).
   Clase .gen-textblock en la Color Section. */
#top .gen-textblock .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-textblock .avia_textblock { max-width: 954px; }
#top .gen-textblock .av_textblock_section { margin: 0 !important; }
#top .gen-textblock .av_textblock_section + .av_textblock_section { margin-top: var(--gen-space-24, 24px) !important; }
/* gen-textblock--narrow — variante opt-in: body topado a 628 (= media columna / ancho del texto
   de gen-txtimg) en vez de 954. El titular H2 gen-acc ya va a 628; esto alinea el body a ese ancho.
   Misma especificidad que la base y posterior en el orden → gana sin !important. */
#top .gen-textblock.gen-textblock--narrow .avia_textblock { max-width: 628px; }

/* gen-h3-box — H3 "encabezado de lista/bloque" con filete + sangría (nace del bloque
   "Evaluación técnica…": gen-textblock = H2 + body + H3 + lista/body). El H3 lleva:
   caja roja 24×4 (vía gen-acc, con su hueco caja→texto 24) + padding-left 32 +
   margin-top 32 (hueco desde el body anterior) + margin-bottom 24 (hueco al body/lista siguiente).
   Reutilizable en cualquier bloque: custom_class='gen-acc gen-h3-box' en el av_heading H3.
   Gana al reset global (#top .av-special-heading margin-top:0 !important) por especificidad + !important. */
#top .av-special-heading-h3.gen-h3-box {
  margin-top: var(--gen-space-48, 48px) !important;    /* body anterior → caja roja del H3 = 48 */
  margin-bottom: var(--gen-space-24, 24px) !important; /* H3 → body/lista siguiente = 24 */
  padding-left: var(--gen-space-32, 32px);             /* sangría del H3 (caja + texto) = 32 */
}
/* Determinista en CUALQUIER contexto: el wrapper del H3 es flow-root (no colapsa márgenes),
   así que el H3 "posee" sus huecos y se anula el margen del vecino contiguo (si no, en gen-txtimg
   —body sin margin:0— y gen-txtimg-full —body margin-bottom:24— los huecos se sumarían). */
#top .av_textblock_section:has(+ .av-special-heading-h3.gen-h3-box) { margin-bottom: 0 !important; }
/* el body/lista BAJO el H3 se ALINEA con el H3 (misma sangría 32) y no aporta margen superior.
   En listas se anula el sangrado propio del <ul> para que el TEXTO quede a la misma x que el H3
   (y que un body); la viñeta cuelga a la izquierda dentro de la sangría de 32. */
#top .av-special-heading-h3.gen-h3-box + .av_textblock_section { margin-top: 0 !important; padding-left: var(--gen-space-32, 32px) !important; }
#top .av-special-heading-h3.gen-h3-box + .av_textblock_section ul { margin-left: 0 !important; padding-left: 0 !important; }

/* gen-linkrow — par de "selectores" (Innovación / Sostenibilidad): dos items de 4col (411) con
   gutter 24; cada item con regla 1px #767676 ARRIBA y ABAJO, padding 48 vert / 24 horiz, y stack
   gap 24: H3 (sin filete, negro) + CTA "Ver" (sin flecha). Anchos sobre el grid 1280 (showcase).
   Clase .gen-linkrow en la Color Section. Anchos en px fijos = columnas del grid 1280 (411),
   independientes del contenedor -> valen igual full-width (showcase) que dentro del col9 de la página. */
#top .gen-linkrow .flex_column.av_one_half { width: 411px !important; }
#top .gen-linkrow .flex_column.av_one_half.first { margin-left: 0 !important; }
#top .gen-linkrow .flex_column.av_one_half:not(.first) { margin-left: var(--gen-space-24, 24px) !important; }
#top .gen-linkrow .flex_column {
  border-top: 1px solid var(--gen-color-grey-500, #767676) !important;
  border-bottom: 1px solid var(--gen-color-grey-500, #767676) !important;
  padding: var(--gen-space-48, 48px) var(--gen-space-24, 24px) !important;
}
#top .gen-linkrow .av-special-heading { margin: 0 0 var(--gen-space-24, 24px) !important; }
#top .gen-linkrow .avia-button-wrap.gen-cta { margin-top: 0 !important; }

/* CTA sin flecha (variante de gen-cta): el "Ver" del linkrow no lleva icono. */
#top .gen-cta--noarrow.avia-button:after, #top .gen-cta--noarrow .avia-button:after { display: none !important; }

/* CTA centrado (variante de gen-cta): el wrap se centra (p.ej. CTA bajo un gen-highlight centrado). */
#top .avia-button-wrap.gen-cta--center { text-align: center !important; }

/* gen-filial — filete(24×4) + H3 + body a 4col (410) + mapa al lado (≈422×240).
   Clase .gen-filial en la Color Section; imagen del mapa con .gen-map. */
/* La fila filial (texto 410 + mapa 422) va con inset interno 48px izq/der dentro del col9:
   margin-left 48 en col1 -> izquierda 48 ; el ancho de la fila (48+410+24+422) deja ~48 a la derecha. */
#top .gen-filial .flex_column.av_one_half.first { width: 410px !important; margin-left: var(--gen-space-48, 48px) !important; }
#top .gen-filial .flex_column.av_one_half:not(.first) { width: 422px !important; margin-left: var(--gen-space-24, 24px) !important; }
#top .gen-filial .av-special-heading-h3.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-filial .gen-map img { width: 100%; height: auto; display: block; aspect-ratio: 422 / 240; object-fit: contain; }
/* gen-map dentro de una columna de gen-cols-5-5 (sedes 1.6.5 Presencia nacional): mapa al pie de
   la columna, a ancho de columna. Hueco body→mapa = 24 (ritmo interno del bloque). */
#top .gen-cols-5-5 .gen-map.avia-image-container { margin-top: var(--gen-space-24, 24px) !important; }
#top .gen-cols-5-5 .gen-map img { width: 100%; height: auto; display: block; aspect-ratio: 422 / 240; object-fit: contain; }

/* =========================================================================
   PÁGINA EMPRESA — LAYOUT con nav lateral (nodo Figma 1-32739)
   Grid 1280/12: nav 3col (303) a la izquierda + contenido 9col (953) a la derecha.
   Secciones de contenido apiladas full-width pero con el contenido desplazado a col4
   (clase .gen-col9). El nav se fija con JS (genesal-animations.js). Refinar en staging.
   ========================================================================= */

/* Contenido desplazado a la columna 9 (953): se añade a la izquierda la zona del nav
   (3col + 1 gutter ≈ 327). 15(base) + 327 = 342 -> contenido 1310-342-15 = 953. */
#top .gen-col9 > .container { padding-left: 342px !important; }

/* Nav lateral: lista vertical de enlaces. Items 35px (py 4), gap 8, body 15/500.
   Activo = rojo; resto negro. Vive en su sección .gen-s-sidenav (la pone el JS fuera de flujo). */
#top .gen-s-sidenav > .container { padding: 0 15px !important; }
#top .gen-sidenav { width: 303px; }
#top .gen-sidenav ul { list-style: none; margin: 0; padding: 0; }
#top .gen-sidenav li { margin: 0; }
#top .gen-sidenav a {
  display: flex; align-items: center; min-height: 35px; padding: var(--gen-space-4, 4px) 0;
  margin-top: var(--gen-space-8, 8px);
  font-family: var(--gen-font-helvetica); font-size: var(--gen-font-size-body-md, 15px);
  font-weight: var(--gen-font-weight-medium, 500); line-height: var(--gen-line-height-body-md, 21px);
  color: var(--gen-text-darker, #000) !important; text-decoration: none;
}
#top .gen-sidenav li:first-child a { margin-top: 0; }
#top .gen-sidenav a:hover { color: var(--gen-bg-fill-primary, #cf0540) !important; }
#top .gen-sidenav a.is-active, #top .gen-sidenav .current-menu-item > a { color: var(--gen-bg-fill-primary, #cf0540) !important; }

/* CTA lateral "CONTACTO": SUSTITUIDO por el plugin «Genesal · Botones laterales»
   (gen-lateral-tabs, clase .gen-lt). Se ocultan las instancias inline antiguas
   (.gen-contact-tab, presentes en 7 páginas del clúster "Sobre nosotros" + Empresa)
   para no duplicar el tab; así NO hace falta re-pegar esas páginas. El botón se
   gestiona ahora desde el admin (menú «Botones laterales»). */
#top .gen-contact-tab { display: none !important; }

/* Tarjeta de certificado (Card_H4) + grid de certificados.
   Card 411 ancho, bg #fafcf8, padding 24/32, centrado. img 168 object-contain.
   Espaciado: img→H4 24 · H4→body 8 · body→CTA 8 (CTA "Ver →" con flecha, centrado). */
#top .gen-cert-grid .flex_column.av_one_half {
  width: 411px !important; margin-bottom: var(--gen-space-24, 24px);
  background: var(--gen-bg-surface-secondary-light, #fafcf8);
  padding: var(--gen-space-24, 24px) var(--gen-space-32, 32px) !important; text-align: center;
}
#top .gen-cert-grid .gen-cert-img.avia-image-container { margin: 0 0 var(--gen-space-24, 24px) !important; }
#top .gen-cert-grid .gen-cert-img img { height: 168px; width: 100%; object-fit: contain; } /* cert real = documento VERTICAL; alto fijo 168 */

/* Banda de imagen de la página Empresa = 954×360 (scoped a col9 para no afectar a otras páginas). */
#top .gen-txtimg-full.gen-col9 .gen-media img { aspect-ratio: 954 / 360; width: 100%; height: auto; object-fit: cover; }
#top .gen-cert-grid .av-special-heading-h4 { margin: 0 0 var(--gen-space-8, 8px) !important; text-align: center !important; }
#top .gen-cert-grid .av-special-heading-h4 .av-special-heading-tag { display: inline-block !important; float: none !important; max-width: none !important; text-align: center !important; }
#top .gen-cert-grid .avia_textblock { margin: 0 0 var(--gen-space-8, 8px) !important; color: var(--gen-color-grey-500, #767676) !important; }
#top .gen-cert-grid .avia-button-wrap.gen-cta { margin-top: 0 !important; text-align: center; }
#top .gen-cert-grid .gen-cta.avia-button, #top .gen-cert-grid .gen-cta .avia-button { display: inline-flex; align-items: center; }
/* el título de bloque (H2 con filete) va al ancho del contenido, no a 411 ; hueco cabecera→grid = 40 */
#top .gen-cert-grid > .container > .av-special-heading-h2 { margin-bottom: var(--gen-space-40, 40px) !important; }

/* Secciones compuestas (cabecera H2/body + sub-rejilla): el DS deja 40px entre la cabecera y la
   sub-rejilla (no 112). H2 con filete de cabecera -> body 24 ; body -> columnas 40. */
#top .gen-linkrow .av-special-heading-h2.gen-acc,
#top .gen-filial .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-linkrow .flex_column.av_one_half,
#top .gen-filial .flex_column.av_one_half { margin-top: var(--gen-space-40, 40px); }

/* =========================================================================
   gen-features — rejilla de ventajas/prestaciones (3 por fila, sin imagen ni CTA):
   cabecera (H2 con filete + lead) + N tarjetas H4 (filete 16×4) + body.
   Cabecera→grid 40 ; filas separadas 40 ; H4→body 24 (global). Reutilizable.
   En el .txt: marcar como 'first' la 1ª columna de cada fila (1, 4, …).
   ========================================================================= */
#top .gen-features .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-features .flex_column.av_one_third { margin-top: var(--gen-space-40, 40px); }
#top .gen-features .av-special-heading-h4 { margin-bottom: var(--gen-space-24, 24px) !important; }
/* Icono 72×72 encima del filete rojo de cada tarjeta (URL a mano en el .txt,
   textblock .gen-feat-icon). Icono→filete = 32px. */
#top .gen-features .gen-feat-icon { margin-bottom: var(--gen-space-32, 32px) !important; }
#top .gen-features .gen-feat-icon .avia_textblock,
#top .gen-features .gen-feat-icon p { margin: 0 !important; }
#top .gen-features .gen-feat-icon img { display: block; width: 72px; height: 72px; }
/* Excepción: icono a 120px de ancho (alto automático) en la card marcada --w120. */
#top .gen-features .gen-feat-icon.gen-feat-icon--w120 img { width: 120px; height: auto; }
/* pie opcional a ancho completo tras la rejilla (p. ej. párrafo de cierre): mismo hueco 40 */
#top .gen-features .flex_column.av_one_full { margin-top: var(--gen-space-40, 40px); }
/* Variante 2×2 (gen-features--2col): 4 ventajas en 2 columnas (av_one_half = 628 c/u, gutter 24
   por defecto) en 2 filas. Mismo ritmo vertical que la rejilla de 3 (filas separadas 40). Marcar
   'first' la 1ª de cada fila (celdas 1 y 3). */
#top .gen-features--2col .flex_column.av_one_half { margin-top: var(--gen-space-40, 40px); }

/* =========================================================================
   gen-newsgrid — estilo del PORTFOLIO GRID nativo de Enfold (elemento av_portfolio)
   con el look del DS. Diseño Figma "Card_H3_Comunication" (nodo 1-42139): tarjeta =
   imagen ~410 ancho × 228 alto (alto fijo) + ceja de categoría (roja 12/20 MAYÚS) + título H3
   25/31/500 #222 (tracking -0.5). Rejilla 3 por fila, gutter 24, fila-gap 40, filas
   top-aligned. Se estila SOBRE el markup nativo de Enfold (.grid-entry / .grid-image /
   .grid-entry-title). Reutilizable (grupos-infraestructura §6 puede migrar).
   MEDIDO en staging (getComputedStyle): gutter 24, alto imagen 228, ceja 12/20 #cf0540,
   título 25/31/500 #222, contenido→24. Usado en casos-exito-avia.txt (Portfolio nativo).
   ========================================================================= */
/* rejilla: 3 columnas iguales, gutter 24, fila-gap 40. Gutter por margin-RIGHT uniforme
   (todas con margin-left 0) → FILTER-SAFE: al filtrar con las tabs (isotope), la tarjeta que
   quede arranca pegada a la izquierda sin desplazarse. El ancho descuenta 3 gutters (72) para
   que quepan 3 por fila sin salto. (El gutter por margin-left + .first NO era filter-safe.) */
#top .gen-newsgrid .grid-entry.av_one_third { width: calc((100% - 72px) / 3) !important; margin: 0 24px var(--gen-space-40, 40px) 0 !important; }
#top .gen-newsgrid .grid-entry.av_one_third.first { margin-left: 0 !important; }
/* imagen a caja de ALTO FIJO 228px (ancho = ancho de la card, ~403-410). object-fit:cover →
   la imagen LLENA toda la caja (ancho y alto), sin franjas; el sobrante se recorta por el
   centro. Así se ve el máximo posible ocupando todo el espacio. placeholder gris si no hay destacada.
   ⚠ DEPENDE de que el elemento av_portfolio sirva image_size='large' (NO 'portfolio'): el tamaño
   'portfolio' es un recorte duro 495×400 (casi cuadrado) que tira el encuadre apaisado antes de
   llegar al CSS. Con 'large' (original sin recortar) cover recorta lo mínimo. Ver casos-de-exito-avia.txt. */
#top .gen-newsgrid .grid-image { display:block !important; margin:0 !important; height: 228px !important; overflow:hidden; background:#efefef; }
#top .gen-newsgrid .grid-image img { width:100% !important; height:100% !important; object-fit:cover; object-position:center; display:block; transition: transform .35s ease; }
#top .gen-newsgrid article:hover .grid-image img { transform: scale(1.04); }
/* fuera la lupa/overlay, la flecha y el footer de Enfold */
#top .gen-newsgrid .grid-image .image-overlay { display:none !important; }
#top .gen-newsgrid .avia-arrow, #top .gen-newsgrid .entry-footer { display:none !important; }
/* contenido: imagen→bloque 24; sin caja ni borde de Enfold */
#top .gen-newsgrid .grid-content { margin:0 !important; padding: var(--gen-space-24, 24px) 0 0 !important; background:transparent !important; border:0 !important; }
#top .gen-newsgrid .entry-content-header { margin:0 !important; padding:0 !important; border:0 !important; }
/* CEJA de categoría: Enfold NO imprime la categoría como texto, solo pone la clase
   '{slug}_sort' en cada .grid-entry → se pinta con ::before, una regla por sector.
   Fallback = "Casos de éxito". Confirmar la taxonomía real de Portfolio Categories
   (medidos en staging: agroindustria, hospitales, industria). Los demás slugs son los
   previsibles (mismos sectores que Alquiler) → verificar al crear las categorías.
   NOTA: si un caso tiene varias categorías gana la última regla; asignar UN sector por caso.
   Alternativa más robusta (muestra la categoría real de cualquier taxonomía sin regla por
   sector): filtro en functions.php que inyecte el nombre de la categoría en el markup. */
#top .gen-newsgrid .entry-content-header::before { content:"Casos de éxito"; display:block; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:12px; line-height:20px; font-weight:400; letter-spacing:0; text-transform:uppercase; color: var(--gen-color-primary-500, #cf0540); margin:0 0 8px; }
#top .gen-newsgrid .mineria_sort .entry-content-header::before { content:"Minería"; }
#top .gen-newsgrid .construccion_sort .entry-content-header::before { content:"Construcción"; }
#top .gen-newsgrid .industria_sort .entry-content-header::before { content:"Industria"; }
#top .gen-newsgrid .agroindustria_sort .entry-content-header::before { content:"Agroindustria"; }
#top .gen-newsgrid .energia-y-petroleo_sort .entry-content-header::before { content:"Energía y petróleo"; }
#top .gen-newsgrid .infraestructura_sort .entry-content-header::before { content:"Infraestructura"; }
#top .gen-newsgrid .hospitales_sort .entry-content-header::before { content:"Hospitales"; }
#top .gen-newsgrid .servicios_sort .entry-content-header::before { content:"Servicios"; }
#top .gen-newsgrid .otros-proyectos_sort .entry-content-header::before { content:"Otros proyectos"; }
#top .gen-newsgrid .centrales-de-energia_sort .entry-content-header::before { content:"Centrales de energía"; }
#top .gen-newsgrid .oil-gas_sort .entry-content-header::before { content:"Oil & Gas"; }
/* título H3 25/31/500 #222 (tracking -0.5), hover a rojo */
#top .gen-newsgrid .grid-entry-title { margin:0 !important; padding:0 !important; font-size:25px !important; line-height:31px !important; font-weight:500 !important; letter-spacing:-0.5px !important; }
#top .gen-newsgrid .grid-entry-title a { color:#222 !important; transition: color .2s ease; }
#top .gen-newsgrid article:hover .grid-entry-title a { color: var(--gen-color-primary-500, #cf0540) !important; }
/* fuera el BORDE PERIMETRAL de la tarjeta (box-shadow 0 0 0 1px por defecto de Enfold) */
#top .gen-newsgrid .inner-entry { box-shadow: none !important; }
/* FILTRO por categorías (Enfold sort='yes') — tabs estilo Figma "Tabs legacy" (nodo 1-42137).
   MEDIDO en staging sobre el markup real: contenedor .sort_width_container > .sort_by_cat con
   <a data-filter> (clase activa 'active_sort'). Enfold añade separadores "/" (.text-sep) y
   contadores numéricos (.av-cat-count) que NO están en Figma → se OCULTAN.
   Tabs: 15/21/500 #434343 + subrayado 2px #e1e1e1; activa = texto #000 + subrayado rojo #bc053a. */
#top .gen-newsgrid .sort_width_container,
#top .gen-newsgrid .sort_by_cat { margin: 0 0 var(--gen-space-24, 24px) !important; padding: 0 !important; border: 0 !important; text-align: left !important; }
#top .gen-newsgrid .text-sep,
#top .gen-newsgrid .av-cat-count { display: none !important; }
#top .gen-newsgrid a[data-filter] { display:inline-block !important; float:none !important; margin:0 var(--gen-space-24, 24px) 0 0 !important; padding:0 0 8px !important; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:15px !important; line-height:21px !important; font-weight:500 !important; letter-spacing:0 !important; color:#434343 !important; text-decoration:none !important; background:none !important; border:0 !important; border-bottom:2px solid #e1e1e1 !important; border-radius:0 !important; }
#top .gen-newsgrid a[data-filter] .inner_sort_button { padding:0 !important; margin:0 !important; background:none !important; border:0 !important; }
#top .gen-newsgrid a[data-filter]:hover { color:#000 !important; }
#top .gen-newsgrid a[data-filter].active_sort { color:#000 !important; border-bottom-color:#bc053a !important; }
/* responsive (afinar en staging): tablet 2 col, móvil 1 col */
@media (max-width: 989px) {
  #top .gen-newsgrid .grid-entry.av_one_third { width: calc((100% - 48px) / 2) !important; }
}
@media (max-width: 767px) {
  #top .gen-newsgrid .grid-entry.av_one_third { width: 100% !important; margin-right: 0 !important; }
}
/* Casos de éxito — la intro "Nuestra experiencia…" va en el HERO, junto al subtítulo, a 628
   (utilidad gen-w628); el hero cierra sin padding inferior y el grid arranca a 80 del texto
   (intro→filtro 80; filtro→grid 24 = margin del sort container). MEDIDO en staging. */
#top .gen-w628, #top .gen-w628 p { max-width: 628px !important; }
#top .gen-w628 { margin: var(--gen-space-16, 16px) 0 0 !important; }   /* hueco subtítulo→intro */
#top .gen-w628 p { margin: 0 !important; }
#top .gen-s-hero.gen-s-casos-hero { padding-bottom: 0 !important; }   /* el hueco al filtro lo da el grid */
#top .gen-newsgrid.gen-s-casos { padding-top: 80px !important; }      /* texto intro → filtro = 80 */

/* =========================================================================
   gen-blog-grid — BLOG (posts NATIVOS) sobre el elemento MASONRY de Enfold
   (av_masonry_entries, modo fixed-size, "caption always"). Clona el lenguaje del
   DS/Proyectos pero en tarjeta OVERLAY: el texto va SOBRE la imagen (naturaleza del
   masonry). La sección lleva ADEMÁS la clase gen-newsgrid → las tabs del filtro
   (a[data-filter]/.active_sort/.inner_sort_button/.text-sep) ya heredan el estilo de
   Proyectos; aquí solo se añaden los arreglos propios del masonry.
   Markup real MEDIDO en staging (blog-recursos):
     a.av-masonry-entry.{slug}_sort.av-masonry-item-with-image
       > figure.av-inner-masonry
           > .av-masonry-outerimage-container > .av-masonry-image-container[bg-image]
           > figcaption.av-inner-masonry-content.site-background
               > .av-inner-masonry-content-pos > .av-inner-masonry-content-pos-content
                   > .avia-arrow + h3.av-masonry-entry-title + .av-masonry-date/.text-sep/.author
   La categoría viene como clase '{slug}_sort' en el <a> → ceja por ::before (1 regla/categoría,
   mismo patrón que gen-newsgrid). El filtro añade contadores '.avia-term-count' (≠ portfolio) → ocultar.
   ========================================================================= */
/* LAYOUT — se NEUTRALIZA el posicionamiento absoluto de isotope (av-fixed-size) y se pone una
   rejilla CSS propia (3 col, gutter 24, fila 40), como Casos. El filtro sigue funcionando: isotope
   oculta las entradas filtradas con display:none, que respeta la rejilla. Mis reglas llevan
   !important → ganan a los estilos inline (sin !important) que isotope pinta al ordenar/filtrar. */
#top .gen-blog-grid .av-masonry-container { position: static !important; height: auto !important; display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: var(--gen-space-40, 40px) var(--gen-space-24, 24px) !important; }
#top .gen-blog-grid .av-masonry-container > .av-masonry-entry:not(a) { display: none !important; }   /* sizer vacío de isotope */
#top .gen-blog-grid a.av-masonry-entry { position: static !important; left: auto !important; top: auto !important; width: auto !important; margin: 0 !important; transform: none !important; box-shadow: none !important; border: 0 !important; background: transparent !important; }
#top .gen-blog-grid .av-inner-masonry-sizer { display: none !important; }
/* la figura y sus cajas → flujo normal (nada absoluto, sin overlay) */
#top .gen-blog-grid .av-inner-masonry { position: static !important; height: auto !important; background: transparent !important; box-shadow: none !important; }
/* IMAGEN arriba: alto fijo 228, cover; wrapper con overflow para el zoom en hover */
#top .gen-blog-grid .av-masonry-outerimage-container { position: static !important; height: auto !important; overflow: hidden !important; }
#top .gen-blog-grid .av-masonry-image-container { position: static !important; aspect-ratio: 1 / 1 !important; height: auto !important; width: 100% !important; padding: 0 !important; background-size: cover !important; background-position: center !important; transition: transform .35s ease; }
#top .gen-blog-grid a.av-masonry-entry:hover .av-masonry-image-container { transform: scale(1.04); }
#top .gen-blog-grid .av-masonry-item-no-image .av-masonry-image-container,
#top .gen-blog-grid .av-masonry-item-no-image .av-inner-masonry { background-color: #efefef !important; }   /* placeholder si no hay destacada */
/* CONTENIDO debajo (Casos): sin overlay, fondo transparente, texto oscuro, imagen→bloque 24 */
#top .gen-blog-grid .av-inner-masonry-content,
#top .gen-blog-grid .av-inner-masonry-content.site-background { position: static !important; height: auto !important; background: transparent !important; padding: 0 !important; }
#top .gen-blog-grid .av-inner-masonry-content-pos { position: static !important; top: auto !important; bottom: auto !important; height: auto !important; transform: none !important; display: block !important; width: 100% !important; }
#top .gen-blog-grid .av-inner-masonry-content-pos-content { position: static !important; padding: var(--gen-space-24, 24px) 0 0 !important; text-align: left !important; display: block !important; }
/* CEJA de categoría (roja 12/20 MAYÚS) — una regla por categoría (slug real '{slug}_sort') */
#top .gen-blog-grid .av-inner-masonry-content-pos-content::before { content: ""; display: block; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-size: 12px; line-height: 20px; font-weight: 400; letter-spacing: 0; text-transform: uppercase; color: var(--gen-color-primary-500, #cf0540); margin: 0 0 8px; }
#top .gen-blog-grid .guias-tecnicas_sort .av-inner-masonry-content-pos-content::before { content: "Guías técnicas"; }
#top .gen-blog-grid .como-elegir-un-grupo-electrogeno_sort .av-inner-masonry-content-pos-content::before { content: "Cómo elegir un grupo electrógeno"; }
#top .gen-blog-grid .consejos-de-mantenimiento_sort .av-inner-masonry-content-pos-content::before { content: "Consejos de mantenimiento"; }
#top .gen-blog-grid .noticias-y-actualidad_sort .av-inner-masonry-content-pos-content::before { content: "Noticias y actualidad"; }
/* título H3 25/31/500 #222 (tracking -0.5), hover a rojo — como Casos */
#top .gen-blog-grid .av-masonry-entry-title { margin: 0 !important; padding: 0 !important; color: #222 !important; font-size: 25px !important; line-height: 31px !important; font-weight: 500 !important; letter-spacing: -0.5px !important; }
#top .gen-blog-grid a.av-masonry-entry:hover .av-masonry-entry-title { color: var(--gen-color-primary-500, #cf0540) !important; }
/* fuera flecha, separador y autor (la fecha SÍ se muestra, ver abajo) */
#top .gen-blog-grid .avia-arrow,
#top .gen-blog-grid .av-masonry-text-sep,
#top .gen-blog-grid .av-masonry-author { display: none !important; }
/* FECHA bajo el titular: 12/16 minúsculas, gris claro (grey-400 #9f9f9f). 12/16 = token body-xs.
   título→fecha = 12. */
#top .gen-blog-grid .av-masonry-date { display: block !important; margin: var(--gen-space-12, 12px) 0 0 !important; padding: 0 !important; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-size: 12px !important; line-height: 16px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: lowercase !important; color: var(--gen-color-grey-400, #9f9f9f) !important; }
/* FILTRO (masonry) — el look de las tabs lo da gen-newsgrid (a[data-filter]); aquí: contenedor
   .av-masonry-sort sin fondo blanco + forzado visible (viene con opacity:0 inline) + margen 24; y
   ocultar los contadores numéricos '.avia-term-count' (los « 2 »/« 1 »). */
#top .gen-blog-grid .av-masonry-sort { background: transparent !important; opacity: 1 !important; visibility: visible !important; margin: 0 0 var(--gen-space-24, 24px) !important; padding: 0 !important; border: 0 !important; min-height: 0 !important; }
#top .gen-blog-grid .av-sort-by-term { text-align: left !important; padding: 0 !important; }
#top .gen-blog-grid .avia-term-count { display: none !important; }
/* RITMO body→filtro = 80 (idéntico a Casos: intro→filtro 80). Mecanismo: el hero cierra con
   padding-bottom 0 y la sección del grid arranca con padding-top 80. El :has escopa el 0 SOLO a la
   página que contiene el blog-grid (no afecta a los heroes de otras páginas). Sin tocar el .txt. */
#top:has(.gen-blog-grid) .gen-s-hero { padding-bottom: 0 !important; }
#top .gen-blog-grid { padding-top: 80px !important; }

/* =========================================================================
   gen-case — FICHA DE CASO (single del Portfolio; plantilla single-portfolio.php del tema hijo).
   Diseño Figma WEB_2026 nodo 1790-3029 + sidebar "Project Description" 1793-1441 (tokens via
   get_variable_defs). 2 columnas: contenido 846 + sidebar 302, gap 132 (contenedor 1280).
   Sidebar = campos ACF: grupo · necesidad_cliente · datos_tecnicos (WYSIWYG, negritas libres).
   PENDIENTE de medir en staging tras instalar ACF + plantilla (el panel no renderiza Enfold).
   ========================================================================= */
#top .gen-case { display: flex !important; justify-content: space-between; align-items: flex-start; margin-bottom: 120px; }
#top .gen-case__main { width: 846px !important; max-width: 846px !important; }
#top .gen-case__side { width: 302px !important; flex: 0 0 302px !important; }
/* --- cabecera: ceja (categoría) + título + fecha, al ancho de la columna izquierda (846) --- */
#top .gen-case__head { max-width: 846px; margin: var(--gen-space-40, 40px) 0 var(--gen-space-48, 48px); }
#top .gen-case__eyebrow { display: block; font-size: 12px; line-height: 20px; font-weight: 400; letter-spacing: 0; text-transform: uppercase; color: var(--gen-color-primary-500, #cf0540); margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-case__title { margin: 0 !important; font-size: 39px; line-height: 44px; font-weight: 400; letter-spacing: -0.5px; color: #000; }
#top .gen-case__date { margin: var(--gen-space-24, 24px) 0 0; font-size: 12px; line-height: 16px; font-weight: 400; letter-spacing: 0.5px; color: #767676; }
/* --- contenido izquierdo --- */
/* imagen inicial: caja de alto FIJO 520; la imagen se centra y NUNCA se deforma ni se amplía
   (si es más baja/estrecha queda con blanco alrededor; si es mayor, se reduce manteniendo ratio) */
/* imagen inicial: ANCHO COMPLETO de la columna (846) a 16:9 → 476 de alto. Todas las destacadas
   se generan 16:9 → object-fit:cover la llena sin letterbox ni deformación. */
#top .gen-case__hero-img { width: 100%; aspect-ratio: 16 / 9; margin: 0 0 var(--gen-space-40, 40px); background: #fff; overflow: hidden; }
#top .gen-case__hero-img img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
/* sin redondeo en las imágenes de la ficha (Enfold pone border-radius:3px por defecto) */
#top .gen-case img,
#top .gen-case .avia_image,
#top .gen-case .avia-image-container,
#top .gen-case .avia-image-container-inner { border-radius: 0 !important; }
/* el contenido del ALB va flotado (float:left) → contenerlo para que la banda CTA no se solape */
#top .gen-case__body { display: flow-root; }
/* prosa del cuerpo del caso (contenido ALB: intro, subtítulos, listas, imágenes) */
#top .gen-case__body .av_textblock_section { margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-case__body .av-special-heading { margin: var(--gen-space-40, 40px) 0 var(--gen-space-24, 24px) !important; }
#top .gen-case__body > .av-special-heading:first-child { margin-top: 0 !important; }
#top .gen-case__body h2, #top .gen-case__body h3 { margin: 0 !important; font-weight: 500; letter-spacing: -0.5px; color: #000; }
#top .gen-case__body h3 { font-size: 25px; line-height: 31px; }
#top .gen-case__body h2 { font-size: 25px !important; line-height: 31px !important; }
#top .gen-case__body ul { margin: 0 0 var(--gen-space-24, 24px) 1.1em; list-style: disc; }
#top .gen-case__body ul ul { margin: 8px 0 0 1.1em; }
#top .gen-case__body li { margin: 0 0 8px; }
#top .gen-case__body .gen-case-media, #top .gen-case__body .gen-case-media.avia-image-container { margin: var(--gen-space-40, 40px) 0 !important; }
/* fila de 3 imágenes (av_one_third) en el cuerpo del caso: gap 32 entre columnas + 48 arriba/abajo del bloque.
   La separación vertical la da la COLUMNA; las imágenes de columna usan .gen-case-colimg (sin margen propio). */
#top .gen-case__body .flex_column.av_one_third { width: calc((100% - 64px) / 3) !important; margin: 48px 0 48px 32px !important; }
#top .gen-case__body .flex_column.av_one_third.first { margin-left: 0 !important; }
/* imágenes de contenido a ancho completo de su contenedor (Enfold deja el inner en inline-block,
   que se encoge al tamaño natural). Escala proporcional, sin deformar.
   .gen-case-media = imagen suelta (margen propio 40) · .gen-case-colimg = imagen en columna (sin margen). */
#top .gen-case__body .gen-case-media.avia-image-container .avia-image-container-inner,
#top .gen-case__body .gen-case-colimg.avia-image-container .avia-image-container-inner { display: block !important; width: 100% !important; }
#top .gen-case__body .gen-case-media img,
#top .gen-case__body .gen-case-colimg img { width: 100% !important; height: auto !important; }
/* --- sidebar: mapa Perú + ubicación (encima del filete) --- */
/* mapa silueta genérica de Perú a 82×82 (PNG cuadrado 2155×2155, no se deforma); gap mapa→ubicación 8; gap bloque→filete 40 */
#top .gen-case__loc { margin: 0 0 var(--gen-space-40, 40px); }
#top .gen-case__loc-map { display: block; width: 82px !important; height: 82px !important; max-width: 82px; margin: 0 0 8px !important; border-radius: 0 !important; }
#top .gen-case__loc-name { display: block; color: #000; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-size: 13px; line-height: 16px; font-weight: 400; letter-spacing: 0.5px; text-transform: uppercase; }
/* --- sidebar: filete + grupo --- */
#top .gen-case__side .gen-case__rule { display: block; width: 32px; height: 4px; background: var(--gen-color-primary-500, #cf0540); margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-case__grupo { margin: 0 0 var(--gen-space-40, 40px) !important; font-size: 25px; line-height: 31px; font-weight: 500; letter-spacing: -0.5px; color: #000; }
/* --- campos (necesidad / datos técnicos) --- */
#top .gen-case__field { margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-case__label { margin: 0 0 8px !important; font-size: 18px; line-height: 24px; font-weight: 500; letter-spacing: -0.2px; color: #000; }
#top .gen-case__text, #top .gen-case__text p { font-size: 15px; line-height: 21px; font-weight: 400; color: #767676; }
#top .gen-case__text p { margin: 0 0 12px; }
#top .gen-case__text p:last-child { margin-bottom: 0; }
#top .gen-case__text strong, #top .gen-case__text b { font-weight: 500; color: #434343; }   /* etiquetas en negrita */
/* body de "Necesidad del cliente" → línea divisoria = 40 */
#top .gen-case__field--need { margin-bottom: var(--gen-space-40, 40px); }
/* divisor gris → "Datos técnicos" = 40 ; "Datos técnicos" → texto = 25 */
#top .gen-case__field--tech { border-top: 1px solid #9f9f9f; padding-top: var(--gen-space-40, 40px); }
#top .gen-case__field--tech .gen-case__label { margin-bottom: 25px !important; }
/* Datos técnicos: nombres de unidad = encabezados del WYSIWYG */
#top .gen-case__tech h2, #top .gen-case__tech h3, #top .gen-case__tech h4, #top .gen-case__tech h5, #top .gen-case__tech h6 { margin: var(--gen-space-24, 24px) 0 8px !important; font-size: 18px; line-height: 24px; font-weight: 500; letter-spacing: -0.2px; color: #000; }
#top .gen-case__tech > h2:first-child, #top .gen-case__tech > h3:first-child, #top .gen-case__tech > h4:first-child, #top .gen-case__tech > h5:first-child { margin-top: 0 !important; }
/* --- banda CTA roja al pie del contenido --- */
#top .gen-case__cta { clear: both; margin-top: var(--gen-space-40, 40px); background: var(--gen-color-primary-500, #cf0540); padding: 32px; min-height: 200px; box-sizing: border-box; display: flex; }
#top .gen-case__cta-inner { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: space-between; gap: var(--gen-space-24, 24px); }
#top .gen-case__cta-title { margin: 0 !important; max-width: 628px; color: #fff; font-size: 25px; line-height: 31px; font-weight: 500; letter-spacing: -0.5px; }
#top .gen-case__cta-link { display: inline-flex; align-items: center; gap: 8px; color: #fff !important; text-decoration: none !important; font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: 0; }
#top .gen-case__cta-link::after { content: ""; display: inline-block; width: 20px; height: 20px; background-color: #fff; -webkit-mask: var(--gen-icon-move-right) no-repeat center / contain; mask: var(--gen-icon-move-right) no-repeat center / contain; }
/* --- responsive: apilar en tablet/móvil --- */
@media (max-width: 989px) {
  #top .gen-case { flex-direction: column; }
  #top .gen-case__main, #top .gen-case__side { width: 100% !important; max-width: 100% !important; flex: none !important; }
  #top .gen-case__side { margin-top: var(--gen-space-48, 48px); }
}

/* =========================================================================
   gen-article — SINGLE DE NOTICIA / POST (blog). Diseño Figma WEB_2026 nodo 1788-4149
   ("Noticias") · tokens via get_variable_defs. Montado por filtro the_content en el
   functions.php del hijo (is_singular('post')) — igual que gen-case, porque Enfold enruta
   su propio single.php. Layout: rail izq (302, solo "Volver" sticky) + gap 24 + contenido 846
   (8 columnas), alineado a la IZQUIERDA del contenedor 1280 (deja ~108 de aire a la derecha,
   como el Figma: contenido en x=406, ancho 846). El editor solo maqueta el CUERPO (ALB): lead,
   media, subtítulos, párrafos, destacado, tags. La ceja(categoría) + H1 + fecha + compartir +
   "Otras noticias" los inyecta el filtro automáticamente desde el post.
   Requiere que el post use "no sidebar / stretched" en Enfold. PENDIENTE medir en staging.
   ========================================================================= */
/* align-items:stretch → el rail se estira a la altura del artículo para que "Volver" pueda ser sticky */
#top .gen-article { display: flex !important; align-items: stretch; justify-content: flex-start; margin-bottom: 120px; }
/* padding-top del rail = margin-top de la cabecera (40) → "Volver" queda a la MISMA altura que la ceja */
#top .gen-article__rail { flex: 0 0 302px; width: 302px; padding-top: var(--gen-space-40, 40px); }
#top .gen-article__main { width: 846px !important; max-width: 846px !important; margin-left: var(--gen-space-24, 24px); }
/* --- enlace "Volver" (sticky en el rail; su posición inicial la fija el padding-top del rail) --- */
#top .gen-article__back { position: sticky; top: 130px; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: 0; color: #434343; text-decoration: none !important; }
#top .gen-article__back:hover { color: var(--gen-color-primary-500, #cf0540); }
#top .gen-article__back::before { content: ""; display: inline-block; width: 20px; height: 20px; background-color: currentColor; -webkit-mask: var(--gen-icon-move-left) no-repeat center / contain; mask: var(--gen-icon-move-left) no-repeat center / contain; }
/* --- cabecera: ceja (categoría) + título + fecha (ancho 846) --- */
#top .gen-article__head { margin: var(--gen-space-40, 40px) 0 var(--gen-space-24, 24px); }
#top .gen-article__eyebrow { display: block; font-size: 12px; line-height: 20px; font-weight: 400; letter-spacing: 0; text-transform: uppercase; color: var(--gen-color-primary-500, #cf0540); margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-article__title { margin: 0 !important; font-size: 39px; line-height: 44px; font-weight: 400; letter-spacing: -0.5px; color: #000; }
#top .gen-article__date { margin: var(--gen-space-24, 24px) 0 0; font-size: 12px; line-height: 16px; font-weight: 400; letter-spacing: 0.5px; color: #767676; }
/* --- cuerpo (contenido ALB): lead, media, subtítulos, párrafos, destacado --- */
/* flow-root contiene los floats de las filas de imágenes; los márgenes entre hermanos siguen
   colapsando → 48 entre bloques, 24 dentro (como el Figma). */
#top .gen-article__body { display: flow-root; }
#top .gen-article__body .av_textblock_section { margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-article__body .av_textblock_section, #top .gen-article__body p { font-size: 18px; line-height: 27px; font-weight: 400; letter-spacing: 0.5px; color: #222; }
#top .gen-article__body p { margin: 0 0 var(--gen-space-24, 24px); }
#top .gen-article__body p:last-child { margin-bottom: 0; }
#top .gen-article__body a { color: var(--gen-color-primary-500, #cf0540); text-decoration: underline; }
#top .gen-article__body strong, #top .gen-article__body b { font-weight: 500; color: #000; }
/* subtítulos: h2 = heading sm 25/31 (como gen-case), h3 = subtítulo 18/24 */
#top .gen-article__body .av-special-heading { margin: var(--gen-space-48, 48px) 0 var(--gen-space-24, 24px) !important; }
#top .gen-article__body > .av-special-heading:first-child { margin-top: 0 !important; }
/* lead = primer párrafo como h2, pegado a la cabecera (hueco fecha→lead = 24) */
#top .gen-article__body .gen-article-lead.av-special-heading, #top .gen-article__body .gen-article-lead { margin-top: 0 !important; }
#top .gen-article__body h2, #top .gen-article__body h3 { margin: 0 !important; font-weight: 500; letter-spacing: -0.5px; color: #222; }
#top .gen-article__body h2 { font-size: 25px !important; line-height: 31px !important; }
#top .gen-article__body h3 { font-size: 18px !important; line-height: 24px !important; letter-spacing: -0.2px; }
#top .gen-article__body ul { margin: 0 0 var(--gen-space-24, 24px) 1.1em; list-style: disc; }
#top .gen-article__body li { margin: 0 0 8px; font-size: 18px; line-height: 27px; color: #222; }
/* sin redondeo en imágenes/vídeo (Enfold pone 3px) */
#top .gen-article img, #top .gen-article .avia_image, #top .gen-article .avia-image-container, #top .gen-article .avia-image-container-inner, #top .gen-article .av_video_link, #top .gen-article .avia-video { border-radius: 0 !important; }
/* --- media suelta a ancho completo (imagen o vídeo): margen 48 arriba/abajo --- */
#top .gen-article__body .gen-article-media, #top .gen-article__body .gen-article-media.avia-image-container { margin: var(--gen-space-48, 48px) 0 !important; }
#top .gen-article__body .gen-article-media.avia-image-container .avia-image-container-inner { display: block !important; width: 100% !important; }
#top .gen-article__body .gen-article-media img { width: 100% !important; height: auto !important; }
/* vídeo (YouTube) a ancho completo 16:9 */
#top .gen-article__body .gen-article-media.av-flex-video, #top .gen-article__body .gen-article-media .flex-video { margin: var(--gen-space-48, 48px) 0 !important; }
/* --- fila de 2 imágenes (av_one_half) — patrón "blog pattern": gap 24 + 48 arriba/abajo --- */
#top .gen-article__body .flex_column.av_one_half { width: calc((100% - 24px) / 2) !important; margin: var(--gen-space-48, 48px) 0 var(--gen-space-48, 48px) var(--gen-space-24, 24px) !important; }
#top .gen-article__body .flex_column.av_one_half.first { margin-left: 0 !important; }
#top .gen-article__body .gen-article-colimg.avia-image-container .avia-image-container-inner { display: block !important; width: 100% !important; }
#top .gen-article__body .gen-article-colimg img { width: 100% !important; height: auto !important; }
/* --- destacado (pull-quote): filete rojo a la izquierda + texto heading md 31/38, caja 628 --- */
#top .gen-article__body .gen-article-pull { max-width: 628px; margin: var(--gen-space-48, 48px) 0 !important; padding: 4px 0 4px 36px; border-left: 4px solid var(--gen-color-primary-500, #cf0540); }
#top .gen-article__body .gen-article-pull, #top .gen-article__body .gen-article-pull p { font-size: 31px !important; line-height: 38px !important; font-weight: 500; letter-spacing: -0.5px; color: #222; }
#top .gen-article__body .gen-article-pull p { margin: 0 !important; }
/* --- pie: tags + compartir + otras noticias --- */
#top .gen-article__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: var(--gen-space-48, 48px) 0 0; }
#top .gen-article__tag { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border: 1px solid #e1e1e1; border-radius: 100px; font-size: 12px; line-height: 20px; font-weight: 400; letter-spacing: 0; color: #434343; text-decoration: none !important; }
#top .gen-article__tag:hover { border-color: var(--gen-color-primary-500, #cf0540); color: var(--gen-color-primary-500, #cf0540); }
#top .gen-article__share { margin-top: var(--gen-space-80, 80px); padding-top: var(--gen-space-40, 40px); border-top: 1px solid #e1e1e1; }
#top .gen-article__share-label { margin: 0 0 var(--gen-space-24, 24px) !important; font-size: 18px; line-height: 24px; font-weight: 500; letter-spacing: -0.2px; color: #222; }
#top .gen-article__share-links { display: flex; align-items: center; gap: var(--gen-space-24, 24px); }
#top .gen-article__share-links a { display: inline-flex; width: 24px; height: 24px; color: #434343; }
#top .gen-article__share-links a:hover { color: var(--gen-color-primary-500, #cf0540); }
#top .gen-article__share-links a i { display: block; width: 24px; height: 24px; background-color: currentColor; }
#top .gen-article__share-links a.is-linkedin i { -webkit-mask: var(--gen-icon-linkedin) no-repeat center / contain; mask: var(--gen-icon-linkedin) no-repeat center / contain; }
#top .gen-article__share-links a.is-facebook i { -webkit-mask: var(--gen-icon-facebook) no-repeat center / contain; mask: var(--gen-icon-facebook) no-repeat center / contain; }
#top .gen-article__share-links a.is-x i { -webkit-mask: var(--gen-icon-x) no-repeat center / contain; mask: var(--gen-icon-x) no-repeat center / contain; }
#top .gen-article__share-links a.is-mail i { -webkit-mask: var(--gen-icon-mail) no-repeat center / contain; mask: var(--gen-icon-mail) no-repeat center / contain; }
/* --- otras noticias (posts relacionados) --- */
#top .gen-article__more { margin-top: var(--gen-space-40, 40px); padding-top: var(--gen-space-40, 40px); border-top: 1px solid #e1e1e1; }
#top .gen-article__more-title { margin: 0 0 var(--gen-space-24, 24px) !important; font-size: 18px; line-height: 24px; font-weight: 500; letter-spacing: -0.2px; color: #222; }
#top .gen-article__more-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gen-space-24, 24px); }
#top .gen-article__card { display: block; text-decoration: none !important; }
#top .gen-article__card-eyebrow { display: block; font-size: 12px; line-height: 20px; font-weight: 400; letter-spacing: 0; text-transform: uppercase; color: var(--gen-color-primary-500, #cf0540); margin: 0 0 8px; }
#top .gen-article__card-title { margin: 0; font-size: 18px; line-height: 24px; font-weight: 500; letter-spacing: -0.2px; color: #222; }
#top .gen-article__card:hover .gen-article__card-title { color: var(--gen-color-primary-500, #cf0540); }
/* --- responsive: apilar rail sobre contenido --- */
@media (max-width: 989px) {
  #top .gen-article { flex-direction: column; }
  #top .gen-article__rail { flex: none; width: 100%; padding-top: 0; margin-bottom: var(--gen-space-24, 24px); }
  #top .gen-article__back { position: static; top: auto; }
  #top .gen-article__main { width: 100% !important; max-width: 100% !important; margin-left: 0; }
}
@media (max-width: 767px) {
  #top .gen-article__title { font-size: 31px; line-height: 38px; }
  #top .gen-article__body .gen-article-pull, #top .gen-article__body .gen-article-pull p { font-size: 25px !important; line-height: 31px !important; }
  #top .gen-article__body .flex_column.av_one_half { width: 100% !important; margin: var(--gen-space-24, 24px) 0 0 0 !important; }
  #top .gen-article__more-grid { grid-template-columns: 1fr; }
}

/* Hero con subtítulo = componente DS "Block text / H1 - Heading lg" (ancho 628, SIN CTA):
   ceja(24)→H1(24)→subtítulo. El margin del H1 solo se añade si va seguido de subtítulo
   (no afecta a los heroes pelados ceja+H1 de otras páginas). */
#top .gen-s-hero .av-special-heading-h1 .av-special-heading-tag { max-width: 628px !important; }
#top .gen-s-hero .av-special-heading-h1:has(+ .av_textblock_section) { margin-bottom: var(--gen-space-24, 24px) !important; }

/* Home · hero invertido: el <h1> (se mantiene h1 por SEO) se MUESTRA como CEJA
   (13/16 MAY, 500, tracking pretitle, rojo corporativo) y debajo un body con
   formato de H1 (heading-lg 39/44/700, negro). Gap ceja→titular = 16 (kicker
   ajustado; ver override más abajo). Gap titular→mosaico = 40. */
#top .gen-s-hero .gen-h1-eyebrow .av-special-heading-tag {
  font-size: var(--gen-font-size-pretitle, 13px) !important;
  line-height: var(--gen-line-height-pretitle, 16px) !important;
  font-weight: var(--gen-font-weight-medium, 500) !important;
  letter-spacing: var(--gen-letter-spacing-pretitle, 0.3px) !important;
  text-transform: uppercase !important;
  color: var(--gen-bg-fill-primary, #cf0540) !important;
}
#top .gen-s-hero .gen-hero-h1, #top .gen-s-hero .gen-hero-h1 p {
  font-size: var(--gen-font-size-heading-lg, 39px) !important;
  line-height: var(--gen-line-height-heading-lg, 44px) !important;
  font-weight: var(--gen-font-weight-bold, 700) !important;
  letter-spacing: var(--gen-letter-spacing-heading-lg, -0.5px) !important;
  color: var(--gen-text-darker, #000000) !important;
  max-width: 628px;
}
#top .gen-s-hero .gen-hero-h1 { margin: 0 0 var(--gen-space-40, 40px) !important; }
/* Gap ceja→titular AJUSTADO: los 24 del DS quedaban visualmente grandes (line-box
   del heading-ceja + margen del <p> del titular). Se baja el margen de la ceja y se
   anula el margen superior del body/su <p>. */
#top .gen-s-hero .gen-h1-eyebrow.av-special-heading-h1 { margin-bottom: var(--gen-space-16, 16px) !important; }
#top .gen-s-hero .gen-hero-h1, #top .gen-s-hero .gen-hero-h1 p { margin-top: 0 !important; }
#top .gen-s-hero .gen-subtitle, #top .gen-s-hero .gen-subtitle p { max-width: 628px; }
#top .gen-s-hero .gen-subtitle { margin: 0 !important; }
/* body de intro OPCIONAL en el hero, bajo el subtítulo: body normal (15/21/#626262) topado a 628,
   como casos-de-éxito. El hueco al subtítulo lo da el flujo normal del textblock (~16). Reutilizable. */
#top .gen-s-hero .gen-hero-body, #top .gen-s-hero .gen-hero-body p { max-width: 628px; }
/* Catálogo (índice + rangos por potencia): hueco hero→primera tabla = 120px (hero-bottom 72 + 48
   del listado). Se anulan los márgenes de elemento del borde para que mande el padding de sección. */
#top .gen-s-hero .gen-hero-body { margin-bottom: 0 !important; }
#top .gen-s-catalogo.avia-section { padding-top: var(--gen-space-48, 48px) !important; }
#top .gen-s-catalogo .av_textblock_section { margin-top: 0 !important; }

/* =========================================================================
   gen-linkcards — bloques-enlace en rejilla de 2 columnas (patrón de
   genesalenergy.com "Catálogo online / Descarga catálogo"): filete arriba+abajo,
   padding 48/24, TÍTULO (H3) + CTA rojo con icono anclado al fondo.
   AL HOVER: el bloque ENTERO se pinta de rojo de marca y el texto pasa a blanco
   (transición de color 0.3s); el bloque completo es clicable (::before del CTA lo cubre).
   La flecha del CTA es mask+currentColor -> se vuelve blanca sola.
   En el .txt: sección con clase gen-linkcards + dos av_one_half (H3 + av_button gen-cta).
   ========================================================================= */
/* Medidas fijadas por el cliente: ancho MÁX 408 · padding interno 24 (4 lados) ·
   alto MÍN 211 · separación entre bloques 24. El título va arriba y el CTA anclado
   al fondo (margin-top:auto), así el alto mínimo reparte el hueco intermedio. */
#top .gen-linkcards .flex_column.av_one_half {
  position: relative;
  display: flex !important; flex-direction: column !important;
  flex: 0 1 408px;
  width: 100% !important; max-width: 408px !important;
  min-height: 211px;
  border-top: 1px solid var(--gen-color-grey-200, #e1e1e1);
  border-bottom: 1px solid var(--gen-color-grey-200, #e1e1e1);
  padding: var(--gen-space-24, 24px) !important;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}
#top .gen-linkcards .flex_column.av_one_half.first { margin-left: 0 !important; }
#top .gen-linkcards .flex_column.av_one_half:not(.first) { margin-left: var(--gen-space-24, 24px) !important; }
/* Hueco texto anterior → bloques-enlace = 80 (56 del padding inferior de la sección de texto
   + 24 de este padding superior). Se anula el margen del último párrafo para que no se sume. */
#top .gen-s-accesos.avia-section { padding-top: var(--gen-space-24, 24px) !important; }
#top .gen-s-intro:has(+ .gen-s-accesos) .gen-p-general { margin-bottom: 0 !important; }
/* Márgenes propios del wrapper .av-special-heading y del tag anulados para que no se sumen
   al padding (distancias deterministas). */
#top .gen-linkcards .av-special-heading { margin: 0 0 var(--gen-space-8, 8px) !important; padding: 0 !important; }
#top .gen-linkcards .av-special-heading .av-special-heading-tag {
  margin: 0 !important; padding: 0 !important;
  font-weight: 700 !important; color: #222 !important;
  line-height: 32.5px !important; letter-spacing: -1.25px !important;
}
/* las dos columnas a IGUAL ALTURA -> las líneas de arriba y abajo quedan alineadas entre bloques
   (flex sobre .entry-content-wrapper = padre real de las columnas en Enfold) */
#top .gen-linkcards .entry-content-wrapper { display: flex !important; flex-wrap: wrap !important; align-items: stretch !important; }
#top .gen-linkcards .flex_column .avia-button-wrap.gen-cta { margin-top: auto !important; }
/* bloque entero clicable */
#top .gen-linkcards .gen-cta .avia-button::before { content: ''; position: absolute; inset: 0; z-index: 1; }
/* hover: bloque rojo LIMPIO (el borde también se tiñe -> sin líneas grises) + texto blanco */
#top .gen-linkcards .flex_column.av_one_half:hover {
  background-color: var(--gen-color-primary-500, #cf0540);
  border-color: var(--gen-color-primary-500, #cf0540);
}
/* Texto en blanco al hover del bloque. OJO: la etiqueta del CTA vive en span/.avia_iconbox_title
   (con color !important propio) y el botón tiene su :hover rojo oscuro -> hay que cubrir ambos.
   La flecha es mask + currentColor, así que se vuelve blanca sola al blanquear el <a>. */
#top .gen-linkcards .flex_column.av_one_half:hover .av-special-heading .av-special-heading-tag,
#top .gen-linkcards .flex_column.av_one_half:hover .avia_textblock,
#top .gen-linkcards .flex_column.av_one_half:hover .gen-cta .avia-button,
#top .gen-linkcards .flex_column.av_one_half:hover .gen-cta .avia-button:hover,
#top .gen-linkcards .flex_column.av_one_half:hover .gen-cta .avia-button span,
#top .gen-linkcards .flex_column.av_one_half:hover .gen-cta .avia-button:hover span,
#top .gen-linkcards .flex_column.av_one_half:hover .gen-cta .avia-button .avia_iconbox_title,
#top .gen-linkcards .flex_column.av_one_half:hover .gen-cta .avia-button:hover .avia_iconbox_title { color: #fff !important; }

/* Responsive (≤989): la 2ª tarjeta conserva su margin-left (el gutter de 24) al
   apilarse → sale desalineada respecto a la 1ª. Se pasa el gutter a un `gap` del
   contenedor flex (que NO desplaza el inicio de una tarjeta al hacer wrap) y se
   anula el margin-left → ambas tarjetas alinean a la izquierda, con o sin wrap. */
@media (max-width: 989px) {
  #top .gen-linkcards .entry-content-wrapper { gap: var(--gen-space-24, 24px); }
  #top .gen-linkcards .flex_column.av_one_half:not(.first) { margin-left: 0 !important; }
}

/* =========================================================================
   gen-coltext — rejilla de N columnas de texto con DIVISOR VERTICAL (nodo Figma 1-60404,
   "Card_H4_stroke_left"). Cabecera (H2 con filete) + 4 columnas: filete 16×4 + H4 + body.
   Cada columna lleva una línea 1px #767676 a su IZQUIERDA (Figma: línea al inicio de cada col,
   ninguna a la derecha del bloque). Columnas a IGUAL ALTURA -> los divisores son uniformes
   (se consigue poniendo el .container en flex; el H2 ocupa fila propia con flex-basis 100%).
   Hueco interno (Padding 24): línea→contenido 24 izq / 24 der. cabecera→grid 48 ; filete→H4 24
   (global) ; H4→body 24. Reutilizable; en el .txt usar columnas av_one_fourth.
   NOTA Enfold: el flex va sobre .entry-content-wrapper (padre REAL de las .flex_column en el DOM
   de Enfold: .container>.template-page>.post-entry>.entry-content-wrapper>columnas), NO sobre
   .container (ahí el flex no llega a las columnas y no igualan altura). =========== */
#top .gen-coltext .entry-content-wrapper { display: flex !important; flex-wrap: wrap !important; align-items: stretch !important; }
#top .gen-coltext .entry-content-wrapper > .av-special-heading { flex: 0 0 100% !important; width: 100% !important; }
#top .gen-coltext .entry-content-wrapper > .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-48, 48px) !important; }
#top .gen-coltext .flex_column.av_one_fourth {
  flex: 0 0 25% !important; width: 25% !important; max-width: 25% !important; margin: 0 !important;
  border-left: 1px solid var(--gen-color-grey-500, #767676) !important;
  padding: 0 var(--gen-space-24, 24px) !important;
  display: flex !important; flex-direction: column !important;     /* para anclar el CTA al fondo */
}
#top .gen-coltext .av-special-heading-h4 { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-coltext .av_textblock_section { margin: 0 !important; }
#top .gen-coltext .av_textblock_section + .av_textblock_section { margin-top: var(--gen-space-24, 24px) !important; }
/* CTA "Ver ubicación" (gen-cta + flecha) por columna: body→CTA 32 ; anclado al fondo (columnas
   a igual altura -> todos los CTA alineados en la base, sobre el divisor). El titular NO es enlace. */
#top .gen-coltext .flex_column .av_textblock_section:has(+ .avia-button-wrap.gen-cta) { margin-bottom: var(--gen-space-32, 32px) !important; }
#top .gen-coltext .flex_column .avia-button-wrap.gen-cta { margin-top: auto !important; }

/* gen-coltext--3 — variante a 3 columnas (av_one_third) del divisor vertical, para repartir 5+ ítems en
   filas de 3 (grid 3×N; p.ej. Alquiler por ubicación con 5 zonas). Cada columna mantiene su divisor
   izquierdo (también en la 2ª fila). Hueco entre filas (y cabecera→grid) = 48 vía row-gap; el H2 no aporta
   margen (lo da el row-gap). Igual altura POR FILA (flex stretch) → divisores uniformes por fila. */
#top .gen-coltext--3 .entry-content-wrapper { row-gap: var(--gen-space-48, 48px) !important; }
#top .gen-coltext--3 .entry-content-wrapper > .av-special-heading-h2.gen-acc { margin-bottom: 0 !important; }
#top .gen-coltext--3 .flex_column.av_one_third {
  flex: 0 0 33.3333% !important; width: 33.3333% !important; max-width: 33.3333% !important; margin: 0 !important;
  border-left: 1px solid var(--gen-color-grey-500, #767676) !important;
  padding: 0 var(--gen-space-24, 24px) !important;
  display: flex !important; flex-direction: column !important;   /* anclar el CTA al fondo */
}

/* gen-rulecols — rejilla 2×N (628 c/u, gutter 24) de la tarjeta "Card_stroke bottom" (nodo Figma
   1-50609). Cabecera (H2 con filete) + tarjetas: filete 24×4 + H3 (25/31) + body (varios párrafos).
   Cada tarjeta = padding interno 24 (4 lados) + UNA SOLA regla 1px #767676 ABAJO (stroke bottom) a
   sangre del ancho. IGUAL ALTURA POR FILA (flex stretch por línea) -> las reglas inferiores quedan
   alineadas. Row-gap vía margin-top 48 en TODAS las tarjetas (incl. fila 1 -> header→grid 48, H2 mb:0);
   funciona igual con 2 tarjetas (1 fila) que con 4 (2×2). cabecera→grid 48 ; filas 48 ; filete→H3 24
   (global) ; H3→body 24 ; párrafos 24. Columnas av_one_half; en el .txt: 'first' la 1ª col de cada
   fila (1, 3, …). Flex sobre .entry-content-wrapper (padre real de las columnas en Enfold). == */
#top .gen-rulecols .entry-content-wrapper { display: flex !important; flex-wrap: wrap !important; align-items: stretch !important; }
#top .gen-rulecols .entry-content-wrapper > .av-special-heading { flex: 0 0 100% !important; width: 100% !important; }
#top .gen-rulecols .entry-content-wrapper > .av-special-heading-h2.gen-acc { margin-bottom: 0 !important; }
#top .gen-rulecols .flex_column.av_one_half {
  width: calc((100% - var(--gen-space-24, 24px)) / 2) !important; margin-left: 0 !important;
  margin-top: var(--gen-space-48, 48px) !important;
  border-bottom: 1px solid var(--gen-color-grey-500, #767676) !important;
  padding: var(--gen-space-24, 24px) !important;
}
#top .gen-rulecols .flex_column.av_one_half:not(.first) { margin-left: var(--gen-space-24, 24px) !important; }
#top .gen-rulecols .av-special-heading-h3.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-rulecols .av_textblock_section { margin: 0 !important; }
#top .gen-rulecols .av_textblock_section + .av_textblock_section { margin-top: var(--gen-space-24, 24px) !important; }
/* Cards de Certificaciones (1.6.4, .gen-s-certgrid): variante de gen-rulecols CON CEJA (Figma nodo
   3063-12558, "Card_stroke bottom" con Pretittle visible). Card = filete + ceja (gen-eyebrow gen-acc)
   + H3 (nombre ISO, SIN filete) + body. Ritmo interno 24 (filete→ceja · ceja→H3 · H3→body). */
#top .gen-s-certgrid .gen-eyebrow.gen-acc:before { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-s-certgrid .av_textblock_section:has(.gen-eyebrow) { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-s-certgrid .av-special-heading-h3 { margin-bottom: var(--gen-space-24, 24px) !important; }

/* gen-rulegrid — REJILLA 3×N de la tarjeta "Card_stroke bottom" (nodo Figma 1-44122).
   Cabecera (H2 con filete + subtítulo/lead, AMBOS a 628) + 6 tarjetas av_one_third (410, gutter 24)
   en 3 columnas × 2 filas: filete 24×4 + H3 + body (con negritas #434343 y enlaces rojos).
   Cada tarjeta = padding interno 24 (los 4 lados) + UNA SOLA regla 1px #767676 ABAJO (stroke bottom)
   a sangre del ancho de la tarjeta (= texto + 24 izq/der). IGUAL ALTURA POR FILA (flex stretch por
   línea) -> el alto de la fila lo fija la columna más alta y las reglas inferiores quedan alineadas.
   cabecera→grid 64 (lead 8 + fila 56) ; filas separadas 56 ; H2→subtítulo 24 ; filete→H3 24 (global) ;
   H3→body 24 ; párrafos 24. En el .txt: marcar 'first' la 1ª col de cada fila (1, 4). */
/* Flex sobre .entry-content-wrapper = padre REAL de las columnas en Enfold (.container>.template-page>
   .post-entry>.entry-content-wrapper>[H2, lead, columnas]). Flexar .container NO igualaba altura. */
#top .gen-rulegrid .entry-content-wrapper { display: flex !important; flex-wrap: wrap !important; align-items: stretch !important; }
/* cabecera (H2 + subtítulo) = cada uno a fila propia (flex-basis 100%) ; texto topado a 628 */
#top .gen-rulegrid .entry-content-wrapper > .av-special-heading,
#top .gen-rulegrid .entry-content-wrapper > .av_textblock_section { flex: 0 0 100% !important; width: 100% !important; }
#top .gen-rulegrid .entry-content-wrapper > .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; } /* H2→subtítulo */
#top .gen-rulegrid .entry-content-wrapper > .av_textblock_section { margin: 0 0 var(--gen-space-8, 8px) !important; }            /* subtítulo→fila1 = 8 + 56 (mt tarjeta) = 64 */
#top .gen-rulegrid .gen-subtitle, #top .gen-rulegrid .gen-subtitle p { max-width: 628px; }                            /* subtítulo a 628 (el H2 ya está topado global) */
/* tarjeta 4col (410) con gutter 24 ; row-gap 56 (margin-top en TODAS, incl. fila 1 -> 8+56=64) */
#top .gen-rulegrid .flex_column.av_one_third {
  width: calc((100% - 2 * var(--gen-space-24, 24px)) / 3) !important; margin-left: 0 !important;
  margin-top: var(--gen-space-56, 56px) !important;
  border-bottom: 1px solid var(--gen-color-grey-500, #767676) !important;
  padding: var(--gen-space-24, 24px) !important;
  display: flex !important; flex-direction: column !important;     /* para anclar el CTA al fondo */
}
#top .gen-rulegrid .flex_column.av_one_third:not(.first) { margin-left: var(--gen-space-24, 24px) !important; }
#top .gen-rulegrid .av-special-heading-h3.gen-acc { margin-bottom: var(--gen-space-24, 24px) !important; }
#top .gen-rulegrid .flex_column .av_textblock_section { margin: 0 !important; }
#top .gen-rulegrid .flex_column .av_textblock_section + .av_textblock_section { margin-top: var(--gen-space-24, 24px) !important; }
/* CTA "Ver sector" (gen-cta + flecha) por tarjeta: body→CTA 32 ; anclado al fondo (tarjetas a igual
   altura por fila -> todos los CTA alineados justo sobre la regla inferior). El titular NO es enlace. */
#top .gen-rulegrid .flex_column .av_textblock_section:has(+ .avia-button-wrap.gen-cta) { margin-bottom: var(--gen-space-32, 32px) !important; }
#top .gen-rulegrid .flex_column .avia-button-wrap.gen-cta { margin-top: auto !important; }
/* gen-rulegrid--4col — variante de 4 columnas (misma tarjeta, gutter 24). Card = (100%-3·24)/4 = 302px
   en el grid de 1280. Usada en "Alquiler por sector" (7 tarjetas: 4 arriba + 3 abajo; .first en 1 y 5). */
#top .gen-rulegrid.gen-rulegrid--4col .flex_column.av_one_third {
  width: calc((100% - 3 * var(--gen-space-24, 24px)) / 4) !important;
}

/* =========================================================================
   ANIMACIONES DE ENTRADA (scroll reveal) — activadas por genesal-animations.js
   El JS marca <html>.gen-anim-ready y añade .is-in al entrar en viewport.
   El estado oculto SOLO aplica con .gen-anim-ready -> si el JS no carga, se ve todo.
   ========================================================================= */
/* gen-anim-rise — aparición con fade + subida. AUTO en el hero (ceja + H1); manual con .gen-anim-rise.
   El estado base va por selector de tipología (no por la clase que añade el JS) para que el hero
   no parpadee: <html>.gen-anim-ready se marca en el <head> antes de pintar. */
html.gen-anim-ready .gen-section--hero .gen-eyebrow,
html.gen-anim-ready .gen-section--hero .av-special-heading,
html.gen-anim-ready .gen-anim-rise {
  opacity: 0; transform: translateY(24px);
  transition: opacity .7s ease, transform .7s ease; will-change: opacity, transform;
}
html.gen-anim-ready .gen-section--hero .gen-eyebrow.is-in,
html.gen-anim-ready .gen-section--hero .av-special-heading.is-in,
html.gen-anim-ready .gen-anim-rise.is-in { opacity: 1; transform: none; }

/* gen-anim-reveal — barrido gris->oscuro por scroll. AUTO en H2 mensaje general (sin filete);
   manual con .gen-anim-reveal. El JS parte el texto en .gr-c y ajusta su opacity. Base = gris claro. */
html.gen-anim-ready .gen-anim-reveal .gr-c { opacity: 0.16; }

/* Opt-out: .gen-no-anim desactiva cualquier animación en el elemento y sus hijos */
html.gen-anim-ready .gen-no-anim, html.gen-anim-ready .gen-no-anim * { opacity: 1 !important; transform: none !important; }

@media (prefers-reduced-motion: reduce) {
  html.gen-anim-ready .gen-section--hero .gen-eyebrow,
  html.gen-anim-ready .gen-section--hero .av-special-heading,
  html.gen-anim-ready .gen-anim-rise { opacity: 1 !important; transform: none !important; transition: none !important; }
  html.gen-anim-ready .gen-anim-reveal .gr-c { opacity: 1 !important; }
}

/* =========================================================================
   HEADER / MENÚ (GLOBAL) — navbar + mega-desplegable adaptativo
   Diseño: Figma DS-GENESAL "Navigation/navbar-desktop" (nodo 1133:1473).
   Reutiliza el menú WP de Enfold (.av-main-nav, .sub-menu) — NO se re-introduce
   contenido. El ANCHO del panel lo da su contenido, topado al contenedor (1280):
     · muchas columnas  -> ancho completo + CTA "Pide tu presupuesto" (Alquiler)
     · 2 columnas       -> caja media anclada bajo el item (SAT)
     · enlaces sueltos  -> caja compacta 1 columna (Venta/Proyectos/Nosotros)
   Mapeo de niveles WP -> Figma: nivel 2 = título de columna ; nivel 3 = enlaces.
   La clasificación (.gen-nav-cols/.gen-nav-flat), la posición (var --gen-nav-cw +
   left por item) y el CTA los pone genesal-animations.js -> initNavMenu().
   SOLO desktop (>=990). En móvil manda el acordeón/burger nativo de Enfold.
   El CSS dinámico de Enfold carga DESPUÉS -> !important/especificidad. Medir en staging.
   ========================================================================= */
@media (min-width: 990px) {

  /* ---- Barra principal: items con tipografía del Figma (13/16 medium, MAYÚSCULAS) ---- */
  #top #header .av-main-nav > li { position: relative; }
  #top #header .av-main-nav > li > a {
    font-family: var(--gen-font-helvetica);
    font-size: var(--gen-font-size-body-sm, 13px);
    line-height: var(--gen-line-height-body-sm, 16px);
    font-weight: var(--gen-font-weight-medium, 500);
    letter-spacing: 0.5px; text-transform: uppercase;
    color: var(--gen-color-grey-700, #434343);
    padding: 0 var(--gen-space-24, 24px); /* 24 a cada lado -> 48 entre items (gap del Figma) */
  }
  /* El último item visible (el que precede al toggle burger) va a ras del borde derecho del
     contenedor -> quitar su padding-right (si no, el texto queda 24px por dentro). */
  #top #header .av-main-nav > li:has(+ li.av-burger-menu-main) > a { padding-right: 0 !important; }
  /* Sin chevrons ni bullets del tema en la barra (el Figma no los lleva) */
  #top #header .av-main-nav > li > a .avia-menu-fx,
  #top #header .av-main-nav .avia-bullet { display: none !important; }

  /* Subrayado rojo 2px bajo el TEXTO (hover / activo) */
  #top #header .av-main-nav > li > a .avia-menu-text { position: relative; display: inline-block; }
  #top #header .av-main-nav > li > a .avia-menu-text::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px;
    background: var(--gen-bg-fill-primary, #cf0540);
    transform: scaleX(0); transform-origin: left center; transition: transform .2s ease;
  }
  #top #header .av-main-nav > li:hover > a .avia-menu-text::after,
  #top #header .av-main-nav > li:focus-within > a .avia-menu-text::after,
  #top #header .av-main-nav > li.current-menu-item > a .avia-menu-text::after,
  #top #header .av-main-nav > li.current_page_item > a .avia-menu-text::after,
  #top #header .av-main-nav > li.current-menu-ancestor > a .avia-menu-text::after,
  #top #header .av-main-nav > li.current-menu-parent > a .avia-menu-text::after { transform: scaleX(1); }

  /* ---- Panel desplegable (común a mega/medio/compacto) ---- */
  /* (sobre-escribe el estado inline de Enfold: display:block;opacity:0;visibility:hidden) */
  #top #header .av-main-nav > li > .sub-menu {
    position: absolute; top: 100%; left: 0; margin: 0;
    padding: var(--gen-space-24, 24px) var(--gen-space-40, 40px) var(--gen-space-48, 48px);
    background: #fff; border: 0; min-width: 0; border-radius: 0;
    box-shadow: 0 12px 20px rgba(0, 0, 0, 0.25);
    /* Enfold pone display:block inline en .sub-menu y un width dinámico -> !important para ganar */
    width: max-content !important; max-width: var(--gen-nav-cw, 1280px) !important;
    opacity: 0; visibility: hidden; pointer-events: none;
    transform: translateY(4px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s;
    z-index: 100;
  }
  #top #header .av-main-nav > li:hover > .sub-menu,
  #top #header .av-main-nav > li:focus-within > .sub-menu {
    opacity: 1 !important; visibility: visible !important; pointer-events: auto; transform: none;
  }
  /* Quitar el "pico"/borde superior que Enfold añade al sub-menú */
  #top #header .av-main-nav > li > .sub-menu::before,
  #top #header .av-main-nav > li > .sub-menu::after { display: none !important; }

  /* ---- MEGA / MEDIO (.gen-nav-cols): columnas = li nivel-2 ; enlaces = li nivel-3 ---- */
  #top #header .av-main-nav > li.gen-nav-cols > .sub-menu {
    display: flex !important; flex-wrap: wrap; align-items: flex-start; gap: var(--gen-space-16, 16px);
  }
  #top #header .av-main-nav > li.gen-nav-cols > .sub-menu > li {
    flex: 1 1 226px; min-width: 226px; max-width: 280px; margin: 0; position: static;
  }
  /* Título de columna = <a> del li nivel-2. Para que un título sea SOLO RÓTULO (no enlace), en
     WordPress se pone como "Enlace personalizado" con URL '#' -> WP le da la clase
     .menu-item-type-custom, que neutralizamos más abajo. Los nivel-2 que son página real (p.ej.
     "Flota disponible") se dejan como Página y siguen clicables. */
  #top #header .av-main-nav > li.gen-nav-cols > .sub-menu > li > a {
    display: block; padding: 0 0 var(--gen-space-12, 12px); margin: 0 0 var(--gen-space-12, 12px);
    /* Enfold pone border 1px #ebebeb a los .sub-menu a -> anular laterales/superior (dejaban dos
       líneas grises a lado y lado del título); solo queda el filete inferior del DS. */
    border: 0 !important; border-bottom: 1px solid var(--gen-color-grey-600, #626262) !important;
    font-family: var(--gen-font-helvetica);
    font-size: var(--gen-font-size-body-sm, 13px); line-height: var(--gen-line-height-body-sm, 16px);
    font-weight: var(--gen-font-weight-medium, 500); letter-spacing: 0.5px; text-transform: uppercase;
    color: var(--gen-color-grey-900, #000); white-space: normal;
  }
  #top #header .av-main-nav > li.gen-nav-cols > .sub-menu > li > a:hover { color: var(--gen-bg-fill-primary, #cf0540); }
  /* Rótulo de cabecera = item marcado en WP como "Enlace personalizado" (URL '#').
     WP le pone .menu-item-type-custom -> lo neutralizamos: sin cursor de mano, sin hover, sin clic
     ni salto por el '#'. pointer-events:none anula a la vez el :hover (color) y el clic.
     Solo afecta a los que TÚ conviertas en enlace personalizado; las páginas reales siguen clicables. */
  #top #header .av-main-nav > li.gen-nav-cols > .sub-menu > li.menu-item-type-custom > a {
    pointer-events: none; cursor: default;
  }
  /* Lista de enlaces nivel-3: se MAQUETA siempre (para que initNavMenu pueda medir el ancho del
     panel), pero SOLO se hace visible/hittable cuando el desplegable está ABIERTO. Si se dejaba
     visibility:visible+pointer-events:auto en cerrado, sus enlaces quedaban "vivos" (Enfold los deja
     en visibility:hidden) y captaban el ratón -> el menú se abría desde ~200px más abajo. */
  #top #header .av-main-nav > li.gen-nav-cols > .sub-menu > li > .sub-menu {
    position: static !important; display: block !important; transform: none !important;
    background: none; box-shadow: none; border: 0; padding: 0; margin: 0;
    width: auto; max-width: none; min-width: 0;
  }
  #top #header .av-main-nav > li.gen-nav-cols:hover > .sub-menu > li > .sub-menu,
  #top #header .av-main-nav > li.gen-nav-cols:focus-within > .sub-menu > li > .sub-menu {
    opacity: 1 !important; visibility: visible !important; pointer-events: auto;
  }
  #top #header .av-main-nav > li.gen-nav-cols .sub-menu .sub-menu > li { margin: 0; position: static; }

  /* ---- COMPACTO (.gen-nav-flat): el sub-menú de nivel 1 son enlaces sueltos (1 columna) ---- */
  #top #header .av-main-nav > li.gen-nav-flat > .sub-menu {
    display: flex !important; flex-direction: column; gap: var(--gen-space-4, 4px); min-width: 240px;
  }
  #top #header .av-main-nav > li.gen-nav-flat > .sub-menu > li { margin: 0; position: static; }

  /* ---- Enlaces (15/21 regular #434343, py4) — comunes a mega y compacto ---- */
  #top #header .av-main-nav > li.gen-nav-cols .sub-menu .sub-menu > li > a,
  #top #header .av-main-nav > li.gen-nav-flat > .sub-menu > li > a {
    display: block; padding: var(--gen-space-4, 4px) 0; margin: 0; border: 0;
    font-family: var(--gen-font-helvetica);
    font-size: var(--gen-font-size-body-md, 15px); line-height: var(--gen-line-height-body-md, 21px);
    font-weight: 400; letter-spacing: 0; text-transform: none;
    color: var(--gen-color-grey-700, #434343); white-space: normal;
  }
  #top #header .av-main-nav > li.gen-nav-cols .sub-menu .sub-menu > li > a:hover,
  #top #header .av-main-nav > li.gen-nav-flat > .sub-menu > li > a:hover { color: var(--gen-bg-fill-primary, #cf0540); }

  /* ---- CTA "Pide tu presupuesto" (lo inyecta el JS solo en el panel ancho) ---- */
  #top #header .av-main-nav > li > .sub-menu > li.gen-nav-cta {
    flex: 0 0 100%; max-width: none; min-width: 0; margin: var(--gen-space-24, 24px) 0 0;
    display: flex; justify-content: flex-end;
  }
  #top #header .av-main-nav > li > .sub-menu > li.gen-nav-cta > a {
    display: inline-flex; align-items: center; gap: var(--gen-space-8, 8px);
    background: var(--gen-bg-fill-primary, #cf0540); color: #fff !important;
    padding: var(--gen-space-12, 12px) var(--gen-space-24, 24px); border: 0 !important; border-radius: 4px;
    font-family: var(--gen-font-helvetica); font-size: var(--gen-font-size-body-md, 15px);
    line-height: var(--gen-line-height-body-md, 21px); font-weight: var(--gen-font-weight-medium, 500);
    letter-spacing: 0; text-transform: none; white-space: nowrap;
  }
  #top #header .av-main-nav > li > .sub-menu > li.gen-nav-cta > a::after {
    content: ""; width: 20px; height: 20px; flex: 0 0 20px; background-color: #fff;
    -webkit-mask: var(--gen-icon-move-right) no-repeat center / contain;
            mask: var(--gen-icon-move-right) no-repeat center / contain;
  }
  #top #header .av-main-nav > li > .sub-menu > li.gen-nav-cta > a:hover { background: var(--gen-bg-fill-hover, #bc053a); }
}

/* =========================================================================
   BARRA ROJA SUPERIOR (secondary header de Enfold = #header_meta)
   Diseño: Figma DS-GENESAL "secondary menu (NavBar)" (nodo 1875:9103, 1440×40).
   Fondo rojo, items a la DERECHA, blanco 13/16 medium 0.5px, gap 24.
   Contenido = "Área de cliente" (menú secundario de Enfold) + teléfono (campo
   "Phone number or any other (short) info" de Theme Options). SIN selector de
   idioma por ahora. Activar en Theme Options (ver README "Cabecera / menú").
   El CSS dinámico de Enfold carga después -> !important. Solo desktop (>=990);
   en móvil Enfold oculta/replantea el meta.
   ========================================================================= */
@media (min-width: 990px) {
  #top #header_meta {
    background: var(--gen-bg-fill-primary, #cf0540) !important;
    border: 0 !important; box-shadow: none !important; min-height: 40px;
  }
  #top #header_meta .container {
    display: flex !important; align-items: center !important; justify-content: flex-end !important;
    gap: var(--gen-space-24, 24px); min-height: 40px;
  }
  /* "Área de cliente" antes que el teléfono (orden del Figma), ambos a la derecha */
  #top #header_meta .sub_menu { order: 1; }
  #top #header_meta .phone-info { order: 2; }
  /* anula floats/anchos por defecto de Enfold. Centrado vertical DETERMINISTA: cada hijo estira
     a la altura de la barra (align-self:stretch) y centra su contenido con flex interno -> así el
     item y el teléfono quedan en el mismo eje (Enfold alineaba el sub_menu 10px más abajo). */
  #top #header_meta .sub_menu,
  #top #header_meta .phone-info {
    float: none !important; width: auto !important; margin: 0 !important; min-height: 0 !important;
    align-self: stretch !important; display: flex !important; align-items: center !important;
    position: relative !important; top: 0 !important; /* Enfold pone top:10px en .sub_menu -> anular */
  }
  #top #header_meta .sub_menu { padding-top: 0 !important; padding-bottom: 0 !important; }
  #top #header_meta .sub_menu > ul { display: flex !important; align-items: center; gap: var(--gen-space-24, 24px); margin: 0 !important; padding: 0 !important; }
  #top #header_meta .sub_menu li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
  #top #header_meta .sub_menu .avia-bullet { display: none !important; }

  /* Tipografía blanca 13/16 medium 0.5 (items + teléfono) */
  #top #header_meta .sub_menu a,
  #top #header_meta .phone-info,
  #top #header_meta .phone-info span,
  #top #header_meta .phone-info a {
    color: #fff !important; font-family: var(--gen-font-helvetica);
    font-size: var(--gen-font-size-body-sm, 13px) !important;
    line-height: var(--gen-line-height-body-sm, 16px) !important;
    font-weight: var(--gen-font-weight-medium, 500) !important;
    letter-spacing: 0.5px !important; text-transform: none !important;
  }
  #top #header_meta .sub_menu a { padding: 0 !important; height: auto !important; line-height: var(--gen-line-height-body-sm, 16px) !important; }

  /* Subrayado blanco sutil en hover/activo (el <a> del secondary NO trae .avia-menu-text -> al <a>) */
  #top #header_meta .sub_menu a { position: relative; display: inline-block; }
  #top #header_meta .sub_menu a::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px; background: #fff;
    transform: scaleX(0); transform-origin: left center; transition: transform .2s ease;
  }
  #top #header_meta .sub_menu li:hover > a::after,
  #top #header_meta .sub_menu li.current-menu-item > a::after { transform: scaleX(1); }
}

/* Barra secundaria en TABLET + MÓVIL (<990): Enfold la deja con su render por defecto
   (fondo claro, items desbordando por la derecha, teléfono en línea aparte). Se pinta
   ROJA y se reorganiza en columna centrada: fila 1 = menú (Blog/Recursos · Solicitar ·
   Contacto, con wrap centrado si no cabe) ; fila 2 = teléfono. Todo centrado. */
@media (max-width: 989px) {
  #top #header_meta {
    background: var(--gen-bg-fill-primary, #cf0540) !important;
    border: 0 !important; box-shadow: none !important;
  }
  #top #header_meta .container {
    display: flex !important; flex-direction: column !important;
    align-items: center !important; justify-content: center !important;
    gap: var(--gen-space-4, 4px); width: 100% !important; max-width: 100% !important;
    padding-top: 8px !important; padding-bottom: 8px !important;
  }
  #top #header_meta .sub_menu,
  #top #header_meta .phone-info {
    float: none !important; width: auto !important; margin: 0 !important;
    position: relative !important; top: 0 !important; text-align: center !important;
  }
  #top #header_meta .sub_menu { order: 1; padding: 0 !important; }
  #top #header_meta .phone-info { order: 2; }
  #top #header_meta .sub_menu > ul {
    display: flex !important; flex-wrap: wrap; justify-content: center; align-items: center;
    gap: var(--gen-space-4, 4px) var(--gen-space-16, 16px); margin: 0 !important; padding: 0 !important;
  }
  #top #header_meta .sub_menu li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
  #top #header_meta .sub_menu .avia-bullet { display: none !important; }
  #top #header_meta .sub_menu a,
  #top #header_meta .phone-info,
  #top #header_meta .phone-info span,
  #top #header_meta .phone-info a {
    color: #fff !important; font-family: var(--gen-font-helvetica);
    font-size: var(--gen-font-size-body-sm, 13px) !important;
    line-height: var(--gen-line-height-body-sm, 16px) !important;
    font-weight: var(--gen-font-weight-medium, 500) !important;
    letter-spacing: 0.5px !important; text-transform: none !important; padding: 0 !important;
  }
}


/* =========================================================================
   FOOTER (GLOBAL) — .gen-footer · vídeo de cielo SIN filtro + dos cajas
   oscuras opacas. Markup en wp/footer.html (widget "HTML personalizado").
   Caja 1 = todo el contenido (5 col) + legal; caja 2 = redes centradas.
   Estructura derivada del Figma DS-GENESAL nodo 328-1342, contenido Perú.
   ========================================================================= */

/* (a) RESET del contenedor Footer de Enfold: bloque a ancho completo, sin
   padding del widget, fondo transparente; socket nativo oculto. */
#top #footer { background: transparent !important; padding: 0 !important; border: 0 !important; }
#top #footer .container { width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 !important; }
#top #footer .flex_column,
#top #footer .widget,
#top #footer .textwidget { width: 100% !important; margin: 0 !important; padding: 0 !important; }
#top #footer .widget { float: none !important; }
#top #socket { display: none !important; }
/* Reset de enlaces dentro del footer (Enfold pinta #footer a con su color/decoración). */
#top #footer .gen-footer a { text-decoration: none !important; box-shadow: none !important; border: 0 !important; }

/* (b) Lienzo: vídeo a sangre, SIN overlay (cielo limpio). El dark vive en las cajas. */
.gen-footer {
  position: relative;
  overflow: hidden;
  background: #0d0f14; /* fallback antes de cargar el vídeo / móvil sin vídeo */
  isolation: isolate;
}
.gen-footer__video {
  position: absolute; inset: 0; z-index: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  pointer-events: none;
}
.gen-footer__inner {
  position: relative; z-index: 2;
  max-width: 1310px; margin: 0 auto;
  padding: 120px 15px;           /* aire EXTERNO 120 arriba/abajo (vídeo visible) */
  color: #fff;
  display: flex; flex-direction: column; gap: 16px; /* hueco entre caja 1 y 2 */
}

/* (c) Cajas oscuras opacas (~1280 útiles dentro del padding del inner). */
.gen-footer__box {
  background: rgba(16, 18, 23, 0.92);
  border-radius: 8px;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.gen-footer__box--main   { padding: 48px 16px 28px; } /* lateral interno 16 */
.gen-footer__box--social { padding: 22px 16px; }

/* (d) Rejilla de 5 columnas dentro de la caja principal. */
.gen-footer__cols {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 40px 28px;
  align-items: start;
}

/* Títulos de columna (blanco, 15/500, caja normal). */
.gen-fcol__title {
  margin: 0 0 18px !important;
  padding: 8px 0 4px !important;
  font-family: var(--gen-font-helvetica);
  font-size: 15px !important; line-height: 21px !important;
  font-weight: 500 !important; letter-spacing: 0 !important;
  color: #fff !important; text-transform: none !important;
}
.gen-fcol__title--mt { margin-top: 32px !important; }
.gen-fcol__title a { color: #fff !important; text-decoration: none !important; }
.gen-fcol__title a:hover { color: #fff !important; opacity: .8; }

/* Listas de enlaces (gris claro 14/400, hover blanco). */
.gen-fcol__links { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.gen-fcol__links li { margin: 0 0 12px !important; padding: 0 !important; line-height: 1.35; }
.gen-fcol__links li:last-child { margin-bottom: 0 !important; }
.gen-fcol__links a {
  font-family: var(--gen-font-helvetica);
  font-size: 14px; line-height: 19px; font-weight: 400;
  color: rgba(255,255,255,0.66); transition: color .18s ease;
}
.gen-fcol__links a:hover { color: #fff !important; }

/* Bloques de logos: certificaciones y empresa registrada. */
.gen-certs { display: grid; grid-template-columns: repeat(3, 46px); gap: 14px 16px; }
.gen-certs img { width: 46px; height: auto; display: block; opacity: .92; }
.gen-registered { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.gen-registered img { width: 150px; max-width: 100%; height: auto; display: block; }

/* (e) Columna 5 (marca): logo Perú arriba · Oficinas · badge Ariba abajo. */
.gen-fcol--brand { display: flex; flex-direction: column; gap: 24px; height: 100%; }
.gen-fbrand { width: 168px; max-width: 100%; height: auto; display: block; }
.gen-fariba { width: 150px; max-width: 100%; height: auto; display: block; margin-top: auto; }

.gen-offices { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.gen-office { display: flex; flex-direction: column; gap: 2px; }
.gen-office__city { font-size: 13px; line-height: 18px; font-weight: 500; color: #fff; }
.gen-office__addr { font-size: 12px; line-height: 17px; font-weight: 400; color: rgba(255,255,255,0.55); }
.gen-office__contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.gen-office__contact a { font-size: 13px; line-height: 18px; color: rgba(255,255,255,0.7); text-decoration: none !important; transition: color .18s ease; }
.gen-office__contact a:hover { color: #fff !important; }

/* (f) Línea legal — bajo las redes (caja 2), centrada, sin filete. */
.gen-footer__legal {
  margin: 0 !important; padding: 0;
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 6px 18px; font-size: 12px; line-height: 18px; color: rgba(255,255,255,0.5);
  text-align: center;
}
.gen-footer__legal a { color: rgba(255,255,255,0.5); text-decoration: none !important; transition: color .18s ease; }
.gen-footer__legal a:hover { color: #fff !important; }

/* (g) Caja 2 — redes centradas + legal debajo, todo centrado horizontalmente. */
.gen-footer__box--social { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.gen-social { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; gap: 26px; align-items: center; }
.gen-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; color: rgba(255,255,255,0.85);
  transition: color .18s ease, transform .18s ease;
}
.gen-social a:hover { color: #fff !important; transform: translateY(-1px); }
.gen-social svg { width: 20px; height: 20px; }

/* (h) Responsive. */
@media (max-width: 1100px) {
  .gen-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gen-fcol--brand { height: auto; }
  .gen-fariba { margin-top: 0; }
}
@media (max-width: 760px) {
  .gen-footer__video { display: none !important; }
  .gen-footer__inner { padding: 28px 14px; }
  .gen-footer__box--main { padding: 32px 22px 24px; }
  .gen-footer__box--social { padding: 20px 22px; }
  .gen-footer__cols { grid-template-columns: 1fr; gap: 32px; }
  .gen-fcol__title--mt { margin-top: 28px !important; }
}

/* El vídeo en bucle es decorativo: respétese reduce-motion. */
@media (prefers-reduced-motion: reduce) {
  .gen-footer__video { display: none !important; }
}

/* =========================================================================
   RESPONSIVE — colapso a 1 columna por debajo del escritorio.
   ------------------------------------------------------------------------
   Los layouts custom del cuerpo fuerzan anchos px/calc de escritorio con
   `!important` sobre las columnas de Enfold (av_one_half / av_one_third), lo que
   pisa el apilado nativo del tema. Se neutralizan replicando la especificidad de
   cada override (con sus variantes .first / :not(.first)) → ganan por cascada.

   DOS escalones:
   · ≤989px (TABLET + MÓVIL): página Empresa (el layout de nav lateral con offset
     fijo 342px solo es válido en desktop ancho ≥1310) + componentes de ancho px
     FIJO que NO adaptan (gen-linkrow 411, gen-filial 410/422, gen-cert-grid 411):
     si quedan en su ancho fijo, en tablet no caben en 2 → se apilan descolocados
     (margin-left del gutter = desplazamiento) y reaparece el doble filete.
   · ≤767px (solo MÓVIL): componentes ADAPTATIVOS con calc() (tercios/mitades
     genéricos, gen-cols-5-5, gen-txtimg) que en tablet caben bien en multi-columna.
   ========================================================================= */

/* ---- TABLET + MÓVIL (≤989px) ---- */
@media (max-width: 989px) {

  /* (1) Página Empresa: se retira el nav lateral y su offset de 342px (inviable
     fuera de desktop ancho) → el contenido ocupa todo el ancho disponible. */
  #top .gen-s-sidenav,
  #top .gen-sidenav { display: none !important; }
  #top .gen-contact-tab { display: none !important; }
  #top .gen-col9 > .container { padding-left: 15px !important; padding-right: 15px !important; }

  /* (2) Componentes de ancho px FIJO → 1 columna (replican especificidad de su
     override, con .first/:not(.first), para anular ancho y margin-left del gutter). */
  #top .gen-linkrow .flex_column.av_one_half,
  #top .gen-linkrow .flex_column.av_one_half:not(.first),
  #top .gen-filial .flex_column.av_one_half.first,
  #top .gen-filial .flex_column.av_one_half:not(.first),
  #top .gen-cert-grid .flex_column.av_one_half {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  #top .gen-cert-grid .flex_column.av_one_half { margin-bottom: var(--gen-space-24, 24px) !important; }

  /* (3) gen-linkrow apilado (Innovación / Sostenibilidad): cada item lleva filete
     ARRIBA y ABAJO; al apilarse, el inferior de uno y el superior del siguiente se
     ven como DOS líneas muy juntas. Se quita el borde superior (y el hueco) de la 2ª
     en adelante → UN solo filete compartido con el mismo aire (padding 48) a cada lado.
     Y más aire entre la cabecera "Una convicción…" y el primer item. */
  #top .gen-linkrow .flex_column.av_one_half:not(.first) {
    border-top: 0 !important;
    margin-top: 0 !important;
  }
  #top .gen-linkrow .flex_column.av_one_half.first {
    margin-top: var(--gen-space-48, 48px) !important;
  }

  /* (4) Bloque "Filial Perú" demasiado pegado al bloque anterior → se separa. */
  #top .gen-filial .flex_column.av_one_half.first {
    margin-top: var(--gen-space-48, 48px) !important;
  }

  /* (4b) gen-coltext (4 col, divisor vertical) → 1 columna. El divisor vertical no tiene
     sentido apilado: se sustituye por una regla HORIZONTAL entre items (top en cada uno
     salvo el primero), con padding vertical 24. */
  #top .gen-coltext .flex_column.av_one_fourth,
  #top .gen-coltext--3 .flex_column.av_one_third {
    flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important;
    border-left: 0 !important;
    border-top: 1px solid var(--gen-color-grey-500, #767676) !important;
    padding: var(--gen-space-24, 24px) 0 !important;
  }
  #top .gen-coltext .flex_column.av_one_fourth.first,
  #top .gen-coltext--3 .flex_column.av_one_third.first { border-top: 0 !important; padding-top: 0 !important; }
  /* en móvil la variante --3 vuelve al ritmo base (sin row-gap; el H2 aporta su hueco) */
  #top .gen-coltext--3 .entry-content-wrapper { row-gap: 0 !important; }
  #top .gen-coltext--3 .entry-content-wrapper > .av-special-heading-h2.gen-acc { margin-bottom: var(--gen-space-48, 48px) !important; }

  /* (4c) gen-rulecols (2 col, regla solo inferior) → 1 columna. La regla inferior única ya separa
     cada tarjeta al apilar (sin doble filete). */
  #top .gen-rulecols .flex_column.av_one_half {
    width: 100% !important; max-width: 100% !important; margin-left: 0 !important;
  }

  /* (4d) gen-rulegrid (3×2) → 1 columna. Sin gutter ni row-gap (la regla inferior única ya separa
     visualmente cada tarjeta). El lead se separa 40 de la 1ª tarjeta. */
  #top .gen-rulegrid > .container > .av_textblock_section { margin-bottom: var(--gen-space-40, 40px) !important; }
  #top .gen-rulegrid .flex_column.av_one_third {
    width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-top: 0 !important;
  }
}

/* ---- MÓVIL (≤767px) — componentes adaptativos (calc) a 1 columna ---- */
@media (max-width: 767px) {

  /* (5) Genéricos + multi-columna adaptativos → 1 columna, sin margen lateral. */
  #top .flex_column.av_one_half,
  #top .flex_column.av_one_third,
  #top .gen-cols-5-5 .flex_column.av_one_half,
  #top .gen-cols-5-5 .flex_column.av_one_half:not(.first),
  #top .gen-txtimg .flex_column.av_one_half.first,
  #top .gen-txtimg .flex_column.av_one_half:not(.first),
  #top .gen-txtimg--rev .flex_column.av_one_half.first,
  #top .gen-txtimg--rev .flex_column.av_one_half:not(.first) {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* (6) Respiro vertical entre columnas apiladas en los bloques de 2 mitades. */
  #top .gen-cols-5-5 .flex_column.av_one_half:not(.first),
  #top .gen-txtimg .flex_column.av_one_half:not(.first),
  #top .gen-txtimg--rev .flex_column.av_one_half:not(.first) {
    margin-top: var(--gen-space-32, 32px) !important;
  }
}