:root {
    --bs-primary: #3a8990;
    --bs-secondary: #00696D;
    --bs-grey-light: #F6F6F6;
    --bs-hotspot: #0145AD;
    --bs-black-text : #7a7a7a;
}
/* fonts */
.lato-light {
  font-family: "Lato", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.lato-regular {
  font-family: "Lato", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.lato-bold {
  font-family: "Lato", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.lato-black {
  font-family: "Lato", sans-serif;
  font-weight: 900;
  font-style: normal;
}

.lato-light-italic {
  font-family: "Lato", sans-serif;
  font-weight: 300;
  font-style: italic;
}

body {
    font-family: "Lato", sans-serif;
    font-weight: 400;
}
section{
    overflow-x: hidden!important;
}
.nav-link{
    font-weight: 400;
}
.nav-link.selected{
    font-weight: 900;
    color: black !important;
}
.nav-link:hover{
    color: var(--bs-primary);
}
.fw-bold, h1, b, strong,h5 {
    font-weight: 900!important;
}
h2{
    font-weight: 400!important;
}

.ls-1 {
    letter-spacing: 1px;
}

.min-vh-50 {
    min-height: 50vh;
}
h1{
    font-weight: 900;
}
h3, h4, h5, h6{
    color: var(--bs-primary);

}
.color-7a{
    color: var(--bs-black-text) !important;
}
.bg-grey-light{
    background-color: var(--bs-grey-light);
}
.bg-grey{
    background-color: #EBE8E0;
}
.accordion-button:not(.collapsed) {
    color: var(--bs-primary);
    background-color: rgba(0, 150, 94, 0.1);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .125);
}

.accordion-button:focus {
    border-color: rgba(0, 150, 94, 0.5);
    box-shadow: 0 0 0 0.25rem rgba(0, 150, 94, 0.25);
}

.card {
    transition: transform 0.3s ease;
    border-radius: 1rem;
}

.card:hover {
    /* transform: translateY(-5px); */
}

.navbar{
    text-transform: uppercase;
}
.btn-green{
    background-color: var(--bs-primary);
    color: white;
    text-transform: uppercase;
    font-weight: 350;
    font-size: 1rem;;
}
.btn-green:hover{
    background-color: var(--bs-secondary);
    color: white;
}
.text-balance{
    text-wrap: balance;
}
/* header */
header {
    background-image: url('../assets/img/hero-verdalia-karrantza.jpg');
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    min-height: 790px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.ficha {
    border-radius: 1rem;
    background-color: white;
    display: flex;
    flex-direction: row;
}
.ficha img{
    width: 45px;
    padding-right: 10px;
    height: auto;
}
.lead {
  font-size: 1.1rem;
}
@media (min-width: 992px) {
    header {
        min-height: 750px;
    }
    .ficha {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
    .lead {
        font-size: 1.25rem;
    }
}
.ficha h3{
    color: var(--bs-primary)!important;
}

/* proyecto */
#proyecto_2 ul{
    padding-left: 1rem;
    margin-top: 20px;
}

/* biometano */
#biometano {
    background-color: var(--bs-primary);
}
hr{
    opacity: 1;
    border-top-width: 3px ;
}
.iconos-biometano p{
    font-size: 1rem;
    color: black;
}
.iconos-biometano .badge{  
    width: 40px;
    height: 40px;
    font-size: 1.2rem;
    font-weight: normal;
    top: -10px;
    left: -10px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.iconos-biometano img{
    height: 100%;
}  
.icon-container{
    width: 120px;
    height: 120px;
    margin: 0 auto;
    background-color: white;
    border-radius: 50%;
    padding: 25px;
}
@media (min-width: 992px) {
    .iconos-biometano .badge{  
        width: 45px;
        height: 45px;
        font-size: 1.3rem;
    }
    .icon-container{
        width: 140px;
        height: 140px;
        padding: 30px;
    }
}

/* funciona */
#funciona .badge{
    background-color: var(--bs-primary) !important;
    font-size: 1.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    flex-shrink: 0;
}
#funciona .card img{
    width: 100%;
    max-height: 90px;
}
#funciona .card-text{
    line-height: 1.3;
    font-size: 1.15rem;
}
@media (min-width: 768px) {
    #funciona .card-text{
        font-size: 1.25rem;
    }
}
#funciona .icono {
    width: 30%;
    flex-shrink: 0;
    padding: 0 10px;
}
@media (min-width: 768px) {
    #funciona .icono {
        width: 25%;
        padding: 0 15px;
    }
}
@media (min-width: 992px) {
    #funciona .icono {
        width: 30%;
    }
}
@media (min-width: 1200px) {
    #funciona .icono {
        width: 35%;
    }
}

/* compromiso */
#compromiso{
    background-image: url('../assets/img/bg-compromiso.jpg');
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
#compromiso h4{
    text-transform: uppercase;
    font-weight: 300;
}
#compromiso h5{
    font-weight: bold;
    color: black;
    margin-top: 10px;
    margin-bottom: 10px;
}
#compromiso p{
    line-height: 1.5;
}
#compromiso .iconos img{
    height: 60px;
}

/*transparencia*/
#transparencia .card{
    background-color: var(--bs-primary);
}
#transparencia h5{
    color: white;
}

