/* 
Theme Name:      Lini
Theme URI:       https://www.ingenima.com/
Description:     Lini is a child theme of Blacklight
Author:          Ingenima
Template:        blacklight
Version:         2.1.9
Text Domain:     Lini
Last Updated:    18-09-2025
*/


/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------

# General
    ## Reset
    ## Selection
    ## BG Colors
    ## Text Colors
    ## iFrame
    ## Buttons
    ## Typography
    ## Right Image
    ## Elements
# Nav
# Modal
    ## Boton
# Heros
# GF
# Especial CSS
# Form
    ## Landing
    ## Forms
# Footer

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/

:root {

  /* Custom colors */    

  /* Colors */
  --main-verde:#1FC18C;
  --main-orange: #FA8303;
  --black:#000000;
  --white:#ffffff;
  --gray: #DCDCDC;
  --lightgray: #F4F4F4;
  --softblack: #1F1F1F;

  --blackhover:rgb(0 0 0 / 60%);
  --whitehover:rgb(255 255 255 / 60%);

  --gradient-white-cream: linear-gradient(0deg, rgba(255,255,255,1) 50%, rgba(245,244,240,1) 51%);
  --gradient-dark-transparent-tb: linear-gradient(0deg, rgba(0,0,0,0.3) 80%, rgba(0,0,0,0.1) 100%);
  --gradient-dark-transparent: linear-gradient(90deg, rgba(0,0,0,0.3) 80%, rgba(0,0,0,0.1) 100%);

  /* Transitions */
  --transition-duration:.1s;
  --transition-timing-function:ease;
  --transition-all:all;

  --01-transition:var(--transition-all) calc(var(--transition-duration)*1) var(--transition-timing-function);
  --02-transition:var(--transition-all) calc(var(--transition-duration)*2) var(--transition-timing-function);
  --03-transition:var(--transition-all) calc(var(--transition-duration)*3) var(--transition-timing-function);
  --04-transition:var(--transition-all) calc(var(--transition-duration)*4) var(--transition-timing-function);
  --05-transition:var(--transition-all) calc(var(--transition-duration)*5) var(--transition-timing-function);

  /* Space */
  --10px: 10px;

  /* Btns */
  --padding-btn: 8px 1rem;


  /* Fonts */
  --ffamily: montserrat,sans-serif;
  --fsize: 1rem;
  --fsize--2: clamp(0.6944rem, 0.6643rem + 0.151vw, 0.7813rem);
  --fsize--1: clamp(0.8333rem, 0.7971rem + 0.1812vw, 0.9375rem);
  --fsize-0: clamp(1.1rem, 1.05rem + 0.3174vw, 1.125rem);
  --fsize-1: clamp(1.2rem, 1.1478rem + 0.2609vw, 1.35rem);
  --fsize-2: clamp(1.44rem, 1.3774rem + 0.313vw, 1.62rem);
  --fsize-3: clamp(1.728rem, 1.6529rem + 0.3757vw, 1.944rem);
  --fsize-4: clamp(2.0736rem, 1.9834rem + 0.4508vw, 2.3328rem);
  --fsize-5: clamp(2.4883rem, 2.3801rem + 0.5409vw, 2.7994rem);
  --fsize-6: clamp(2.986rem, 2.8562rem + 0.6491vw, 3.3592rem);
}

.hide-overflow .container-fluid {
overflow-x:hidden;
}

/*******
## Reset
*******/

.post,
.page {
margin: 0 !important;
}

/*******
## Selection
*******/

::-moz-selection {
background: rgb(9 1 38 / 90%);
color:#fff;
}

::selection {
background: rgb(9 1 38 / 90%);
color:#fff;
}

/*******
## BG Colors
*******/

/* 
### Main Colors 
*/
.bg-lini-verde {
  background-color: var(--main-verde);
}

.bg-lini-orange {
  background-color: var(--main-orange);
}

.bg-lini-black {
  background-color: var(--black);
}

.bg-lini-white {
  background-color: var(--white);
}

.bg-lini-gray {
  background-color: var(--gray);
}

.bg-lini-lightgrey {
background-color: var(--lightgray);
}

.bg-lini-softblack {
background-color: var(--softblack);
}

