html, body, div, span, h1, h2, h3, h4, h5, h6, p, blockquote, a, img, small, sub, b, dl, dd, dt, ul, li, label, article, details, footer, header, menu, nav, input, textarea, select, button {
	background: transparent;
	border: 0;
	outline: 0;
	padding: 0;
	margin: 0;
}
* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
html, body {
	font-family: 'Ysabeau Infant', sans-serif;
	height: 100%;
	width: 100%;
	background-color: #f2eae2;
    scroll-behavior: smooth;
}

body {
	position:relative;
	overflow-x: hidden;
	/*-moz-osx-font-smoothing: grayscale;
	font-smoothing: grayscale;
	text-rendering: optimizelegibility;*/
}
a:hover, a:active, a:focus, button, input, textarea {
	outline: 0;
	-webkit-border-radius:0; 
	border-radius:0;
	text-decoration: none;	
	-webkit-appearance: none;
	-moz-appearance: none;
	-ms-appearance: none;
	-o-appearance: none;
	appearance: none;
	
}
a:not(.ft_contactos_txt), button, input.submit, input[type="submit"], input[type="reset"], input[type="button"], input[type="image"], .animationcss, *:before, *:after, span, input, textarea {
	-moz-transition: all 0.3s linear;
	-o-transition: all 0.3s linear;
	-ms-transition: all 0.3s linear;
	-webkit-transition: all 0.3s linear;
	transition: all 0.3s linear;
}
a {
	outline: 0 !important;
	text-decoration: none;
}
img {
	display: block;
}
textarea {
	resize: none;
}
.scrolloff {
	pointer-events: none;
}
.overHidden{
	overflow:hidden;
}

/* ANIMAÇÕES AO APARECER */
.element_from_top {
	top: -50px;
	padding-right: 0px;
	opacity: 0;
	position: relative;
}
.element_from_bottom {
	bottom: -50px;
	padding-left: 0px;
	opacity: 0;
	position: relative;
}
.element_from_left {
	left: -80px;
	padding-right: 0px;
	opacity: 0;
	position: relative;
}
.element_from_right {
	right: -80px;
	padding-left: 0px;
	opacity: 0;
	position: relative;
}
.element_fade_in {
	opacity: 0;
	position: relative;
	padding-left: 0px;
	right: 0px;
}

@media only screen and (max-width: 768px) {
	.element_from_top {
		top: 0px;
		opacity: 1;
	}
	.element_from_bottom {
		bottom: 0px;
		opacity: 1;
	}
	.element_from_left {
		left: 0px;
		opacity: 1;
	}
	.element_from_right {
		right: 0px;
		opacity: 1;
	}
	.element_fade_in {
		opacity: 1;
	}
}

/*LOADER*/
.mask {
	top: 0;
	left: 0;
	background-color: #f4ede7;
	width: 100%;
	height: 100%;
	position: fixed;
	z-index: 10000000;
	display: table;
	text-align: center;
}
#loader {
	display: table-cell;
	width: 100%;
	height: 100%;
	vertical-align: middle;
}


/*ESTILOS GERAIS*/
.mainDiv {
	width: 100%;
	height: 100%;
	display: table;
	position: relative;
}
.row1 {
	width: 100%;
	height: 100%;
	display: table-row;
	vertical-align: top;
}
.row2 {
	height: 100%;
	display: table-row;
	width: 100%;
	vertical-align: bottom;
}
.div_90 {
	display: table;
	width: 90%;
	table-layout: fixed;
	margin: auto;
}
.div_100 {
	display: table;
	width: 100%;
	table-layout: fixed;
}
.div_table_cell {
	display: table-cell;
	height: 100%;
	vertical-align: middle;
}
.container_1280 {
	display: table;
	width: 100%;
	max-width: 1440px;
	padding:0 20px;
	margin: auto;
}
.divs_50{
	width:50%;
	display: table-cell;
	height: 100%;
	vertical-align: middle;
}

@media only screen and (max-width: 1400px) {
	.container_1280 {
		max-width: 1320px;
	}
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
	.divs_50, .div_table_cell{
		height: 1px;
	}
}