/* impulsando */
#impulsando{
    background-image: url('../assets/img/bg-impulsando.jpg');
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
/* Footer */
footer p{
    color: var(--bs-primary);
    line-height: 1.3;
}
.link-green{
    color: var(--bs-primary);
    text-decoration: none;
}
.link-green:hover{
    text-decoration: underline;
}
.top-link{
    background-color: var(--bs-primary);
    color: white;
    text-decoration: none;
    border-radius: 50%;
    padding: 3px;
    width: 50px;
    height: 50px;
    text-align: center;
    font-size: 1.5rem;
    display: inline-block;
    margin-top: 3px;
}
.top-link:hover{
    background-color: var(--bs-secondary);
}
.logo-pie{
    width: 100%;
    max-width: 180px;
}
.rrss{
    background-color: black;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    padding: 9px;
    margin: 0 auto;
}
@media (min-width: 768px) {
    .rrss{
        margin: 0;
    }
}
.rrss img{
    width: 100%;
}

/*legales*/
.legales{
    background-color: var(--bs-secondary);
    color: white;
    padding: 40px 0;
}
.legales a{
    color: white;
    text-decoration: none;
    text-wrap: nowrap;
    display: block;
    margin-bottom: 6px;
}
@media (min-width: 768px) {
    .legales{
        padding: 25px 0;
    }
    .legales a{
        display: inline;
        margin-bottom: 0;
    }
}
.legales a:hover{
    text-decoration: underline;
}

/* Diagrama interactivo y hotspots */
.diagram-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.hotspot {
    position: absolute;
    width: 25px;
    height: 25px;
    background-color: var(--bs-hotspot);
    color: white;
    border: 2px solid white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    transform: translate(-50%, -50%);
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    z-index: 10;
    padding: 0;
}
.text_hotspot{
    position: absolute;
    color: var(--bs-hotspot);
    border: none;
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    width: 240px;
    line-height: 1;
    height: auto;
    text-wrap: balance;
    text-align: center;
    background: transparent;
}
.text_hotspot:hover{
    /* text-decoration: underline; */
}

@media (min-width: 1200px) {
    .text_hotspot{
        font-size: 1.2rem;
    }
}

.hotspot:hover {
    background-color: var(--bs-hotspot);
    transform: translate(-50%, -50%) scale(1.2);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.4);
}

.hotspot::after {
    content: '';
    position: absolute;
    width: calc(100% + 4px);
    height: calc(100% + 4px);
    border-radius: 50%;
    border: 2px solid var(--bs-hotspot);
    opacity: 0.8;
    animation: pulse-hotspot 2s infinite;
    pointer-events: none;
    top: -2px;
    left: -2px;
}

@keyframes pulse-hotspot {
    0% {
        transform: scale(1);
        opacity: 0.8;
    }
    100% {
        transform: scale(1.8);
        opacity: 0;
    }
}

/* Modales personalizados */
.modal-custom .modal-content {
    border: none;
    border-radius: 1.5rem;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
}

.modal-custom .modal-header {
    background-color: var(--bs-grey-light);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
}

.modal-custom .modal-title {
    color: var(--bs-secondary);
    font-weight: 900;
    display: flex;
    align-items: center;
}

.modal-custom .modal-body {
    padding: 2rem;
    font-size: 1.1rem;
    color: #4f4f4f;
    line-height: 1.6;
}

.modal-custom .modal-footer {
    border-top: none;
    padding: 1rem 2rem 2rem;
}

.modal-custom .modal-icon-badge {
    width: 45px;
    height: 45px;
    background-color: var(--bs-primary);
    color: white;
    border-radius: 50%;
    display: none; /* inline-flex; */
    align-items: center;
    justify-content: center;
    margin-right: 15px;
    font-weight: bold;
    font-size: 1.2rem;
}

/* Custom Popover Hotspots */
.custom-popover-hotspot {
    --bs-popover-bg: #fff;
    --bs-popover-border-color: rgba(0, 0, 0, 0.05);
    --bs-popover-border-radius: 1rem;
    --bs-popover-box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    --bs-popover-header-bg: var(--bs-grey-light);
    --bs-popover-header-color: var(--bs-secondary);
    --bs-popover-header-padding-x: 1.25rem;
    --bs-popover-header-padding-y: 1rem;
    --bs-popover-body-color: #4f4f4f;
    --bs-popover-body-padding-x: 1.25rem;
    --bs-popover-body-padding-y: 1.25rem;
    max-width: 380px;
}
.custom-popover-hotspot .popover-header {
    font-weight: 900;
    font-size: 1.1rem;
}
.custom-popover-hotspot .popover-body {
    font-size: 0.95rem;
    line-height: 1.5;
}
.custom-popover-hotspot .popover-body p:last-child {
    margin-bottom: 0;
}
/* Aumentar los márgenes laterales en dispositivos móviles */
@media (max-width: 576px) {
    .container, .container-fluid, .row {
        --bs-gutter-x: 2.5rem; /* Incrementa el margen lateral de 12px a 20px en móviles */
    }
}

/* Forzamos que las tarjetas de "Puntos clave" tengan la misma altura en mobile/tablet al estar en una columna */
@media (max-width: 991.98px) {
    #funciona .row.justify-content-center {
        display: grid !important;
        grid-template-columns: 1fr;
        grid-auto-rows: 1fr;
        row-gap: 1.5rem;
        margin-top: 0 !important;
    }
    #funciona .row.justify-content-center > [class*="col-"] {
        margin-top: 0 !important;
        display: flex;
    }
}