.elementor-7 .elementor-element.elementor-element-ddccf30{--display:grid;--min-height:700px;--e-con-grid-template-columns:repeat(1, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--overlay-opacity:0.5;--padding-top:2.25rem;--padding-bottom:2.25rem;--padding-left:0rem;--padding-right:0rem;}.elementor-7 .elementor-element.elementor-element-ddccf30:not(.elementor-motion-effects-element-type-background), .elementor-7 .elementor-element.elementor-element-ddccf30 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-c58817e );background:url("https://images.pexels.com/videos/29458457/pexels-photo-29458457.jpeg?auto=compress&cs=tinysrgb&fit=crop&h=630&w=1200") 50% 50%;background-size:cover;}.elementor-7 .elementor-element.elementor-element-ddccf30::before, .elementor-7 .elementor-element.elementor-element-ddccf30 > .elementor-background-video-container::before, .elementor-7 .elementor-element.elementor-element-ddccf30 > .e-con-inner > .elementor-background-video-container::before, .elementor-7 .elementor-element.elementor-element-ddccf30 > .elementor-background-slideshow::before, .elementor-7 .elementor-element.elementor-element-ddccf30 > .e-con-inner > .elementor-background-slideshow::before, .elementor-7 .elementor-element.elementor-element-ddccf30 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#000000;--background-overlay:'';}.elementor-7 .elementor-element.elementor-element-ddccf30::before{filter:brightness( 100% ) contrast( 100% ) saturate( 100% ) blur( 0px ) hue-rotate( 0deg );}.elementor-7 .elementor-element.elementor-element-74068c0{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:flex-start;--overlay-opacity:0.5;--z-index:10;}.elementor-7 .elementor-element.elementor-element-74068c0::before, .elementor-7 .elementor-element.elementor-element-74068c0 > .elementor-background-video-container::before, .elementor-7 .elementor-element.elementor-element-74068c0 > .e-con-inner > .elementor-background-video-container::before, .elementor-7 .elementor-element.elementor-element-74068c0 > .elementor-background-slideshow::before, .elementor-7 .elementor-element.elementor-element-74068c0 > .e-con-inner > .elementor-background-slideshow::before, .elementor-7 .elementor-element.elementor-element-74068c0 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-7 .elementor-element.elementor-element-2085031{width:var( --container-widget-width, 600px );max-width:600px;--container-widget-width:600px;--container-widget-flex-grow:0;text-align:start;}.elementor-7 .elementor-element.elementor-element-2085031.elementor-element{--align-self:flex-start;}.elementor-7 .elementor-element.elementor-element-2085031 .elementor-heading-title{font-family:var( --e-global-typography-5535e8e-font-family ), Sans-serif;font-size:var( --e-global-typography-5535e8e-font-size );font-weight:var( --e-global-typography-5535e8e-font-weight );color:var( --e-global-color-58be983 );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-7 .elementor-element.elementor-element-e636516{width:var( --container-widget-width, 600px );max-width:600px;--container-widget-width:600px;--container-widget-flex-grow:0;text-align:start;font-family:var( --e-global-typography-887fca2-font-family ), Sans-serif;font-size:var( --e-global-typography-887fca2-font-size );font-weight:var( --e-global-typography-887fca2-font-weight );color:var( --e-global-color-58be983 );}.elementor-7 .elementor-element.elementor-element-e636516.elementor-element{--align-self:flex-start;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-7 .elementor-element.elementor-element-61ba7db .elementor-button{background-color:var( --e-global-color-5420d44 );font-family:var( --e-global-typography-6e52843-font-family ), Sans-serif;font-size:var( --e-global-typography-6e52843-font-size );font-weight:var( --e-global-typography-6e52843-font-weight );fill:var( --e-global-color-58be983 );color:var( --e-global-color-58be983 );border-radius:50px 50px 50px 50px;padding:20px 45px 20px 45px;}.elementor-7 .elementor-element.elementor-element-76384ba{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:2.25rem;--padding-bottom:2.25rem;--padding-left:0rem;--padding-right:0rem;}.elementor-7 .elementor-element.elementor-element-76384ba:not(.elementor-motion-effects-element-type-background), .elementor-7 .elementor-element.elementor-element-76384ba > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-c58817e );}.elementor-7 .elementor-element.elementor-element-6aabfe1{--display:flex;}.elementor-7 .elementor-element.elementor-element-d34ce99{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7 .elementor-element.elementor-element-f7ed4dd{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:center;}.elementor-7 .elementor-element.elementor-element-f7ed4dd .elementor-heading-title{font-family:var( --e-global-typography-c83476d-font-family ), Sans-serif;font-size:var( --e-global-typography-c83476d-font-size );font-weight:var( --e-global-typography-c83476d-font-weight );-webkit-text-stroke-color:#000;stroke:#000;color:var( --e-global-color-58be983 );}.elementor-7 .elementor-element.elementor-element-de7f5bd{margin:15px 0px calc(var(--kit-widget-spacing, 0px) + 030px) 0px;text-align:center;color:#FFFFFF;}.elementor-7 .elementor-element.elementor-element-fdcb56c{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-7 .elementor-element.elementor-element-df3b27a{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;--border-radius:20px 20px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-7 .elementor-element.elementor-element-df3b27a.e-con{--align-self:flex-start;}.elementor-7 .elementor-element.elementor-element-88a2a9e{--display:flex;--border-radius:20px 20px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-7 .elementor-element.elementor-element-88a2a9e:not(.elementor-motion-effects-element-type-background), .elementor-7 .elementor-element.elementor-element-88a2a9e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-7 .elementor-element.elementor-element-d13d5fe{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 15px) 0px;}.elementor-7 .elementor-element.elementor-element-d13d5fe.elementor-element{--align-self:flex-start;}.elementor-7 .elementor-element.elementor-element-d13d5fe img{width:100%;border-radius:20px 20px 0px 0px;}.elementor-7 .elementor-element.elementor-element-a369029{padding:20px 20px 0px 20px;}.elementor-7 .elementor-element.elementor-element-a369029 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:22px;font-weight:700;line-height:20px;color:#000000;}.elementor-7 .elementor-element.elementor-element-3e790c6{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 020px) 0px;padding:18px 18px 18px 18px;text-align:start;font-family:var( --e-global-typography-887fca2-font-family ), Sans-serif;font-size:var( --e-global-typography-887fca2-font-size );font-weight:var( --e-global-typography-887fca2-font-weight );color:#000000;}.elementor-7 .elementor-element.elementor-element-3e790c6 p{margin-block-end:0px;}.elementor-7 .elementor-element.elementor-element-3e790c6 a{color:#000000;}.elementor-7 .elementor-element.elementor-element-3795db0{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;--border-radius:20px 20px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-7 .elementor-element.elementor-element-3795db0.e-con{--align-self:flex-start;}.elementor-7 .elementor-element.elementor-element-c0d6e5b{--display:flex;--border-radius:20px 20px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-7 .elementor-element.elementor-element-c0d6e5b:not(.elementor-motion-effects-element-type-background), .elementor-7 .elementor-element.elementor-element-c0d6e5b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-7 .elementor-element.elementor-element-ec0945c{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 15px) 0px;}.elementor-7 .elementor-element.elementor-element-ec0945c.elementor-element{--align-self:flex-start;}.elementor-7 .elementor-element.elementor-element-ec0945c img{width:100%;border-radius:20px 20px 0px 0px;}.elementor-7 .elementor-element.elementor-element-eee50e2{padding:20px 20px 0px 20px;}.elementor-7 .elementor-element.elementor-element-eee50e2 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:22px;font-weight:700;line-height:20px;color:#000000;}.elementor-7 .elementor-element.elementor-element-1bb347b{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 020px) 0px;padding:18px 18px 18px 18px;text-align:start;font-family:var( --e-global-typography-887fca2-font-family ), Sans-serif;font-size:var( --e-global-typography-887fca2-font-size );font-weight:var( --e-global-typography-887fca2-font-weight );color:#000000;}.elementor-7 .elementor-element.elementor-element-1bb347b p{margin-block-end:0px;}.elementor-7 .elementor-element.elementor-element-1bb347b a{color:#000000;}.elementor-7 .elementor-element.elementor-element-7930e2b{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;--border-radius:20px 20px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-7 .elementor-element.elementor-element-7930e2b.e-con{--align-self:flex-start;}.elementor-7 .elementor-element.elementor-element-72f9157{--display:flex;--border-radius:20px 20px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-7 .elementor-element.elementor-element-72f9157:not(.elementor-motion-effects-element-type-background), .elementor-7 .elementor-element.elementor-element-72f9157 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-7 .elementor-element.elementor-element-09954e2{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 15px) 0px;}.elementor-7 .elementor-element.elementor-element-09954e2.elementor-element{--align-self:flex-start;}.elementor-7 .elementor-element.elementor-element-09954e2 img{width:100%;border-radius:20px 20px 0px 0px;}.elementor-7 .elementor-element.elementor-element-4a1e92a{padding:20px 20px 0px 20px;}.elementor-7 .elementor-element.elementor-element-4a1e92a .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:22px;font-weight:700;line-height:20px;color:#000000;}.elementor-7 .elementor-element.elementor-element-b6cb573{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 020px) 0px;padding:18px 18px 18px 18px;text-align:start;font-family:var( --e-global-typography-887fca2-font-family ), Sans-serif;font-size:var( --e-global-typography-887fca2-font-size );font-weight:var( --e-global-typography-887fca2-font-weight );color:#000000;}.elementor-7 .elementor-element.elementor-element-b6cb573 p{margin-block-end:0px;}.elementor-7 .elementor-element.elementor-element-b6cb573 a{color:#000000;}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-7 .elementor-element.elementor-element-ddccf30{--min-height:610px;--grid-auto-flow:row;}.elementor-7 .elementor-element.elementor-element-2085031 .elementor-heading-title{font-size:var( --e-global-typography-5535e8e-font-size );}.elementor-7 .elementor-element.elementor-element-e636516{font-size:var( --e-global-typography-887fca2-font-size );}.elementor-7 .elementor-element.elementor-element-61ba7db .elementor-button{font-size:var( --e-global-typography-6e52843-font-size );}.elementor-7 .elementor-element.elementor-element-f7ed4dd .elementor-heading-title{font-size:var( --e-global-typography-c83476d-font-size );}.elementor-7 .elementor-element.elementor-element-fdcb56c{--grid-auto-flow:row;}.elementor-7 .elementor-element.elementor-element-3e790c6{font-size:var( --e-global-typography-887fca2-font-size );}.elementor-7 .elementor-element.elementor-element-1bb347b{font-size:var( --e-global-typography-887fca2-font-size );}.elementor-7 .elementor-element.elementor-element-b6cb573{font-size:var( --e-global-typography-887fca2-font-size );}}@media(max-width:767px){.elementor-7 .elementor-element.elementor-element-ddccf30{--e-con-grid-template-columns:repeat(1, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--padding-top:1rem;--padding-bottom:1rem;--padding-left:0rem;--padding-right:0rem;}.elementor-7 .elementor-element.elementor-element-74068c0{--content-width:360px;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:15px;--padding-right:15px;}.elementor-7 .elementor-element.elementor-element-2085031{text-align:center;}.elementor-7 .elementor-element.elementor-element-2085031 .elementor-heading-title{font-size:var( --e-global-typography-5535e8e-font-size );}.elementor-7 .elementor-element.elementor-element-e636516{text-align:center;font-size:var( --e-global-typography-887fca2-font-size );}.elementor-7 .elementor-element.elementor-element-61ba7db{width:100%;max-width:100%;}.elementor-7 .elementor-element.elementor-element-61ba7db.elementor-element{--align-self:stretch;}.elementor-7 .elementor-element.elementor-element-61ba7db .elementor-button{font-size:var( --e-global-typography-6e52843-font-size );}.elementor-7 .elementor-element.elementor-element-6aabfe1{--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-7 .elementor-element.elementor-element-6aabfe1.e-con{--align-self:center;}.elementor-7 .elementor-element.elementor-element-f7ed4dd .elementor-heading-title{font-size:var( --e-global-typography-c83476d-font-size );}.elementor-7 .elementor-element.elementor-element-fdcb56c{--e-con-grid-template-columns:repeat(1, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-7 .elementor-element.elementor-element-df3b27a{--content-width:400px;}.elementor-7 .elementor-element.elementor-element-df3b27a.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-7 .elementor-element.elementor-element-3e790c6{font-size:var( --e-global-typography-887fca2-font-size );}.elementor-7 .elementor-element.elementor-element-3795db0{--content-width:400px;}.elementor-7 .elementor-element.elementor-element-3795db0.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-7 .elementor-element.elementor-element-1bb347b{font-size:var( --e-global-typography-887fca2-font-size );}.elementor-7 .elementor-element.elementor-element-7930e2b{--content-width:400px;}.elementor-7 .elementor-element.elementor-element-7930e2b.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-7 .elementor-element.elementor-element-b6cb573{font-size:var( --e-global-typography-887fca2-font-size );}}@media(min-width:768px){.elementor-7 .elementor-element.elementor-element-d34ce99{--content-width:768px;}}@media(max-width:1024px) and (min-width:768px){.elementor-7 .elementor-element.elementor-element-df3b27a{--content-width:768px;}.elementor-7 .elementor-element.elementor-element-3795db0{--content-width:768px;}.elementor-7 .elementor-element.elementor-element-7930e2b{--content-width:768px;}}/* Start custom CSS *//* ============================================================
   CONSTRUYE BIM&VERDE — CSS Personalizado para Elementor
   Pegar en: Elementor > Configuración del sitio > CSS Personalizado
   O en: WordPress > Apariencia > Personalizar > CSS Adicional
   ============================================================ */