.shape-black {
  background: linear-gradient(90deg, var(--white) 50%, var(--softblack) 50%);
}

.shape-black-2 {
  background: linear-gradient(90deg, var(--softblack) 60%, var(--white) 40%);
}
/* 
### Secondary Colors 
*/


/*******
## Text Colors
*******/

/* 
### Main Colors 
*/

.text-lini-verde {
  color: var(--main-verde) !important;
}

.text-lini-orange {
  color: var(--main-orange) !important;
}

.text-lini-black {
  color: var(--black) !important;
}

.text-lini-white {
  color: var(--white) !important;
}

.text-lini-gray {
  color: var(--gray) !important;
}

.text-lini-lightgray {
  color: var(--lightgray) !important;
}

.text-lini-softblack {
  color: var(--softblack) !important;
}

/* 
### Hover Colors 
*/

.text-lini-blackhover {
  color: var(--blackhover) !important;
}

.text-lini-whitehover {
  color: var(--whitehover) !important;
}



/*******
## iFrame
*******/
.embed-container {
position: relative;
height: 0;
overflow: hidden;
}

.embed-container-video {
padding-bottom: 56.25%;
}

.embed-container-map {
padding-bottom: 30%;
}

.embed-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}

.lini-mapa img {
  width:60px;
}

/*******
## Buttons
*******/

.lini-btn,
.blm-btn,
.gform_button,
#bs4navbar > ul > li:last-child a {
  font-size: 17px;
  color: #fff !important;
  background-color: var(--main-verde);
  font-weight: 700;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  text-decoration: none;
  outline: none;
  border: 3px solid transparent;
  border-radius: 5px;
  -webkit-box-shadow: 0 5px 10px 0 rgba(0,0,0,.04);
  box-shadow: 0 5px 10px 0 rgba(0,0,0,.04);
  cursor: pointer;
  display: inline-block;
  letter-spacing: .025em;
  margin-bottom: 0;
  padding: 5px 10px;
  text-align: center;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.dummy-container .lini-btn:nth-child(2){
  color: var(--main-verde) !important;
  background-color: transparent;
  border: 3px solid var(--main-verde);
}

.lini-btn:hover,
.blm-btn:hover,
.gform_button:hover,
#bs4navbar > ul > li:last-child a:hover {
  color: var(--main-verde) !important;
  background-color:#fff;
  border: 3px solid var(--main-verde) !important;
}

/*
## btn secondary
*/

.wpcf7-submit {
color:#fff !important;
border:3px solid #000;
}

.wpcf7-submit:hover {
color:#000 !important;
border:3px solid #000 !important;
background-color:#fff;
}

.video-btn,
.blm-btn,
.wpcf7-submit {
-webkit-appearance: none !important; /*Safari/Chrome*/
-moz-appearance: none !important; /*Firefox*/
-ms-appearance: none !important; /*IE*/
-o-appearance: none !important; /*Opera*/
appearance: none !important;
}


/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family:var(--ffamily);
  font-weight: 900;
  font-style: normal;
}

body,
button,
input,
select,
optgroup,
textarea {
    font-size: var(--fsize-);
    line-height: 1.55;
    font-family:var(--ffamily);
    font-weight: 400;
}

.row {
    box-sizing:border-box !important;
}

h1, .fsize-6 {
    font-size: var(--fsize-6);
}

.fsize-6 {
    font-size: var(--fsize-5);
}

h2, .fsize-4 {
    font-size: var(--fsize-4);
}

h3, .fsize-3 {
    font-size: var(--fsize-3);
}

h4, .fsize-2 {
    font-size: var(--fsize-2);
}

h5, .fsize-1 {
    font-size: var(--fsize-1);
}


p, .fsize-0 {
    font-size: var(--fsize-0);
}

.fsize--1 {
    font-size: var(--fsize--1);
}

.fsize--2 {
    font-size: var(--fsize--2);
}

/* Parrafo  */
p {
    margin-bottom: 0.8rem;
}

:not(.lini-hero)p:last-of-type, :only-child {
    margin-bottom: 0; 
}

/*
## Estilos y pesos
*/

.italic {
    font-style: italic;
}

.normal {
    font-style: normal;
}

.light {
    font-weight: 300;
}

