/*
Theme Name: critec
Theme URI: https://critec.pt/
Author: critec
Author URI: https://critec.pt/
Description: critec
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: critec
*/

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Fontes */
:root {
    --font-basic-sans: "basic-sans", sans-serif;
    --font-archivo: "Archivo", sans-serif;
    --font-pt-sans: "PT Sans", sans-serif;
    --font-main-bg: #F4F0F0;
    --font-gray: #6E6E6E;
}

body {
    font-family: var(--font-pt-sans);
    background-color: var(--font-main-bg);
    color: #000;
}

img {
    max-width: 100%;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-archivo);
}
h1{
    font-size: 30px;
    line-height: 32px;
    color: #fff;
    font-weight: 700;
}
h2{
    font-size: 50px;
    line-height: 55px;
    font-weight: 600;
    color: #fff;
}
h3{
    font-weight: 600;
    font-size: 50px;
    line-height: 55px;
    color: var(--area-color);
    margin-bottom: 30px;
}
h4{
    font-weight: 600;
    font-size: 30px;
    line-height: 32px;
    color: var(--area-color);
    margin-bottom: 30px;
}
h5{
    font-weight: 700;
    font-size: 24px;
    line-height: 30px;
    color: var(--area-color);
}
h6{
    font-weight: 700;
    font-size: 20px;
    line-height: 30px;
    color: var(--area-color);
}

.text-area{
    color: var(--area-color);
}
.bg-area{
    background-color: var(--area-color);
}

.menu-lateral{
    width: 62px;
    padding: 50px 6px;
    box-shadow: 0px 3px 10px #00000029;
    border-radius: 42px;
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    left: 20px;
    z-index: 100;
    background-color: #fff;
}

.menu-lateral .menu-item{
    width: 50px;
    height: 50px;
    border-radius: 5px 0 0 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 2px 0;
    position: relative;
    z-index: 1;
}
.menu-lateral .menu-item.active,
.menu-lateral .menu-item:hover{
    background-color: var(--menu-item-color);
    cursor: pointer;
}
.menu-lateral .menu-item.active a img,
.menu-lateral .menu-item:hover a img{
    filter: brightness(0) invert(1);
}
.menu-lateral .menu-item.active::before{
    content: '';
    position: absolute;
    top: 0;
    left: calc(100% - 1px);
    width: 17px;
    height: 100%;
    background-color: var(--menu-item-color);
}
.menu-lateral .menu-item a img{
    width: 30px;
    height: 30px;
}
.menu-lateral .menu-item.active a .menu-item-title{
    display: none !important;
}
.menu-lateral .menu-item a .menu-item-title{
    font-size: 18px;
    color: #fff;
    font-family: var(--font-archivo);
    display: none;
}
.menu-lateral .menu-item:hover a .menu-item-title{
    display: block;
    position: absolute;
    top: 0;
    left: calc(100% - 1px);
    width: fit-content;
    height: 100%;
    background-color: var(--menu-item-color);
    white-space: nowrap;
    color: #fff;
    padding: 0 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0 5px 5px 0;
}
.menu-lateral .submenu{
    position: absolute;
    left: calc(100% + 10px);
    width: 200px;
    height: 100%;
    top: 0;
    background-color: var(--menu-item-color);
    border-radius: 5px;
    padding: 12px 0px;
    box-shadow: 0px 3px 10px #00000029;
    opacity: 0;
    pointer-events: none;
    overflow-y: auto;
}
/* width */
.menu-lateral .submenu::-webkit-scrollbar {
    width: 5px;
    border-radius: 5px;
}

/* Track */
.menu-lateral .submenu::-webkit-scrollbar-track {
    background: #fff;
    padding: 1px;
}

/* Handle */
.menu-lateral .submenu::-webkit-scrollbar-thumb {
    background: var(--menu-item-color);
    border-radius: 5px;
}

/* Handle on hover */
.menu-lateral .submenu::-webkit-scrollbar-thumb:hover {
    background: var(--menu-item-color);
}
/* Cabeçalho da tabela */
table thead tr td{
    background-color: #f5f5f5;
}

/* Linhas do conteúdo da tabela (tbody) alternadas */
table tbody tr:nth-child(odd) {
    background-color: #d9d9d8;
}