/* ============================================================
   1. VARIABLES GLOBALES DE MARCA
   Cambia aquí los colores y se actualizan en toda la landing
   ============================================================ */

:root {
  /* Colores principales */
  --cbv-azul:        #1E3A5F;   /* Azul noche — hero, nav */
  --cbv-azul-mid:    #2D5A8E;   /* Azul medio — iconos, bordes */
  --cbv-azul-light:  #4A7AB5;   /* Azul claro — hover states */

  /* Verdes de marca */
  --cbv-verde:       #1E7A3C;   /* Verde oscuro */
  --cbv-verde-mid:   #2E9E4F;   /* Verde BIM&VERDE — acento nav */

  /* Teal — color de CTA principal */
  --cbv-teal:        #1DB88A;   /* Teal base */
  --cbv-teal-light:  #3DD6A3;   /* Teal claro — textos sobre oscuro */

  /* Colores de acento */
  --cbv-amber:       #E8A225;   /* Urgencia, escasez */
  --cbv-rojo:        #C0392B;   /* CTA de urgencia final únicamente */

  /* Fondos */
  --cbv-blanco:      #FFFFFF;
  --cbv-hueso:       #F4F1ED;   /* Fondo alternativo secciones */
  --cbv-gris-oscuro: #1A202C;   /* Footer, texto principal */
  --cbv-gris-mid:    #4A5568;   /* Texto secundario */
  --cbv-gris-light:  #E2E8F0;   /* Bordes, separadores */

  /* Tipografías */
  --cbv-font-titulo: 'Sora', sans-serif;
  --cbv-font-body:   'DM Sans', sans-serif;
  --cbv-font-mono:   'JetBrains Mono', monospace;

  /* Espaciado de secciones */
  --cbv-section-padding: 80px 5%;
  --cbv-radio:       12px;
  --cbv-radio-lg:    16px;
}


