/*

 Theme Name:   GeneratePress Child

 Theme URI:    https://generatepress.com

 Description:  Default GeneratePress child theme

 Author:       Tom Usborne

 Author URI:   https://tomusborne.com

 Template:     generatepress

 Version:      0.1

*/



html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-secondary);
    line-height: 1.5em;
    font-size: var(--f-s-txt);
    letter-spacing: 0.12rem;
}

.inside-article {
    padding: 0 30px !important;
}

p {
    letter-spacing: 0.05rem;
    line-height: 1.5em;
}

ul, li, span, h1, h2, h3, h4, h5, h6, .vce {
    margin-bottom: 0px !important;
    letter-spacing: 0.05rem;
    line-height: 1.5em;
}

h2, h3, h4, h5, h6 {
    font-family: var(--font-primary);
    line-height: 1.3em;
}

a.screen-reader-text.skip-link {
    color: #000 !important;
    background-color: #fff !important;
}

p a {
    color: var(--c-negro);
    text-decoration: none;
    border-bottom: 1px solid var(--c-lila);
}

p a:hover {
    border-color: var(--c-naranja);
}


/* GENERALES */

.zindex0 {
    z-index: 0;
}

.zindex1 {
    z-index: 1;
}

.zindex2 {
    z-index: 2;
}

.zindex3 {
    z-index: 3;
}

.mw1500 {
    max-width: 1500px;
    margin: auto !important;
}

.relative {
    position: relative !important;
}

.separate-containers .site-main {
    margin: 0px !important;
}

.img-left, .img-right {
    position: absolute;
    z-index: 0;
    max-width: 240px;
    object-fit: contain;
}

.img-left {
    left: -200px;
    top: -180px;
}

.img-right {
    right: -200px;
    bottom: -180px;
}

.dec-img img {
    -webkit-mask-image: url("/wp-content/uploads/2024/12/forma-dch.png");
    mask-image: url("/wp-content/uploads/2024/12/forma-dch.png");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
}

.dec-img2 img {
    -webkit-mask-image: url("/wp-content/uploads/2024/12/forma-izq.png");
    mask-image: url("/wp-content/uploads/2024/12/forma-izq.png");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
}

.circle-left {
    position: absolute;
    width: 80px;
    height: 80px;
    top: -20px;
    left: -40px;
    background-color: var(--c-lila-2);
    -webkit-mask-image: url("/wp-content/uploads/2024/12/forma-izq.png");
    mask-image: url("/wp-content/uploads/2024/12/forma-izq.png");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    z-index: 1;
}

.circle-right {
    position: absolute;
    width: 80px;
    height: 80px;
    bottom: 20px;
    right: -40px;
    background-color: var(--c-lila-2);
    -webkit-mask-image: url("/wp-content/uploads/2024/12/forma-dch.png");
    mask-image: url("/wp-content/uploads/2024/12/forma-dch.png");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    z-index: 1;
}

.lista li::marker {
    fill: var(--c-lila-2) !important;
    color: var(--c-lila-2) !important;
    font-size: 1.2rem;
}

.lista.dos-col ul {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    margin-left: 30px;
}

.lista.dos-col li {
    width: 47%;
}

.lista.dos-col li p {
    font-size: 1.2rem;
}

.shadow .vce-col-inner {
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
}

.bg-gradient .vce-col-inner,
.bg-row {
    background: var(--bg-gradient);
}


/* ------------- TITULOS ----------------*/

p, li, td, th {
  font-size: var(--f-s-txt);
}

.tit h2, h1.entry-title, .txt-destacado p, .tit-p p {
    font-family: var(--font-primary);
    font-size: var(--f-s-subtit) !important;
    color: var(--c-negro);
    margin-bottom: 15px !important;
    position: relative;
}

.tit h1 {
    font-size: var(--f-s-tit) !important;
    color: var(--c-gris);
    font-family: var(--font-primary);
}

.subtit h2 {
    font-family: var(--font-secondary);
}

.tit.tit-line h1 {
    position: relative;
}

.tit.tit-line h2::after,
.tit.tit-line h1::after,
h1.entry-title::after,
.tit-p p::after {
    position: absolute;
    width: 30px;
    height: 30px;
    border-radius: 100px;
    content: "";
    display: block;
    background: var(--c-lila-2);
}

