/* VARIABLES */
:root {
    --gris-2: #414042;
    --gris-3: #EDF2F4;
    --rojo: #BE1F24;
    --rojo-2: #6B0B06;
    --rojo-3: #EB1E23;
    --blanco: #ffffff;

}

/* HEADER */
.container-header {
    position: absolute;
    background: transparent;
    width: 100%;
    display: flex;
    flex-flow: wrap;
    align-items: center;
    justify-content: space-between;
}
.container-header .grid-child {
    width: auto;
    padding: 15px 0;
    margin: 0 25px;
}

.container-topbar {
    width: 100%;
    font-size: 14px;
    line-height: 30px;
}
.container-topbar .sppb-row-container {
    max-width: calc(100% - 20px);
    margin: 0 10px;
}
.contact_details, .social_details {
    display: inline-block;
    list-style: none;
    padding: 0;
    margin: 0;
}
.social_details {
    margin-left: 20px;
}
.contact_details li, .social_details li {
    display: inline-block;
    margin-right: 20px;
}
.contact_details li:last-child, .sppb-icons-group-list li:last-child, .social_details li:last-child {
    margin-right: 0;
}
.contact_details li i {
    margin-right: 10px;
}
.contact_details li a {
    font-weight: 700;
}
.container-topbar .sppb-row-column:last-child .sppb-column-addons {
    display: flex;
    justify-content: end;
}
.sppb-icons-group-list li {
    margin-right: 30px;
}
div.mod-languages .btn-group .btn {
    font-size: 14px;
    line-height: 40px;
    border: 0;
    padding: 0;
    margin: 0 0 0 30px;
    background-color: transparent;
    color: var(--blanco);
}
.dropdown-toggle:after {
    content: "\f107";
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 12px;
    border: 0;
    vertical-align: 0;
}

.dj-megamenu-default {
    background: transparent;
}
.dj-megamenu-default li a.dj-up_a {
    text-transform: none;
    font-size: 16px;
    padding: 0 10px;
    border: 0;
    height: 50px;
}
.dj-megamenu-default li a.dj-up_a.button {
    background: var(--rojo);
    padding: 0 40px;
    margin: 0 10px;
    border-radius: 100px;
}
.dj-megamenu-default li:last-child a.dj-up_a.button {
    margin-right: 0;
}
.dj-megamenu-default li a.dj-up_a > span {
    height: 50px;
    line-height: 50px;
}
.dj-megamenu-default li a.dj-up_a .arrow {
    right: 10px;
}
.dj-megamenu-default li:hover a.dj-up_a:not(.button), .dj-megamenu-default li.hover a.dj-up_a:not(.button), .dj-megamenu-default li.active a.dj-up_a:not(.button) {
    background: transparent;
}
.dj-megamenu-default li a.dj-up_a:not(.button):before {
    content: '';
    width: calc(100% - 20px);
    height: 5px;
    position: absolute;
    top: -24px;
    left: 10px;
    background: var(--rojo-3);
    opacity: 0;
    transition: all .15s ease-in-out;
}
.dj-megamenu-default li:hover a.dj-up_a:not(.button):before, .dj-megamenu-default li.hover a.dj-up_a:not(.button):before, .dj-megamenu-default li.active a.dj-up_a:not(.button):before {
    opacity: 1;
}
.dj-megamenu-default li:hover div.dj-subwrap, .dj-megamenu-default li.hover div.dj-subwrap {
    background: var(--blanco);
    border-radius: 5px;
    overflow: hidden;
}
.dj-megamenu-default li ul.dj-submenu {
    margin: 0;
}
.dj-megamenu-default li ul.dj-submenu>li {
    border-top: 1px solid #93959840;
}
.dj-megamenu-default li ul.dj-submenu>li>a {
    font-size: 14px;
    font-weight: 700;
    line-height: 16px;
    color: var(--gris-2);
    padding: 12px 20px;
    margin: 0;
}
.dj-megamenu-default li ul.dj-submenu>li>a:hover, .dj-megamenu-default li ul.dj-submenu>li>a.active, .dj-megamenu-default li ul.dj-submenu>li.hover:not(.subtree)>a {
    background: #BE1F24; 
    background: var(--rojo);
}
.container-header .mod-menu>li>a {
    font-weight: 700;
}
.container-header .mod-menu>li>a.button {
    background: var(--rojo);
    padding: 16px 40px;
    border-radius: 100px;
}
.container-header .mod-menu>li:after {
    bottom: inherit;
    left: 0;
    right: inherit;
    width: 100%;
    height: 5px;
    top: -38px;
}
.container-header .mod-menu>li.active:after, .container-header .mod-menu>li:hover:after {
    background: #EB1E23;
    opacity: 1;
}
.dj-megamenu-select-dark .dj-mobile-open-btn, .dj-megamenu-offcanvas-dark .dj-mobile-open-btn, .dj-megamenu-accordion-dark .dj-mobile-open-btn {
    background: transparent;
    color: var(--rojo-3);
    width: 30px;
    height: 30px;
}
.dj-mobile-open-btn.dj-fa-5 .dj-mobile-open-icon:before {
    font-size: 30px;
}