/* ============================================================
   2. TIPOGRAFÍA GLOBAL
   ============================================================ */

/* Importar fuentes desde Google Fonts — pegar también en
   Elementor > Configuración del sitio > Fuentes Personalizadas */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&family=DM+Sans:ital,wght@0,400;0,500;1,400&family=JetBrains+Mono:wght@500&display=swap');

body {
  font-family: var(--cbv-font-body);
  color: var(--cbv-gris-oscuro);
  background-color: var(--cbv-blanco);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--cbv-font-titulo);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

/* Tamaños de heading */
h1 { font-size: clamp(30px, 4.2vw, 52px); }
h2 { font-size: clamp(24px, 3.2vw, 38px); }
h3 { font-size: 22px; }

p {
  font-family: var(--cbv-font-body);
  font-size: 16px;
  line-height: 1.7;
  color: var(--cbv-gris-mid);
}

/* Números y métricas */
.cbv-metrica {
  font-family: var(--cbv-font-mono);
  font-weight: 500;
  color: var(--cbv-teal);
  font-size: 24px;
}


/* ============================================================
   3. BARRA DE PRE-ANUNCIO (Top Bar)
   Widget: Texto o HTML en Elementor
   ============================================================ */

.cbv-topbar {
  background-color: var(--cbv-azul);
  color: #ffffff;
  text-align: center;
  padding: 10px 20px;
  font-family: var(--cbv-font-titulo);
  font-size: 13px;
  position: relative;
  z-index: 100;
}

