* {
    font-size: 1.05rem;
    font-weight: 300;
}

/* ---------- block-expand-categories (bloque Tarjetas estilo 2/3, ej. Partners
   y Propuestas): icono siempre visible; el titulo ya lo oculta code_4.php
   cuando la tarjeta queda colapsada por el hover/active de otra; el subtitulo
   es al reves, arranca oculto y solo aparece cuando ESA tarjeta esta activa
   o en hover. Todo centrado verticalmente en vez del anclaje inferior que
   trae code_4.php para el <h4> solo. ---------- */
.block-expand-categories .expand-category a {
    position: relative;
    cursor: pointer;
    -webkit-user-drag: none;
    /*user-select: none;*/
}

.fa-brands.fa-youtube{
    color: #001871;
}

#bwblock_44194 .custom_title_div h2,
div#bwblock_44194 p{
    color: #ffffff!important;
}

.entry-meta i {
    margin-right: 0!important;
}

.footermap{
    position:relative;
}

.footermap:before {
    content: "";
    position: absolute;
    height: 10%;
    width: 10%;
    background-color: #001871;
    bottom: 0;
    left: 0;
    z-index: 1;
    border-radius: 36px;
}

div#bwblock_98206 {
    display: block;
    align-items: center;
    position: relative;
    width: 100%;
    height: 60vh;
    max-height: 60vh;
    background: #C8E5FE;
    background: linear-gradient(234deg, #e9f5ff 0%, rgba(233, 245, 255, 1) 65%, rgba(255, 255, 255, 1) 100%);
}

/*div#bwblock_17478:before {
    content: '';
    position: absolute;
    width: 16%;
    height: 10%;
    bottom: 0;
    left: 0;
    background: #e9f5ff;
    z-index: 111111;
}*/

#footer #google-map-BW {
    height: 260px;
    width: 100%;
    border-radius: 1rem;
    overflow: hidden;
    background-color: #001871;
}

div#bwblock_87224,
div#bwblock_98206{
    z-index: 111;
}

div#bwblock_42432, #bwblock_27773 {
    position: relative;
}

.map-wrap:before, #footer #google-map-BW:before {
    content: '';
    position: absolute;
    height: 100%;
    width: 200%;
    background: #C8E5FE;
    background: linear-gradient(234deg,rgba(200, 229, 254, 1) 0%, rgba(200, 229, 254, 0.59) 15%, rgba(200, 229, 254, 0) 100%);
    z-index: -1;
    left: -100%;
}

.map-wrap:before{
    background: #0c2e56;
}

.carousel_fox .portfolio-item > div:not(.portfolio-image) i {
    text-align: center !important;
    display: block;
    margin: 30px 0 30px 0!important;
}

.bwshare .sharelabel {
    position: relative;
    top: -15px;
    right: 5px;
    color: #111111 !important;
    text-transform: uppercase;
}

.bwshare a i {
    text-align: center;
    display: table;
    margin: auto;
}

.social-icon:hover i:first-child {
    margin-top: 0px !important;
}

.block-expand-categories .expand-category-content {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1.5rem 1rem;
    pointer-events: none;
}

.entry-image img {
    border-radius: 0.5rem;
}

.entry-meta ul {
    margin: 0 0 -10px -32px;
    padding-left: 1.7rem !important;
}

.pageid1 .entry-meta ul {
    padding-left: 1.2rem !important;
}

/* El texto (titulo, subtitulo) es seleccionable por defecto: al pasar el
   mouse por encima, el navegador compite entre el cursor de texto y el
   pointer heredado y eso se siente como un "hover out" de la tarjeta.
   pointer-events:none en todo el contenido hace que el mouse siempre
   interactue con el <a> de abajo, nunca con el texto. */
.block-expand-categories .expand-category-content * {
    pointer-events: none;
    user-select: none;
}

.block-expand-categories .expand-category-icon {
    font-size: 1.8rem;
    margin-bottom: 0.6rem;
}

.block-expand-categories h4.expand-category-title {
    position: static !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    margin: 0;
}

.expand-category-subtitulo {
    font-size: 0.85rem;
    font-weight: 300;
    opacity: 0;
    margin-top: 0.6rem;
    margin-bottom: 0;
    transition: opacity .4s ease, max-height .4s ease, margin .4s ease;
}

@media (min-width: 992px) {
    /* Titulo y subtitulo colapsan su alto ademas de desvanecerse: si solo
       bajara la opacidad, seguirian ocupando espacio en el flex centrado y
       el icono quedaria empujado hacia arriba en vez de centrado solo. */
    .block-expand-categories h4.expand-category-title {
        max-height: 4rem;
        overflow: hidden;
        transition: opacity .4s ease, max-height .4s ease, margin .4s ease;
    }

    .expand-category-subtitulo {
        max-height: 0;
    }

    .block-expand-categories:hover .expand-category:not(.active):not(:hover) h4.expand-category-title,
    .block-expand-categories.on-click .expand-category:not(.active) h4.expand-category-title {
        max-height: 0;
        margin: 0;
    }

    .block-expand-categories:not(.on-click) .expand-category:hover .expand-category-subtitulo,
    .block-expand-categories.on-click .expand-category.active .expand-category-subtitulo {
        opacity: 0.85;
        max-height: 8rem;
    }
}

#slider .swiper-slide.vh-100{
    height: 100% !important;
}

#slider .swiper-slide .container{
    height: 100%;
}

#top-bar{
    display:none!important
}

#slider .swiper-pagination-bullet{
    background: #fff;
    opacity: .4;
}

#slider .swiper-pagination-bullet-active{
    opacity: 1;
}

header#header {
    position: fixed;
    display: block;
    left: 0;
    right: 0;
    width: auto;
}

#logo img {
    height: auto !important;
    max-height: unset !important;
    max-width: 300px;
}

section#slider .slider-caption h1 {
    text-transform: uppercase;
    font-size: 3rem;
    line-height: 1em;
    font-weight: 300;
}


section#slider .swiper-slide-5 .slider-caption h1,
section#slider .swiper-slide-5 .slider-caption h1 em,
section#slider .swiper-slide-5 .slider-caption h1 span {
    text-transform: uppercase;
    font-size: 3rem;
    margin-left: 0;
    margin-right: auto;
    margin-bottom: 0;
}

section#slider .slider-caption h2 {
    text-transform: uppercase;
    font-size: 1.5rem;
    font-weight: 200;
    line-height: 1.2em;
    margin-bottom:0
}

.button {
    padding: 12px 28px;
    border-radius: 7px;
}

.contform_contact button {
    background-color: #001871;
    text-transform: uppercase !important;
}

.slider-caption{
    max-width:800px
}

.botones_slider button {
    background-color: rgba(255, 255, 255, 0.3) !important;
    /* border: 1px solid #ffffff !important; */
    backdrop-filter: blur(3px);
    border: 1px solid rgba(255, 255, 255, 0) !important;
}

.botones_slider button:hover {
    border:1px solid rgba(255,255,255,1)!important;
}

.slider-caption  h1{
    font-size:2.3rem
}

.botones_slider span {
    text-transform: uppercase;
    font-weight: 200;
    font-size: 1rem;
    letter-spacing: 0.15em;
}

span.map-pin.pin-red {
    background: #e10b0b !important;
}

span.map-pin.pin-green {
    background: #008100 !important;
}

span.map-pin.pin-black {
    background: #111111 !important;
}

span.map-pin.pin-orange {
    background: #ffa201 !important;
}

span.map-pin.pin-celeste {
    background: #7fddff !important;
}

span.map-pin.pin-marsala {
    background-color: #964F4C !important;
}

.mapbase .map-wrap img{
  display:block;
  width:100%;
  height:auto;
  /*aspect-ratio: 2209 / 1862;*/ /* reserva el alto real antes de que cargue, evita que colapse a 0 y descoloque los pines */
}


.slider-caption {
    position: relative;
    max-width: 1000px;
}

.slider-caption h1.text-rotator .rotator-item {
    display: inline-block;
    opacity: 0;
    transition: opacity .4s ease;
    font-weight:700;
}

.slider-caption h1.text-rotator .rotator-item.hidden {
    display: none;
}

.slider-caption h1.text-rotator .rotator-item.active {
    opacity: 1;
}

.isoslider {
    position: relative;
    /* top: -6%; */
    /* height: 14%; */
    width: 120px;
    z-index: 11;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 20px;
}

.isoslider svg {
    display: block;
    position: relative;
    /* margin: auto; */
    height: 100%;
    width: auto;
    margin: auto;
    bottom: 0;
}

.slider-caption.slider-caption-left.dark.fadeIn.animated {
    max-width:100%;
}

.leyenda-mapa {
        display: flex;
        gap: 60px;
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .leyenda-mapa ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .leyenda-mapa li {
        display: flex;
        align-items: center;
        gap: 14px;
        margin-bottom: 18px;
        padding-left: 0 !important;
    }

    .leyenda-mapa .barra {
        display: inline-block;
        width: 40px;
        height: 8px;
        border-radius: 4px;
        flex-shrink: 0;
        outline: 1px solid #ffffff;
    }

    .leyenda-mapa span.texto {
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: #ffffff;
        font-size: 0.9rem;
    }

    .color-verde   { background-color: #008200; }
    .color-rojo    { background-color: #ff0000; }
    .color-naranja { background-color: #ffa300; }
    .color-negro   { background-color: #000000; }
    .color-marsala { background-color: #964F4C; }
    .color-celeste { background-color: #7fddff; }

h1.animate__animated.animate__fadeInDown.text-white.text-rotator {
    text-align: left;
}

div#bwblock_87224 {
    padding: 6rem 0 1rem 0 !important;
    display: flex;
    align-items: center;
    position: absolute;
    width: 100%;
    z-index: 11111;
    pointer-events: none;   /* todo el bloque deja pasar clics al mapa */
}

div#bwblock_87224 .row > :first-child {
    pointer-events: auto;   /* solo la columna del texto es interactiva */
}


div#bwblock_98206{
    /* min-height: 80vh;
    padding: 6rem 0 1rem 0 !important; */
    display: flex;
    align-items: center;
    position: relative;
    width: 100%;
}

div#bwblock_87224 .container,
div#bwblock_98206 .container{
    width: 100%;
    margin-bottom: 0px;
}

.tres_banners_encajados .custom_title_div .button span {
    font-size: 0.9rem!important;
}

.tres_banners_encajados .custom_title_div .button {
    padding: 7px 15px;
}

.pageid1 #content {
    position: relative;
    z-index: 1;    
}

#slider .swiper-slide-active .container{
    height: 100% !important;
    display: block;
}

#slider .swiper-slide-active .slider-caption {
    height: 100% !important;
    /* display: block; */
    bottom: 0;
}

ul:not(.menu-container) {
    padding-left: 5px;
    /*margin-top: 20px;*/
    list-style: none;
}

.pageid46 .feature-box.fbox-plain.fbox-sm .fbox-icon i {
    color: #c0e8ff;
}

.pageid46 .feature-box.fbox-plain.fbox-sm .fbox-icon {
    background-color: #001871!important;
    position: relative;
}

.pageid46 .feature-box.fbox-plain.fbox-sm .fbox-icon::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1px solid #001871;
    animation: fbox-icon-pulse 1.8s ease-out infinite;
    pointer-events: none;
}

@keyframes fbox-icon-pulse {
    0% { transform: scale(0.85); opacity: .7; }
    100% { transform: scale(1.4); opacity: 0; }
}

.pageid52 div#bwblock_483 h3, .pageid52 div#bwblock_483 p {
    color: #FFF;
}

.pageid52 div#bwblock_483 p {
    color: #FFF;
    display: table;
    margin: auto;
    max-width: 850px;
    text-transform: none;
    margin-top: 10px;
    position: relative;
}

ul:not(.menu-container):not(.sub-menu-container):not(.social_footer2) li {
    position: relative;
    margin-bottom: 25px;
    line-height: 1.3em;
    font-weight: 200 !important;
    /*padding-left: 23px;*/
    font-size: 0.95rem;
}

.blur_bg p strong {
    font-weight: 700!important;
}

.tres_banners_equals ul li{
    padding-left: 23px;
}

.pageid48 ul:not(.social_footer2) li {
    padding-left: 23px;
}

.pageid46 ul:not(.menu-container):not(.sub-menu-container):not(.social_footer2) li {
    margin-bottom: 5px;
    font-size: 0.8rem;
}

.carousel_fox .portfolio-item .slider_texto li {
    font-size: 1.05rem !important;
}

.pageid46 #bwblock_78606 p{
    font-size: 0.95rem;
}

.entry-meta ul:not(.menu-container) li {
    padding-left: 0px;
}


div#bwblock_30842 {
    margin: auto;
    max-width: 1100px;
}

div#bwblock_79859 ul li {
    padding-top: 12px;
    padding-bottom: 12px;
    margin-bottom: 0;
    border-bottom: 1px solid #cacaca;
}

div#bwblock_79859 ul li:last-child {
    border: 0;
}

div#bwblock_79859 ul li::before {
    top: calc(12px + 0.65em);
}

.title_with_icon .custom_title {
    display: flex;
    align-items: center;
    gap: 14px;
    font-weight: 300;
    font-size: 1.05rem;
    line-height: 1.1em;
}