.regular {
    font-weight: 400;
}

.bold {
    font-weight: 700;
}

.uppercase {
    text-transform:uppercase;
}

dfn,
cite,
em,
i {
    font-style: italic;
}

blockquote {
    margin: 0 .5em;
    padding: 25px;
    margin-bottom: 1.5em;
    font-style: italic;
    border-left: 4px solid #000000;
}

blockquote p {
    margin: 0;
}

address {
    margin: 0 0 1.5em;
}

pre {
    background: #eee;
    font-family: "Courier 10 Pitch", Courier, monospace;
    font-size: 15px;
    font-size: 0.9375rem;
    line-height: 1.6;
    margin-bottom: 1.6em;
    max-width: 100%;
    overflow: auto;
    padding: 1.6em;
}

code,
kbd,
tt,
var {
    font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
    font-size: 15px;
    font-size: 0.9375rem;
}

abbr,
acronym {
    border-bottom: 1px dotted #666;
    cursor: help;
}

mark,
ins {
    background: #fff9c0;
    text-decoration: none;
}

/*******
## Right Image
*******/
.alignright {
max-width: 260px;
height: auto;
display: inline;
float: right;
}

/*******
## Elements
*******/
#removeSticky {
position:relative;
top:-400px;
}

.img-h100 {
max-height:inherit !important;
}

.img-img {
border-radius:20px;
-webkit-box-shadow: 0px 0px 12px 5px rgba(0,0,0,0.2); 
box-shadow: 0px 0px 12px 5px rgba(0,0,0,0.2);
}

/*--------------------------------------------------------------
# Shapes
--------------------------------------------------------------*/

.bg-apoyados {
  background-image:url("img/apoyados.jpg");
  background-repeat: no-repeat;
  background-size: initial;
  background-position: center center;
}


.balancinado-home {
  background-image:url("img/balancinado-home.jpg");
  background-repeat: no-repeat;
  background-size: initial;
  background-position: right center;
}

/*--------------------------------------------------------------
# Cross
--------------------------------------------------------------*/

/*
## Generic Carousel Component - Swiper.js
*/

.lini-carousel {
  
  .lini-swiper {
    position: relative;
    overflow: hidden;
    padding-bottom: 60px; /* Espacio para paginación */
  }
  
  .swiper-slide {
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 0;
  }
  
  .carousel-item {
    text-align: center;
    max-width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    
    img {
      width: 100%;
      height: auto;
      max-height: 450px;
      object-fit: cover;
      box-shadow: 0 10px 30px rgba(0,0,0,0.1);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      display: block;
      margin: 0;
      padding: 0;
    }
    
    img:hover {
      box-shadow: 0 15px 40px rgba(0,0,0,0.15);
    }
  }
  
  .carousel-caption p {
    color: var(--softblack);
    font-weight: 500;
    margin-bottom: 0;
  }
  
  /* Navigation Buttons */
  .swiper-button-next,
  .swiper-button-prev {
    width: 40px;
    height: 50px;
    background-color: var(--main-verde);
    border-radius: 5px;
    color: var(--white) !important;
    font-size: 18px;
    transition: all 0.3s ease;
    top: calc(50% - 30px); /* 50% menos la mitad del padding-bottom (60px/2) */
    transform: translateY(-50%);
    margin-top: 0;
    
    &:after {
      display: none; /* Hide default Swiper arrows */
    }
    
    i {
      font-size: 16px;
    }
    
    &:hover {
      background-color: var(--main-orange);
      transform: translateY(-50%) scale(1.1);
    }
  }
  
  .swiper-button-next,
  .carousel-next {
    right: 20px;
  }
  
  .swiper-button-prev,
  .carousel-prev {
    left: 20px;
  }
  
  /* Pagination */
  .swiper-pagination,
  .carousel-pagination {
    bottom: 20px !important;
    
    .swiper-pagination-bullet {
      width: 12px;
      height: 12px;
      background-color: var(--gray);
      opacity: 1;
      transition: all 0.3s ease;
    }
    
    .swiper-pagination-bullet-active {
      background-color: var(--main-verde);
      transform: scale(1.2);
    }
  }
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .lini-carousel {
    .swiper-button-next,
    .swiper-button-prev,
    .carousel-next,
    .carousel-prev {
      width: 40px;
      height: 40px;
      
      i {
        font-size: 14px;
      }
    }
    
    .swiper-button-next,
    .carousel-next {
      right: 10px;
    }
    
    .swiper-button-prev,
    .carousel-prev {
      left: 10px;
    }
    
    .carousel-item img {
      max-height: 300px;
    }
  }
}