.cbv-topbar strong {
  color: var(--cbv-teal-light);
}


/* ============================================================
   4. NAVEGACIÓN (Header de Elementor)
   ============================================================ */

/* Contenedor del header */
.cbv-nav {
  background-color: var(--cbv-blanco);
  border-bottom: 1px solid var(--cbv-gris-light);
  padding: 0 5%;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 99;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
}

/* Logo de marca en nav */
.cbv-nav-brand {
  font-family: var(--cbv-font-titulo);
}

.cbv-nav-brand .subtitulo {
  font-size: 10px;
  color: var(--cbv-gris-mid);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cbv-nav-brand .nombre {
  font-size: 17px;
  font-weight: 700;
  color: var(--cbv-azul);
  line-height: 1;
}

.cbv-nav-brand .nombre span {
  color: var(--cbv-verde-mid);
}

/* CTA del nav */
.cbv-nav-cta {
  background-color: var(--cbv-teal);
  color: #ffffff !important;
  font-family: var(--cbv-font-titulo);
  font-size: 13px;
  font-weight: 600;
  padding: 10px 22px;
  border-radius: 8px;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.cbv-nav-cta:hover {
  background-color: var(--cbv-verde-mid);
}

/* Ocultar CTA nav en mobile */
@media (max-width: 768px) {
  .cbv-nav-cta { display: none; }
}


/* ============================================================
   5. HERO SECTION
   Sección Elementor con fondo personalizado
   ============================================================ */

/* Contenedor de la sección hero */
.cbv-hero {
  background-color: var(--cbv-azul);
  min-height: 91vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  padding: var(--cbv-section-padding);
}

/* Efecto de luz radial teal */
.cbv-hero::before {
  content: '';
  position: absolute;
  right: -100px;
  top: 50%;
  transform: translateY(-50%);
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(29, 184, 138, 0.14) 0%, transparent 70%);
  pointer-events: none;
}

/* Cuadrícula de fondo sutil */
.cbv-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0.04;
  background-image:
    linear-gradient(var(--cbv-teal) 1px, transparent 1px),
    linear-gradient(90deg, var(--cbv-teal) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
}

/* Contenido del hero */
.cbv-hero-contenido {
  max-width: 660px;
  position: relative;
  z-index: 2;
  animation: cbv-fadeUp 0.8s ease both;
}

/* Badge animado del hero */
.cbv-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(29, 184, 138, 0.15);
  border: 1px solid rgba(29, 184, 138, 0.3);
  border-radius: 20px;
  padding: 6px 14px;
  margin-bottom: 28px;
}