table tbody tr:nth-child(even) {
    background-color: #e6e6e6;
}

.menu-lateral .submenu.active{
    opacity: 1;
    pointer-events: auto;
}
.submenu-item{
    margin-bottom: 5px;
    position: relative;
}
.submenu-item:last-child{
    margin-bottom: 0;
}
.submenu-item a{
    font-size: 18px;
    line-height: 20px;
    color: #fff;
    font-family: var(--font-archivo);
    text-decoration: none;
    padding: 11px 25px;
    display: block;
    border-radius: 5px;
}
.submenu-item a:hover, .submenu-item.active>a{
    background: #fff;
    color: var(--menu-item-color);
}
.submenu-item a.active{
    font-weight: bold;
}
.submenu-item.has-submenu::after{
    content: '';
    display: block;
    width: 6px;
    height: 11px;
    background-color: #fff;
    -webkit-mask-image: url('assets/images/menu-arrow.svg');
    mask-image: url('assets/images/menu-arrow.svg');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 15px;
}
.submenu-item:hover.has-submenu::after, .submenu-item.active.has-submenu::after{
    background-color: var(--menu-item-color);
}
.subSubMenu{
    display: none;
    position: absolute;
    left: calc(100% + 11px);
    top: 0;
    width: 200px;
    border-radius: 5px;
    background: var(--menu-item-color);
    padding: 12px 0px;
    box-shadow: 0px 3px 10px #00000029;
}
.subSubMenu.active{
    display: block;
}
.banner-content{
    position: absolute;
    inset: 0;
}

.dot-white{
    font-size: 12px;
    font-family: var(--font-archivo);
    color: #fff;
}
.dot-white::before{
    content: '';
    width: 10px;
    height: 10px;
    background-color: #fff;
    border-radius: 50%;
    display: inline-block;
    margin-right: 10px;
}

.slide-banner-item img{
    height: 650px;
    object-fit: cover;
}
.btnGeral, .btnWhite, .form-contactos button[type="submit"]{
    background-color: var(--area-color) !important;
    color: #fff !important;
    padding: 10px 34px;
    border-radius: 25px;
    text-decoration: none;
    font-size: 20px;
    font-family: var(--font-archivo);
    font-weight: 600;
    max-width: 415px;
    width: 100%;
    display: block;
    position: relative;
}
.btnGeral:hover, .btnWhite:hover, .form-contactos button[type="submit"]:hover{
    background-color: #fff !important;
    color: var(--area-color) !important;
}
.btnGeral::after, .btnWhite::after{
    content: '';
    display: inline-block;
    width: 20px;
    height: 25px;
    margin-right: 10px;
    background-color: var(--area-color);
    -webkit-mask-image: url('assets/images/arrow-right.svg');
    mask-image: url('assets/images/arrow-right.svg');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    filter: brightness(0) invert(1);
    transition: right 0.3s ease;
    position: absolute;
    right: 23px;
    top: 50%;
    transform: translateY(-50%);
}
.btnDownload::after{
    -webkit-mask-image: url('assets/images/download.svg');
    mask-image: url('assets/images/download.svg');
    transition: top 0.3s ease;
}
.btnGeral:hover::after, .btnWhite:hover::after{
    filter: unset;
    right: 48px;
}
.btnDownload:hover::after{
    right: 23px;
    top: calc(50% + 5px);
}
.btnWhite{
    background-color: #fff !important;
    color: var(--area-color) !important;
}
.btnWhite::after{
    filter: unset;
}

.slick-dots{
    bottom: 30px;
}
.slick-dots li{
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: transparent;
    border: 1px solid #fff;
    z-index: 2;
}
.slick-dots li.slick-active{
    background-color: #fff;
}
.slick-dots li button:before{
    display: none;
}
.slide-banner.one-slide .slick-dots{
    display: none;
}