/* Specific carousel variations */
.lini-carousel.carousel-matrices .carousel-item img {
  max-height: 450px; /* Matrices might need more height */
}

.lini-carousel.carousel-productos .carousel-item img {
  max-height: 350px;
}

.lini-carousel.carousel-testimonios .carousel-item {
  text-align: center;
  padding: 2rem;
}

.lini-carousel.carousel-equipo .carousel-item img {
  max-height: 300px;
  border-radius: 50%;
  aspect-ratio: 1;
  object-fit: cover;
}

/*
## Clientes - Logo Slider
*/

.lini-clientes {
  overflow: hidden;
}

.logo-slider {
  overflow: hidden;
  margin: 20px 0;
  position: relative;
}

.logo-track {
  display: flex;
  width: max-content;
  gap: 60px;
  align-items: center;
}

.logo-track-left {
  animation: slideLeft 30s linear infinite;
}

.logo-track-right {
  animation: slideRight 25s linear infinite;
}

.logo-item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
}

.logo-item img {
  max-width: 130px;
  max-height: 70px;
  width: auto;
  height: auto;
  object-fit: contain;
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.logo-item:hover img {
  -webkit-filter: grayscale(0%);
  filter: grayscale(0%);
  transform: scale(1.1);
}

/* Animaciones */
@keyframes slideLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-33.333%);
  }
}

@keyframes slideRight {
  0% {
    transform: translateX(-33.333%);
  }
  100% {
    transform: translateX(0);
  }
}

/* Pausa la animaciÃ³n al hacer hover sobre el slider */
.logo-slider:hover .logo-track {
  animation-play-state: paused;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .logo-track {
    gap: 40px;
  }
  
  .logo-item img {
    max-width: 100px;
    max-height: 50px;
  }
  
  .logo-track-left {
    animation-duration: 125s;
  }
  
  .logo-track-right {
    animation-duration: 120s;
  }
}

/*--------------------------------------------------------------
# Nav
--------------------------------------------------------------*/

#menu ul li {
padding:0px 10px;
}

.admin-bar {
top:-32px;
position:relative;
}

/*--------------------------------------------------------------
# Modal
--------------------------------------------------------------*/

#cf-basic br {
display:none;
}

.modal-dialog {
max-width: 500px;
}

.modal-header h3 {
margin-bottom:0 !important;
}

.modal-header button {
line-height:1em !important;
}

.modal-body h3,
.modal-body p {
font-size:20px !important;
}

.modal-body img {
max-width:300px;
margin-top:25px;
}

/* Aparicion */
.slide-left {
-webkit-animation: slide-left 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
animation: slide-left 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}

/**
* ----------------------------------------
* animation slide-left
* ----------------------------------------
*/
@-webkit-keyframes slide-left {
0% {
  -webkit-transform: translateX(0);
  transform: translateX(0);
}
100% {
  -webkit-transform: translateX(-100px);
  transform: translateX(-100px);
}
}
@keyframes slide-left {
0% {
  -webkit-transform: translateX(0);
  transform: translafteX(0);
}
100% {
  -webkit-transform: translateX(-100px);
  transform: translateX(-100px);
}}


/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/


/*--------------------------------------------------------------
# Comp - Flybox
--------------------------------------------------------------*/
/* Button used to open the contact form - fixed at the bottom of the page */
.open-button {
padding: 16px 20px !important;
border: none;
border-radius:10px 0 0 10px;
cursor: pointer;
position: fixed;
bottom: 50%;
right: -100px;
width: 120px;
color:#fff;
z-index:999;
outline:none;
font-size:18px;
}

.open-button:focus  {
outline:none;
}

/* The popup form - hidden by default */
.form-popup {
padding: 16px 20px;
border: none;
border-radius:10px 0 0 10px;
position: fixed;
bottom: 50%;
transform:translateY(50%);
color:#fff;
z-index: 99999999;
width:100%;
max-width:600px;
}