.cbv-hero-badge .punto {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: var(--cbv-teal-light);
  animation: cbv-pulse 2s infinite;
}

.cbv-hero-badge .texto {
  font-size: 12px;
  color: var(--cbv-teal-light);
  font-family: var(--cbv-font-titulo);
  font-weight: 500;
  letter-spacing: 0.04em;
}

/* Headline del hero */
.cbv-hero h1 {
  color: #ffffff;
  margin-bottom: 20px;
}

.cbv-hero h1 .acento {
  color: var(--cbv-teal-light);
}

/* Subheadline del hero */
.cbv-hero .subtitulo {
  font-size: 17px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.7;
  margin-bottom: 36px;
  max-width: 520px;
}

/* Estadísticas del hero */
.cbv-hero-stats {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  margin-top: 48px;
}

.cbv-hero-stats .stat-numero {
  font-family: var(--cbv-font-mono);
  font-size: 28px;
  font-weight: 500;
  color: var(--cbv-teal-light);
  display: block;
}

.cbv-hero-stats .stat-label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.cbv-hero-stats .divisor {
  width: 1px;
  background: rgba(255, 255, 255, 0.12);
  align-self: stretch;
}

@media (max-width: 768px) {
  .cbv-hero {
    padding: 60px 5% 50px;
    min-height: auto;
  }
  .cbv-hero-stats { gap: 20px; }
}


/* ============================================================
   6. BARRA DE CREDENCIALES
   ============================================================ */

.cbv-cred-bar {
  background-color: var(--cbv-hueso);
  padding: 22px 5%;
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
  justify-content: center;
  border-bottom: 1px solid var(--cbv-gris-light);
}

.cbv-cred-bar .etiqueta {
  font-size: 11px;
  color: var(--cbv-gris-mid);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

/* Ítem de credencial individual */
.cbv-cred-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--cbv-font-titulo);
  font-size: 13px;
  font-weight: 700;
}

/* Badge de color de la credencial */
.cbv-cred-badge {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: #ffffff;
}

.cbv-cred-badge.leed  { background-color: #2E7D32; }
.cbv-cred-badge.edge  { background-color: #0277BD; }
.cbv-cred-badge.aut   { background-color: #E65100; }
.cbv-cred-badge.iso   { background-color: #4A148C; }


/* ============================================================
   7. SECCIONES — FONDOS ALTERNADOS
   Aplicar clase a la sección Elementor
   ============================================================ */

.cbv-sec-blanco { background-color: var(--cbv-blanco); }
.cbv-sec-hueso  { background-color: var(--cbv-hueso); }
.cbv-sec-azul   { background-color: var(--cbv-azul); }

/* Padding estándar para todas las secciones */
.cbv-seccion {
  padding: var(--cbv-section-padding);
}

/* Tags de sección (etiqueta pequeña sobre el h2) */
.cbv-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 16px;
}

.cbv-tag.teal   { background: rgba(29, 184, 138, 0.15); color: var(--cbv-teal); }
.cbv-tag.verde  { background: rgba(46, 158, 79, 0.15);  color: var(--cbv-verde-mid); }
.cbv-tag.amber  { background: rgba(232, 162, 37, 0.15); color: #B7791F; }
.cbv-tag.blanco { background: rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.85); }

/* Títulos de sección */
.cbv-h2-oscuro { color: var(--cbv-gris-oscuro); }
.cbv-h2-blanco { color: #ffffff; }

/* Subtítulo debajo del h2 */
.cbv-sec-sub {
  font-size: 17px;
  color: var(--cbv-gris-mid);
  line-height: 1.7;
  max-width: 580px;
  margin-bottom: 48px;
}

.cbv-sec-sub.sobre-oscuro { color: rgba(255, 255, 255, 0.7); }


/* ============================================================
   8. BOTONES
   ============================================================ */

/* Botón primario — teal */
.cbv-btn-primario {
  background-color: var(--cbv-teal);
  color: #ffffff !important;
  font-family: var(--cbv-font-titulo);
  font-size: 15px;
  font-weight: 600;
  padding: 15px 28px;
  border-radius: 10px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
  border: none;
  cursor: pointer;
}

.cbv-btn-primario:hover {
  background-color: var(--cbv-teal-light);
  transform: translateY(-1px);
}

/* Botón fantasma — sobre fondo oscuro */
.cbv-btn-fantasma {
  background: transparent;
  color: #ffffff !important;
  font-family: var(--cbv-font-titulo);
  font-size: 15px;
  font-weight: 500;
  padding: 15px 28px;
  border-radius: 10px;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
}

.cbv-btn-fantasma:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.5);
}

/* Botón de urgencia — rojo */
.cbv-btn-urgencia {
  background-color: var(--cbv-rojo);
  color: #ffffff !important;
  font-family: var(--cbv-font-titulo);
  font-size: 15px;
  font-weight: 600;
  padding: 15px 28px;
  border-radius: 10px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
}

.cbv-btn-urgencia:hover {
  background-color: #a93226;
  transform: translateY(-1px);
}

/* Botón WhatsApp */
.cbv-btn-whatsapp {
  background-color: #25D366;
  color: #ffffff !important;
  font-family: var(--cbv-font-titulo);
  font-size: 15px;
  font-weight: 600;
  padding: 15px 26px;
  border-radius: 10px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
}

.cbv-btn-whatsapp:hover {
  background-color: #22C55E;
  transform: translateY(-1px);
}

/* FAB flotante de WhatsApp */
.cbv-whatsapp-fab {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 200;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
  text-decoration: none;
  transition: transform 0.2s ease;
}

.cbv-whatsapp-fab:hover {
  transform: scale(1.1);
}


/* ============================================================
   9. TARJETAS DE PROBLEMAS
   ============================================================ */

.cbv-pain-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 16px;
}

.cbv-pain-card {
  background: var(--cbv-blanco);
  border: 1px solid var(--cbv-gris-light);
  border-radius: var(--cbv-radio-lg);
  padding: 24px;
  position: relative;
  overflow: hidden;
}

/* Franja de color superior según nivel de urgencia */
.cbv-pain-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
}