.title_with_icon .custom_title i {
    font-size: 2.1rem;
    color: #8aa8e0;
    flex-shrink: 0;
    line-height: 1;
    width: 65px;
    text-align: center;
}

/* variante "icon-right": título primero, ícono al final (pegado a la derecha).
   Agregar la clase "icon-right" al bloque .title_with_icon que lo necesite
   (ej. una columna espejada a la derecha), sin tocar el resto que usa la base. */
.title_with_icon.icon-right .custom_title {
    flex-direction: row-reverse;
}


.title_with_icon {
    padding-top: 15px;
    max-width: 600px;
    padding-bottom: 15px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.justify-content-center .row{
    justify-content:center
}

div#bwblock_80526 .owl-carousel {
    max-width: 900px;
    margin: auto;
}

.title_with_icon:last-child {
    border: 0;
}

.aligned_centered_bwblock {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

ul:not(.menu-container):not(.mapref):not(.sub-menu-container):not(.social_footer2) li::before {
    content: '';
    position: absolute;
    left: 4px;
    top: 0.65em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #001871;
    box-shadow: 0 0 0 4px #fff, 0 0 0 5px #001871;
    transform: translateY(-50%);
}

/*div#bwblock_44194 {
    margin-top: -5%;
}*/

.texto_sobre_banner {
    width: 33%;
    display: inline-block;
    padding: 50px;
    vertical-align: middle;
    position: relative;
    z-index: 1;
}

/* ---------- .photo-mask: los bwblock hijos directos actuan como "ventanas"
   redondeadas que muestran, cada uno, el recorte que le corresponde de UNA
   sola imagen de fondo asignada al bloque padre (como si la foto estuviera
   detras y cada hijo fuera un recorte de la misma escena, sin cortes ni
   repeticion). El padre no pinta la imagen (background-image:none), solo la
   deja disponible en su style inline para que el JS la lea y la replique en
   cada hijo con el tamaño/posicion correctos; asi el hueco entre ventanas
   queda liso. Alineacion via CSS vars que calcula syncPhotoMask() en
   project_js.php (mismo patron que --bump-bg-size/--bump-bg-pos). */
.photo-mask {
    position: relative;
    display: flex;
    gap: 1.5rem;
    background-image: none !important;
}

.photo-mask > .bwblock {
    display: block;
    width: auto;
    padding: 2rem 1.5rem;
    flex: 1 1 0;
    min-height: 260px;
    position: relative;
    overflow: hidden;
    border-radius: 1.25rem;
    background-repeat: no-repeat;
    background-size: var(--mask-bg-w, 100%) var(--mask-bg-h, 100%);
    background-position: var(--mask-bg-x, 0) var(--mask-bg-y, 0);
}

.photo-mask > .bwblock::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    pointer-events: none;
}

.photo-mask > .bwblock .custom_title_div {
    position: relative;
    z-index: 1;
}

.photo-mask > .bwblock .custom_title_div,
.photo-mask > .bwblock .custom_title_div * {
    color: #ffffff !important;
}

.top_with_bg .blur_bg p:not(.title-icon) {
    line-height: 1.3em !important;
    letter-spacing: -0.03em;
    font-size: 1.1rem;
}

@media (max-width: 767px) {
    .photo-mask {
        flex-direction: column;
    }
    
    .accimg .accimg-item {
        padding:8px 20px;
    }
}    

.border_gradient_content {
    border-radius: 1.5rem;
    overflow: hidden;
    min-height: 40vh;
    background-size: cover !important;
    background-position: top !important;
    border-radius: 14px;
    background: #ffffff;
    padding: 4rem 2rem;
    display: flex;
    align-items: center;
    position: relative;
    border-bottom-left-radius: 5rem;
    border-top-right-radius: 5rem;
}

.pageid1 .border_gradient_content {
    border-radius:20px!important
}

.image_before_icons{
    border-radius: 1.5rem;
    overflow: hidden;
    padding: 4rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: 0px 6px 8px rgba(0, 0, 0, 0.2);
}

.image_before_icons {
    min-height: 300px;
}

.image_before_icons::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 0;
    background-color: rgba(0, 0, 0, 0.5);
    left: 0;
    top: 0;
}

.image_before_icons div.bwblock {
    max-width: 1100px;
    margin: auto;
    z-index: 1;
}

.pageid47 #bwblock_83087{
    padding:0
}

div.border_gradient_content i {
    display: block;
    margin-bottom: 17px;
    font-size: 2.3rem !important;
    margin-left: auto;
    margin-right: auto;
}

div.border_gradient_content p {
    max-width: 400px;
    margin: 10px auto;
}

.postcontent h2 a {
    /* font-size: 1.3rem; */
    line-height: 1.15em;
    display: block;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: -0.015rem;
}

.postcontent .grid-inner {
    background: #ffffff;
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1);
}

.postcontent .grid-inner .entry-title {
    padding: 10px 20px;
}

.pageid8 .postcontent .grid-inner .entry-meta {
    padding: 0 20px 15px 20px;
}

/*.border_gradient_content:before {
    clip-path: polygon(100% 39.8px, 99% 39.8303px, 98% 39.8228px, 97% 39.7595px, 96% 39.6324px, 95% 39.4408px, 94% 39.1887px, 93% 38.8831px, 92% 38.5324px, 91% 38.1449px, 90% 37.7277px, 89% 37.2858px, 88% 36.8215px, 87% 36.3342px, 86% 35.8201px, 85% 35.2724px, 84% 34.6822px, 83% 34.0386px, 82% 33.3298px, 81% 32.5442px, 80% 31.6709px, 79% 30.701px, 78% 29.6282px, 77% 28.4493px, 76% 27.1652px, 75% 25.7805px, 74% 24.304px, 73% 22.7482px, 72% 21.1292px, 71% 19.4656px, 70% 17.7785px, 69% 16.0897px, 68% 14.4217px, 67% 12.7964px, 66% 11.2342px, 65% 9.75326px, 64% 8.36904px, 63% 7.09371px, 62% 5.93588px, 61% 4.9005px, 60% 3.98898px, 59% 3.19947px, 58% 2.52727px, 57% 1.96542px, 56% 1.50539px, 55% 1.13778px, 54% .853034px, 53% .642229px, 52% .497658px, 51% .413403px, 50% .385742px, 49% .413403px, 48% .497658px, 47% .642229px, 46% .853034px, 45% 1.13778px, 44% 1.50539px, 43% 1.96542px, 42% 2.52727px, 41% 3.19947px, 40% 3.98898px, 39% 4.9005px, 38% 5.93588px, 37% 7.09371px, 36% 8.36904px, 35% 9.75326px, 34% 11.2342px, 33% 12.7964px, 32% 14.4217px, 31% 16.0897px, 30% 17.7785px, 29% 19.4656px, 28% 21.1292px, 27% 22.7482px, 26% 24.304px, 25% 25.7805px, 24% 27.1652px, 23% 28.4493px, 22% 29.6282px, 21% 30.701px, 20% 31.6709px, 19% 32.5442px, 18% 33.3298px, 17% 34.0386px, 16% 34.6822px, 15% 35.2724px, 14% 35.8201px, 13% 36.3342px, 12% 36.8215px, 11% 37.2858px, 10% 37.7277px, 9% 38.1449px, 8% 38.5324px, 7% 38.8831px, 6% 39.1887px, 5% 39.4408px, 4% 39.6324px, 3% 39.7595px, 2% 39.8228px, 1% 39.8303px, 0 39.8px, 0 100%, 1% 100%, 2% 100%, 3% 100%, 4% 100%, 5% 100%, 6% 100%, 7% 100%, 8% 100%, 9% 100%, 10% 100%, 11% 100%, 12% 100%, 13% 100%, 14% 100%, 15% 100%, 16% 100%, 17% 100%, 18% 100%, 19% 100%, 20% 100%, 21% 100%, 22% 100%, 23% 100%, 24% 100%, 25% 100%, 26% 100%, 27% 100%, 28% 100%, 29% 100%, 30% 100%, 31% 100%, 32% 100%, 33% 100%, 34% 100%, 35% 100%, 36% 100%, 37% 100%, 38% 100%, 39% 100%, 40% 100%, 41% 100%, 42% 100%, 43% 100%, 44% 100%, 45% 100%, 46% 100%, 47% 100%, 48% 100%, 49% 100%, 50% 100%, 51% 100%, 52% 100%, 53% 100%, 54% 100%, 55% 100%, 56% 100%, 57% 100%, 58% 100%, 59% 100%, 60% 100%, 61% 100%, 62% 100%, 63% 100%, 64% 100%, 65% 100%, 66% 100%, 67% 100%, 68% 100%, 69% 100%, 70% 100%, 71% 100%, 72% 100%, 73% 100%, 74% 100%, 75% 100%, 76% 100%, 77% 100%, 78% 100%, 79% 100%, 80% 100%, 81% 100%, 82% 100%, 83% 100%, 84% 100%, 85% 100%, 86% 100%, 87% 100%, 88% 100%, 89% 100%, 90% 100%, 91% 100%, 92% 100%, 93% 100%, 94% 100%, 95% 100%, 96% 100%, 97% 100%, 98% 100%, 99% 100%, 100% 100%);
    background-color: #284b9e !important;
    background-size: var(--bump-bg-size, 200px) 100%;
    background-position: var(--bump-bg-pos, 0) 0;
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    width: 200px;
    height: 40px;
    transform: translateX(-50%) scaleY(-1);
    z-index: 0;
}*/

.block_border_gradient > div > .row {
    position: relative;
    padding: 2px;
    background: linear-gradient(to bottom right, #001871 0%, #375eaf 50%, #7db7ff 100%) !important;
    margin-top: 2rem;
    margin-bottom: 1rem;
    /*border-bottom-left-radius: 5rem;
    border-top-right-radius: 5rem;*/
}

.pageid1 .block_border_gradient > div > .row {
    border-radius: 20px!important;
}

.block_border_gradient.block_bordergrey > div > .row {
    background: rgba(244, 244, 245, 1) !important;
    border: 0;
    border-radius: 1.5rem;
    padding: 0;
}

.block_border_gradient.block_bordergrey .border_gradient_content:before{
    background: rgba(244, 244, 245, 1) !important;
}

.block_border_gradient.block_bordergrey .border_gradient_content {
    border-radius: 1.5rem !important;
    box-shadow: 0px 15px 9px rgba(0, 0, 0, 0.08);
}

.border_and_shadow *{
    border-radius: 1.5rem !important;
    box-shadow: 0px 8px 9px rgba(0, 0, 0, 0.08);
}

.fbox-plain .fbox-icon {
    text-align: center;
    display: block;
    width: 100%;
    padding:0!important;
}


.fbox-plain .fbox-icon i{    
    margin-bottom: 0!important;
}

.fboxicon-content h3 {
    text-align: center;
    font-size: 0.95rem;
    line-height: 1.2em;
    padding: 0 10px 10px 10px;
    font-weight: 400;
}

.pageid46 .fboxicon-content h3 {
    text-align: center;
    font-size: 1.05rem;
    line-height: 1.1em;
    padding: 0 25px 10px 25px;
    font-weight: 300;
}

.block_border_gradient h2{
    color: #fff!important;
}

.block_bordergrey.block_border_gradient h2{
    color: #111!important;
}

.pageid46 .block_bordergrey.block_border_gradient h2{
    color: #001871!important;
}

div#bwblock_33856 p {
    color: rgba(255, 255, 255, 0.85);
    max-width: 600px;
    font-weight: 100;
}

div#bwblock_16773::before {
    content: '';
    position: absolute;
    background-color: rgba(255, 255, 255, 0.8);
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
}

.texto_sobre_banner h4 {
    text-align: center;
    font-size: 1.5rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #111;
}

.texto_sobre_banner p {
    text-align: center;
}

.custom_title_div p.small {
    font-size: 1.1rem;
    /* text-transform: uppercase; */
    margin-top: 7px;
    /* max-width: 500px; */
    color: #111;
}



/*#bwblock_90915 .custom_title_div p.small {
    max-width: 500px;    
}*/

.title-center.custom_title_div .small{
    margin-left: auto;
    margin-right: auto;
}

.pageid1 #slider .swiper-pagination {
    margin-bottom: calc(clamp(40px, 8vw, 160px) + 20px) !important;
}

h2.h2:not(.text-rotator){
    font-size: 2.3rem ;
    color: #001871; /*#111*/
    line-height: 1em !important;
    text-transform: uppercase;
    font-weight: 700;
}

.onebanner-twocolumns .h3, .onebanner-twocolumns ul li {
    color: #FFFFFF !important;
}

.h3{
    font-size: 1.8rem !important;
    color: #001871; /*#111*/
    line-height: 1em !important;
    text-transform: uppercase;
    font-weight: 700;
}

.img-right-column .h3, .img-right-column li {
    color: #FFFFFF;
}

#bwblock_44194 .custom_title_div h2{
    color: #001871;
}

.mapbase{
    position: relative;
    right: 0;
    top: 0;
    /*height: 100%;*/
    width: 100%;
    z-index: 1111;
}

div#bwblock_17478 {
    position: absolute;
    right: 0;
    top: 0;
    height: 60vh;
    width: 50%;
    padding: 0;
}

div#bwblock_58292 {
    z-index: 111;
    padding: 0;
}