.form-popup > div:last-child {
border-left:1px solid #fff;
}

.modal.show .dialog-flybox {
-webkit-transform: inherit;
transform: inherit;
}

.modal.fade .dialog-flybox {
transition: inherit;
transition: inherit;
transition: inherit;
-webkit-transform: inherit;
transform: inherit;
}





/*--------------------------------------------------------------
# Heros
--------------------------------------------------------------*/

.lini-hero {
  
  min-height:calc(100dvh - 78px);
  position:relative;
  overflow: hidden;
  color:var(--white);

  & .hero-img-container{
    position: absolute;
    inset: -1px;                      /* top/right/bottom/left = 0 */
    z-index: 0;
    pointer-events: none;          /* la UI de arriba sigue clickeable */
  }
  
  & .hero-img-container::after {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      width: 100%;
      height: 100%;
      background: var(--gradient-dark-transparent);
      pointer-events: none; /* Para que la imagen siga siendo interactiva */
  }

  & .hero-img {
      position:absolute;
      inset: -0px;                      /* top/right/bottom/left = 0 */
      height:calc(100% + 2px);
      width: calc(100% + 0px);
      object-fit: cover;
      object-position: center;
      z-index: 0;
      display: block; 
      will-change: transform;
      overflow:hidden;
  }
}

/* Contenedor wrapper que permite que shape-hero escape del overflow de lini-hero */
.hero-wrapper {
  position: relative;
  z-index: 1;
}

.hero-wrapper .shape-hero {
  position: absolute;
  z-index: 9999;
  bottom: -40px;
  right: 40px;
  pointer-events: none;
}



/*--------------------------------------------------------------
# GF
--------------------------------------------------------------*/

/* 
### Font
*/

.eide_wrapper .gfield_label, /*General*/
.eide_wrapper .select-selected, /*Select*/
.eide_wrapper .select-items,
.eide_wrapper input[type='text'],
.eide_wrapper input[type='email'],
.eide_wrapper textarea,
.eide_wrapper select {

}

/*
### General
*/

.eide_wrapper .gfield {
position: relative;
}

.eide_wrapper ul li.gfield {
margin-top:10px !important;
}

/* Input */
.eide_wrapper .gfield input:not(.gfield-choice-input):not([type="checkbox"]) {
transition: .1s all linear;
width:100% !important;
}

/* Border Color Not Active */
.eide_wrapper .gfield input,
.eide_wrapper .gfield textarea {
border: 2px solid #ddd;
}

/* Border Color Active */
.eide_wrapper .gfield.active input,
.eide_wrapper .gfield.active textarea {
border: 2px solid #00d07e;
}

/* Padding */
.eide_wrapper .gfield input ,
.eide_wrapper .gfield.active input,
.eide_wrapper .gfield textarea ,
.eide_wrapper .gfield.active textarea
.eide_wrapper .gfield select
.eide_wrapper .gfield.active select{
padding:15px 10px!important;
}

/* Label */
.eide_wrapper .gfield:not(.ev-select) label:not(.gfield_consent_label) {
position: absolute;
top: 20px;
left: 10px;
color: #555;
transition: .1s all linear;
cursor: text;
font-weight:400 !important;
padding:0 5px;
}

/* Label font size active */
.eide_wrapper .gfield.active label:not(.gfield_consent_label),
.eide_wrapper .gfield_required {
font-size:9px !important;
top:4px;
}

/*
## Pagina de contacto
*/


.eide_wrapper .gfield.active label:not(label.gfield_consent_label) {
top: 6px;
left: 7px;
z-index:99;
color:#8c8c8c;
}


/*
### Tooltip
*/

.gf_tooltip {
position:relative;
}

.gf_tooltip label {
display:none !important;
}

.gf_tooltip .gravity-tooltip {
position:absolute;
z-index:99;
right:0;
top:10px;
}

/*
### Select
*/

.eide_wrapper .ev-select label {
margin-bottom:0;
}

.eide_wrapper .ginput_container_select {
margin-top:0 !important;
}

.eide_wrapper .gform_footer {
margin-top:0px !important;
padding:0 !important;
}