/*TOPO FIXO*/
.topo_fixo {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
  transition: transform 0.3s ease;
  background-color: #f2eae2;
}

.topo_fixo.hidden {
  transform: translateY(-100%);
}


/* MENU MOBILE */
.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 5px;
  background: #f2eae2;
  color: #bf573e;
}

.nav .menu {
  list-style: none;
  display: none;
  gap: 20px;
}

.nav .menu li a {
    text-decoration: none;
    color: #ffffff;
    font-size: 20px;
    font-weight: 300;
    line-height: 25px;
    text-transform: uppercase; 
}

.nav .menu li a:hover {
    color: #292929;
}

.nav .menu-toggle {
  display: none;
  font-size: 30px;
  cursor: pointer;
}

@media only screen and (max-width: 1000px) {
  .nav .menu {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 50px;
    left: 0;
    width: 100%;
    background: #bf573e;
    padding: 20px;
    z-index: 10;
  }

  .nav .menu.active {
    display: flex;
  }

  .nav .menu-toggle {
    display: block;
  }
}




/* MENU TOPO */

.header .logotipo{
    display: inline-block;
    width: 33%;
    padding: 50px 0;
} 
.header .logotipo img{
    max-width:250px;
}  
.header .menu{
    display: inline-block;
    vertical-align: top;
    line-height: 50px;
    margin-top: 50px;
    width: 32%;
    text-align: right;
} 
.header .menu a{
    color: #250302;
    font-size: 15px;
    font-weight: 200;
    line-height: 20px;
    text-transform: uppercase;
    padding: 0 20px;
}
.header .menu a:hover{
    color: #bf573e;
}

.header .menu .mail{
    display: table;
    background-image: url('imgs/mail.png');
    background-repeat: no-repeat;
    background-position: left center;
    padding-left: 25px; 
    height: 20px;

    color: #292929;
    font-size: 14px;
    font-weight: 600 !important;
    line-height: 16px;
    text-transform: lowercase;
}
.header .menu .mail:hover{
    background-image: url('imgs/mail_.png');
    color: #bf573e;
}

@media only screen and (max-width: 1200px) {
    .header .menu a {
        font-size: 13px;
        padding: 0 10px;
    }
}

@media only screen and (max-width: 1000px) {
    .header .logotipo{
        width: 100%;
        padding: 20px 0 40px 0;
    } 
    .header .menu{
        display: none;
    } 
}



/* BANNER  */

.topo_espacamente{
    margin-top: 140px;
}
.header .banner{
    width: 100%;
    position: relative;
} 
.header .banner .imagem{
    width: 100%;
    height: auto;
    display: block;
} 
.header .banner .imagem_mob{
    width: 100%;
    height: auto;
    display: none;
} 
.header .banner .txt{
    position: absolute;
    color: #ffffff;
    font-size: 25px;
    font-weight: 500;
    line-height: 30px;
    text-transform: uppercase; 
    text-align: center;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 800px;
}
.header .banner .txt span{
    margin-top: 30px;
    font-size: 35px;
    font-weight: 100;
    line-height: 28px;
}
@media only screen and (max-width: 1000px) {
    .header .banner .txt{
        font-size: 20px;
        line-height: 25px;
        width: 100%;
    }
    .header .banner .txt span{
        font-size: 30px;
        line-height: 28px;
    }
}

@media only screen and (max-width: 800px) {
    .header .banner .imagem{
        display: none;
    } 
    .header .banner .imagem_mob{
        display: block;
    } 
    .header .banner .txt{
        font-size: 20px;
        line-height: 25px;
        width: 100%;
        padding: 0 40px;
    }
    .header .banner .txt span{
        font-size: 25px;
        line-height: 28px;
    }
}


/* CATEGORIAS */

.categ{
}
.categ .categ_tit{
    padding: 50px 50px;
    text-align: center;
}
.categ .categ_tit .tit{
    color: #292929;
    font-size: 35px;
    font-weight: 200;
    line-height: 35px;
    text-transform: uppercase;
}

