/* ═══════════════════════════════════════════════════════════════════════════
   LEW_BodyTitle — Sistema de títulos de sección
   ─────────────────────────────────────────────────────────────────────────
   Fuente única de verdad. No duplicar en módulos.
   Los módulos pueden ajustar márgenes contextuales pero NO redefinir
   tipografía, colores ni bordes estructurales.

   Color de acento : #1a2332  (navy oscuro, coherente con headers del sitio)
   Tipografía      : Barlow Condensed 700, uppercase, letter-spacing .16em

   ARQUITECTURA:
     .LEW_BodyTitle          → SOLO tipografía. Sin bordes. Sin padding lateral.
                               Siempre se combina con una variante.

   Variantes (autónomas, no dependen de la base para sus bordes):
     .LEW_BodyTitle_Left     → border-left + padding izq
     .LEW_BodyTitle_Right    → border-right + padding dcha (espejo)
     .LEW_BodyTitle_Center   → sin bordes laterales, border-bottom como acento
     .LEW_BodyTitle_Grouped  → badge sólido (fondo #1a2332, texto blanco)

   Contexto oscuro:
     .LEW_BodyHeaderContainer .LEW_BodyTitle_*  → adapta colores para fondo oscuro
   ═══════════════════════════════════════════════════════════════════════════ */


/* ── Base: solo tipografía ────────────────────────────────────────────────── */
/* Sin bordes ni padding lateral. Cada variante define su propio tratamiento. */
.LEW_BodyTitle {
    display: block !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .16em !important;
    color: #1a2035 !important;
    margin: 6px 0 5px !important;
    line-height: 1.2 !important;
    padding: 3px 0 !important;
}
/* Selector reforzado para ganar a Elementor (3 clases) cuando se usa en heading widget */
.elementor-widget-heading .elementor-heading-title.LEW_BodyTitle {
    color: #1a2035 !important;
}

/* ── Tamaños por etiqueta ─────────────────────────────────────────────────── */
h1.LEW_BodyTitle { font-size: 28px !important; }
h2.LEW_BodyTitle { font-size: 24px !important; }
h3.LEW_BodyTitle { font-size: 17px !important; }
h4.LEW_BodyTitle { font-size: 15px !important; }

/* ── H3: contenido — ancho al texto, no ocupa toda la fila ───────────────── */
h3.LEW_BodyTitle_Left {
    width: fit-content !important;
    max-width: 100% !important;
    margin-top: 2px !important;
}

/* ── Widget HTML de Elementor que contiene un H2 LEW_BodyTitle: forzar ancho completo ── */
.elementor-widget-html:has(h2.LEW_BodyTitle),
.elementor-widget-html:has(h2.LEW_BodyTitle) > .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    flex-grow: 1 !important;
    align-self: stretch !important;
}

/* ── H2: variante prominente — borde izq más grueso + línea inferior sólida completa ── */
h2.LEW_BodyTitle_Left {
    width: 100% !important;
    box-sizing: border-box !important;
    border-left-width: 4px !important;
    border-bottom: 1px solid rgba(26,32,53,0.25) !important;
    padding-bottom: 6px !important;
    margin-bottom: 2px !important;
}


/* ── Left: border izquierdo + línea inferior suave ───────────────────────── */
.LEW_BodyTitle_Left {
    text-align: left !important;
    border-left: 3px solid #1a2332 !important;
    border-bottom: 1px solid rgba(26,35,50,.2) !important;
    padding: 3px 0 4px 16px !important;
}


/* ── Right: espejo de Left ───────────────────────────────────────────────── */
.LEW_BodyTitle_Right {
    text-align: right !important;
    border-right: 3px solid #1a2332 !important;
    border-bottom: 1px solid rgba(26,35,50,.2) !important;
    padding: 3px 16px 4px 0 !important;
}


/* ── Center: solo border-bottom suave (igual que Left/Right) ─────────────── */
.LEW_BodyTitle_Center {
    text-align: center !important;
    border-bottom: 1px solid rgba(26,35,50,.2) !important;
    padding: 3px 0 6px !important;
}


/* ── Grouped: badge sólido, ancho al contenido ───────────────────────────── */
/* Para cabeceras de grupo/sección. El fondo sólido es el elemento visual.   */
.LEW_BodyTitle_Grouped {
    display: block !important;
    width: fit-content !important;
    background: #1a2332 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 8px 18px !important;
    margin: 10px 0 8px !important;
    max-width: 100% !important;
}


/* ── Contexto fondo oscuro (.LEW_BodyHeaderContainer) ───────────────────── */
/* Adapta colores cuando el título aparece sobre un header de fondo oscuro.  */
.LEW_BodyHeaderContainer .LEW_BodyTitle {
    color: #fff !important;
}
.LEW_BodyHeaderContainer .LEW_BodyTitle_Left {
    border-left-color: rgba(255,255,255,.5) !important;
    border-bottom-color: rgba(255,255,255,.2) !important;
}
.LEW_BodyHeaderContainer .LEW_BodyTitle_Right {
    border-right-color: rgba(255,255,255,.5) !important;
    border-bottom-color: rgba(255,255,255,.2) !important;
}
.LEW_BodyHeaderContainer .LEW_BodyTitle_Center {
    border-bottom-color: rgba(255,255,255,.5) !important;
}