.cbv-pain-card.critico::before { background-color: var(--cbv-rojo); }
.cbv-pain-card.alto::before    { background-color: var(--cbv-amber); }

.cbv-pain-numero {
  font-family: var(--cbv-font-mono);
  font-size: 11px;
  color: var(--cbv-gris-mid);
  margin-bottom: 10px;
}

.cbv-pain-titulo {
  font-family: var(--cbv-font-titulo);
  font-size: 16px;
  font-weight: 600;
  color: var(--cbv-gris-oscuro);
  margin-bottom: 8px;
}

.cbv-pain-desc {
  font-size: 14px;
  color: var(--cbv-gris-mid);
  line-height: 1.6;
}

.cbv-pain-tag {
  display: inline-block;
  font-size: 11px;
  padding: 3px 10px;
  border-radius: 20px;
  margin-top: 12px;
}

.cbv-pain-tag.critico { background: #FEE2E2; color: #991B1B; }
.cbv-pain-tag.alto    { background: #FEF3C7; color: #92400E; }


/* ============================================================
   10. TARJETAS DE PROCESO (3 pasos)
   ============================================================ */

.cbv-proceso-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
}

.cbv-proceso-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--cbv-radio-lg);
  padding: 28px;
}

.cbv-proceso-fase {
  font-family: var(--cbv-font-mono);
  font-size: 11px;
  color: var(--cbv-teal-light);
  margin-bottom: 16px;
  letter-spacing: 0.08em;
}

.cbv-proceso-icono {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(29, 184, 138, 0.15);
  border: 1px solid rgba(29, 184, 138, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}

.cbv-proceso-titulo {
  font-family: var(--cbv-font-titulo);
  font-size: 18px;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 8px;
}

.cbv-proceso-desc {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.6;
}

.cbv-proceso-entregable {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 12px;
  color: var(--cbv-teal-light);
}


/* ============================================================
   11. TARJETAS DE BENEFICIOS
   ============================================================ */

.cbv-beneficios-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}