.categ .menu{
    margin: auto;
    padding-bottom: 50px;
    text-align: center;

}
.categ .menu .td{
    display: inline-block;
    width: 25%;
    padding: 0 20px;
    vertical-align: top;
}
.categ .menu .td .tit{
    width: 100%;
    height: 60px;
    text-align: center;
}
.categ .menu .td .tit span{
    color: #bf573e;
    max-width:300px;
    font-size: 20px;
    font-weight: 200;
    line-height: 60px;
    text-transform: uppercase;
}
.categ .menu .td .subtit{
    width: 100%;
    height: 70px;
    text-align: center;
    padding: 0 20px;
}
.categ .menu .td .subtit span{
    color: #292929;
    max-width:300px;
    font-size: 14px;
    font-weight: 100;
    line-height: 18px;
    vertical-align: top;
    text-transform: lowercase;
}


.categ .botao{
    background-color: #bf573e;
    color: #f4e3d1;
    text-transform: uppercase;
    padding: 15px 10px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 300;
    transition: background-color 0.3s ease, transform 0.2s ease;
}
.categ .botao:hover {
    background-color: #74130a;
}

@media only screen and (max-width: 1000px) {
    .categ .categ_tit{
        padding: 50px 20px;
    }
    .categ .menu .td{
        width: 50%;
        padding: 0 20px;
    }
}

@media only screen and (max-width: 800px) {
    .categ .categ_tit .tit{
        font-size: 25px;
        line-height: 25px;
    }
    .categ .categ_tit{
        padding: 50px 50px 20px 50px;
    }
}

@media only screen and (max-width: 600px) {
    .categ .menu .td{
        width: 100%;
    }
}



/* ABOUT US */
.about_us{
}
.about_us .content{
    margin: auto;
    padding: 50px 50px;
    max-width: 1200px;
}
.about_us .content .td_3{
    display: inline-block;
    width: 9%;
    max-width: 50px;
}
.about_us .content .td_1{
    display: inline-block;
    width: 44%;
    padding-right: 35px;
}
.about_us .content .td_2{
    display: inline-block;
    width: 44%;
    padding-left: 50px;
    padding-top: 30px;
    text-align: left;
    vertical-align: top;
}
.about_us .content .td_2 .tit{
    color: #bf573e;
    font-size: 26px;
    font-weight: 200;
    line-height: 30px;
    text-transform: uppercase;
}
.about_us .content .td_2 .subtit{
    color: #292929;
    font-size: 19px;
    font-weight: 200;
    line-height: 28px;
    padding: 50px 0;
}
.about_us .content .td_2 .txt{
    color: #292929;
    font-size: 22px;
    font-weight: 300;
    line-height: 26px;
}
.about_us .content .td_2 .txt b{
    font-weight: 500;
}
.vertical_text {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    text-orientation: mixed;
    color: #bf573e;
    max-width:400px;
    font-size: 40px;
    font-weight: 200;
    line-height: 45px;
    text-transform: uppercase;
}


.about_us .botao{
    border: 1px solid #bf573e;
    background-color: none;
    color: #bf573e;
    text-transform: uppercase;
    padding: 15px 10px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 300;
    transition: background-color 0.3s ease, transform 0.2s ease;
}
.about_us .botao:hover {
    background-color: #bf573e;
    color: #f2eae2;
}

@media only screen and (max-width: 1200px) {

    .about_us .content .td_1{
        display: inline-block;
        width: 50%;
        padding-right: 0px;
    }
    .about_us .content .td_2{
        width: 38%;
        padding-left: 40px;
    }
    .about_us .content .td_2 .tit{
        font-size: 20px;
        line-height: 24px;
    }
    .about_us .content .td_2 .subtit{
        font-size: 16px;
        line-height: 25px;
        padding: 20px 0;
    }
    .about_us .content .td_2 .txt{
        font-size: 18px;
        line-height: 22px;
    }
}

@media only screen and (max-width: 1000px) {
    .about_us .content{
        padding: 50px 20px;
    }
    .about_us .content .td_3{
        width: 18%;
    }
    .about_us .content .td_1{
        width: 82%;
    }
    .about_us .content .td_2{
        width: 100%;
        padding-left: 60px;
    }
}