/*
## Select
*/
/*
### Select
*/

.eide_wrapper .ev-select label {
margin-bottom:0;
}

.eide_wrapper .ginput_container_select {
margin-top:0 !important;
}

.eide_wrapper .gform_footer {
margin-top:10px !important;
padding:0 !important;
}

/*
## Select
*/

/* Oculta la flecha por defecto*/
.eide_wrapper select,
.eide_wrapper select {
-webkit-appearance: none !important;
appearance: none !important;
}

.eide_wrapper .ginput_container_select {
position: relative;
}

.eide_wrapper .ginput_container_select select {
  border: 1px solid #dfdfdf !important;
  background-color:#fff;
  color:#555 !important;
  width:100% !important;
  border-radius:5px;
}

.eide_wrapper .ginput_container_select:after {
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  position:absolute;
}

.eide_wrapper .ginput_container_select:after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f078";
  top:10px;
  right:12px;
  position: absolute;
  color:black;
}

.eide_wrapper .gfield_checkbox input[type=checkbox],
.eide_wrapper .gfield_radio input[type=radio] {
  opacity: 0;
  position: absolute;   
}

.eide_wrapper .gfield_checkbox input[type=checkbox] + label,
.eide_wrapper .gfield_radio input[type=radio] + label{
  position: relative;
  overflow: hidden;
  padding: 5px 0px 5px 30px;
  cursor: pointer;
  display: inline-block;
  font-weight:400;
  border-bottom:1px solid transparent;
  margin-bottom:0 !important;
  width:100%;
  color:#fff;
}

.eide_wrapper .gfield_checkbox input[type=checkbox] + label:before,
.eide_wrapper .gfield_checkbox input[type=checkbox] + label:after,
.eide_wrapper .gfield_radio input[type=radio] + label:before,
.eide_wrapper .gfield_radio input[type=radio] + label:after {
  content: '';
  position: absolute;
  left: 0;
  z-index: 1;
  -webkit-transition: .2s;
  transition: .2s;
  top:80px !important;
}

/* ### After */

.eide_wrapper .gfield_checkbox input[type=checkbox]:not(:checked) + label:after,
.eide_wrapper .gfield_radio input[type=radio]:not(:checked) + label:after  {
  width: 18px;
  height: 18px;
  border: 2px solid #fff;
  top: 7px;
}

.eide_wrapper .gfield_checkbox input[type=checkbox]:checked + label:after,
.eide_wrapper .gfield_radio input[type=radio]:checked + label:after {
  top: 7px;
  width: 18px;
  height: 18px;
  z-index: 0;
  border: 2px solid #fff;
  background-color: #fff;
}
/* Checkboxs */
.eide_wrapper .gfield_checkbox input[type=checkbox]:not(:checked) + label:after {
  border-radius:3px;
}

.eide_wrapper .gfield_checkbox input[type=checkbox]:checked + label:after {
  border-radius: 3px
}

/* Radio */
.eide_wrapper .gfield_radio input[type=radio]:not(:checked) + label:after {
  border-radius:50%;
}

.eide_wrapper .gfield_radio input[type=radio]:checked + label:after {
  border-radius: 50%;
  background-color:#fff;
  border:2px solid #26a69a
}

/* ### Before */

/* Checkboxs */
.eide_wrapper .gfield_checkbox input[type=checkbox]:not(:checked) + label:before{
  width: 0;
  height: 0;
  border: 3px solid transparent;
  left: 6px;
  top: 10px;
  -webkit-transform: rotateZ(37deg);
  transform: rotateZ(37deg);
  -webkit-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}

.eide_wrapper .gfield_checkbox input[type=checkbox]:checked + label:before{
  top: 10px;
  left: 2px;
  width: 6px;
  height: 10px;
  border-top: 2px solid transparent;
  border-left: 2px solid transparent;
  border-right: 2px solid #000;
  border-bottom: 2px solid #000;
  -webkit-transform: rotateZ(37deg);
  transform: rotateZ(37deg);
  -webkit-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}

/* Radio */
.eide_wrapper .gfield_radio input[type=radio]:not(:checked) + label:before{
  top: 7px;
  left: 2px;
  width: 6px;
  height: 10px;
  background-color:#fff;
  -webkit-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}