.mapbase .map-wrap{
    position: relative;
    display: inline-block;
    max-width: 50%;
    float: right;
}


div#bwblock_77919 {
    padding: 0;
}

.map-marker{
  position:absolute;
  left:var(--x);
  top:var(--y);
  transform:translate(-50%,-100%);
  cursor:pointer;
  z-index:1;
}

.map-marker:hover,
.map-marker.active {
  z-index:10;
}

.map-pin{
  position:relative;
  display:block;
  width:22px;
  height:22px;
  background:grey;
  border:3px solid #fff;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  box-shadow:0 2px 6px rgba(0,0,0,.35);
}
.map-pin::after{
  content:"";
  position:absolute;
  top:50%; left:50%;
  width:8px; height:8px;
  background:#fff;
  border-radius:50%;
  transform:translate(-50%,-50%) rotate(45deg);
}

/* Marcador principal (Aguada Park): isotipo + pulso animado */
.map-marker-main{
  top: calc(var(--y) + clamp(40px, 8vw, 160px));
  transform:translate(-50%,-100%);
}
.map-marker-main .map-pin{
  width:42px;
  height:55px;
  background-color:transparent;
  background-image:url('../cpanelBW/imagesBW/iso_mapa.svg');
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  border:none;
  border-radius:0;
  box-shadow:none;
  transform:none;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.55))
}
.menu-link {
    text-transform: uppercase;
    font-weight: 300;
    font-size: 0.85rem;
}

li.menu-item {
    margin-bottom: 0;
}
.map-marker-main .map-pin::after{
  content:none;
}
.map-marker-main .map-pin::before{
  content:"";
  position:absolute;
  left:50%;
  width:45px;
  height:45px;
  border-radius:50%;
  background:rgba(29,63,170,.55);
  transform:translate(-50%,50%) scale(0.6);
  animation:map-pulse 1.8s ease-out infinite;
  z-index:-1;
}

#carbtq-73831 .carbtq-title {
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 0.4rem 0;
    /* box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35); */
    font-size: 2rem !important;
    line-height: 1em !important;
    text-transform: uppercase;
    padding: 20px;
    border-radius: 20px;
    backdrop-filter: blur(3px);
    text-align: center;
    display: table;
    margin: auto;
    background-color: rgba(0, 0, 0, 0.1);
}

#carbtq-73831 .carbtq-eyebrow {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 100;
    letter-spacing: 0;
    color: #ffffff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
    max-width: 90%;
    margin: 15px auto;
    display: table;
    /* position: absolute; */
    border: 0;
    display:none;
}

/*.carbtq-card:before {
    clip-path: polygon(100% 39.8px, 99% 39.8303px, 98% 39.8228px, 97% 39.7595px, 96% 39.6324px, 95% 39.4408px, 94% 39.1887px, 93% 38.8831px, 92% 38.5324px, 91% 38.1449px, 90% 37.7277px, 89% 37.2858px, 88% 36.8215px, 87% 36.3342px, 86% 35.8201px, 85% 35.2724px, 84% 34.6822px, 83% 34.0386px, 82% 33.3298px, 81% 32.5442px, 80% 31.6709px, 79% 30.701px, 78% 29.6282px, 77% 28.4493px, 76% 27.1652px, 75% 25.7805px, 74% 24.304px, 73% 22.7482px, 72% 21.1292px, 71% 19.4656px, 70% 17.7785px, 69% 16.0897px, 68% 14.4217px, 67% 12.7964px, 66% 11.2342px, 65% 9.75326px, 64% 8.36904px, 63% 7.09371px, 62% 5.93588px, 61% 4.9005px, 60% 3.98898px, 59% 3.19947px, 58% 2.52727px, 57% 1.96542px, 56% 1.50539px, 55% 1.13778px, 54% .853034px, 53% .642229px, 52% .497658px, 51% .413403px, 50% .385742px, 49% .413403px, 48% .497658px, 47% .642229px, 46% .853034px, 45% 1.13778px, 44% 1.50539px, 43% 1.96542px, 42% 2.52727px, 41% 3.19947px, 40% 3.98898px, 39% 4.9005px, 38% 5.93588px, 37% 7.09371px, 36% 8.36904px, 35% 9.75326px, 34% 11.2342px, 33% 12.7964px, 32% 14.4217px, 31% 16.0897px, 30% 17.7785px, 29% 19.4656px, 28% 21.1292px, 27% 22.7482px, 26% 24.304px, 25% 25.7805px, 24% 27.1652px, 23% 28.4493px, 22% 29.6282px, 21% 30.701px, 20% 31.6709px, 19% 32.5442px, 18% 33.3298px, 17% 34.0386px, 16% 34.6822px, 15% 35.2724px, 14% 35.8201px, 13% 36.3342px, 12% 36.8215px, 11% 37.2858px, 10% 37.7277px, 9% 38.1449px, 8% 38.5324px, 7% 38.8831px, 6% 39.1887px, 5% 39.4408px, 4% 39.6324px, 3% 39.7595px, 2% 39.8228px, 1% 39.8303px, 0 39.8px, 0 100%, 1% 100%, 2% 100%, 3% 100%, 4% 100%, 5% 100%, 6% 100%, 7% 100%, 8% 100%, 9% 100%, 10% 100%, 11% 100%, 12% 100%, 13% 100%, 14% 100%, 15% 100%, 16% 100%, 17% 100%, 18% 100%, 19% 100%, 20% 100%, 21% 100%, 22% 100%, 23% 100%, 24% 100%, 25% 100%, 26% 100%, 27% 100%, 28% 100%, 29% 100%, 30% 100%, 31% 100%, 32% 100%, 33% 100%, 34% 100%, 35% 100%, 36% 100%, 37% 100%, 38% 100%, 39% 100%, 40% 100%, 41% 100%, 42% 100%, 43% 100%, 44% 100%, 45% 100%, 46% 100%, 47% 100%, 48% 100%, 49% 100%, 50% 100%, 51% 100%, 52% 100%, 53% 100%, 54% 100%, 55% 100%, 56% 100%, 57% 100%, 58% 100%, 59% 100%, 60% 100%, 61% 100%, 62% 100%, 63% 100%, 64% 100%, 65% 100%, 66% 100%, 67% 100%, 68% 100%, 69% 100%, 70% 100%, 71% 100%, 72% 100%, 73% 100%, 74% 100%, 75% 100%, 76% 100%, 77% 100%, 78% 100%, 79% 100%, 80% 100%, 81% 100%, 82% 100%, 83% 100%, 84% 100%, 85% 100%, 86% 100%, 87% 100%, 88% 100%, 89% 100%, 90% 100%, 91% 100%, 92% 100%, 93% 100%, 94% 100%, 95% 100%, 96% 100%, 97% 100%, 98% 100%, 99% 100%, 100% 100%);
    background: #ffffff;
    top: 0;
    content: "";
    display: flex;
    height: 100%;
    left: 0;
    position: absolute;
    width: 100%;
    z-index: 1;
    width: 118px;
    height: 30px;
    transform: scaleY(-1);
}*/

div#bwblock_77205 {
    margin-top: 10px;
}

@keyframes map-pulse{
  0%{ transform:translate(-50%,50%) scale(0.6); opacity:.8; }
  100%{ transform:translate(-50%,50%) scale(2.4); opacity:0; }
}

/* Tooltip del marcador principal: se abre hacia abajo (arriba no hay lugar por la curva) */
.map-marker-main .map-card{
  bottom:auto;
  top:calc(100% + 14px);
  transform:translateX(calc(-50% + var(--card-shift, 0px))) translateY(-6px);
}
.map-marker-main .map-card::after{
  top:auto;
  bottom:100%;
  border-top-color:transparent;
  border-bottom-color:#fff;
}
.map-marker-main:hover .map-card,
.map-marker-main.active .map-card{
  transform:translateX(calc(-50% + var(--card-shift, 0px))) translateY(0);
}

.marker-tres-cruces .map-card{
  bottom:auto;
  top:calc(100% + 14px);
  transform:translateX(calc(-50% + var(--card-shift, 0px))) translateX(-71px) translateY(-6px)!important;
}
.marker-tres-cruces .map-card::after{
  top:auto;
  bottom:100%;
  transform:translateX(-50%) translateX(71px);
  border-top-color:transparent;
  border-bottom-color:#fff;
}
/*.marker-tres-cruces:hover .map-card,
.marker-tres-cruces.active .map-card{
  transform:translateX(-110%) translateX(-71px) translateY(0)!important;
}*/

.map-card{
  position:absolute;
  bottom:calc(100% + 14px);
  left:50%;
  transform:translateX(calc(-50% + var(--card-shift, 0px))) translateY(6px);
  width:220px;
  background:#fff;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  padding:16px;
  text-align:left;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
  z-index:5;
}
.map-card::after{
  content:"";
  position:absolute;
  top:100%; left:50%;
  transform:translateX(-50%);
  border:8px solid transparent;
  border-top-color:#fff;
}
.map-card h4 {
    margin: 0 0 6px;
    font-size: 16px;
    color: #1d3faa;
    line-height: 1.1em;
    text-align:center
}
.map-card p{
  margin:0;
  font-size:12px;
  line-height:1.2em;
  color:#111;
  text-align:center
}

section#slider .slider-caption h1 em {
    font-style: normal !important;
}

.map-marker:hover .map-card,
.map-marker.active .map-card{
  opacity:1;
  visibility:visible;
  transform:translateX(calc(-50% + var(--card-shift, 0px))) translateY(0);
  pointer-events:auto;
}

html {
    overflow-x: hidden;
}

body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden;
    position: relative;
    display: block;
}

.entry-meta li {
    color: #001871;
    font-weight: 400 !important;
}

.entry-title h1 {
    margin-bottom: 10px;
    line-height: 1.1em;
    letter-spacing: -0.01em;
    font-size: 2.2rem;
}

.bwshare .si-share .sharelabel {
    top: 0;
    right: 0;
}

.single-post .entry p {
    margin-bottom: 15px;
    line-height: 1.35em !important;
}

div#bwblock_98798 ul li strong {
    font-weight: 600 !important;
    font-size: 1.15rem;
}

.bwshare .si-share {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding-left: 0;
}
.bwshare .si-share .social-icon {
    float: none;
    margin: 0;
    border-radius: 5px;
}

.entry::after {
    margin-top: 30px;
}

.pageid8 .entry-image {
    margin-bottom: 30px;
}

#footer {
    position: relative;
    margin-top: 60px;
    overflow-y: visible;
}

.pageid48 footer#footer,
.pageid8 footer#footer{
    margin: 0;
}

img.logofooter {
    max-width: 220px;
    margin: 70px auto 40px auto;
    display: block;
}

ul.social_footer2 {
    margin: 0;
}

#slider {
    position: relative;
    /*border-bottom-left-radius: 6rem;*/
}

.foot_col_cont {
    background-color: rgba(255,255,255,0.1);
    padding: 2rem 1rem;
    border-radius: calc(1rem - 1px);
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.eapps-instagram-feed-posts-slider {
    border-radius: 1.5rem;
}

.foot_col_cont a {
    color: #ffffff;
    display:block;
    text-align: center;
    width: 100%;
    margin: 0;
    -webkit-transition: all 0.5s ease-in-out;
    -moz-transition: all 0.5s ease-in-out;
    -ms-transition: all 0.5s ease-in-out;
    -o-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
}

.foot_col_cont a:hover {
    opacity: 0.8;
}

p.rightsfooter {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.8rem;
    text-align: center;
    display: block;
    padding: 10px 5px;
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    text-transform: uppercase;
}

.leaflet-control-attribution.leaflet-control {
    display: none!important;
}

.footermap {
    margin:0;
}

p.adress_footer {
    color: #ffffff;
    margin-top: 40px;
    margin-bottom: 15px;
    text-align: center;
}

#footer-map {
    height: 260px;
    width: 100%;
    border-radius: 1rem;
    overflow: hidden;
    background-color: #001871;
}

/* Duotone: mapea la luminosidad de los tiles (dark_nolabels) a un degradado
   entre #0c2063 (tierra, oscuro) y blanco (calles, claro). Ver el <filter>
   #footerMapDuotone definido junto al mapa en footer.php. */
#footer-map .leaflet-tile-pane {
    filter: url(#footerMapDuotone);
}

#footer-map .leaflet-control-attribution {
    font-size: 10px;
    background: rgba(255,255,255,0.6);
}

ul.social_footer2 {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
}

ul.social_footer2 li {
    color: #ffffff;
    list-style: none;
    text-align: center;
    width: auto;
    margin: 0;
}

.foot_col_cont h5 {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 200;
    font-size: 0.9rem;
    text-transform: uppercase;
}

ul.social_footer2 li a {
    color: #FFFFFF;
    font-size: 1.4rem;
}

div#gotoTop {
    right: 15px;
    bottom: 15px !important;
}

div#bwblock_53432, #bwblock_52542 {
    padding-left: 0;
    padding-right: 0;
}

#footer{
    background-color: #001871;
    padding: 0 4rem 0rem 4rem;
    position: relative;
    z-index: 1;
    background: linear-gradient(to right, #001871 0%, #083dc2 90%) !important;    
}

#footer .container {
    position: relative;
    padding: 0 4rem 0rem 4rem;
}