/* ICONE  */
.icones{
    max-width: 900px;
    padding: 50px 50px;
    margin: auto;
    text-align: center;
}
.icones .tit{
    text-align: center;
    color: #292929;
    font-size: 30px;
    font-weight: 200;
    line-height: 35px;
    padding-bottom: 50px;
}

.icones .menu{
    margin: auto;
}
.icones .menu .td{
    display: inline-block;
    width: 18%;
    vertical-align: top;
}
.icones .menu .td_split{
    display: inline-block;
    width: 1%;
}
.icones .menu .td_split_2{
    display: inline-block;
    width: 2%;
}
.icones .menu .td .tit2{
    width: 100%;
    height: 80px;
    text-align: center;
}
.icones .menu .td .tit2 span{
    color: #292929;
    max-width: 300px;
    font-size: 16px;
    font-weight: 200;
    line-height: 20px;
}
.icones .menu .td img{
    max-width: 130px;
    margin: auto;
}

@media only screen and (max-width: 1000px) {
    .icones{
        padding: 50px 20px;
    }
    .icones .menu .td{
        width: 30%;
    }
}

@media only screen and (max-width: 800px) {
    .icones .tit{
        font-size: 25px;
        line-height: 30px;
    }
}


/* PORTFOLIO  */
.porfolio{
    padding: 50px 50px;
    max-width: 1200px;
    margin: auto;
}
.porfolio .tit{
    margin: auto;
    text-align: left;
}
.porfolio .tit .dest{
    color: #bf573e;
    font-size: 40px;
    font-weight: 200;
    line-height: 40px;
    text-transform: uppercase;
    padding-bottom: 20px;
}

.porfolio .galeria{
    margin: auto;
    width: 100%;
}

.porfolio .galeria .imagem{
    display: block;
}
.porfolio .galeria .imagem_mob{
    display: none;
}

@media only screen and (max-width: 1000px) {
    .porfolio{
        padding: 50px 20px;
    }
}

@media only screen and (max-width: 800px) {
    .porfolio .tit .dest{
        font-size: 30px;
        line-height: 30px;
        padding-bottom: 10px;
    }
    .porfolio .galeria .imagem{
        display: none;
    }
    .porfolio .galeria .imagem_mob{
        display: block;
    }
}


/* CONTACTOS FORM */
.contact{
    max-width: 900px;
    padding: 50px 20px 0 20px;
    margin: auto;
}
.contact .tit{
    text-align: center;
    color: #bf573e;
    font-size: 40px;
    font-weight: 200;
    line-height: 40px;
    padding-bottom: 30px;
    text-transform: uppercase;
    width: max-content;
    margin: auto;
}
.contact .tit_form{
    text-align: center;
    color: #74130a;
    font-size: 40px;
    font-weight: 200;
    line-height: 40px;
    padding: 20px 0 20px 0;
    text-transform: uppercase;
}

.contact .form{
    margin: auto;
    width: 100%;
    background-color: #f8f7f5;
    border-radius: 20px 20px 0 0;
    padding: 30px 50px 50px 50px;
}
.contact .form .td_1, .contact .form .td_2{
    display: inline-block;
    width: 44%;
    vertical-align: top;
    padding-top: 20px;
}
.contact .form .td_split{
    display: inline-block;
    width: 9%;
}
.contact .form label{
    color: #74130a;
    font-size: 16px;
    font-weight: 300;
    line-height: 20px;
    text-transform: uppercase;
}
.contact .form .td_3{
    display: inline-block;
    width: 100%;
    vertical-align: top;
    padding-top: 20px;
}
.contact .form input, .contact .form textarea{
    color: #856560;
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
    padding-bottom: 5px;
    padding-top: 5px;
    border-bottom: 2px solid #856560;
    width: 100%;
}
.contact .form textarea{
    resize: false;
    margin-top: 20px;
}
.contact .form button {
    background-color: #bf573e;
    color: #f4e3d1;
    text-transform: uppercase;
    padding: 15px 20px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 200;
    transition: background-color 0.3s ease, transform 0.2s ease;
    margin: auto;
}
.contact .form button:hover {
    background-color: #74130a;
}