.tit.tit-line h2::after,
h1.entry-title::after {
    top: 12px;
    left: -45px;
}

.tit-p p::after {
    top: 0;
    left: -45px;
}

.txt-center {
    text-align: center;
}

.txt-big p {
    font-size: 1.3rem;
    line-height: 1.5em;
}

.txt-destacado p {
    position: relative;
    z-index: 1 !important;
    width: fit-content;
    margin: auto;
}

.txt-destacado p::before {
    position: absolute;
    width: 30px;
    height: 30px;
    border-radius: 100px;
    content: "";
    display: block;
    background: var(--c-lila-2);
    bottom: -15px;
    left: -15px;
    z-index: -1;
}

.txt-destacado p::after {
    position: absolute;
    width: 30px;
    height: 30px;
    border-radius: 100px;
    content: "";
    display: block;
    background: var(--c-lila-2);
    top: -12px;
    right: -15px;
    z-index: -1;
}

.subtit p {
    font-family: var(--font-primary);
    font-size: var(--f-s-subtit-mv) !important;
    margin-bottom: 15px !important;
}

.tit.tit-line h1::after {
    top: 12px;
    left: -60px;
    width: 50px;
    height: 50px;
}

.subtit.txt-blanco h2, .tit.txt-blanco h1, .txt-blanco, .txt-blanco * {
    color: var(--c-blanco) !important;
}

.txt-dark {
    color: var(--c-gris) !important;
}

.tit, .subtit {
    line-height: var(--line-height-tit) !important;
    color: var(--c-negro);
}

.txt-accent p {
    font-size: var(--f-s-slide-subtit) !important;
    line-height: 1.2em;
}

.faq h3 {
    font-family: var(--font-secondary);
    font-size: 1.2rem;
}

.font-secondary * {
    font-family: var(--font-secondary);
}

/*--------------------- HOME -----------------------*/

.cab-home h1 {
    font-size: 5.5rem !important;
}

#logo-slide {
    max-width: 300px;
    margin: auto;
    margin-bottom: 20px;
}

.dec-img.after {
    position: relative !important;
    z-index: 1;
}

.dec-img.after .vce-single-image-inner::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 20px;
    right: -20px;
    background-color: var(--c-naranja);
    -webkit-mask-image: url("/wp-content/uploads/2024/12/forma-dch.png");
    mask-image: url("/wp-content/uploads/2024/12/forma-dch.png");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    z-index: -1;
}

.num, .num img {
    width: 120px;
    margin: auto 0 auto auto;
}

/* CABECERAS INTERNAS */
.cab-inner>.vce-content-background-container .vce-asset-background-simple-item {
    background-size: 20%;
    background-position: 30% 70%;
}

/*----------------------- SERVICIOS ---------------------*/
.col-trat .vce-col-inner {
    background: var(--bg-gradient);
    position: relative;
    z-index: 0;
}

.col-trat .vce-col-inner::after {
    content: "";
    position: absolute;
    background: var(--c-blanco);
    width: calc(100% - 10px);
    height: calc(100% - 10px);
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    z-index: -1;
    border-radius: 15px;
}

/*----------------------- CONTACTO ---------------------*/

.col-mapa .vce-col-inner, 
.col-mapa>.vce-col-inner>.vce-col-content,
.col-mapa>.vce-col-inner>.vce-col-content>.mapa,
.col-mapa>.vce-col-inner>.vce-col-content>.mapa>.vce-google-maps-wrapper,
.col-mapa>.vce-col-inner>.vce-col-content>.mapa>.vce-google-maps-wrapper>.vce-google-maps-inner {
  width: 100% !important;
  height: calc(100% + 20px) !important;
}

/* .mapa {
  filter: saturate(0);
} */

.link-contact {
    text-align: center;
}

.link-contact a {
    color: var(--c-negro);
    transition: all 0.35s ease;
    text-decoration: none;
    font-weight: 600;
    border: none !important;
}

.link-contact p {
    font-weight: 600;
}

.link-contact a:hover {
    color: var(--c-naranja);
}

.ico-contacto {
    width: 80px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 20px;
}