footer{
    background: #C32955;
}
.footer-logo{
    height: 88px;
}
.footer-title{
    font-size: 20px;
    line-height: 24px;
    color: #fff;
    font-family: var(--font-basic-sans);
    width: 183px;
}
.footer-link{
    font-size: 16px;
    color: #fff;
    font-family: var(--font-basic-sans);
    text-decoration: none;
    margin: 0 25px;
}
.footer-copyright, .developed{
    font-size: 16px;
    color: #fff;
    font-family: var(--font-basic-sans);
    margin: 0 13px;
}
.developed img{
    filter: brightness(0) invert(1);
    height: 8px;
}
.boldColor b, .boldColor strong{
    color: var(--area-color);
}
#map iframe{
    width: 100%;
    height: 370px;
}

.contactsIcon {
    width: 30px;
    height: 30px;
    background-color: var(--area-color);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contactsText{
    font-size: 16px;
    font-family: var(--font-pt-sans);
    line-height: 30px;
}
.contactsText a{
    color: #000;
    text-decoration: none;
}
.contactsText a:hover{
    color: var(--area-color);
}
.form-contactos button[type="submit"]{
    max-width: 220px;
    text-align: center;
}
.form-contactos input, .form-contactos select, .form-contactos textarea{
    border-radius: 6px !important;
    border: 1px solid var(--font-gray) !important;
    font-size: 20px !important;
    line-height: 29px !important;
    color: var(--font-gray) !important;
    padding: 14px 20px !important;
}
.form-contactos input[name="gdpr-agreement"]{
    width: 22px;
    height: 22px;
    margin-right: 10px !important;
}
.form-contactos input[name="gdpr-agreement"]:checked{
    background-color: var(--area-color) !important;
}
.form-contactos label{
    font-size: 20px;
    line-height: 29px;
    color: var(--font-gray);
}
.ff-el-form-check-label{
    font-size: 13px !important;
    line-height: 18px !important;
    color: var(--font-gray);
}
.ff-el-form-check-label a{
    color: var(--font-gray);
}
.ff-el-form-check-label a:hover{
    color: var(--area-color);
}
.imagem-e-texto-titulo{
    font-size: 50px;
    line-height: 55px;
    font-weight: 600;
    color: var(--area-color);
}
.bg-area-contactos{
    background: var(--area-color);
    position: absolute;
    top: 35%;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 65%;
    z-index: -1;
    border-radius: 5px;
}
.content-area-contactos{
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
}
.area-contactos-titulo{
    font-size: 36px;
    line-height: 40px;
    font-weight: 600;
    color: #ffffff;
}
.area-contactos-imagem{
    transform: scale(0.9);
    transform-origin: bottom;
    transition: transform 0.3s ease;
}
.area-contactos-container:hover .area-contactos-imagem{
    transform: scale(1);
}
.titulo-container{
    font-size: 60px;
    line-height: 72px;
    font-weight: 600;
    color: var(--area-color);
}
.galeira-titulo{
    font-size: 30px;
    line-height: 30px;
    font-weight: 600;
    color: var(--area-color);
}
.galeria-imagem{
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 300/280;
    overflow: hidden;
    border-radius: 5px;
}
.area-imagem-titulo-lista img{
    height: 278px;
    margin-bottom: 10px;
}
.area-imagem-titulo-lista-titulo{
    font-size: 26px;
    line-height: 31px;
    font-weight: 600;
    color: #2F2F2F;
    text-align: center;
}
.phone-btn{
    display: flex;
    background: #fff;
    border-radius: 24px;
    align-items: center;
    justify-content: center;
    height: 47px;
    padding: 7px 20px 7px 7px;
    text-decoration: none;
}
.phone-btn div{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    font-size: 18px;
    line-height: 14px;
    font-family: var(--font-archivo);
    color: #C32955;
    margin-left: 13px;
    white-space: nowrap;
}
.phone-btn div small{
    font-size: 12px;
    line-height: 14px;
    white-space: nowrap;
}

.search-input,.search-input-mobile{
    height: 47px;
    border-radius: 24px;
    background: #0000004F;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 7px 14px;
    position: relative;
    margin-right: 11px;
}
.search-input input,.search-input-mobile input{
    width: 0;
    color: #fff;
    font-size: 16px;
    line-height: 21px;
    font-family: var(--font-pt-sans);
    background: transparent;
    border: none;
    padding: 0;
    margin-right: 0;
    margin-left: 0;
    transition: all 0.3s ease;
}
.search-input.active input,.search-input-mobile.active input {
    width: 370px;
    margin-right: 20px;
    margin-left: 10px;
}
.search-input input::placeholder,.search-input-mobile input::placeholder{
    color: #fff;
}
.search-input input:focus,.search-input-mobile input:focus{
    outline: none;
}
.search-input button,.search-input-mobile button{
    background: transparent;
    border: none;
    cursor: pointer;
}
.search-input button img,.search-input-mobile button img{
    height: 22px;
}

.menu-mobile{
    display: none;
}

.menu-btn{
    padding: 12px 18px;
    background: #fff;
    border-radius: 24px;
    position: absolute;
    top: 30px;
    left: 40px;
    z-index: 90;
}
.menu-btn>div{
    width: 20px;
    height: 16px;
    border-top: 1px solid #C32955;
    border-bottom: 1px solid #C32955;
    position: relative;
}
.menu-btn>div::before{
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    width: 100%;
    height: 1px;
    background: #C32955;
}
.menu-mobile-content{
    display: flex;
    position: fixed;
    inset: 0;
    background: #F4F0F0;
    padding: auto;
    z-index: 99;
    width: 100vw;
    flex-direction: column;
    align-items: center;
    left: 100%;
    transition: all 0.3s ease;
}
.menu-mobile-content.active{
    display: flex;
    left: 0;
}
.menu-mobile-content-inner{
    margin-top: 150px;
    display: flex;
    flex-direction: column;
    position: relative;
    width: 322px;
    height: fit-content;
}
.menu-mobile-content-inner::before{
    content: '';
    position: absolute;
    top: -68px;
    left: 0;
    width: 60px;
    height: calc(100% + 128px);
    background: #FFFFFF;
    border-radius: 42px;
}
.menu-mobile-content-inner a{
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-decoration: none;
    color: var(--menu-item-color);
    margin-bottom: 20px;
    height: 30px;
    font-size: 18px;
    line-height: 20px;
    font-family: var(--font-archivo);
    font-weight: 700;
    padding-left: 75px;
    position: relative;
}
.menu-mobile-content-inner a img{
    width: 30px;
    height: 30px;
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
}

.closerBtn{
    width: 26px;
    height: 26px;
    position: absolute;
    right: 40px;
    top: 30px;
    z-index: 92;
}
.closerBtn::before, .closerBtn::after{
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    width: 34px;
    height: 1px;
    background: #4B4B4B;
}
.closerBtn::after{
    transform: translate(-50%, -50%) rotate(-45deg);
}
.closerBtn.whiteClose::before, .closerBtn.whiteClose::after{
    background: #fff;
}
.mobilePhone{
    display: flex;
    text-decoration: none;
}
.mobilePhone div{
    font-size: 18px;
    line-height: 14px;
    font-family: var(--font-archivo);
    color: #C32955;
    margin-left: 13px;
    white-space: nowrap;
    font-weight: 700;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}
.mobilePhone small{
    font-size: 12px;
    line-height: 14px;
    white-space: nowrap;
    font-weight: 400;
}
.menu-mobile-content-inner-footer-title{
    font-size: 18px;
    line-height: 22px;
    font-family: var(--font-basic-sans);
    color: #4B4B4B;
    width: 164px;
    text-align: center;
    margin: 0 auto;
    margin-top: 5px;
}

.menu-mobile-content-inner a::after {
    content: '';
    display: inline-block;
    width: 20px;
    height: 25px;
    background-color: var(--menu-item-color);
    -webkit-mask-image: url('assets/images/arrow-right.svg');
    mask-image: url('assets/images/arrow-right.svg');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    position: absolute;
    right: 0px;
    top: 50%;
    transform: translateY(-50%);
}
.mobile-menu-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow-y: auto;
    width: 100%;
}