.contact .message{
    text-align: center;
    color: #bf573e;
    font-size: 30px;
    font-weight: 200;
    line-height: 26px;
    padding: 50px 0;
}

@media only screen and (max-width: 1000px) {
    .contact .form .td_1, .contact .form .td_2{
        width: 100%;
    }
    .contact .form .td_split{
        display: none;
    }
    .contact .tit{
        font-size: 30px;
        line-height: 30px;
        padding-bottom: 20px;
    }
    .contact .tit_form{
        font-size: 30px;
        line-height: 30px;
    }
}
@media only screen and (max-width: 600px) {
    .contact .tit{
        font-size: 25px;
        line-height: 25px;
        padding-bottom: 10px;
    }
    .contact .tit_form{
        font-size: 25px;
        line-height: 25px;
    }
}


/* MAPA */

.map{
    background-color: #bf573e;
    padding: 50px 50px;
}
.map .content{
    width: 100%;
    max-width: 1100px;
    margin: auto;
}
.map .content .tit{
    text-align: left;
    color: #f4e3d1;
    font-size: 35px;
    font-weight: 200;
    line-height: 40px;
    text-transform: uppercase;
    padding-bottom: 10px;
}

.map .content .embed{
    margin: auto;
    width: 100%;
}

@media only screen and (max-width: 1000px) {
    .map{
        padding: 50px 20px;
    }
}

@media only screen and (max-width: 800px) {
    .map .content .tit{
        font-size: 25px;
        line-height: 30px;
        padding-bottom: 10px;
    }
}


/* RODAPE */
.rodape{
    padding: 50px 50px;
    margin: auto;
}
.rodape .top{
    width: 100%;
}

.rodape .top .td_3{
    padding-top: 40px;
    display: inline-block;
    width: 29%;
    vertical-align: top;
}

.rodape .top .td_1{
    display: inline-block;
    width: 49%;
    padding-right: 50px;
}
.rodape .top .td_1 .txt{
    display: table;
    width: 100%;
    padding-bottom: 20px;
}
.rodape .top .td_1 .txt .tit{
    display: table-cell;
    text-align: right;
    width: 150px;
    color: #292929;
    font-size: 18px;
    font-weight: 300;
    line-height: 25px;
    text-transform: uppercase;
    vertical-align: top;
}
.rodape .top .td_1 .txt .content{
    display: table-cell;
    text-align: left;
    color: #292929;
    font-size: 16px;
    font-weight: 200;
    line-height: 18px;
    padding-left: 20px;
    vertical-align: top;
}
.rodape .top .td_1 .txt .content a{
    color: #292929;
    font-size: 16px;
    font-weight: 200;
    line-height: 18px;
}
.rodape .top .td_1 .txt .content a:hover{
    color: #bf573e;
}
.rodape .top .td_2{
    display: inline-block;
    width: 11%;
    padding-left: 80px;
    padding-top: 40px;
    vertical-align: top;
}
.rodape .top .td_2 .imagens {
  display: flex;
  gap: 10px;
}
.rodape .top .td_2 img{
    width: 30px;
    transition: opacity 0.3s ease;
}
.rodape .top .td_2 img:hover {
    opacity: 0.6;
}
.rodape .bottom{
    width: 100%;
    padding-top: 100px;
}
.rodape .bottom img{
    max-width:400px;
    margin: auto;
}  
.rodape .td_3 img{
    max-width: 250px;
}  

@media only screen and (max-width: 1000px) {
    .rodape{
        padding: 50px 20px;
    }
    .rodape .top .td_3{
        padding-top: 0px;
        width: 100%;
        padding-bottom: 40px;
    }
    .rodape .top .td_1{
        width: 100%;
        padding-right: 0px;
    }
    .rodape .top .td_2{
        width: 100%;
        padding-left: 0px;
        padding-top: 20px;
    }
    .rodape .top .td_1 .txt .tit{
        text-align: left;
        width: 80px;
    }
}
@media only screen and (max-width: 800px) {
    .rodape .td_3 img{
        max-width: 200px;
    }  
}