.grey_gradient {
    background: linear-gradient(45deg, rgba(244, 244, 245, 1) 0%, rgba(244, 244, 245, 0.4) 70%);
    padding: 25px 30px;
    border-radius: 20px;
    margin-top: 30px;
}

/*body:not(.pageid48) #footer .container::before {
    clip-path: polygon(100% 39.8px, 99% 39.8303px, 98% 39.8228px, 97% 39.7595px, 96% 39.6324px, 95% 39.4408px, 94% 39.1887px, 93% 38.8831px, 92% 38.5324px, 91% 38.1449px, 90% 37.7277px, 89% 37.2858px, 88% 36.8215px, 87% 36.3342px, 86% 35.8201px, 85% 35.2724px, 84% 34.6822px, 83% 34.0386px, 82% 33.3298px, 81% 32.5442px, 80% 31.6709px, 79% 30.701px, 78% 29.6282px, 77% 28.4493px, 76% 27.1652px, 75% 25.7805px, 74% 24.304px, 73% 22.7482px, 72% 21.1292px, 71% 19.4656px, 70% 17.7785px, 69% 16.0897px, 68% 14.4217px, 67% 12.7964px, 66% 11.2342px, 65% 9.75326px, 64% 8.36904px, 63% 7.09371px, 62% 5.93588px, 61% 4.9005px, 60% 3.98898px, 59% 3.19947px, 58% 2.52727px, 57% 1.96542px, 56% 1.50539px, 55% 1.13778px, 54% .853034px, 53% .642229px, 52% .497658px, 51% .413403px, 50% .385742px, 49% .413403px, 48% .497658px, 47% .642229px, 46% .853034px, 45% 1.13778px, 44% 1.50539px, 43% 1.96542px, 42% 2.52727px, 41% 3.19947px, 40% 3.98898px, 39% 4.9005px, 38% 5.93588px, 37% 7.09371px, 36% 8.36904px, 35% 9.75326px, 34% 11.2342px, 33% 12.7964px, 32% 14.4217px, 31% 16.0897px, 30% 17.7785px, 29% 19.4656px, 28% 21.1292px, 27% 22.7482px, 26% 24.304px, 25% 25.7805px, 24% 27.1652px, 23% 28.4493px, 22% 29.6282px, 21% 30.701px, 20% 31.6709px, 19% 32.5442px, 18% 33.3298px, 17% 34.0386px, 16% 34.6822px, 15% 35.2724px, 14% 35.8201px, 13% 36.3342px, 12% 36.8215px, 11% 37.2858px, 10% 37.7277px, 9% 38.1449px, 8% 38.5324px, 7% 38.8831px, 6% 39.1887px, 5% 39.4408px, 4% 39.6324px, 3% 39.7595px, 2% 39.8228px, 1% 39.8303px, 0 39.8px, 0 100%, 1% 100%, 2% 100%, 3% 100%, 4% 100%, 5% 100%, 6% 100%, 7% 100%, 8% 100%, 9% 100%, 10% 100%, 11% 100%, 12% 100%, 13% 100%, 14% 100%, 15% 100%, 16% 100%, 17% 100%, 18% 100%, 19% 100%, 20% 100%, 21% 100%, 22% 100%, 23% 100%, 24% 100%, 25% 100%, 26% 100%, 27% 100%, 28% 100%, 29% 100%, 30% 100%, 31% 100%, 32% 100%, 33% 100%, 34% 100%, 35% 100%, 36% 100%, 37% 100%, 38% 100%, 39% 100%, 40% 100%, 41% 100%, 42% 100%, 43% 100%, 44% 100%, 45% 100%, 46% 100%, 47% 100%, 48% 100%, 49% 100%, 50% 100%, 51% 100%, 52% 100%, 53% 100%, 54% 100%, 55% 100%, 56% 100%, 57% 100%, 58% 100%, 59% 100%, 60% 100%, 61% 100%, 62% 100%, 63% 100%, 64% 100%, 65% 100%, 66% 100%, 67% 100%, 68% 100%, 69% 100%, 70% 100%, 71% 100%, 72% 100%, 73% 100%, 74% 100%, 75% 100%, 76% 100%, 77% 100%, 78% 100%, 79% 100%, 80% 100%, 81% 100%, 82% 100%, 83% 100%, 84% 100%, 85% 100%, 86% 100%, 87% 100%, 88% 100%, 89% 100%, 90% 100%, 91% 100%, 92% 100%, 93% 100%, 94% 100%, 95% 100%, 96% 100%, 97% 100%, 98% 100%, 99% 100%, 100% 100%);
    background-color: #FFFFFF !important;
    background-size: var(--bump-bg-size, 200px) 100%;
    background-position: var(--bump-bg-pos, 0) 0;
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    width: 200px;
    height: 40px;
    transform: translateX(-50%) scaleY(-1);
    z-index: 0;
}*/

.top_with_bg .custom_title_div p.small:not(.custom_pre_title) {
    background-color: rgba(0, 0, 0, 0.4) !important;
    border: 1px solid rgba(160, 220, 255, 0.9);
    display: table;
    padding: 8px 15px;
    border-radius: 5px;
    font-weight: 300;
    font-size: 1.2rem;
    position: relative;
    z-index: 0;
    margin-top: 12px;
}


.top_with_bg .blur_bg .title-icon i,
.image_before_icons i {
    font-size: 6rem;
    color: rgba(160, 220, 255, 0.9);
}

.top_with_bg .blur_bg p:not(.title-icon),
.image_before_icons .blur_bg p:not(.title-icon){
    text-align: justify !important;
    letter-spacing: -0.03em;
}

.top_with_bg .blur_bg > div,
.image_before_icons .blur_bg > div {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* Paginas de contacto (pageid51/57): columna con la imagen (.contimage_contact)
   y columna con el formulario (.contform_contact). En desktop la columna de
   la imagen acompana el alto del formulario (align-items:stretch del .row).
   La imagen se saca del flujo (position:absolute) para poder cubrir ese alto
   exacto con object-fit:cover, sin depender de que los divs intermedios del
   builder tengan una altura propia (con ellos en "auto" un simple height:auto
   en la imagen no tiene contra que alto proporcionarse). En mobile (<576px)
   la columna apila con su alto natural y la imagen vuelve a flujo normal. */
.contimage_contact {
    position: relative;
}

@media (min-width: 576px) {
    .contimage_contact {
        /* height: 100%; */
        overflow: hidden;
        border-radius: 15px;
        background-repeat: no-repeat !important;
        background-size: cover !important;
        background-position: center 16% !important;
    }
}

/* Bloque de contacto (creador_contacto.php style=1): icono flotando a la
   izquierda, centrado verticalmente respecto al texto en vez de apilado arriba. */
.contacto-fbox-left.fbox-center {
    /*flex-direction: row;*/
    align-items: center;
    justify-content: center;
    text-align: left;
}

.contacto-fbox-left.fbox-center .fbox-content {
    display: flex;
    align-items: center;
    flex-grow: 0;
    max-width: 100%;
}

.contacto-fbox-left.fbox-center .fbox-icon {
    margin-bottom: 0;
    margin-right: 1.25rem;
    flex-shrink: 0;
    width: auto;
    height: auto;
    display: flex;
    align-items: center;
}

.contacto-fbox-left.fbox-center .fbox-icon i,
.contacto-fbox-left.fbox-center .fbox-icon a {
    margin: 0 !important;
}

/* Bloque de contacto: caja de redes sociales con solo los íconos, centrados */
.contacto-social-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
}

.pageid51 .feature-box, .pageid57 .feature-box {
    min-height: 100%;
}

.contacto-social-box .fbox-icon {
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
}

.iconswhite{
    background-color: #FFFFFF!important;
    margin-top: -3rem;
    padding-top: 3rem;
    box-shadow: 0px 6px 5px rgba(0, 0, 0, 0.08);
    border-radius: 1.5rem;
    padding-top: 4rem;
    padding-bottom: 2rem;
}

.iconswhite h3 {
    font-weight: 600;
    font-size: 1.1rem;
    text-transform: uppercase;
    margin-bottom: 0px;
    padding-bottom: 7px;
    color: #001871;
}

.iconswhite .fboxicon-content {
    padding: 0 20px;
}

.iconswhite .fboxicon-content p {
    line-height: 1.2em !important;
    font-size: 1rem;
}

.pageid46 div#bwblock_22721 p {
    font-size: 1.3rem;
}

.pageid46 div#bwblock_94739, div#bwblock_36665 {
    margin-top: -3rem;
}

.top_with_bg .blur_bg .title-icon,
.image_before_icons .title-icon {
    width: 20%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

.carousel_fox .owl-dots {
    margin-top: 15px;
}

.top_with_bg .blur_bg {
    border: 1px solid rgba(160, 220, 255, 0.9);
}

#page-title.page-title-parallax h1 {
    text-align: center;
    display: block;
    position: relative;
    margin-left: auto;
    margin-right: auto;
    color: #ffffff;
    letter-spacing: 0;
    text-transform: uppercase;
    font-weight: 500;
    font-size: 1.6rem;
}

.breadcrumb a, .breadcrumb-item.active, .breadcrumb-item+.breadcrumb-item::before {
    color: #ffffff !important;
}

.img-radius img{
    border-radius: 1.5rem;
    overflow: hidden;
}

.trim_text::after{
    display:none!important;
}

.valigncenter {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
}

.shapetitle {
    position: absolute;
    width: 100%;
    /*height: 35px;*/
    background-image: url(../cpanelBW/imagesBW/shapetitle.svg);
    background-repeat: no-repeat;
    background-position: bottom center;
    top: 0;
    background-size: auto 100%;
    left: 0;
    max-width: 100% !important;
}

/*.img-left-column .img-radius div::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 13.5px;
    width: 2000px;
    height: 28px;
    background-image: url(../cpanelBW/imagesBW/shapetitle.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto 100%;
    transform: translate(-50%, -50%) rotate(-90deg);
}

.img-right-column .img-radius div::after {
    content: '';
    position: absolute;
    top: 50%;
    left: calc(100% - 13.5px);
    width: 2000px;
    height: 28px;
    background-image: url(../cpanelBW/imagesBW/shapetitle.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto 100%;
    transform: translate(-50%, -50%) rotate(90deg);
}*/

.fbox-plain .fbox-icon i.fab {
    font-size: 1.8rem;
}

.pageid51 .fbox-plain .fbox-icon i, .pageid51 .fbox-plain .fbox-icon img,
.pageid51 .fbox-bg.fbox-center .fbox-icon,
.pageid57 .fbox-plain .fbox-icon i, .pageid57 .fbox-plain .fbox-icon img,
.pageid57 .fbox-bg.fbox-center .fbox-icon {
    background-color: rgba(255, 255, 255, 0) !important;
        font-size: 1.3rem;
        margin-right: 7px!important;
}

#bwblock_40731 .container.clearfix .row:first-child,
#bwblock_16478 .container.clearfix .row:first-child{
    background-color: rgba(244, 244, 244, 0.8);
    border-radius: 15px;
    padding: 15px;
}

.pageid51 div#bwblock_33667, .pageid51 #bwblock_11348,
.pageid57 div#bwblock_33667, .pageid57 #bwblock_11348 {
    position: absolute;
    bottom: 10px;
    width: calc(100% - 50px);
    left: 25px;
    padding: 5px 15px;
    border-radius: 10px;
    background-color: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    overflow: hidden;
}



.pageid51 .formBtn {
    margin: auto;
    display: block;
    text-transform: uppercase !important;
    background-color: #001871;
    width: 100%;
}
.h2contact {
    margin-bottom: 15px;
    margin-top: 25px;
    text-transform: uppercase;
    font-size: 1.6rem;
    font-weight: 700;
    color:#001871
}

.pageid51 div#bwblock_33667 h2, .pageid51 #bwblock_11348 h2 {
    color: #ffffff;
    text-align: center;
    line-height: 1em;
    text-transform: uppercase;
    font-size: 1.3rem;
    margin-bottom: 0;
    padding: 20px 5px;
}

.img-left-column .img-radius div,
.img-right-column .img-radius div {
    position: relative;
    overflow: hidden;
}

.fbox-bg.fbox-center .fbox-icon {
    margin-top: unset;
}

.pageid51 .feature-box,
.pageid57 .feature-box {
    border: 0;
    background-color: rgba(244, 244, 244, 0.8);
    padding: 20px;
    margin-top: 0;
    border-radius: 10px;
}

/*.shapetitle::after {
    content: '';
    width: 47%;
    right: 0;
    position: absolute;
    background-color: #FFFFFF;
    height: 100%;
    border-top-left-radius: 3rem;
}*/

.pageid49 .top_with_bg .custom_title_div {
    max-width: 550px;
    margin-left: auto;
    margin-right: auto;
}

#page-title {
    position: relative;
    padding: 3rem 0;
    background-color: rgba(244,244,244,1)!important;
    border-bottom: 0;
}

#page-title {
    padding-top: calc(3rem + 50px);
    position: absolute;
    width: 100%;
    display: block;
    z-index: 1;
    background-color: rgba(255, 255, 255, 0) !important;
        display: none;
}

.pageid51 #page-title,
.pageid57 #page-title {
    padding-top: calc(3rem + 75px);
}

.image_before_icons .blur_bg {
    margin: 0 auto !important;
}