.mobile-submenu-item-container{
    display: flex;
    position: absolute;
    inset: 0;
    background: var(--menu-item-color);
    justify-content: center;
    overflow-y: auto;
    width: 100vw;
    left: 100%;
    transition: all 0.3s ease;
}
.mobile-submenu-item-container-inner{
    margin-top: 75px;
    width: 320px;

}
.mobile-submenu-item-container.active{
    left: 0;
}

.submenu-icon{
    filter: brightness(0) invert(1);
    margin-right: 32px;
}
.backBtn{
    font-size: 12px;
    line-height: 14px;
    font-family: var(--font-archivo);
    color: #fff;
    text-decoration: none;
    position: relative;
    padding-left: 22px;
}
.backBtn::before {
    content: '';
    display: inline-block;
    width: 13px;
    height: 16px;
    background-color: #fff;
    -webkit-mask-image: url('assets/images/arrow-right.svg');
    mask-image: url('assets/images/arrow-right.svg');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    position: absolute;
    left: 0px;
    top: 50%;
    transform: translateY(-50%) rotate(180deg);
}
.mobile-submenu-item a{
    display: block;
    font-size: 18px;
    line-height: 20px;
    font-family: var(--font-archivo);
    color: #fff;
    text-decoration: none;
    margin-bottom: 25px;
}
.mobile-submenu-item a.active{
    font-weight: 700;
}
.submenu-icon img{
    width: 30px;
    height: 30px;
}
.search-page-term{
    font-size: 24px;
    line-height: 28px;
    font-family: var(--font-basic-sans);
    color: #fff;
}
.search-page-term span{
    font-weight: 700;
}
.azulejo-titulo{
    font-size: 60px;
    line-height: 65px;
    font-weight: 600;
    color: #3B3B3B;
    text-align: center;
    max-width: 906px;
}
.azulejo-texto{
    text-align: center;
    max-width: 906px;
}
.diagrama-icon{
    height: 100px;
    display: flex;
    justify-content: center;
    position: relative;
}
.diagrama-icon::before{
    content: '';
    position: absolute;
    display: block;
    top: 50%;
    left: 139px;
    right: 139px;
    width: calc(100% - 278px);
    height: 2px;
    transform: translateY(-50%);
    background-color: #000;
}
.diagrama-icon img{
    padding: 10px;
    height: 100%;
    background-color: #f4f0f0;
    position: relative;
    z-index: 1;
}
.diagrama-lista{
    display: flex;
    justify-content: space-between;
}
.diagrama-lista-item a{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 60px;
    background-color: #ea3323;
    border: 2px solid #ea3323;
    border-radius: 5px;
    text-decoration: none;
    color: #fff;
    font-size: 18px;
    line-height: 20px;
    font-family: var(--font-archivo);
    font-weight: 700;
    position: relative;
}
.diagrama-lista-item a:hover{
    background-color: transparent;
    color: #ea3323;
}
.diagrama-lista-item a::after{
    content: '';
    display:block;
    width: 2px;
    height: 110px;
    background-color: #000;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, calc(-100% - 2px));
}
.slide-valencia img{
    aspect-ratio: 2 / 1;
    object-fit: cover;
}