.eide_wrapper .gfield_radio input[type=radio]:checked + label:before{
  top: 8px;
  left: 4px;
  width: 10px;
  height: 10px;
  border-radius:50%;
  background-color:#26a69a;
  -webkit-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}

body #gform_wrapper_1 .gform_body .gform_fields .gfield select:not(#input_1_31) {
border: 1px solid #dfdfdf;
background-color:#fff;
color:#555;
padding:10px;
width:100%;
border-radius:5px;
}

/* Consent */
.eide_wrapper .ginput_container_consent {
height:18px;
margin-top:0 !important;
position:relative;
top:-10px;
}

.eide_wrapper .ginput_container.ginput_container_consent .gfield_consent_label {
font-size:12px;
position:relative;
top:-3px;
}

.eide_wrapper .ginput_container.ginput_container_consent input {
margin-top:0;
position:top;
}

.eide_wrapper .ginput_container.ginput_container_consent a {
font-weight:bold;
}

/*--------------------------------------------------------------
# Nav Lini
--------------------------------------------------------------*/
.nav-lini {

    .tab-pane {
  
      position:relative;
    
      & .row-nav::after {
          content: "";
          position: absolute;
          top: 0;
          right: 0;
          width: 100%;
          height: 100%;
          background: rgba(0,0,0,0.3);
          pointer-events: none; /* Para que la imagen siga siendo interactiva */
      }
      
      & .row-nav {
          min-height:460px;
          position: relative;
          overflow: hidden;
      }
      
      & .nav-img {
          position: absolute;
          right: 0;
          top: 0;
          width: 100%;
          height: 100%;
          object-fit: cover;
          object-position: center;
          z-index: 0;
      }
    }
    
    .nav-tabs {
        border-bottom:none;
        gap:20px;
    
        & button.nav-link {
            background-color:var(--gray);
            border-color: transparent;
            font-weight:500;
            border-radius:calc(var(--10px) / 2);
            outline:none;
            flex-grow:1;
            font-size: var(--fsize--1);
        }
    
        & button.nav-link.active    {
    
            border:1px solid var(--main-verde);
            color:var(--white);
            background-color:var(--main-verde);;
        }
    }

}



/*--------------------------------------------------------------
# Especial CSS
--------------------------------------------------------------*/

.vidContainer {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
  margin-bottom: 5%;
}

.video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.blm-card img {
margin-bottom:30px;
}

.blm-card {
  border:2px solid var(--main-verde);
  padding:10px;
}

.vh-md-100 {
height: 100vh;
}

.mh-md-720 {
max-height:720px;
}

/*
## Productos
*/
.portfolio-item{
/*width:100%;*/
}
.portfolio-item .item{
/*width:303px;*/
float:left;
margin-bottom:10px;
}


/*
 ## Tapes
*/

/* Vertical connecting line for timeline */
.col-lg-6:has(.blm-p-tape)::before {
  content: '';
  position: absolute;
  left: 2.27rem; /* Center of the icon area (4.54rem / 2) */
  top:10%;
  bottom: 0;
  width: 2px;
  height:80%;
  background-color: var(--gray);
  z-index: -1;
}

.blm-p-tape img {
 aspect-ratio:1 / 1;
 width:calc(3.25rem - .7rem);
 margin-bottom:15px;
}

.blm-p-tape {
    display: grid;
    gap: 0rem;
    margin-block:.8rem;
    grid-template-columns: 4.54rem auto;
    grid-template-areas:
    "img title"
    "img text";
}

.blm-p-tape img {
    grid-area: img;
    height:100%;
}

.blm-p-tape :is(h2, h3) {
    grid-area: title;
    margin-bottom:0;
}

.blm-p-tape :is(p) {
    grid-area: text;
    margin-bottom:0;
}

.tipos-matrices {
  
  & h3 {
    font-weight:400;
    text-align:center;
    background-color:var(--white);
    padding-block: 20px;
    padding-inline:60px;
    font-size:var(--fsize-2)
  }
  
}

.lini-mantenimiento {
  text-align:center;
  border:2px solid var(--main-verde);
  padding-block:40px;
  padding-inline:40px;
  border-radius:10px;
  
  & h2 {
    font-size:var(--fsize-1);
    font-weight:400;
    color:var(--main-verde);
  }
  
}