@media (max-width:991px){
    .container {
        max-width: 100% !important;
    }

    .mobilepadd{
        padding-left: 0;
        padding-right: 0;
    }

    .img-right-column .img-radius {
        order:1;
    }

    .shapetitle {
        height: 5%;
    }

    .top_with_bg .custom_title_div p.small:not(.custom_pre_title) {
        font-size: 1rem;
    }

    .tres_banners_encajados.tres_banners_equals .row > .bwblock > .bwblock {
        margin-bottom: 30px;
    }

    .tres_banners_encajados.tres_banners_equals ul li {
        color: #111111;
    }

    .shapetitle::before,
    .shapetitle::after {
        width: 42%;
    }

    #footer, #footer .container{
        padding: 0 1rem 0rem 1rem;
    }

    .sticky-body .svg-trigger path {
        stroke: #001871;
    }

    #carbtq-73831 .carbtq-top {
        top: auto;
        bottom: 10px;
    }

    .tres_banners_encajados .row > .bwblock:first-child:hover,
    .tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child > .bwblock:hover{
        box-shadow:none;
    }

    .border_gradient_content {
       margin-top: -2px!important;
    }

    .border_gradient_content:before{
       top: -2px!important;
    }

    #carbtq-73831 .carbtq-title { 
        font-size: 1.2rem !important;
        line-height: 1.1em !important;
        padding: 15px 7px;
        border-radius: 10px;
        backdrop-filter: blur(2px);        
    }

    div#bwblock_33856 h2 {
        font-size: 1.7rem !important;
    }

    .texto_sobre_banner h4 {
         font-size: 1.25rem;
    }

    .mapbase, #bwblock_17478{
        position: relative;
        right: auto;
    }

    .contform_contact {
        order: 3;
    }

    .contimage_contact {
        order: 2;
        margin-top: 25px;
    }

    .mapbase .map-wrap,
    #bwblock_17478 #google-map-puntos-BW{
        position: relative;
        display: block;
        max-width: 100%;
        float: none;
    }

    div#bwblock_77205 {
        margin-top: 0;
        width: 100%;
    }

    h2:not(.text-rotator):not(.h2contact) {
        font-size: 2.2rem !important;
    }

    .pageid51 div#bwblock_33667 h2, .pageid51 #bwblock_11348 h2,
    .pageid57 div#bwblock_33667 h2, .pageid57 #bwblock_11348 h2 {
        font-size: 1.2rem !important;
        padding: 13px 5px;
    }

    .h2contact {
        margin-bottom: 16px;
        margin-top: 50px;
        font-size: 1.8rem !important;
    }

    div#bwblock_87224,
    div#bwblock_98206{
        padding: 4rem 0 2rem 0 !important;
        position: relative;
        background: #0c2e56;
    }

    .leyenda-mapa span.texto {
        font-size: 0.75rem;
        line-height: 1.2;
    }

    .leyenda-mapa .barra {   
        width: 30px;   
    }


    .dark #header .mobile-menu-off-canvas .menu-container, #header.dark .mobile-menu-off-canvas .menu-container {
        background-color: #001871;
        border-right-color:#001871!important;
    }

    /* El menu movil siempre queda azul con texto blanco, sin importar si el
       header esta sticky (que agrega .not-dark y le sacaria el texto blanco). */
    /*.mobile-menu-off-canvas .menu-container .menu-link,
    .mobile-menu-off-canvas .menu-container .menu-item .sub-menu-trigger {
        color: #F7F7F7 !important;
    }*/
    .mobile-menu-off-canvas .menu-container .menu-item:not(:first-child) {
        border-top-color: rgba(255,255,255,0.15) !important;
    }

    /* Con el menu abierto, la barra del header (blanca si esta sticky) asoma
       por encima del panel deslizante y queda griseada por el overlay que
       atenua el fondo. La igualamos al azul del panel para que no se note. */
    /*body.primary-menu-open #header-wrap {
        background-color: #001871 !important;
    }*/
}

@media (max-width:768px){
    .mapbase .map-wrap, #bwblock_17478 #google-map-puntos-BW, div#bwblock_17478{position:relative; max-width:100%;width:100%; }
    .map-card{ width:180px; padding:12px; }
    
    div#bwblock_98206 {
    background: linear-gradient(0deg, #e9f5ff 0%, rgba(233, 245, 255, 1) 65%, rgba(255, 255, 255, 1) 100%);
}

    section#slider .swiper-slide-5 .slider-caption h1,
section#slider .swiper-slide-5 .slider-caption h1 em,
section#slider .swiper-slide-5 .slider-caption h1 span {
        font-size: 2rem;
    }

    div#bwblock_40182 {
        padding-top: 2rem !important;
    }

    div#bwblock_89843 {
        padding-left: calc(var(--bs-gutter-x) * .5) !important;
        padding-top: 2rem;
    }

    #page-title.page-title-parallax h1 {
        font-size: 1.3rem!important;
    }

    .top_with_bg .blur_bg > div {
        display: block;
    }

    .blur_bg {
        padding: 1.5rem 1.5rem;
        position: relative;
    }

    .top_with_bg .blur_bg p:not(.title-icon),
    .image_before_icons p:not(.title-icon) {
        text-align: center !important;
        letter-spacing:0;
    }

    .image_before_icons .blur_bg > div {
        display: block;
    }

    .image_before_icons .title-icon {
        text-align: center;
        margin-bottom: 23px;
    }

    .image_before_icons .title-icon i {
        font-size: 5rem;
    }

    .top_with_bg {
        position: relative;
        padding-top: 5rem !important;
        padding-bottom: 4rem !important;
    }

    .top_with_bg .blur_bg .title-icon i {
        font-size: 4rem;
        color: rgba(160, 220, 255, 0.9);
        margin: auto !important;
        position: relative !important;
        display: table !important;
        padding: 17px;
    }

    .top_with_bg .blur_bg .title-icon,
    .image_before_icons .title-icon {
        width: 100%;
        display: block;
    }

    #footer .col-md-4 {
        margin-bottom: 15px;
    }

    div#bwblock_23883,
    div#bwblock_27773 {
        margin-bottom: 30px;
    }

    .tres_banners_encajados .row > .bwblock:first-child > .bwblock, 
    .tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child > .bwblock,
     .tres_banners_encajados.tres_banners_equals .row > .bwblock > .bwblock {
        background-size: cover !important;
        background-position: center bottom !important;
        background-repeat: no-repeat !important;
    }
    .tres_banners_encajados .custom_title_div .custom_title {
        font-size: 1.4rem;
    }   
    
    .tres_banners_encajados .custom_title_div p.small {
        font-size: 1.1rem;
        max-width: 100%;
    }

    .texto_sobre_banner {        
        padding: 20px;        
    }

    .border_gradient_content {
        min-height:unset;
        display: block;
        padding: 4rem 1rem;
        margin-top: -2px;
    }
}

@media (max-width:600px){
    .texto_sobre_banner {        
        padding: 10px;  
        width:100%      
    }
    .contimage_contact {
        min-height: 40vh;
        background-size: cover !important;
        border-radius: 15px;
        margin-top: 0;
        background-position: center 15% !important;
    }

    div#bwblock_16852 p {
        float: none !important;
        padding-right: unset !important;
        text-align: center;
        font-size: 0.9rem;
        line-height: 1.3em;
    }

    div#bwblock_59090 p:last-child {
        margin-bottom: 40px;
    }

    div#bwblock_59090 p{
        font-size: 1rem;
    }

    .pageid56 div#bwblock_64005 {
        width: 100%;
        padding-left: 2.5rem;
        padding-right: 2.5rem;
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    h2:not(.text-rotator):not(.h2contact) {
        font-size: 1.8rem !important;
    }

    .h2contact {        
        font-size: 1.55rem !important;
    }

    div#bwblock_28587 {
        padding-bottom: 2rem !important;
    }

    #carbtq-73831 .carbtq-title {
        font-size: 0.8rem !important;
        line-height: 1.1em !important;
        padding: 8px 3px;
        border-radius: 8px;
        backdrop-filter: blur(2px);
        font-weight: 300;
    }

    .map-pin {        
        width: 13px;
        height: 13px;
        border: 0px solid #fff;        
    }

} 

@media (max-width:450px){
    #logo img {
        height: auto !important;
        max-height: unset !important;
        max-width: 250px;
    }
}

@media (min-width:768px){
    section#slider .slider-caption h1 em {
        display:block
    }
    
    div#bwblock_2569 {
        padding-right: 60px;
    }
}

/* ---------- tres_banners_encajados: card izquierda = alto de las dos de la derecha ----------
   Estructura real del DOM: .bwblock y .col-* estan en el MISMO elemento (no hay un
   wrapper .col-* separado). La tarjeta grande y el wrapper de la columna derecha son
   hijos directos de .row; las dos tarjetas chicas son .bwblock anidados dentro del
   wrapper de la derecha (.row > .bwblock:last-child > .bwblock). */
.tres_banners_encajados .row > .bwblock:first-child,
.tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child > .bwblock,
.tres_banners_encajados.tres_banners_equals .row > .bwblock {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    border-radius: 20px !important;
        overflow: hidden;
}
.tres_banners_encajados .row > .bwblock:first-child:hover,
.tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child > .bwblock:hover{
    transform: translateY(-6px) !important;    
}
.tres_banners_encajados.tres_banners_equals .row > .bwblock:hover {
    transform: translateY(-6px) !important;
}

.tres_banners_encajados .custom_title_div .button {
    background-color: #ffffff !important;
    border-color: transparent !important;
    color: #393939 !important;
    text-transform: uppercase !important;
}
.tres_banners_encajados .custom_title_div .custom_title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    font-weight: 700;
    font-size: clamp(1.15rem, 2vw, 1.5rem);
    color: #111;
    text-transform: uppercase;
}

.tres_banners_encajados .custom_title_div .custom_title i {
    display: block;
    font-size: 1.6rem;
    color: #111;
    margin-bottom: 0.6rem;
}
.masonry-thumbs.grid-container {
    border-radius: 2.5rem;
}
.tres_banners_encajados .custom_title_div p.small {
    font-size: 0.9rem;
    text-transform: none;
    color: #111;
    max-width: 34ch;
    margin-top: 0.4rem;
}

.tres_banners_encajados.tres_banners_equals ul li {
    color: #ffffff;
    line-height: 1.1em;
    font-size: 0.9rem;
    margin-bottom: 10px!important;
}

.infraestructura_slider {
    border-radius: 1.5rem;
    min-height: 70vh;
    position: relative;
    background-position: center !important;
}

/* Titulo pegado al slider (en vez de separado por el margin-bottom por
   defecto del h3) y ambos centrados verticalmente como un solo grupo,
   gracias al gap del flex column de .aligned_centered_bwblock. */
.infraestructura_slider.aligned_centered_bwblock {
    gap: 20px;
}

.infraestructura_slider .custom_title_div,
.infraestructura_slider .custom_title_div h3 {
    margin-bottom: 0;
}

.infraestructura_slider .owl-carousel .owl-dots {
    margin-top: 25px;
}

.infraestructura_slider h3 {
    color: #ffffff;
    position: relative;
    text-transform: uppercase;
    font-size: 1.8rem;
}

.starred_title {
    z-index: 1;
    position: relative;
}

.infraestructura_slider .owl-item h4 {
    line-height: 1.15em;
    text-transform: uppercase;
    font-size: 1.3rem !important;
}

video.ubicacionvideo {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.infraestructura_slider .owl-carousel .owl-nav [class*=owl-]:hover{
    background-color: #6bc0de !important;
}

.infraestructura_slider .owl-item::after {
    width: calc(100% - 30px);
    height: calc(100% - 30px);
    content: '';
    border: 1px solid #FFFFFF;
    z-index: 11;
    position: absolute;
    left: 15px;
    top: 15px;
    border-radius: 14px;
}

.infraestructura_slider .owl-item h4, .infraestructura_slider .owl-item i {
    color: #ffffff !important;
    text-align: center;
    display: block;
    margin: 15px auto;
}

.infraestructura_slider .owl-item i {
    color: #6bc0de !important;
    font-size: 2.8rem;
    margin-bottom: 25px !important;
}

.infraestructura_slider .owl-item::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    filter: blur(2px);
}

.infraestructura_slider h3 {
    color: #6bc0de;
    position: relative;
    text-transform: uppercase;
    font-size: 1.8rem;
    display: table;
    margin: auto;
}

.infraestructura_slider .owl-carousel .owl-dots .owl-dot {
    background: rgba(255, 255, 255, 1);
    width: 10px;
    height: 10px;
}

/* Flechas juntas, centradas y debajo del slider en vez de a los costados */
.infraestructura_slider .owl-nav {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
}

.infraestructura_slider .owl-nav [class*="owl-"] {
    position: static;
    margin-top: 0;
    left: auto;
    right: auto;
}

.infraestructura_slider .owl-item {
    border-radius: 15px;
    padding: 50px 30px;
    box-sizing: border-box;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-color: rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.tres_banners_encajados.tres_banners_equals ul {
    margin: 10px 0 0 0;
}

.top_with_bg {    
    padding-top: 9rem!important;
    padding-bottom: 6rem;
    position: relative;
}

.infraestructura_slider::before {
    content: "";
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    top: 0;
    left: 0;
    position: absolute;
    border-radius: 1.5rem;
}

div#bwblock_20388 {
    position: relative;
    z-index: 1;
}