.container-header.sticky-active {
  position: fixed; /* o sticky si va dentro de otro contenedor */
  top: 0;
  width: 100%;
  z-index: 999;
  background: #fff; /* cambia a lo que necesites */
  background-color: var(--gris-2);
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}




#search-toggle {
    color: var(--blanco);
    font-size: 20px;
    background: transparent;
    border: 0;
    padding: 0 0 0 20px;
}
#search-close {
    font-size: 20px;
    background: transparent;
    border: 0;
        padding: 0 0 0 20px;
}
.search-wrapper {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 999;
    display: flex;
    justify-content: center;
    background: var(--blanco);
    padding: 10px;
    border-radius: 10px;
}
.search-wrapper form {
    margin-bottom: 0;
}

.breadcrumb {
    font-size: 14px;
    line-height: 25px;
    background: transparent;
    padding: 0 !important;
}
.breadcrumb .float-start {
    display: none;
}
.breadcrumb li a {
    color: var(--gris-2);
    text-decoration: none;
}
.breadcrumb-item.active {
    color: var(--rojo);
    font-weight: 700;
}
.breadcrumb-item+.breadcrumb-item:before {
    color: var(--gris-2);
    content: "\f105";
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 12px;
}

/*.brand-logo .logo{
    width: 100%;
}*/
/* END HEADER */


/* BODY */


/* END BODY */


/* FOOTER */
.mod-sppagebuilder{
    width: 100%
}
.footer {
    background: var(--rojo);
    margin: 0;
}
.footer .grid-child {
    padding: 0;
}
.menu {
    list-style: none;
    padding: 0;
    margin: 0;
}
.menu li {
    display: inline-block;
    font-weight: 700;
    text-decoration: none;
}
.menu li:not(:last-child) {
    margin-right: 20px;
}
.menu li a {
    text-decoration: none;
}
#copyright {
    font-size: 12px;
    color: var(--gris-2);
}
#copyright span {
        font-size: 10px;
}
/* END FOOTER */


/* GENERAL */
body {
    width: 100%;
    overflow-x: hidden;
    color: var(--gris-2);
    font-family: "DM Sans", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 25px;
        background-color: transparent !important;
}
.page-content.builder-container:before {
    content: '';
    position: absolute;
    top: 25%;
    width: 100%;
    height: -webkit-fill-available;
    background-image: url(/images/2025/05/07/fondo-general.svg);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
}
.site-grid {
    display: block;
}
.container-component>*+* {
    margin-top: 0;
}
.sppb-section-content-bottom, .sppb-section-content-center, .sppb-section-content-top {
    width: 100vw;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    line-height: 1.5;
    font-weight: 400;
}
h1 b {
    letter-spacing: 3px;
    font-size: 4rem;
    font-weight: 700;
}
h2, h3, h4 {
    color: var(--rojo-2);
}
h3, h4 {
    font-weight: 700;
}
p {
    margin-bottom: 20px;
}
p:last-child {
    margin-bottom: 0px;
}
p span.small {
    font-size: 13px;
    line-height: 25px;
}
dl, ol, ul {
    margin-bottom: 0;
}
a {
    font-weight: 700;
    color: var(--rojo-2);
}
@media (min-width: 1400px) {
    .sppb-row-container {
        max-width: 1240px;
    }
}
.sppb-section {
    padding-top: 6vw;
    padding-bottom: calc(6vw - 40px);
}
/*.sp-page-builder:not(.mod-sppagebuilder) .sppb-addon:not(.sppb-addon-module)*/
.sppb-addon-wrapper {
    margin-bottom: 40px;
}
.sppb-row-overlay {
    background-repeat:no-repeat;
    background-position: top center;
}
.semi-full-width.left {
    width:50vw;
    margin-left: calc(-50vw + 100%);
}
.semi-full-width.right {
    width:50vw;
}
.cta-wa a {
    position: fixed;
    right: 25px;
    bottom: 50px;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #25D366;
    z-index: 99;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 40px;
    transition: all .15s ease-in-out;
}
.cta-wa a:hover {
    background: var(--rojo-2);
}
.cta-wa a {
    animation: float 1.5s linear infinite;
}
@keyframes float {
    0% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
    100% { transform: translateY(0); }
}

/* Buttons */
.sppb-btn {
    font-weight: 700;
    padding: 14px 40px;
    border-radius: 100px;
    text-decoration: none;
    border-style: solid;
}
.sppb-btn-default {
    background: var(--gris-2);
    border-color: var(--gris-2);
    color: var(--blanco);
}
.sppb-btn-primary {
    background: var(--rojo);
    border-color: var(--rojo);
}
.sppb-btn-secondary {
    background: var(--blanco);
    border-color: var(--blanco);
    border-style: solid;
    color: var(--rojo);
}
.sppb-btn-custom {
    border-color: var(--blanco);
}
.sppb-addon-button-group .sppb-btn {
    margin: 0 25px 0 0 !important;
}
.sppb-btn:hover, .dj-megamenu-default li a.dj-up_a.button:hover, .convertforms .cf-btn:hover {
    background: var(--rojo-2) !important;
    color: var(--blanco);
    border-color: var(--rojo-2);
    opacity: 1;
}