/*--------------------------------------------------------------
# Utilidades
--------------------------------------------------------------*/

/*
## Container Breakout
*/

/* Breakout left - Column extends to left edge */
.col-breakout-left {
  margin-left: calc(-50vw + 50%);
  width: calc(50vw - 50% + 100%);
}

/* Breakout right - Column extends to right edge */
.col-breakout-right {
  margin-right: calc(-50vw + 50%);
  width: calc(50vw - 50% + 100%);
}

/* Breakout both - Column extends to both edges (full width) */
.col-breakout-full {
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  width: 100vw;
}

/* Responsive breakout utilities */
@media (min-width: 768px) {
  .col-breakout-left-md {
    margin-left: calc(-50vw + 50%);
    width: calc(50vw - 50% + 100%);
  }
  
  .col-breakout-right-md {
    margin-right: calc(-50vw + 50%);
    width: calc(50vw - 50% + 100%);
  }
  
  .col-breakout-full-md {
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    width: 100vw;
  }
}

@media (min-width: 992px) {
  .col-breakout-left-lg {
    margin-left: calc(-50vw + 50%);
    width: calc(50vw - 50% + 100%);
  }
  
  .col-breakout-right-lg {
    margin-right: calc(-50vw + 50%);
    width: calc(50vw - 50% + 100%);
  }
  
  .col-breakout-full-lg {
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    width: 100vw;
  }
}

@media (min-width: 1200px) {
  .col-breakout-left-xl {
    margin-left: calc(-50vw + 50%);
    width: calc(50vw - 50% + 100%);
  }
  
  .col-breakout-right-xl {
    margin-right: calc(-50vw + 50%);
    width: calc(50vw - 50% + 100%);
  }
  
  .col-breakout-full-xl {
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    width: 100vw;
  }
}

.blm-img {
  max-height:initial;
}

/* Helper class to prevent horizontal scroll */
.breakout-container {
  overflow-x: hidden;
}

.p-block-345 {
  padding-block:clamp(3rem, 4rem, 5rem);
}

.p-block-start-345 {
  padding-block-start:clamp(3rem, 4rem, 5rem);
}

.p-block-end-345 {
  padding-block-end:clamp(3rem, 4rem, 5rem);
}

.shadow {
  -webkit-box-shadow: 0px 0px 25px -5px rgba(0, 0, 0, 0.25);
  -moz-box-shadow: 0px 0px 25px -5px rgba(0, 0, 0, 0.25);
  box-shadow: 0px 0px 25px -5px rgba(0, 0, 0, 0.25);
}

.z-index-100 {
  z-index: 100;
}

.slvh-100 {
  min-height: 100svh;
}

.lvh-100 {
  min-height: 100lvh;
}

.rounded-10 {
  border-radius:var(--10px);
}

.rounded-20 {
  border-radius:calc(var(--10px) * 2);
}

.rounded-30 {
  border-radius:calc(var(--10px) * 3);
}

.rounded-40 {
  border-radius:calc(var(--10px) * 4);
}

.rounded-50 {
  border-radius:calc(var(--10px) * 5);
}

.gap-10 {
  gap:var(--10px);
}

.gap-20 {
  gap:calc(var(--10px) * 2);
}

.gap-30 {
  gap:calc(var(--10px) * 3);
}

.gap-40 {
  gap:calc(var(--10px) * 4);
}

.gap-50 {
  gap:calc(var(--10px) * 5);
}

.overflow-hidden {
  overflow: hidden;
}

/*--------------------------------------------------------------
# Social Networks Styles - v2.1.5
# Added: 18-09-2025
# Integration of social media icons in footer section
--------------------------------------------------------------*/
.social-networks-container {
  margin-top: 1rem;
}

.social-network-link {
  display: inline-block;
  transition: transform 0.3s ease, opacity 0.3s ease;
  text-decoration: none;
  padding: 8px;
}

.social-network-link:hover {
  transform: scale(1.1);
  text-decoration: none;
  opacity: 0.9;
}

.social-icon {
  width: 40px;
  height: 40px;
  object-fit: contain;
  transition: filter 0.3s ease;
}