.pageid56 div#bwblock_58882::before{
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.4);
    display: block;
    z-index: 1;
}

.pageid48 div#bwblock_58882::before{
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.25);
    display: block;
    z-index: 1;
}

.pageid48 div#bwblock_58882,
.pageid56 div#bwblock_58882{
    padding-top: 8rem !important;
    padding-bottom: 8rem !important;
    overflow: hidden;
}

.blur_bg p {
    color: #111111 !important;
}

#page-title.page-title-parallax .breadcrumb {
    font-size: .875rem;
    margin-top: 10px !important;
    display: none;
}

.blur_bg {
    padding: 1.5rem 3rem;
    backdrop-filter: blur(3px);
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    font-weight: 400;
}

.pageid48 #bwblock_25810.blur_bg {
    position: absolute;
    top: 20px;
    z-index: 11;
    left: 50%;
    transform: translateX(-50%);
}

li.breadcrumb-item p {
    max-width: 230px;
    margin-bottom: 0;
    font-weight: 300;
}

.video-fullwidth {
    width: 100%;
    /* height: 100%; */
    object-fit: cover;
    display: block;
    aspect-ratio: 1;
    border-radius: 100%;
    outline: 1px solid #cacaca;
    border: 24px solid #ffffff;
}

.blur_bg::before {
    content: '';
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background-color: rgba(0, 0, 0, 0.2);
    display: block;
    position: absolute;
    z-index: -1;
}

/*.pageid48 .blur_bg::before {
    background-color: rgba(255, 255, 255, 0.1);
}*/

.pageid48 #bwblock_25810.blur_bg::before {
    background-color: rgba(0,0,0, 0.05);
}

.pageid48 #bwblock_25810.blur_bg{
    position: absolute;
    top: 20px;
    z-index: 11;
    left: 50%;
    transform: translateX(-50%);
    padding: 15px 30px;
    border-radius: 0.5rem;
    backdrop-filter: blur(2px);
}

div#bwblock_78253>div {
    /* flex-direction: column; */
    width: min(500px, 100%) !important;
    /* margin: auto; */
    float: right;
    padding-right: 60px;
}

.capital_humano {
    display: flex;
    gap: 2rem;
    width:100%;
}

.capital_humano span {
    line-height: 1.15;
}

.capital_humano strong {
    line-height: 1;
}

.capital_humano span {
    /* width: 50%; */
    color: #ffffff;
    text-align: left !important;
    display: block;
        font-size: 1.27rem;
}

div#bwblock_56024 {
    padding: 0;
}

div#bwblock_56024 video{
    border-radius: 20px;
    padding: 0;
    overflow: hidden;
}

.capital_humano span strong {
    font-size: 4.3rem;
    font-weight: 700;
    color: rgba(160, 220, 255, 0.9);
    display: block;
    text-align: left;
    margin-bottom: 0;
}

.top_with_bg::before {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: rgba(0, 0, 0, 0.4);
    content: '';
}

.pageid52 .top_with_bg {
    background-position: bottom center;
}

.pageid52 .top_with_bg:before{
    background: rgba(0, 0, 0, 0.3);
}

.pageid54 .top_with_bg:before{
    background: rgba(0, 0, 0, 0.5);
}

.pageid48 .top_with_bg::before {
    background: rgba(0, 0, 0, 0.6);
}

.top_with_bg .container {
    z-index: 1;
    position: static;
}

.top_with_bg h2, .top_with_bg p, .top_with_bg small,
.image_before_icons p{
    color: #ffffff !important;
}

.img-left-column .container {
    background: #ebebeb;
    background: linear-gradient(260deg, rgba(235, 235, 235, 1) 0%, rgba(235, 235, 235, 0.2) 100%);
    padding: 20px ;
    border-radius: 2rem;
}


body:not(.pageid56) .img-right-column .container {
    background: #ebebeb;
    background: linear-gradient(45deg, #001871 3%, #4177ff 87%);
    padding: 20px ;
    border-radius: 2rem;
}

.pageid56 .img-right-column .container > .row {
    margin-left: 0;
    margin-right: 0;
    background: linear-gradient(45deg, #001871 3%, #4177ff 87%);
    padding: 20px;
    border-radius: 2rem;
}

.twocolumns-imgtop .onebanner-img {
    /* background: rgba(235, 235, 235, 1); */
    padding: 20px 20px 0 20px;
    border-top-left-radius: 2rem;
    border-top-right-radius: 2rem;
    border: 1px solid #cacaca;
    border-bottom: 0;
}

/*.twocolumns-imgtop2 .onebanner-img{
     background: linear-gradient(0deg,rgba(235, 235, 235, 1) 0%, rgba(235, 235, 235, 0.2) 100%);
}*/

.twocolumns-imgtop img.img-fluid{
    border-radius: 1.5rem;    
}

.onbanner-text{  
    padding-top:20px;
    /*background: linear-gradient(180deg,rgba(235, 235, 235, 1) 0%, rgba(235, 235, 235, 0.2) 100%);*/
    padding: 40px 30px;
    border-bottom-left-radius: 2rem;
    border-bottom-right-radius: 2rem;    
    border: 1px solid #cacaca;
    border-top: 0;
}

.twocolumns-imgtop2 .onebanner-text{
    background:rgba(235, 235, 235, 1);
}

.twocolumns-imgtop .row {
    --bs-gutter-x: 2rem;
    margin-right: calc(-.5 * var(--bs-gutter-x)) !important;
    margin-left: calc(-.5 * var(--bs-gutter-x)) !important;
}

/* A partir de donde las columnas pasan a ser 2 en línea (col-md-6):
   la fila se vuelve grid de 2 filas × 2 columnas, y cada columna es un
   subgrid que comparte esas filas. Así .onebanner-img se iguala entre
   ambas columnas, y .onbanner-text tambien, sin importar el contenido. */
@media (min-width: 768px) {
    .twocolumns-imgtop .row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
        column-gap: var(--bs-gutter-x);
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    .twocolumns-imgtop .row > [class*="col-"] {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 2;
        flex: none;
        width: auto;
        max-width: none;
    }

    .twocolumns-imgtop .onebanner-img {
        display: flex;
        flex-direction: column;
    }

    .twocolumns-imgtop .onebanner-img img.img-fluid {
        height: 100%;
        object-fit: cover;
    }
}

.block-expand-categories .expand-category-icon {
    font-size: 2.5rem;
    margin-bottom: 0.6rem;
    color: #FFFFFF;
}

.expand-category-subtitulo {
    font-size: 1rem;
}

.block-expand-categories .expand-category h4 {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    text-align: center;
    margin: 0;
    transform: translateY(-50%);
    font-size: 1.35rem;
    text-transform: uppercase;
}

.twocolumns-imgtop .container {
    padding: 0;
}

.pageid50 div#bwblock_20048 h5,
.pageid59 div#bwblock_20048 h5 {
    font-weight: 700;
    font-size: 1.2rem;
}

.img-right-column .col-lg-6.img-radius {
    padding-left: 0;
}

div#bwblock_8377 .bwblock,
div#bwblock_78747 .bwblock{
    padding: 30px 15px;
}

.pageid50 div#bwblock_78747 .bwblock p strong,
.pageid50 div#bwblock_8377 .bwblock p strong,
.pageid59 div#bwblock_78747 .bwblock p strong,
.pageid59 div#bwblock_8377 .bwblock p strong {
    font-weight: 600;
}

.pageid51 input.form-control, .pageid51 textarea,
.pageid57 input.form-control, .pageid57 textarea {
    border: 0;
    /*text-align:center;*/
}

#bwblock_33366 h3 a {
    font-weight: 500;
}

/* Desktop: izquierda = alto de las dos de la derecha; el texto ya no tiene alto
   fijo (era % de una tarjeta con min-height fijo): ahora el panel de texto se
   estira segun su contenido, y align-items:stretch en .row + flex:1 1 auto en
   las tarjetas hacen que si una tarjeta necesita mas alto, las demas la
   acompañen para mantener la relacion de alto entre la grande y las dos chicas. */
@media (min-width: 992px) {
    .tres_banners_encajados .row {
        align-items: stretch;
        min-height: 560px;
    }

    .pageid1 div#bwblock_57456 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    div#bwblock_40731 .container {
        padding-right: 0;
    }
    .pageid57 #form_contacto, .pageid57 #form_cv,
    .pageid51 #form_contacto, .pageid51 #form_cv {
        padding-left: 20px;
        padding-right: 0px;
        padding-bottom: 20px;
    }

    .contform_contact {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }

    .pageid51 .contform_contact h3,
    .pageid57 .contform_contact h3{
        padding-left: 20px;
        padding-right: 0px;
    }

    div#bwblock_33366 .row .col-sm-3:first-child {
        padding-left: 0;
    }

    div#bwblock_33366 .row .col-sm-3:last-child {
        padding-right: 0;
    }

    .pageid50 div#bwblock_20048 p,
    .pageid59 div#bwblock_20048 p {
        max-width: 380px;
    }

    .pageid50 div#bwblock_8377 p,
    .pageid59 div#bwblock_8377 p {
        max-width: 380px;
        float:right
    }

    .pageid50 div#bwblock_20048 i,
    .pageid59 div#bwblock_20048 i {
        text-align: left;
        width:auto
    }

    .pageid50 div#bwblock_8377 .title_with_icon .custom_title i,
    .pageid59 div#bwblock_8377 .title_with_icon .custom_title i {
        text-align: right;
    }

    #bwblock_8377 .title_with_icon .custom_title {
        flex-direction: row-reverse;
    }

    .pageid50 div#bwblock_8377,
    .pageid59 div#bwblock_8377 {
        text-align: right;
    }

    .img-left-column h2, .img-left-column ul li {
        text-align: right;
    }

    .twocolumns-imgtop2 .twocolumns-imgtop:first-child, .twocolumns-imgtop .twocolumns-imgtop:first-child {
        padding-left: 0;
    }

    .twocolumns-imgtop2 .twocolumns-imgtop:last-child, .twocolumns-imgtop .twocolumns-imgtop:last-child {
        padding-right: 0;
    }

    .img-left-column .img-radius {
        order: 2;
    }

    .img-left-column .valigncenter {
        padding-right: 60px;
    }

    .img-right-column .valigncenter {
        padding-left: 60px;
    }

    .pageid46 div#bwblock_22721 p {
        padding-right: 60px;
    }

    .img-left-column ul li {
        padding-left: 0 !important;
        padding-right: 32px !important;
    }

    .img-left-column ul li::before {
        left: auto !important;
        right: 4px !important;
    }

    .tres_banners_encajados .row > .bwblock:first-child {
        padding-left: 0;
    }

    .tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child{
        padding-right:0
    }

    .pageid48 div#bwblock_82028 {
        padding: 3rem;
    }

    #header.sticky-header #header-wrap:not(.dark) .sub-menu-container .menu-item:hover > .menu-link,
    #header.sticky-header #header-wrap:not(.dark) .sub-menu-container .menu-item .menu-link,
    #header.sticky-header #header-wrap:not(.dark) .sub-menu-container .menu-item:hover > .menu-link:hover{
        background-color:#ffffff!important;        
        background-color: rgba(255, 255, 255, 0.9)!important;
        padding: 10px 15px !important;
        margin-bottom: 1px!important;
        font-weight: 300!important;
        color: #001871 !important;
    }

    ul.sub-menu-container {
        padding: 0 !important;
        margin: 0 !important;
        border:0!important
    }

    .dark .sub-menu-container .menu-link:not(.not-dark, .not-dark *),
    .dark .sub-menu-container .menu-link:not(.not-dark, .not-dark *):hover,
    #header:not(.sticky-header) .sub-menu-container .menu-link:hover {
        background-color: rgba(255, 255, 255, 0.2)!important;
        padding: 10px 15px !important;        
        font-weight: 400!important;
    }

    .sub-menu-container .menu-item>.menu-link{
        font-weight:400
    }

    
    
    /*eader:not(.sticky-header) .sub-menu-container .menu-link:hover{
        color: #F7F7F7 !important;
    }

     .dark .sub-menu-container .menu-link:not(.not-dark, .not-dark *):hover a{
        color: #F7F7F7 !important;
     }*/

     .sub-menu-container .menu-item>.menu-link{
        font-weight: 400;
     }

    /*#header:not(.sticky-header) #header-wrap:not(.dark) .sub-menu-container .menu-item:hover > .menu-link,
    .mega-menu-style-2 .mega-menu-title > .menu-link:hover,
    .dark .mega-menu-style-2 .mega-menu-title:hover > .menu-link {
        color: #F7F7F7 !important;
        font-weight: 400 !important;
    }*/

    /* Los dos wrappers de columna (mismo elemento .bwblock que el .col-*) no
       tienen imagen propia: la imagen real esta en un .bwblock anidado adentro
       (el page builder mete un div .bwblock extra con el background inline).
       display:flex + stretch/grow hace que ese hijo real llene todo el
       wrapper. La columna derecha ademas apila sus dos tarjetas chicas. */
    .tres_banners_encajados .row > .bwblock:first-child,
     .tres_banners_encajados.tres_banners_equals .row > .bwblock {
        display: flex;
        background: none;
    }
    .tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child {
        display: flex;
        flex-direction: column;
        gap: 20px;
        background: none;
    }
    .tres_banners_encajados .row > .bwblock:first-child > .bwblock,
    .tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child > .bwblock,
     .tres_banners_encajados.tres_banners_equals .row > .bwblock > .bwblock {
        flex: 1 1 auto;
    }

    /* Las tarjetas con foto real: la grande y las dos chicas, todas anidadas
       un nivel adentro de su wrapper de columna */
    .tres_banners_encajados .row > .bwblock:first-child > .bwblock,    
    .tres_banners_encajados.tres_banners_equals .row > .bwblock > .bwblock{
        position: relative;
        overflow: hidden;
        border-radius: 20px!important;
        background-color: #f4f4f5;
        background-size: 0 0 !important; /* oculta la copia propia del bloque (sin tocar la URL, que el pseudo hereda) */
    }
    /* El pseudo-elemento hereda la misma imagen del bloque (vía inline style) pero
       se posiciona por separado y siempre cubre el 100% de la tarjeta */
    .tres_banners_encajados .row > .bwblock:first-child > .bwblock::after,
    .tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child > .bwblock::after,
     .tres_banners_encajados.tres_banners_equals .row .bwblock .bwblock::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        background-color: #f4f4f5;
        background-image: inherit;
        background-repeat: no-repeat;
        background-size: cover;
        border-bottom-left-radius: 20px;
        border-bottom-right-radius: 20px;
    }

    .tres_banners_encajados .row > .bwblock .custom_title_div {
        position: relative;
        z-index: 1;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    /* Tarjeta grande (izquierda): la foto ocupa toda la tarjeta de fondo,
       y el panel de texto flota encima con una esquina recortada (border-radius
       grande) para que la foto se vea a través del "hueco" circular. El alto
       ya no es un % fijo: crece con el texto en vez de recortarlo. */
    .tres_banners_encajados .row > .bwblock:first-child > .bwblock::after {
        background-position: center;
    }

    .tres_banners_encajados .row > .bwblock:first-child .custom_title_div {
        width: 70%;
        border-radius: 0 0 70px 0;
        padding: 2rem 1rem 2rem 2rem;
        backdrop-filter: blur(6px);
        background-color: rgba(0, 0, 0, 0.2);
    }

    /* Variante 3 tarjetas iguales: mucho mas texto por tarjeta que el diseno
       original (titulo corto + boton), asi que el panel cubre toda la tarjeta
       en vez de un recorte de esquina de 160px pensado para poco contenido. */
    .tres_banners_encajados.tres_banners_equals .row > .bwblock .custom_title_div {
        width: 88%;
        border-radius: 0 0 60px 0;
        padding: 2rem 1rem 2rem 2rem;
        backdrop-filter: blur(3px);
        background-color: rgba(0, 0, 0, 0.35);
    }

    .tres_banners_encajados .row > .bwblock:first-child .custom_title_div h3,
    .tres_banners_encajados .row > .bwblock:first-child .custom_title_div p,
    .tres_banners_encajados .row > .bwblock:first-child .custom_title_div i,
     .tres_banners_encajados.tres_banners_equals .row > .bwblock .custom_title_div i,
     .tres_banners_encajados.tres_banners_equals .row > .bwblock .custom_title_div p,
     .tres_banners_encajados.tres_banners_equals .row > .bwblock .custom_title_div h3{
        color: #FFFFFF;
    }

    /* Tarjetas chicas (derecha): la foto ocupa toda la tarjeta de fondo, y el
       panel de texto flota a la izquierda con una esquina redondeada. Alto
       auto (segun el texto) en vez de 100% fijo, para no recortar contenido. */
    .tres_banners_encajados .row > .bwblock:last-child > .bwblock::after {
        background-position: right center;
    }
    .tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child > .bwblock .custom_title_div {
        width: 50%;
        min-height: 100%;
        border-bottom-right-radius: 3rem;
        padding: clamp(1.25rem, 3vw, 2rem);
        background-color: #f4f4f5;
    }
}