.cbv-beneficio-card {
  background: var(--cbv-blanco);
  border: 1px solid var(--cbv-gris-light);
  border-radius: var(--cbv-radio-lg);
  padding: 28px;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.cbv-beneficio-card:hover {
  box-shadow: 0 8px 32px rgba(29, 184, 138, 0.12);
  transform: translateY(-2px);
}

.cbv-beneficio-icono {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}

/* Colores de fondo del ícono por beneficio */
.cbv-beneficio-icono.azul   { background: #EBF4FF; }
.cbv-beneficio-icono.verde  { background: #E6F4EA; }
.cbv-beneficio-icono.teal   { background: #E0F7EF; }
.cbv-beneficio-icono.amber  { background: #FEF9E7; }

.cbv-beneficio-titulo {
  font-family: var(--cbv-font-titulo);
  font-size: 17px;
  font-weight: 600;
  color: var(--cbv-gris-oscuro);
  margin-bottom: 8px;
}

.cbv-beneficio-desc {
  font-size: 14px;
  color: var(--cbv-gris-mid);
  line-height: 1.65;
}

.cbv-beneficio-metrica {
  font-family: var(--cbv-font-mono);
  font-size: 22px;
  font-weight: 500;
  color: var(--cbv-teal);
  margin-top: 12px;
}


/* ============================================================
   12. LISTA DE ENTREGABLES
   ============================================================ */

.cbv-entregables-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
}

.cbv-entregable {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  background: var(--cbv-blanco);
  border: 1px solid var(--cbv-gris-light);
  border-radius: var(--cbv-radio);
  padding: 18px 20px;
}

.cbv-entregable-check {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(29, 184, 138, 0.1);
  border: 1px solid rgba(29, 184, 138, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.cbv-entregable-titulo {
  font-family: var(--cbv-font-titulo);
  font-size: 14px;
  font-weight: 600;
  color: var(--cbv-gris-oscuro);
  margin-bottom: 3px;
}

.cbv-entregable-desc {
  font-size: 12px;
  color: var(--cbv-gris-mid);
  line-height: 1.5;
}


/* ============================================================
   13. SECCIÓN CONSULTOR
   ============================================================ */

.cbv-consultor-wrap {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 60px;
  align-items: center;
}

.cbv-consultor-foto {
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 20px;
  overflow: hidden;
  object-fit: cover;
}

/* Placeholder si no hay foto aún */
.cbv-consultor-placeholder {
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--cbv-azul-mid), var(--cbv-verde));
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.3);
  font-family: var(--cbv-font-titulo);
  font-size: 64px;
  font-weight: 700;
}

.cbv-consultor-creds {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 24px;
}

.cbv-consultor-cred {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.cbv-consultor-cred .punto {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--cbv-teal);
  margin-top: 6px;
  flex-shrink: 0;
}

.cbv-consultor-cred .texto {
  font-size: 14px;
  color: var(--cbv-gris-mid);
  line-height: 1.5;
}

/* Cita del consultor */
.cbv-cita {
  background: var(--cbv-hueso);
  border-left: 4px solid var(--cbv-teal);
  border-radius: 0 12px 12px 0;
  padding: 20px 24px;
  margin-top: 24px;
  font-size: 16px;
  font-style: italic;
  color: var(--cbv-gris-mid);
  line-height: 1.65;
}

@media (max-width: 768px) {
  .cbv-consultor-wrap {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .cbv-consultor-foto,
  .cbv-consultor-placeholder {
    aspect-ratio: 3 / 2;
  }
}


/* ============================================================
   14. TESTIMONIOS
   ============================================================ */

.cbv-testimonios-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 20px;
}

.cbv-testimonio {
  background: var(--cbv-blanco);
  border: 1px solid var(--cbv-gris-light);
  border-radius: var(--cbv-radio-lg);
  padding: 28px;
  position: relative;
}

/* Badge de resultado (ej: "Licitación ganada") */
.cbv-testimonio-resultado {
  position: absolute;
  top: 20px;
  right: 20px;
  background: #E0F7EF;
  color: var(--cbv-verde);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
}

.cbv-testimonio-estrellas {
  color: var(--cbv-amber);
  font-size: 15px;
  letter-spacing: 2px;
  margin-bottom: 16px;
}

.cbv-testimonio-texto {
  font-size: 15px;
  color: var(--cbv-gris-oscuro);
  line-height: 1.7;
  margin-bottom: 20px;
  font-style: italic;
}

.cbv-testimonio-autor {
  display: flex;
  gap: 12px;
  align-items: center;
}

.cbv-testimonio-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--cbv-font-titulo);
  font-size: 14px;
  font-weight: 600;
  flex-shrink: 0;
  overflow: hidden;
}

/* Colores de avatar por persona */
.cbv-testimonio-avatar.azul  { background: #DBEAFE; color: #1E40AF; }
.cbv-testimonio-avatar.verde { background: #D1FAE5; color: #065F46; }
.cbv-testimonio-avatar.teal  { background: #CCFBF1; color: #0F766E; }

.cbv-testimonio-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cbv-testimonio-nombre {
  font-family: var(--cbv-font-titulo);
  font-size: 14px;
  font-weight: 600;
  color: var(--cbv-gris-oscuro);
}

.cbv-testimonio-rol {
  font-size: 12px;
  color: var(--cbv-gris-mid);
}


/* ============================================================
   15. FAQ (Preguntas Frecuentes)
   ============================================================ */

.cbv-faq-lista {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cbv-faq-item {
  background: var(--cbv-blanco);
  border: 1px solid var(--cbv-gris-light);
  border-radius: var(--cbv-radio);
  overflow: hidden;
}

.cbv-faq-pregunta {
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  padding: 20px 24px;
  font-family: var(--cbv-font-titulo);
  font-size: 15px;
  font-weight: 600;
  color: var(--cbv-gris-oscuro);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

.cbv-faq-pregunta:hover {
  background-color: var(--cbv-hueso);
}

.cbv-faq-flecha {
  font-size: 16px;
  color: var(--cbv-gris-mid);
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

/* Elementor Accordion widget — sobrescribir estilos */
.elementor-accordion .elementor-tab-title {
  font-family: var(--cbv-font-titulo) !important;
  font-weight: 600 !important;
  color: var(--cbv-gris-oscuro) !important;
  border-color: var(--cbv-gris-light) !important;
}

.elementor-accordion .elementor-tab-content {
  font-family: var(--cbv-font-body) !important;
  font-size: 14px !important;
  color: var(--cbv-gris-mid) !important;
  line-height: 1.7 !important;
}


/* ============================================================
   16. BARRA DE URGENCIA / ESCASEZ
   ============================================================ */

.cbv-urgencia-bar {
  background-color: var(--cbv-amber);
  padding: 16px 5%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

.cbv-urgencia-texto {
  font-family: var(--cbv-font-titulo);
  font-size: 14px;
  font-weight: 600;
  color: #ffffff;
}

.cbv-urgencia-badge {
  background: rgba(0, 0, 0, 0.15);
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  padding: 4px 14px;
  border-radius: 20px;
  font-family: var(--cbv-font-mono);
}


/* ============================================================
   17. SECCIÓN CTA FINAL
   ============================================================ */

.cbv-cta-seccion {
  background-color: var(--cbv-azul);
  padding: var(--cbv-section-padding);
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* Efecto de luz de fondo */
.cbv-cta-seccion::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse 70% 60% at 50% 50%,
    rgba(29, 184, 138, 0.10),
    transparent 70%
  );
  pointer-events: none;
}

.cbv-cta-contenido {
  position: relative;
  z-index: 2;
  max-width: 600px;
  margin: 0 auto;
}

.cbv-cta-titulo {
  font-family: var(--cbv-font-titulo);
  font-size: clamp(24px, 3.2vw, 38px);
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 16px;
  line-height: 1.2;
}

.cbv-cta-subtitulo {
  font-size: 17px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.6;
  margin-bottom: 36px;
}

.cbv-cta-nota {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.45);
  margin-top: 16px;
}


/* ============================================================
   18. FOOTER
   ============================================================ */

.cbv-footer {
  background-color: var(--cbv-gris-oscuro);
  color: rgba(255, 255, 255, 0.55);
  padding: 48px 5% 32px;
}

.cbv-footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 40px;
}

.cbv-footer-marca-nombre {
  font-family: var(--cbv-font-titulo);
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 6px;
}

.cbv-footer-marca-nombre span {
  color: var(--cbv-teal-light);
}

.cbv-footer-marca p {
  font-size: 13px;
  line-height: 1.6;
  max-width: 280px;
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.5);
}

.cbv-footer-col h4 {
  font-family: var(--cbv-font-titulo);
  font-size: 12px;
  font-weight: 600;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 14px;
}

.cbv-footer-col a {
  display: block;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  margin-bottom: 8px;
  transition: color 0.15s ease;
}

.cbv-footer-col a:hover {
  color: var(--cbv-teal-light);
}

.cbv-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 12px;
}

.cbv-footer-legal {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
}

.cbv-footer-legal a {
  color: rgba(255, 255, 255, 0.38);
  text-decoration: none;
  font-size: 12px;
  transition: color 0.15s ease;
}

.cbv-footer-legal a:hover {
  color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 768px) {
  .cbv-footer-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .cbv-footer-bottom {
    flex-direction: column;
    text-align: center;
  }
}


/* ============================================================
   19. ANIMACIONES
   ============================================================ */

@keyframes cbv-fadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes cbv-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.4; }
}

/* Animación de entrada al hacer scroll */
.cbv-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.cbv-reveal.visible {
  opacity: 1;
  transform: none;
}


/* ============================================================
   20. WIDGETS ELEMENTOR — SOBRESCRITURAS
   Ajustar widgets nativos para que respeten la identidad visual
   ============================================================ */

/* Botones de Elementor */
.elementor-button {
  font-family: var(--cbv-font-titulo) !important;
  font-weight: 600 !important;
  border-radius: 10px !important;
  transition: all 0.2s ease !important;
}

/* Heading de Elementor */
.elementor-heading-title {
  font-family: var(--cbv-font-titulo) !important;
  letter-spacing: -0.02em !important;
}

/* Texto de Elementor */
.elementor-text-editor p {
  font-family: var(--cbv-font-body) !important;
  line-height: 1.7 !important;
}

/* Imagen de Elementor — redondeada cuando se necesite */
.cbv-foto-redondeada .elementor-image img {
  border-radius: 20px;
  object-fit: cover;
}

/* Separador de sección personalizado */
.elementor-divider-separator {
  border-color: var(--cbv-gris-light) !important;
}

/* Icon Box de Elementor */
.elementor-icon-box-title {
  font-family: var(--cbv-font-titulo) !important;
  font-weight: 600 !important;
  color: var(--cbv-gris-oscuro) !important;
}

.elementor-icon-box-description {
  font-family: var(--cbv-font-body) !important;
  color: var(--cbv-gris-mid) !important;
  line-height: 1.65 !important;
}

/* Testimonial widget de Elementor */
.elementor-testimonial-content {
  font-family: var(--cbv-font-body) !important;
  font-style: italic !important;
  color: var(--cbv-gris-oscuro) !important;
}

.elementor-testimonial-name {
  font-family: var(--cbv-font-titulo) !important;
  font-weight: 600 !important;
}

/* ============================================================
   FIN DEL CSS — CONSTRUYE BIM&VERDE
   Versión 1.0 | Actualizar variables en :root para cambios globales
   ============================================================ *//* End custom CSS */