/* Elements */
.sppb-addon-animated-number .sppb-addon-content {
    align-items: center;
}
.sppb-animated-number {
    display: flex;
}
.sppb-carousel-extended-list {
    margin: 0 40px;
}
.sppb-carousel-extended-nav-control .nav-control.prev-control {
    margin-left: 0;
}
.sppb-carousel-extended-nav-control .nav-control.next-control {
    margin-right: 0;
}

/* Forms */
.convertforms .cf-content-wrap, .convertforms .cf-form-wrap {
    padding: 0;
}
.convertforms .cf-label {
    margin-bottom: 1em;
}
.convertforms .cf-control-group {
    margin-bottom: 20px;
}
.convertforms textarea.cf-input {
    min-height: 115px;
}
.convertforms .cf-btn {
    transition: all .15s ease-in-out;
}


/* Accordeon */
.sppb-addon-accordion .sppb-panel.sppb-panel-custom {
    border-radius: 14px !important;
    background: var(--gris-3) !important;
    border: 0 !important;
}
.sppb-addon-accordion .sppb-panel.sppb-panel-custom:not(:last-child) {
    margin-bottom: 25px !important;
}
.sppb-panel-heading {
    display: flex;
    align-items: center;
    padding: 30px 110px 30px 40px;
}
.sppb-panel-heading::after {
    content: "\f107";
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    right: 40px;
    width: 50px;
    height: 50px;
    background: var(--rojo);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--blanco);
    font-size: 22px;
}
.active.sppb-panel-heading::after {
    content: "\f106";
}
.sppb-panel-title {
    color: var(--rojo-2);
    font-size: 22px;
    line-height: 1.5;
}
.sppb-panel-body {
    padding: 0px 40px;
    border: 0 !important;
}
.sppb-panel-body .sppb-section {
    padding: 0 !important;
}

/* slideshow */
.dot-controller-with_image.sp-slider .sp-dots ul li, .dot-controller-with_image.sp-slider .sp-dots ul li.active { 
    border-width: 2px;
    background-position-x: 84% !important;
}

.sppb-carousel-extended-item {
    text-align: center;
}
.sppb-carousel-extended-item img {
    width: auto;
}

/* END GENERAL */


/* RESPONSIVE */

@media (max-width: 1480px) {
    .container-header .navbar-brand a img {
        max-width: 200px;
    }
    .dj-megamenu-default li a.dj-up_a.button {
        padding: 0 20px;
    }
}

@media (min-width: 1200px) {
    .h1, h1 {
        font-size: 2rem;
    }
    .h2, h2 {
        font-size: 34px;
    }
    .h4, h4 {
        font-size: 1.3rem;
    }
}

@media (max-width: 1200px) {
    .sp-slider .sp-nav-control .nav-control.prev-control {
        left: calc(50% - 50px);
    }
    .sp-slider .sp-nav-control .nav-control.next-control {
        right: calc(50% - 50px);
    }
}
@media (max-width: 1239px) {
    .contact_details li.address {
        display: none;
    }
}

@media (max-width: 1200px) {
    .contact_details li.mail {
        display: none;
    }
    h1 b {
        font-size: 3rem;
    }
}

@media (max-width: 992px) {
    .container-header {
        position: absolute !important;
    }
    .convertforms .cf-one-third, .convertforms .cf-two-sixths {
        width: 100%;
    }
}

@media (max-width: 767px) {
    .h1, h1 {
        font-size: 26px;
    }
    h1 b {
        font-size: inherit;
    }
    .h2, h2 {
        font-size: 20px;
    }
    body {
        font-size: 16px;
        line-height: 20px;
    }
    .sppb-section {
        padding-top: 40px;
        padding-bottom: 20px;
    }
    .sppb-addon-wrapper {
        margin-bottom: 20px;
    }
    .convertforms .cf-input {
        padding: 12px 20px;
        border-radius: 10px;
    }
    .convertforms .cf-control-group {
        margin-bottom: 0;
    }
    .sppb-addon-button-group .sppb-btn {
        margin: 0 auto 20px auto !important;
        display: block;
    }
    .semi-full-width.left, .semi-full-width.right {
        width: 100vw;
        margin-left: calc(-50vw + 50%);
        margin-right: calc(-50vw + 50%);
    }
    .sppb-panel-title {
        font-size: 20px;
    }
    .dot-controller-position-vertical_left.sp-slider .sp-dots {
        display: none;
    }
    .menu li {
        display: block;
        margin-right: 0 !important;
    }
    .sp-slider .sp-item .sp-background {
        background-position-x: 65%;
    }
}

/* END RESPONSIVE */

/* ANIMATIONS */
.animate[data-anim-type] {
    opacity: 0;
}
.animate.fadeIn {
    opacity: 1;
    animation-name: fadeIn;
    animation-delay: .2s;
}
.animate{
    animation-duration: 1s;
    animation-fill-mode: both;
}
@keyframes fadeIn{0%{opacity:0;transform:translateY(100px)}100%{opacity:1;transform:translateY(0)}}