.img-radius{
    padding:0
}

/* Mobile + tablet: las tres tarjetas iguales, apiladas, texto arriba e imagen
   abajo sin recortar. El layout "fancy" con paneles flotantes de ancho/alto
   fijo (arriba) recortaba el texto de las tarjetas chicas en tablet, asi que
   ese rango usa este layout apilado en vez de uno intermedio. */
@media (max-width: 991.98px) {
    .tres_banners_encajados .row { min-height: 0; }
    .tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child {
        display: flex;
        flex-direction: column;
        gap: 0px;
        background: none;
    }

    .pageid1 .sticky-top.sticky-header .menu-link {
        color: #FFF;
    }

    .mapbase, #bwblock_17478 {
        background-color: rgba(245, 245, 245);
    }

    video.ubicacionvideo {
        position: absolute;
        top: 0;
        left: 0;
        width: auto;
        height: 100%;
    }

    .img-right-column .valigncenter {
        order: 1;
    }

    .twocolumns-imgtop .col-lg-6:first-child {
        margin-bottom: 3rem;
    }

    .img-left-column, .img-right-column,
    .twocolumns-imgtop {
        padding-left: 20px;
        padding-right: 20px;
    }

    .img-right-column .container,
    .twocolumns-imgtop .onebanner-img,
    .img-left-column .container{
        padding:13px 13px 0 13px
    }
    
    .valigncenter .h3, .onbanner-text{
        padding-top: 25px;
        font-size: 1.4rem !important;
    }

    .onbanner-text .h3{        
        font-size: 1.4rem !important;
    }

    .pageid48 div#bwblock_37081 h2 {
        text-align: center;
    }

    .video-fullwidth {
        outline: 1px solid #cacaca;
        border: 14px solid #ffffff;
    }

    .tres_banners_encajados.tres_banners_equals ul li{
        font-size: 0.9rem;
        color: #111;
    }

    #page-title.page-title-parallax h1 {
        padding-left: 1rem;
        padding-right: 1rem;
        font-size: 1.6rem;
        line-height: 1.1;
    }

    .tres_banners_encajados .custom_title_div p.small{
        max-width:100%
    }

    /* Cada tarjeta: texto arriba (alto segun contenido) + foto abajo en su
       propia caja de alto fijo (aspect-ratio). Antes la foto usaba el fondo
       de TODA la tarjeta (texto + foto juntos) con background-position:bottom,
       asi que buena parte de la imagen quedaba "detras" del panel de texto,
       tapada, y solo se veia el resto que sobraba abajo. */
    .tres_banners_encajados .row > .bwblock:first-child > .bwblock,
    .tres_banners_encajados.tres_banners_equals .row > .bwblock > .bwblock {
        flex: 0 0 auto;
        display: flex;
        flex-direction: column;
        border-radius: 20px;
        overflow: hidden;
        background-color: #f4f4f5;
        background-size: 0 0 !important; /* oculta la copia propia del bloque (sin tocar la URL, que el pseudo hereda) */
    }
    .tres_banners_encajados .row > .bwblock:first-child > .bwblock::after,
    .tres_banners_encajados:not(.tres_banners_equals) .row > .bwblock:last-child > .bwblock::after,
     .tres_banners_encajados.tres_banners_equals .row .bwblock .bwblock::after {
        content: "";
        display: block;
        width: 100%;
        aspect-ratio: 16 / 10;
        background-color: #f4f4f5;
        background-image: inherit;
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center;
        border-bottom-left-radius: 20px;
        border-bottom-right-radius: 20px;        
    }

    .tres_banners_encajados .custom_title_div {
        position: static;
        width: 100%;
        background: #f4f4f5;
        padding: clamp(1.25rem, 5vw, 2rem);
        box-sizing: border-box;
    }
}

/* ---------- Noticias (grid): todas las tarjetas con la misma altura ---------- */
#posts.row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}
#posts .entry {
    display: flex !important;
    position: relative !important;
    height: auto !important;
    top: auto !important;
    left: auto !important;
}
#posts .entry .grid-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
}
#posts .entry .entry-image {
    flex: 0 0 auto;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
#posts .entry .entry-image a {
    display: block;
    width: 100%;
    height: 100%;
}
#posts .entry .entry-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#posts .entry .entry-content {
    margin-top: auto;
}

/*--------------------------------------------------------------
    Timeline horizontal en loop infinito
--------------------------------------------------------------*/
.loop-timeline {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding: 0 40px;
    margin-top: -30px;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
}

.loop-timeline-track {
    position: relative;
    z-index: 1;
    display: flex;
    width: max-content;
    animation: loop-timeline-scroll 30s linear infinite;
}

.pageid48 div#bwblock_83087,
.pageid48 div#bwblock_25169 {
    position: relative;
    padding:0!important
}

.loop-timeline-fixed {
    position: relative;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 180px;
    text-align: center;
    padding: 20px;
    background: var(--loop-timeline-bg, #fff);
    /*border: 1px solid #191919;*/
    box-shadow: 0px 0px 13px rgba(0, 0, 0, 0.1);
    /* height: 180px; */
    border-radius: 0.5rem;
}

.loop-timeline-center-connector {
    position: relative;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 0;
    height: 34px;
    border-left: 1px solid #191919;
    z-index: 2;
}

.loop-timeline-fixed .loop-timeline-connector {
    border-left-style: solid;
}


.loop-timeline-fixed .loop-timeline-icon i {
    font-size: 38px;
}

.loop-timeline-fixed .loop-timeline-dot {
    width: 20px;
    height: 20px;
    background: #fff;
    border: 1px solid #191919;
    margin: -10px 0 26px;
    z-index: 5;
}

.loop-timeline-fixed .loop-timeline-title {
    font-size: 18px;
    display: inline-block;
}

.loop-timeline-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 0 0 auto;
    width: 300px;
    text-align: center;
    padding: 0 30px 0;
}

.cont-loop-timeline {
    background-color: #ffffff;
    border-radius: 0.5rem;
    padding: 15px;
    width: 100%;
    box-shadow: 0px 0px 13px rgba(0, 0, 0, 0.1);
    /*border: 1px solid #191919;*/
}

.cont-loop-timeline{
    background-color:#ffffff
}

.loop-timeline-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    margin-bottom: 14px;
}

.loop-timeline-icon i {
    font-size: 32px;
    line-height: 1;
    color: #191919;
}

.loop-timeline-connector {
    width: 0;
    height: 34px;
    border-left: 1px dashed #191919;
    margin-bottom: 0;
}

.loop-timeline-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #191919;
    margin: -6px 0 0;
    position: relative;
    z-index: 2;
}

.loop-timeline-item.is-highlight .loop-timeline-dot {
    width: 18px;
    height: 18px;
    background: #fff;
    border: 1px solid #191919;
    margin: -9px 0 23px;
}

.loop-timeline-line {
    position: absolute;
    left: 0;
    right: 0;
    top: -1px;
    height: 1px;
    background: #191919;
    z-index: 1;
}

.loop-timeline-title {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 8px;
    white-space: normal;
    word-wrap: break-word;
    line-height: 1.25;
}

.loop-timeline-item.is-highlight .loop-timeline-title {
    font-size: 18px;
    border-bottom: 1px solid #191919;
    padding-bottom: 8px;
    display: inline-block;
}

.loop-timeline-text {
    font-size: 13px;
    line-height: 1.4;
    opacity: .75;
}

@keyframes loop-timeline-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

@media (max-width: 767px) {
    .loop-timeline-item { width: 220px; padding: 0 20px 0; }
    .loop-timeline-fixed { width: 170px; }
    .loop-timeline-fixed .loop-timeline-icon i { font-size: 28px; }
    .loop-timeline-title {
        font-size: 0.8rem;
    }
    ul:not(.menu-container):not(.sub-menu-container):not(.social_footer2) li,
     ul:not(.menu-container):not(.sub-menu-container):not(.social_footer2) li strong {
        font-size: 0.95rem;
    }
}

/* ---------- carousel_fox: slider de servicios (owl carousel) con imagen
   de fondo, capa negra y texto superpuesto, estilo tarjeta banner ---------- */
.carousel_fox .owl-item {
    height: auto !important;
    transition: transform .4s ease, opacity .4s ease;
    transform: scale(0.85);
    opacity: 1;
}

.pageid50 .carousel_fox .owl-stage,
.pageid59 .carousel_fox .owl-stage {
    padding-bottom: 13px;
}

.pageid50 .carousel_fox .owl-item,
.pageid59 .carousel_fox .owl-item {
    height: auto !important;
    transition: transform .4s ease, opacity .4s ease;
    transform: scale(0.85);
    opacity: 1;
    box-shadow: 0px 6px 8px rgba(0, 0, 0, 0.1);
    border-radius: 1.5rem;
}

/* El alto parejo entre slides visibles se calcula por JS (equalizeCarouselFoxHeights
   en project_js.php), que mide el alto natural de cada .portfolio-item visible y
   aplica el mayor como min-height a todos. Intentarlo solo con flex/stretch anidado
   ademas del overflow:hidden y el scale() de las tarjetas terminaba colapsando la
   caja por debajo del contenido real (texto cortado) en vez de igualar al mas alto. */
.pageid50 .carousel_fox .portfolio-link,
.pageid59 .carousel_fox .portfolio-link {
    display: block;
    width: 100%;
}

