.elementor-kit-5{--e-global-color-primary:#12303A;--e-global-color-secondary:#A24726;--e-global-color-text:#F5F0E8;--e-global-color-accent:#6B7477;--e-global-color-gtagave:#4A6152;--e-global-color-gtalba:#D9A44E;--e-global-color-gtniebla:#E4DDD1;--e-global-color-gtcarbon:#0A1E24;--e-global-color-gtn50:#FBF8F3;--e-global-color-gtcard:#FFFDF9;--e-global-color-gttinta70:#3D6570;--e-global-color-gtbrasa90:#8C3C1F;--e-global-color-gtn200:#CFC5B5;--e-global-typography-primary-font-family:"Source Serif 4";--e-global-typography-primary-font-weight:400;--e-global-typography-primary-line-height:1.18em;--e-global-typography-primary-letter-spacing:-0.014em;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-size:12px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-letter-spacing:0.18em;--e-global-typography-text-font-family:"Archivo";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.62em;--e-global-typography-accent-font-family:"Archivo";--e-global-typography-accent-font-size:12px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-letter-spacing:0.1em;--e-global-typography-gtdisplay-font-family:"Source Serif 4";--e-global-typography-gtdisplay-font-size:76px;--e-global-typography-gtdisplay-font-weight:300;--e-global-typography-gtdisplay-line-height:1.08em;--e-global-typography-gtdisplay-letter-spacing:-0.022em;--e-global-typography-gtlead-font-family:"Source Serif 4";--e-global-typography-gtlead-font-size:21px;--e-global-typography-gtlead-font-weight:400;--e-global-typography-gtlead-line-height:1.75em;--e-global-typography-gth3-font-family:"Source Serif 4";--e-global-typography-gth3-font-size:22px;--e-global-typography-gth3-font-weight:600;--e-global-typography-gth3-line-height:1.25em;--e-global-typography-gth3-letter-spacing:-0.014em;color:#12303A;font-family:"Archivo", Sans-serif;font-size:17px;font-weight:400;line-height:1.62em;background-color:#F5F0E8;}.elementor-kit-5 a{color:#A24726;}.elementor-kit-5 a:hover{color:#8C3C1F;}.elementor-kit-5 h1{font-family:"Source Serif 4", Sans-serif;font-weight:400;}.elementor-kit-5 h2{font-family:"Source Serif 4", Sans-serif;font-size:40px;font-weight:400;}.elementor-kit-5 h3{font-family:"Source Serif 4", Sans-serif;font-weight:600;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-family:"Archivo", Sans-serif;font-size:15px;font-weight:600;letter-spacing:0.06em;color:#F5F0E8;background-color:#A24726;border-radius:2px 2px 2px 2px;padding:15px 24px 15px 24px;}.elementor-kit-5 button:hover,.elementor-kit-5 button:focus,.elementor-kit-5 input[type="button"]:hover,.elementor-kit-5 input[type="button"]:focus,.elementor-kit-5 input[type="submit"]:hover,.elementor-kit-5 input[type="submit"]:focus,.elementor-kit-5 .elementor-button:hover,.elementor-kit-5 .elementor-button:focus{color:#F5F0E8;background-color:#8C3C1F;}.elementor-kit-5 img{border-radius:3px 3px 3px 3px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:768px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* 1. Grid tracks must be allowed to shrink below their content's intrinsic
      width, or a wide image forces its column wider than its share. */
.elementor-grid > *, .e-loop-item, .e-con.e-grid > .e-con { min-width: 0; }
.e-loop-item .elementor-widget-theme-post-featured-image img { width: 100%; height: auto; display: block; }

/* 1b. Cards in a row must be the same height whatever the source image is.
       A fixed ratio + object-fit means uploads never have to be pre-cropped. */
.gt-card-media img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.gt-card-media--retrato img{aspect-ratio:4/5;object-position:center 25%}
.e-loop-item .elementor-widget-theme-post-featured-image{width:100%}

/* 2. This brand maps Elementor's "Text" global slot to Cal (paper), because the
      design system repurposes the four slots. Several widgets use that slot as
      their default text colour, which renders paper-on-paper. Re-assert the
      reading colour wherever post content is output. */
.elementor-widget-theme-post-content,
.elementor-widget-theme-post-content p,
.elementor-widget-theme-post-content li,
.elementor-widget-theme-post-content h2,
.elementor-widget-theme-post-content h3,
.elementor-widget-theme-post-content h4 { color: var(--e-global-color-primary); }
.elementor-widget-theme-post-content a { color: var(--e-global-color-secondary); }

/* 3. Editorial rhythm inside long-form post content. */
.elementor-widget-theme-post-content h2 { margin-top: 2em; margin-bottom: .4em; }
.elementor-widget-theme-post-content p { margin-bottom: 1.1em; }

/* 4. A 4:3 placeholder at full container width is ~700px tall, which crowds the
      page. Cap the lead image and let it crop. */
.gt-media-cap img { width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block; }

/* 5. Taxonomy filter (tabs). The widget exposes only background colours, so
      the type and the active state are set here. */
.gt-filtro .e-filter-item{
  font-family:"Archivo",Helvetica,sans-serif;font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:.18em;color:var(--e-global-color-accent);
  background:none;border:0;border-bottom:2px solid transparent;border-radius:0;
  padding:10px 2px;margin-right:28px;cursor:pointer;transition:color .12s,border-color .12s}
.gt-filtro .e-filter-item:hover{color:var(--e-global-color-primary)}
.gt-filtro .e-filter-item[aria-pressed="true"],
.gt-filtro .e-filter-item.e-filter-item-active{
  color:var(--e-global-color-primary);border-bottom-color:var(--e-global-color-secondary)}
.gt-filtro{border-bottom:1px solid #E4DDD1;padding-bottom:0}

/* 6. Acordeón de FAQ: el contenido pegaba al borde. Padding interior y una
      jerarquía clara entre pregunta y respuesta. */
.elementor-widget-nested-accordion .e-n-accordion-item-title{padding:20px 20px 20px 0}
.elementor-widget-nested-accordion .e-n-accordion-item > .e-con{padding:0 20px 24px 0}
.elementor-widget-nested-accordion .e-n-accordion-item{border-bottom:1px solid #E4DDD1}
.elementor-widget-nested-accordion .e-n-accordion-item p{margin:0;max-width:70ch}

/* 7. Sin IBM Plex Mono: los metadatos usan Archivo con tracking. */
.gt-meta,.elementor-widget-heading .gt-meta{font-family:"Archivo",Helvetica,sans-serif}

/* 8. Muro de clientes del inicio. Un solo PNG a color por marca: el gris es
      del CSS, así el estado de color al pasar el cursor no cuesta otra
      descarga. Altura fija para que todos pesen ópticamente lo mismo: los
      recortes ya vienen normalizados sobre un lienzo 2:1. */
.gt-logos .swiper-slide-inner{display:flex;align-items:center;justify-content:center;width:100%;margin:0}
.gt-logos img.swiper-slide-image{
  width:auto;max-width:100%;height:64px;object-fit:contain;
  filter:grayscale(1);opacity:.7;
  transition:filter .35s ease,opacity .35s ease}
.gt-logos .swiper-slide:hover img.swiper-slide-image{filter:grayscale(0);opacity:1}
@media(max-width:767px){.gt-logos img.swiper-slide-image{height:52px}}
/* Sin cursor no hay hover posible: ahí se muestran siempre a color. */
@media(hover:none){.gt-logos img.swiper-slide-image{filter:grayscale(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.gt-logos img.swiper-slide-image{transition:none}}

/* 9. Figuras dentro del cuerpo de una entrada. Ocupan el ancho de la columna
      de lectura, con el pie en Archivo pequeño para que no compita con el
      texto. */
.elementor-widget-theme-post-content .gt-figura{
  margin:2.4em 0;max-width:none}
.elementor-widget-theme-post-content .gt-figura img{
  width:100%;height:auto;display:block;border-radius:3px;background:#E4DDD1}
.elementor-widget-theme-post-content .gt-figura figcaption{
  font-family:"Archivo",Helvetica,sans-serif;font-size:13px;line-height:1.5;
  color:var(--e-global-color-accent);margin-top:10px;max-width:62ch}
/* Las listas del cuerpo heredaban el color de "Texto", que es papel. */
.elementor-widget-theme-post-content ol,
.elementor-widget-theme-post-content ul{
  color:var(--e-global-color-primary);margin:0 0 1.1em 1.1em;max-width:70ch}
.elementor-widget-theme-post-content li{margin-bottom:.5em}
.elementor-widget-theme-post-content h3{margin-top:1.6em;margin-bottom:.3em}

/* 10. Cabecera en móvil: logotipo, CTA corto y hamburguesa en una sola fila.
       Tres trampas de Elementor que hay que saltar aquí:
       - El contenedor flex real de un contenedor «boxed» es .e-con-inner.
       - El estilo por elemento se genera como
         «.elementor-72 .elementor-element.elementor-element-XXX ...», cuatro
         clases: cualquier regla propia necesita más peso.
       - El ancho de un contenedor sale de width:var(--width), así que se
         redefine la variable en vez de pelear con la declaración. */
@media(max-width:767px){
  .elementor-location-header .e-con > .e-con-inner{flex-wrap:nowrap}

  /* El bloque de acciones se encoge a su contenido. */
  .elementor-location-header .e-con.gt-nav{
    --width:auto;width:auto !important;flex:0 0 auto;gap:10px}

  /* La hamburguesa al extremo derecho, después del botón. El widget del menú
     reserva ~158 px aunque en móvil sólo enseñe el icono, y eso empuja el
     botón fuera de pantalla por debajo de 400 px. */
  .elementor-location-header .e-con.gt-nav > .elementor-widget-nav-menu{
    order:3;flex:0 0 auto;
    --container-widget-width:auto;width:auto !important;max-width:46px}
  .elementor-location-header .e-con.gt-nav > .elementor-widget-button{
    order:2;flex:0 1 auto;min-width:0}

  .elementor-location-header .e-con.gt-nav .elementor-widget-button .elementor-button{
    padding:10px 13px;font-size:11px;letter-spacing:.08em;white-space:nowrap}

  /* Al limitar el widget a 46 px, el panel desplegable —que se posiciona
     respecto a él— salía de 46 px de ancho. Con el widget en position:static
     el panel pasa a anclarse a la barra, que ya está posicionada por ser
     sticky, y ocupa el ancho completo. */
  .elementor-location-header .e-con.gt-nav,
  .elementor-location-header .e-con.gt-nav > .elementor-widget-nav-menu{position:static}
  .elementor-location-header .elementor-nav-menu--dropdown{
    position:absolute;top:100%;left:0;right:0;width:auto;max-width:none}

  .elementor-location-header .elementor-menu-toggle{padding:4px;margin:0;background:none}
  /* El logotipo manda: no se encoge aunque falte sitio. */
  .elementor-location-header .elementor-widget-image{flex:0 0 auto}
}

/* 11. Desplegable del menú en móvil: va sobre papel, no sobre el blanco por
       defecto, y con la misma tipografía de etiqueta que el resto. */
.elementor-location-header .elementor-nav-menu--dropdown{
  background-color:#F5F0E8;border-top:1px solid #E4DDD1}
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item{
  font-family:"Archivo",Helvetica,sans-serif;font-size:13px;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;color:#12303A;padding:16px 20px}
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item:hover,
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active{
  background-color:rgba(18,48,58,.05);color:#A24726}

/* 12. Formulario de descarga de recursos. El widget de formulario toma sus
       colores de las ranuras globales, y en esta marca «Texto» es Cal (papel):
       las etiquetas salían papel sobre papel. Se reasientan aquí, junto al
       botón, que por defecto sale gris en vez de ember. */
.elementor-widget-form .elementor-field-group > label.elementor-field-label{
  font-family:"Archivo",Helvetica,sans-serif;font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.16em;
  color:var(--e-global-color-accent);margin-bottom:8px}
.elementor-widget-form .elementor-field-textual{
  background:#FFFFFF;border:1px solid #E4DDD1;border-radius:2px;
  padding:14px 16px;font-family:"Archivo",Helvetica,sans-serif;font-size:14px;
  color:var(--e-global-color-primary);box-shadow:none;transition:border-color .15s}
.elementor-widget-form .elementor-field-textual:focus{
  border-color:var(--e-global-color-secondary);outline:none}
.elementor-widget-form .elementor-field-textual::placeholder{
  color:#9AA3A6;opacity:1}

/* Casilla de aceptación: el texto tiene que leerse, es un consentimiento. */
.elementor-widget-form .elementor-field-type-acceptance .elementor-field-option label{
  font-family:"Archivo",Helvetica,sans-serif;font-size:13px;line-height:1.5;
  color:var(--e-global-color-primary)}
.elementor-widget-form .elementor-field-type-acceptance .elementor-field-option a{
  color:var(--e-global-color-secondary);text-decoration:underline}
.elementor-widget-form .elementor-field-type-acceptance input[type="checkbox"]{
  width:16px;height:16px;margin-right:10px;accent-color:#A24726}

/* El botón, igual que los del resto del sitio. Cinco clases: el estilo por
   elemento de Elementor usa cuatro y se carga después de este archivo. */
.elementor-widget-form .elementor-form .elementor-field-type-submit .elementor-button[type="submit"]{
  background-color:var(--e-global-color-secondary);
  color:var(--e-global-color-text);
  font-family:"Archivo",Helvetica,sans-serif;font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:.16em;
  padding:17px 28px;border:0;border-radius:2px;transition:background-color .15s}
.elementor-widget-form .elementor-form .elementor-field-type-submit .elementor-button[type="submit"]:hover{
  background-color:#8A3B1F}

/* Mensajes de respuesta. */
.elementor-widget-form .elementor-message{
  font-family:"Archivo",Helvetica,sans-serif;font-size:13.5px;line-height:1.5;
  margin-top:14px}
.elementor-widget-form .elementor-message.elementor-message-success{
  color:#1F5134}
.elementor-widget-form .elementor-message.elementor-message-danger{
  color:#A24726}/* End custom CSS */