@media (max-width: 1199px) {
    .azulejo-titulo{
        font-size: 35px;
        line-height: 38px;
    }
    .diagrama-lista{
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    .diagrama-lista-item a::after, .diagrama-icon::before{
        display: none;
    }
    .menu-lateral{
        display: none;
    }
    .menu-mobile{
        display: block;
    }
    html {
        margin-top: 0px !important;
    }
    #wpadminbar{
        display: none;
    }
    .hiddenMobile{
        display: none;
    }
    .search-input-mobile{
        margin: 0;
        background: #ffffff;
        position: absolute;
        bottom: -40px;
        padding: 7px 13px;
    }
    .search-input-mobile.active input{
        width: 233px;
    }
    .search-input-mobile input{
        color: #000;
    }
    .search-input-mobile input::placeholder{
        color: #000;
    }
    .search-input-mobile input:focus{
        outline: none;
    }
    .form-contactos input,
    .form-contactos select,
    .form-contactos textarea {
        border-radius: 6px !important;
        border: 1px solid var(--font-gray) !important;
        font-size: 16px !important;
        line-height: 22px !important;
        color: var(--font-gray) !important;
        padding: 8px 10px !important;
    }
    .form-contactos label {
        font-size: 16px;
    }
    .galeira-titulo{
        font-size: 20px;
        line-height: 20px;
    }
}
.noScroll{
    overflow: hidden;
}