.carousel_fox .owl-item.center {
    transform: scale(1);
    opacity: 1;
    z-index: 2;
}



.carousel_fox .trim_text {
    max-height: none !important;
    overflow: visible !important;
}

.carousel_fox .portfolio-link {
    pointer-events: none;
    cursor: default;
}

.carousel_fox .portfolio-item {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    min-height: 560px;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pageid50 .carousel_fox .portfolio-item,
.pageid59 .carousel_fox .portfolio-item {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 300px;
}

.carousel_fox .portfolio-image {
    position: absolute !important;
    inset: 0;
    height: 100% !important;
}

.carousel_fox .portfolio-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carousel_fox .portfolio-item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.15);
    pointer-events: none;
}

.carousel_fox .portfolio-item > div:not(.portfolio-image) {
    position: relative;
    z-index: 2;
    width: calc(100% - 3rem);
    margin: 0 auto;
    padding: 24px 1.5rem !important;
    text-align: left !important;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(6px);
    border-radius: 16px;
    /* border: 1px solid rgba(160, 220, 255, 0.9); */
    box-shadow: 0px 0px 46px rgba(0, 0, 0, 0.2);
}

.pageid50 .carousel_fox .portfolio-item > div:not(.portfolio-image),
.pageid59 .carousel_fox .portfolio-item > div:not(.portfolio-image) {
    position: relative;
    z-index: 2;
    border-radius: 0;
    width: 100%;
    margin: 0 auto;
    padding: 24px 1.5rem !important;
    text-align: left !important;
    background: #FFFFFF;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
    flex: 1 1 auto;
}


.pageid50 .carousel_fox .portfolio-image,
.pageid59 .carousel_fox .portfolio-image {
    position: relative !important;
    max-height: 385px;
    flex-shrink: 0;
}

.pageid50 .carousel_fox .portfolio-image img,
.pageid59 .carousel_fox .portfolio-image img {
    margin-top: -25%;
    position: relative;
}

.pageid59 .carousel_fox .portfolio-image img {
    margin-top:0
}

.carousel_fox .portfolio-item h4.text-black, .carousel_fox .portfolio-item h4.text-black * {
    color: #111111 !important;
    font-weight: 700;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    line-height: 1.1em;
    text-align: left;
    margin-bottom: 14px;
}

.pageid50 .carousel_fox .portfolio-item h4.text-black, .pageid50 .carousel_fox .portfolio-item h4.text-black *,
.pageid59 .carousel_fox .portfolio-item h4.text-black, .pageid59 .carousel_fox .portfolio-item h4.text-black * {
    color: #111111 !important;
}

.comunidad_textos::before {
    content: "";
    position: absolute;
    background-color: rgba(0, 0, 0, 0.4);
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/*.comunidad_textos p:before {
    background-color: rgba(0, 0, 0, 0.2);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    filter: blur(1px);
    content: "";
}*/

.comunidad_textos p {
    color: #FFFFFF;
    /*max-width: 500px;*/
    margin: auto;
    padding: 2rem 2rem 0 2rem;
    border-radius: 1.5rem;
    overflow: hidden;
}

div#bwblock_14669 {
    border: 1px solid rgba(160, 220, 255, 0.9);
    border-radius: 1.5rem;
    padding: 3rem 2.5rem;
}

div#bwblock_14669:before {
    content: '';
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background-color: rgba(0, 0, 0, 0.2);
    display: block;
    position: absolute;
    z-index: -1;
}

/*div#bwblock_81763:before {
    content: '';
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background-color: rgba(0, 0, 0, 0.3);
    display: block;
    position: absolute;
    z-index: 1;
}*/

#bwblock_55421 h3 {
    color: #001871;
}

.pageid56 div#bwblock_81763 .container > .row {
    position: relative;
    z-index: 1;
    background: #ffffff;
    box-shadow: 0 0 18px rgba(0, 0, 0, 0.12);
    border: 1px solid #001871;
}

#bwblock_13187 .oc-item {
    /*background-color: #001871;*/
    border-radius: 6px;
}

#bwblock_13187 .oc-item  img {
    height: 70px;
    object-fit: contain;
    /*filter: drop-shadow(#001871 300px 0);
    clip-path: inset(0 -300px 0 300px);
    transform: translateX(-300px);*/
}

div#bwblock_81763 {
    position: relative;
    overflow: hidden;
}

div#bwblock_56020 img {
    margin: auto;
    display: block;
}

#bwblock_14669, div#bwblock_33178 {
    position: relative;
    z-index: 1;
}

.pageid59 .carousel_fox.imgorder2 .portfolio-item > div.portfolio-image {
    order: 2;
}

.pageid59 .carousel_fox.imgorder2 .portfolio-item > div:not(.portfolio-image) {
    order: 1 !important;
}

.pageid59 .carousel_fox.imgorder2 .portfolio-item > div:not(.portfolio-image) {
    order: 1 !important;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    padding-top: 40px !important;
}

.ulli_centered ul {
    text-align: center;
    padding: 0 !important;
}

.ulli_centered ul li {
    list-style-position: inside;
    padding-left: 0;
    /*text-align: center;*/
}

.pageid56 footer#footer,
.pageid59 footer#footer{
    margin-top: 0!important;
}

.comunidad_textos .container {
    padding: 8rem 0;
}

.pageid56 .carousel_fox .portfolio-item .slider_texto {
    text-align: center;
    margin-bottom: 30px;
}

.carousel_fox .owl-item.center i {
    color: #001871;
    text-align: center;
    display: block;
    margin: 30px auto 30px auto !important;
}


.carousel_fox .portfolio-item .slider_texto,
.carousel_fox .portfolio-item .slider_texto * {
    color: #111111 !important;
    font-size: 1rem;
    line-height: 1.05em !important;
    text-align: left;
}

.pageid50 .carousel_fox .portfolio-item .slider_texto, .pageid50 .carousel_fox .portfolio-item .slider_texto *,
.pageid59 .carousel_fox .portfolio-item .slider_texto, .pageid59 .carousel_fox .portfolio-item .slider_texto * {
    color: #111111 !important;
}

.carousel_fox .portfolio-item .slider_texto {
    margin-bottom: 0;
}

.carousel_fox .portfolio-item .slider_texto ul {
    list-style: disc;
    padding-left: 1.2rem;
    margin-top: 0;
}

.carousel_fox .portfolio-item .slider_texto li {
    padding-left: 0.3rem;
    margin-bottom: 10px!important;
    line-height: 1.05em !important;
}

.pageid59 .starred_title .custom_title_div {
    max-width: 600px;
    text-align: center;
    margin: auto;
}

.carousel_fox .portfolio-item .slider_texto li::before {
    content: none !important;
}

.carousel_fox .portfolio-item .product-meta,
.carousel_fox .portfolio-item button[onclick*="extend_trim_text"],
.carousel_fox .portfolio-item .d-flex {
    display: none !important;
}

/* ---------- Owl Carousel: flechas siempre visibles (toggle "Arrows siempre
   visibles" en preferencias del slider) en vez de aparecer solo al hover ---------- */
.owl-arrows-always-visible .owl-nav [class*=owl-] {
    opacity: 1 !important;
    left: -18px;
}

.owl-arrows-always-visible .owl-nav .owl-next {
    left: auto;
    right: -18px;
}

/* ---------- carousel_fox: owl-dots con tamaño decreciente a medida que se
   alejan del dot activo (activo = más grande, vecinos cada vez más chicos) ---------- */
.carousel_fox .owl-dots {
    display: flex;
    align-items: center;
    justify-content: center;
}

.carousel_fox .owl-dots .owl-dot {
    width: 8px;
    height: 8px;
    opacity: 0.4;
    vertical-align: middle;
}

.carousel_fox .owl-dots .owl-dot.active,
.carousel_fox .owl-dots .owl-dot.active:hover {
    width: 16px;
    height: 16px;
    opacity: 1;
}

/* un vecino de distancia (inmediatamente antes o después del activo) */
.carousel_fox .owl-dots .owl-dot.active + .owl-dot,
.carousel_fox .owl-dots .owl-dot:has(+ .owl-dot.active) {
    width: 12px;
    height: 12px;
    opacity: 0.65;
}

/* dos de distancia */
.carousel_fox .owl-dots .owl-dot.active + .owl-dot + .owl-dot,
.carousel_fox .owl-dots .owl-dot:has(+ .owl-dot + .owl-dot.active) {
    width: 10px;
    height: 10px;
    opacity: 0.5;
}

/* ---------- Bloque "Acordeón": lista de títulos que despliegan texto y
   sincronizan un carrusel vertical de imágenes (catblocks/creadores/creador_accordion_img.php) ---------- */
.accimg {
    display: flex;
    align-items: stretch;
    gap: clamp(24px, 4vw, 56px);
    flex-wrap: wrap;
}
.accimg.accimg-media-left {
    flex-direction: row-reverse;
}
.accimg .accimg-list {
    flex: 1 1 380px;
    min-width: 280px;
    display: flex;
    flex-direction: column;
}
.accimg .accimg-item {
    padding:8px 30px 8px 20px;
    border-left: 3px solid transparent;
    transition: background-color .3s ease;
    border-radius: 1rem;
}

.accimg .accimg-item.active {
    border-left-color: #001871;
    background-color: rgba(255,255,255,1);
    border-left:0;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.08);
}

.pageid56 div#bwblock_89163 .row {
    position: relative;
    padding: 0 !important;
    border-radius: 1.5rem;
    overflow: hidden;
}

.pageid56 div#bwblock_78078 {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    z-index: 0;
}

.pageid56 div#bwblock_78078 video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pageid56 div#bwblock_64005 {
    position: relative;
    z-index: 1;
    min-height: 80vh;
    background: linear-gradient(-90deg,rgba(0, 0, 0, 0.75) 8%, rgba(0, 0, 0, 0.43) 74%, rgba(0, 0, 0, 0) 100%);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 1.5rem;
}

.pageid56 #bwblock_93565 .custom_title_div {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

.pageid56 div#bwblock_30916 .owl-item:not(.center)::before {
    content: "";
    background: rgba(255, 255, 255, 0.85);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    position: absolute;
    z-index: 11;
}

div#bwblock_16852 p {
    color: #FFFFFF;
    max-width: 500px;
    /* margin: auto; */
    float: right;
    padding-right: 60px;
}

.accimg .accimg-title {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    padding: 18px 4px 18px 4px;
    font-size: 1.3rem;
    font-weight: 600;
    color: inherit;
    cursor: pointer;
    text-transform: uppercase;
    line-height: 1.1em;
}
.accimg-item.active .accimg-title {
    color: #001871;
    font-weight: 700;
}
div#bwblock_65904 img {
    border-radius: 1.5rem;
    overflow: hidden;
    display: block;
}
.accimg .accimg-panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .35s ease;
}
.accimg .accimg-item.active .accimg-panel {
    grid-template-rows: 1fr;
}
.accimg .accimg-panel-inner {
    overflow: hidden;
}
.accimg .accimg-panel-inner p {
    opacity: 1;
    font-size: 0.95rem;
    line-height: 1.5em;
    padding-bottom: 20px;
    margin: 0;
}
.accimg .accimg-media {
    flex: 1 1 380px;
    min-width: 280px;
    position: relative;
    overflow: hidden;
    border-radius: 20px;
    height: var(--accimg-media-height);
}
.accimg .accimg-track {
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: transform .5s cubic-bezier(.65,0,.35,1);
}
.accimg .accimg-frame {
    flex: 0 0 100%;
    height: var(--accimg-media-height);
    background: rgba(0,0,0,0.05);
}
.accimg .accimg-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media (max-width: 767px) {
    .accimg.accimg-media-left {
        flex-direction: column;
    }
    .accimg {
        flex-direction: column;
    }
}

/* Galeria "Masonry" (creador_galeria.php / plugins.masonrythumbs.js): por defecto
   cada foto conserva su relacion de aspecto real y la altura queda "auto", asi que
   Isotope empaqueta columnas de alturas distintas y el final queda escalonado.
   Forzando celdas cuadradas (las "grandes" duplican ancho y, por el mismo aspect-ratio,
   duplican alto) todas las alturas son multiplos de una misma unidad, con lo cual
   las columnas siempre terminan alineadas en una linea recta. */
.masonry-thumbs .grid-item {
    height: auto;
    aspect-ratio: 1 / 1;
}

.masonry-thumbs .grid-inner {
    height: 100%;
}

div#bwblock_65280 {
    padding: 0;
}

.masonry-thumbs .grid-item > img,
.masonry-thumbs .grid-inner > img {
    height: 100%;
    object-fit: cover;
}

/*.pageid56 div#bwblock_93565 .custom_title {
    color: #111111;
    font-size: 2.23em !important;
}*/

/* Mobile: una foto por fila (columna unica) en vez de mantener las N
   columnas del desktop. El ancho real de .grid-item lo fuerza el JS
   (Isotope mide columnWidth a partir del primer item), asi que el resize
   handler en project_js.php reinicializa el masonry para que recalcule
   ese ancho — si solo cambiara el CSS, Isotope seguiria empaquetando con
   el columnWidth viejo (mas angosto) y las fotos quedarian superpuestas. */
@media (max-width: 767px) {
    .masonry-thumbs.grid-container .grid-item {
        width: 100% !important;
        aspect-ratio: 4 / 3;
    }
}