.coletilla p {
    font-size: 0.75rem;
    line-height: 1.2em;
    margin-top: 10px;
}

.accept-form p {
    font-size: 0.9rem;
    line-height: 1.2em;
    margin-top: 10px;
}

.campo-contacto input, .campo-contacto-textarea textarea {
    margin-bottom: 20px;
    border: none;
    border-bottom: 2px solid var(--c-naranja);
    background-color: var(--c-blanco);
    width: 100%;
}

.campo-contacto .tit-campo-contacto,
.campo-contacto-textarea .tit-campo-contacto {
    font-weight: 600;
    color: var(--c-gris);
    margin-bottom: 5px !important;
    display: block;
}

.campo-contacto-textarea textarea {
    max-height: 130px;
}

input[type="text"]:focus, 
input[type="email"]:focus, 
input[type="url"]:focus, 
input[type="password"]:focus, 
input[type="search"]:focus, 
input[type="tel"]:focus, 
input[type="number"]:focus, 
textarea:focus, select:focus {
    background-color: #fbfbfb;
    border-color: #b2b2be;
}

.wpcf7-form a {
    color: var(--c-negro);
    text-decoration: none;
    border-bottom: 1px solid var(--c-lila);
}

.wpcf7-form a:hover {
    border-color: var(--c-naranja);
}


/*------------------------------------------------ LOGOS KIT DIGITAL ------------------------------------------------*/

.logos-kit-digital {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.logos-kit-digital img {
    display: block;
    max-width: 15%;
    padding: 0 20px;
}

.logos-kit-digital>img:last-child {
    max-width: 12%;
}

.z-index-10 {
    z-index: 10;
}

.bloq-txt-inner-l, .bloq-txt-inner-r{
    margin-top: 30px !important;
    padding: 40px !important;
}

.bloq-txt-inner-l {
    margin-right: -20px !important;
    border-right: 5px solid var(--c-lila-2);
}

.bloq-txt-inner-r {
    margin-left: -20px !important;
    border-left: 5px solid var(--c-lila-2);
}

.bloq-shadow {
    box-shadow: 0 0 20px rgba(0,0,0,0.15) !important;
}

/* ------------- RESPONSIVE ----------------*/

@media screen and (max-width: 2100px) {
    .navigation-stick ~ .header-widget .ico-rrss {
        right: 15%;
     }
}

@media only screen and (max-width: 1900px) {
    .navigation-stick ~ .header-widget .ico-rrss {
        right: 9%;
     }
}

@media only screen and (max-width: 1600px) {
    .navigation-stick ~ .header-widget .ico-rrss {
        right: 6%;
    }

    .cab-home .vce-asset-background-simple-item {
        background-size: 65%;
    }
}

@media only screen and (max-width: 1440px) {
    .navigation-stick ~ .header-widget .ico-rrss {
        right: 2%;
    }

    .img-left, .img-right {
        max-width: 220px;
    }

    .img-left {
        left: -200px;
        top: -150px;
    }

    .img-right {
        right: -200px;
        bottom: -150px;
    }

    .cab-inner>.vce-content-background-container .vce-asset-background-simple-item {
        background-size: 30%;
        background-position: 25% 70%;
    }
}

@media screen and (max-width: 1350px) {
    .cab-home h1 {
        font-size: 4.8rem !important;
    }
}

@media only screen and (max-width: 1200px) {
    .subtit.tit-line h2::after, .tit.tit-line h1::after, h1.entry-title::after, .tit-p p::after {
        width: 30px !important;
        height: 30px !important;
    }

    .tit.tit-line h1::after {
        top: 22px;
        left: -45px;
    }

    .img-left, .img-right {
        max-width: 200px;
    }

    .img-left {
        left: -105px;
        top: -160px;
    }

    .img-right {
        right: -105px;
        bottom: -160px;
    }

    .cab-inner>.vce-content-background-container .vce-asset-background-simple-item {
        background-size: 35%;
        background-position: 20% 70%;
    }

    /* LOGOS KIT DIGITAL */
    .logos-kit-digital img {
        max-width: 210px;
    }

    .logos-kit-digital>img:last-child {
        max-width: 23%;
    }

    /* FOOTER */
    .footer-wrapper {
        max-width: 100%;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        padding: 2%;
    }

    .footer-wrapper .footer-image {
        flex: 0 0 15%;
    }

    .footer-wrapper .footer-date {
        flex: 0 0 78%;
    }

    .footer-logo {
        max-width: 190px;
        margin: auto;
    }

    /* HEADER */
    .inside-header {
        padding: 10px;
    }

    .site-logo {
        max-width: 18%;
    }

    .menu-toggle {
        position: relative;
        z-index: 999 !important;
        -webkit-mask-image: url("/wp-content/uploads/2024/12/forma-dch.png");
        mask-image: url("/wp-content/uploads/2024/12/forma-dch.png");
        mask-size: contain;
        mask-repeat: no-repeat;
        mask-position: center;
        margin: 10px;
    }

    .main-navigation.has-branding .inside-navigation.grid-container {
        padding: 0px!important;
    }
    
    .navigation-branding img, .site-logo img {
        height: auto !important;
    }
}

@media only screen and (max-width: 1024px) {
    .img-left, .img-right {
        max-width: 180px;
    }

    .footer-wrapper .footer-date {
        flex: 0 0 100%;
        flex-wrap: wrap;
    }
}

@media screen and (max-width: 991px) {
    .img-left, .img-right {
        max-width: 200px;
    }

    .img-left {
        left: 0px;
        top: -180px;
    }

    .img-right {
        right: initial;
        bottom: initial;
        top: -220px;
        left: 0px;
    }

    .cab-home .vce-asset-background-simple-item {
        background-size: 70%;
        background-position: -65% 100% !important;
    }

    .cab-inner>.vce-content-background-container .vce-asset-background-simple-item {
        background-size: 27%;
        background-position: 5% 70%;
    }
}

@media only screen and (max-width: 950px) {
    .cab-home h1 {
        font-size: 4rem !important;
    }

    .footer-wrapper .footer-image {
        flex: 0 0 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-bottom: 30px;
    }

    .footer-date .col-date {
        flex: 0 0 45%;
    }

    .footer-date .col-date:last-child {
        flex: 0 0 100%;
    }

    .bloq-overflow {
        overflow: hidden;    
    }
}

@media screen and (max-width: 850px) {
    .footer-date .col-date {
        flex: 0 0 40%;
    }

    .footer-date .col-date:last-child {
        flex: 0 0 100%;
        margin-top: 20px;
    }

    .navigation-branding img, .site-logo img {
        width: 200px !important;
        max-width: 200px !important;
        height: auto !important;
        object-fit: contain !important;
    }
}

@media only screen and (max-width: 768px) {
    .cab-home h1 {
        font-size: 3.8rem !important;
    }

    .subtit, .team-position {
        font-size: var(--f-s-subtit-tb);
    }

    .tit {
        font-size: var(--f-s-tit-tb);
    }

    .slide-hero-middle .subtit h2,
    .txt-accent p {
        font-size: var(--f-s-sldie-subtit-tb) !important;
    }

    .bloq-txt-inner-l,
    .bloq-txt-inner-r {
        margin-right: 0px !important;
        margin-left: 0px !important;
        border-right: 0px;
        border-left: 5px solid var(--c-lila-2);
    }

    .c-pad,  .c-pad-full{
        padding: 3em 1em !important;
     }
}

@media screen and (max-width: 767px) {
    .img-left, .img-right {
        max-width: 220px;
        top: 0px;
        left: 0px;
    }

    .num, .num img {
        margin: auto;
    }
}

@media only screen and (max-width: 600px) {
    .cab-home h1 {
        font-size: 3rem !important;
    }

    .inside-article {
      padding: 0px 1em 0 1em !important;
    }

    .subtit, .team-position {
        font-size: var(--f-s-subtit-mv)!important;
    }

    .tit, h1.team-name, .tit h1 {
      font-size: var(--f-s-tit-mv)!important;
    }

    .subtit h2, h2 {
      font-size: var(--f-s-subtit-mv)!important;
    }

    h3 {
      font-size: var(--f-s-slide-subtit-tb)!important;
    }

    .faq h3 {
        font-size: 1.2rem !important;
    }

    .hero-middle .vce-row-content {
      justify-content: center;
    }

    .hero-middle .tit h1 {
      margin-bottom: 20px!important;
    }

    .c-pad .vce-row-content, .blog .vce-row-content {
      padding-left: 0px!important;
      padding-right: 0px!important;
    }

    .bloq-txt-inner-l, .bloq-txt-inner-r {
      padding: 20px!important;
    }

    .single-post .content-area {
      background: var(--c-blanco);
    }

    .txt-destacado p::before,
    .txt-destacado p::after {
        display: none;
    }

    .tit.tit-line h1::after {
        top: 6px;
        left: -40px;
    }

    .subtit.tit-line h2::after, .tit-p p::after {
        width: 20px !important;
        height: 20px !important;
        top: 8px;
        left: -26px;
    }

    .lista.dos-col {
        flex-direction: column;
    }

    .lista.dos-col li {
        width: 100%;
    }

    /* LOGOS KIT DIGITAL */
    .logos-kit-digital {
        padding: 0 20px;
    }    

    .logos-kit-digital img {
        max-width: 165px;
        padding: 10px 5px;
    }

    .logos-kit-digital>img:last-child {
        max-width: 40%;
    }

    .hero-middle .subtit h2,
    .txt-accent p {
        font-size: var(--f-s-slide-subtit-mv) !important;
    }

    ol, ul {
       margin: 0 0 20px 20px;
    }

    .footer-widgets-container {
        padding-bottom: 0;
    }

    .footer-wrapper .footer-date {
      flex-direction: column;
    }

    .col-full-image {
      min-height: auto;
    }

    .btn-norm .vce-button {
      margin: 0!important;
    }

    .cta-contact {
      min-height: auto;
    }

    .footer-site {
      padding: 20px 0;
    }

    .footer-wrapper .footer-image {
        padding: 0 20px;
    }

    .footer-wrapper .footer-image img {
        margin-left: 0;
    }

    .footer-date .col-date {
      flex: 0 0 100%;
      width: 100%;
      min-height: auto!important;
      margin-bottom: 20px!important;
      margin-top: 0 !important;
      text-align: center;
    }

    .footer-date .col-date a {
        width: 100%;
    }

    .footer-logo {
        margin-bottom: 20px;
    }

    .btn-contact {
        padding: 10px;
    }

    .btn-contact .btn-contact-link {
        font-size: 15px;
    }

    .btn-contact .btn-contact-ico,
    .date-contact .btn-contact-ico {
        max-width: 20px;
        height: auto;
        margin: 0px 10px 0px 0px;
    }

    .mv-hidden {
        display: none !important;
    }

    .table-responsive, .tabla-cookies {
      overflow-x: scroll;
    }

    .col-stiky  {
        top: 00px !important;
        padding: 1em !important;
        position: relative !important;
        left: 0px !important;
        width: 100% !important;
    }

    .copyright-bar {
        text-align: left !important;
    }
}

@media screen and (max-width: 560px) {
    .col-mapa .vce-col-inner, 
    .col-mapa>.vce-col-inner>.vce-col-content,
    .col-mapa>.vce-col-inner>.vce-col-content>.mapa,
    .col-mapa>.vce-col-inner>.vce-col-content>.mapa>.vce-google-maps-wrapper,
    .col-mapa>.vce-col-inner>.vce-col-content>.mapa>.vce-google-maps-wrapper>.vce-google-maps-inner,
    .col-mapa iframe {
        height: 250px !important;
        max-height: 250px !important;
    }
}

@media screen and (max-width: 543px) {
    .cab-home .vce-asset-background-simple-item {
        background-size: 100%;
        background-position: 0% 100% !important;
    }

    .cab-inner>.vce-content-background-container .vce-asset-background-simple-item {
        background-size: 70%;
        background-position: 50% 95%;
    }

    .tit.tit-line h2::after, .tit.tit-line h1::after, 
    h1.entry-title::after, .tit-p p::after {
        display: none;
    }

    .circle-left {
        left: -15px;  
        width: 60px;
        height: 60px; 
    }
    
    .circle-right {
        right: -10px;   
        width: 60px;
        height: 60px; 
    }

    .ico-contacto {
        margin-bottom: 0px;
    }

    .num, .num img {
        width: 90px;
        margin: auto auto 20px auto;
    }
}