@charset "utf-8";

:root {
    --white: #fff;
    --black: #050505;
    --light-gray: #fafafa;
    --dark-gray: #323232;
    --red-primary: #d23237;
}

::selection{ background: var(--red-primary); color: var(--black); }
::-moz-selection{ background: var(--red-primary); color: var(--black); }

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--black); }
::-webkit-scrollbar-thumb { background: var(--dark-gray); border-radius: 50px; border: 2px solid var(--black); width: 8px; }
::-webkit-scrollbar-thumb:hover { background: var(--red-primary); }

/* Border-boxing */
*, *:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
input, select { -webkit-appearance: none; }
select { -webkit-appearance: menulist; }

/* Clearfix */
.cf { zoom: 1; }
.cf:before,
.cf:after { content: ""; display: table; }
.cf:after { clear: both; }

/* Base */
html,
body { height: 100%; }
body { background: var(--white); font-size: 16px; font-family: 'Montserrat'; margin: 0; padding: 0; }
img { border: 0; }
.wrap { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 40px; position: relative; }
.wrap-flex { display: flex; flex-flow: row wrap; align-items: center; justify-content: space-between; }
.controle { clear: both; word-spacing: -4px; height: 0; line-height: 0; }
.divider { border-bottom: 1px solid rgba(0,0,0,0.05); height: 0; margin: 24px 0; overflow: hidden; }

a { color: var(--black); text-decoration: underline; }
a:hover { text-decoration: none; }

.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }

.hide { display: none !important; }
.sr-only { height: 1px; width: 1px; overflow: hidden; }
.grecaptcha-badge { visibility: hidden; }

/* Messages */
.message { border-radius: 2px; color: var(--white); font: bold 13px Arial, Helvetica, sans-serif; margin: 10px 0 20px; padding: 20px; text-shadow: 1px 1px 0px rgba(0,0,0,0.15); }

/* Colors */
.white { color: var(--white); }
.default { color: #3ccbb5; }

/* UI Colors */
.c-default { background: #fafafa; border: 1px solid #ddd; color: #484848; }
.c-default:hover, .c-default:focus { background: #eee; }
.c-primary { background: #2282F0; }
.c-primary:hover, .c-primary:focus { background: #1771d8; }
.c-success { background: #61b261; }
.c-success:hover, .c-success:focus { background: #58a558; }
.c-info { background: #428bca; }
.c-info:hover, .c-info:focus { background: #3f7fb7; }
.c-alert { background: #f0b94e; }
.c-alert:hover, .c-alert:focus { background: #d9a43c; }
.c-error { background: #d9534f; }
.c-error:hover, .c-error:focus { background: #cf4a46; }
.c-black { background: #353535; }
.c-black:hover, .c-black:focus { background: #252525; }

.bg-gradient { background: var(--red-primary); background: -moz-linear-gradient(200deg, var(--red-primary) 0%, #ffcc29 100%); background: -webkit-linear-gradient(200deg, var(--red-primary) 0%, #ffcc29 100%); background: linear-gradient(200deg, var(--red-primary) 0%, #ffcc29 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='var(--red-primary)', endColorstr='#ffcc29',GradientType=1 ); }
.bg-gradient-blue { background: var(--black); background: -moz-linear-gradient(33deg, var(--black) 0%, #252e54 100%); background: -webkit-linear-gradient(33deg, var(--black) 0%, #252e54 100%); background: linear-gradient(33deg, var(--black) 0%, #252e54 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='var(--black)', endColorstr='#252e54',GradientType=1 ); }
.bg-gradient-light { background: linear-gradient(33.11deg, #f2f3fb 33.27%, rgba(247, 247, 249, 0) 94.26%); }

/* Scroll to top */
.btn-scroll-to-top { display: none; cursor: pointer; color: var(--white); border-radius: 2px 0 0 0; position: fixed; bottom: 0; right: 0; z-index: 1200; width: 36px; height: 36px; text-align: center; line-height: 33px; font-family: FontAwesome; font-size: 1em; }
.wp-fixed { box-shadow: 0 5px 10px rgba(0,0,0,0.15); position: fixed; bottom: 16px; right: 56px; z-index: 4000; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; border-radius: 50px; background: #25d366; color: var(--white);  font: 600 13px 'DIN Next W01', Arial, Helvetica, sans-serif; text-decoration: none; }
.wp-fixed i { font-size: 36px; vertical-align: middle; }

/* Structure */
header { background: var(--white); box-shadow: rgb(32 62 73 / 20%) 0 8px 24px; height: auto; margin: 0; padding: 0; width: 100%; position: fixed; top: 0; left: 0; z-index: 6001; transition: all 0.35s ease; }
header .wrap { display: flex; align-items: center; justify-content: space-between; position: relative; flex-wrap: wrap; max-width: unset; width: 100%; padding: 0; }
header .logotipo { margin: 0 40px; height: auto; text-decoration: none; }
header .logotipo img { display: block; height: 56px; }
header nav { display: flex; align-items: center; justify-content: flex-end; height: 100%; margin: 0; padding: 0; }
header nav > ul,
header nav > ul > li { display: inline-block; margin: 0; padding: 0; list-style: none; }
header nav > ul > li { margin: 0 12px; position: relative; }
header nav > ul > li > a { color: var(--black); display: inline-block; font: 700 12px/80px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 0; padding: 0 4px; text-decoration: none; text-transform: uppercase; transition: all 0.35s ease; position: relative; }
header nav > ul > li > a:after { content: ''; background: var(--red-primary); height: 3px; width: 0; position: absolute; left: 50%; bottom: 0; transition: all 0.25s ease-out; }
header nav > ul > li > a.active:after,
header nav > ul > li:hover > a:after { left: 10%; width: 80%; }
header nav > ul > li.sub > a:before { content: ''; background: url(/assets/images/menu-arrow.png) center no-repeat; width: 5px; height: 5px; display: block; width: 7px; height: 4px; position: absolute; top: 33px; right: -12px; }

.header-itens { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; margin: 0; padding: 0; }
.header-itens .btn-whatsapp { background: var(--red-primary); color: var(--white); height: 80px; display: flex; align-items: center; justify-content: center; width: 80px; text-decoration: none; }
.header-itens .btn-whatsapp i { font-size: 32px; }
.header-itens .btn-orcamento { background: var(--black); color: var(--white); height: 80px; font: 800 12px 'Montserrat', sans-serif; padding: 0 32px; display: flex; align-items: center; justify-content: center; text-decoration: none; text-transform: uppercase; }
.header-social { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; padding: 0 16px; }
.header-social a { display: flex; align-items: center; justify-content: center; color: #888; width: 40px; height: 40px; text-decoration: none; }
.header-social a i { font-size: 24px; }
.header-social a:hover { background: var(--red-primary); color: var(--black); }

header .nav-ico,
header .close-btn { display: none; }


/* Footer */
.policies-popup { position: fixed; bottom: 12px; left: 50%; transform: translate(-50%, 0); width: 100%; max-width: 1040px; z-index: 99999; background: rgb(255 255 255 / 97%); box-shadow: 0 8px 24px rgb(50 100 125 / 25%); display: none; border-radius: 4px; }
.policies-popup .wrap { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; }
.policies-popup p { color: #666; font: 12px/16px Arial, Helvetica, sans-serif; margin: 0; padding: 0; }
.policies-popup p a { color: var(--black); }
.policies-popup span.policies-agree { cursor: pointer; background: var(--black); border-radius: 50px; color: var(--white); font: 400 12px 'Montserrat', Arial, Helvetica, sans-serif; margin: 0 0 0 24px; padding: 8px 20px; }


/* Sections */
.wrap-flex { display: flex; align-items: center; justify-content: space-between; flex-flow: wrap row; }
.box-text,
.box-image { flex: 1; max-width: 50%;}
.box-text span { display: block; color: var(--red-primary); font: 700 16PX/calc(100% + 0px) 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 0 0 16px; padding: 0; text-transform: uppercase; }
.box-text h2 { color: var(--black); font: 300 40px/calc(100% + 0px) 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 0 0 16px; padding: 0; text-transform: uppercase; }
.box-text h2 strong { font-weight: 700; }
.box-text p { color: var(--dark-gray); font: 400 16px/calc(100% + 12px) 'Montserrat', Arial, Helvetica, sans-serif; text-rendering: optimizelegibility; margin: 0 0 24px; }
.box-text a.btn,
.box-text a.btn-action { background: #fdbf2c; color: var(--white); border-radius: 50px; display: inline-block; font: 400 14px/170% 'Univia Pro', Arial, Helvetica, sans-serif; letter-spacing: 0.5px; margin: 10px 0; padding: 10px 26px; text-align: center; text-decoration: none; transition: all 0.5s ease; }
.wrap-flex .box-image img { display: block; width: 100%; height: auto; }

/* Hero */
.s-hero { background: var(--black); height: 100vh; max-height: 720px; margin: 0; padding: 80px 0 0; position: relative; width: 100%; overflow: hidden; }
.s-hero .bx-wrapper,
.s-hero .bx-viewport { height: 100% !important; }
.s-hero ul,
.s-hero ul li { height: 100%; list-style: none; margin: 0; padding: 0; }
.s-hero ul li .bg { background-position: center; background-repeat: no-repeat; mix-blend-mode: overlay; filter: grayscale(15%); background-size: cover; position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0.65; }
.s-hero ul li .wrap { position: relative; height: 100%; display: flex; align-items: center; justify-content: flex-start; flex-flow: row wrap; padding: 48px 40px; }
.s-hero ul li .wrap .pub-content { flex: 1 0 100%; text-align: center; }
.s-hero h1 { color: var(--white); font: 300 40px/calc(100% + 8px) 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 0 0 16px; padding: 0; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0,0,0,0.25); }
.s-hero h1 strong { font-weight: 700; }
.s-hero p { color: var(--white); font: 400 16px/24px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0.5px; margin: 0 0 24px; padding: 0; text-transform: uppercase; }
.s-hero .btn-action { background: var(--red-primary); border-radius: 4px; display: inline-block; color: var(--black); font: 800 12px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 1px; margin: 24px 0 0; padding: 16px 32px; text-decoration: none; text-transform: uppercase; transition: all 0.35s ease; }
.s-hero .btn-action:hover { background: var(--black); color: var(--white); }
.s-hero .arrow { cursor: pointer; border: 0; height: 12px; width: 12px; position: absolute; top: 50%; transition: all 0.4s ease; z-index: 1200; }
.s-hero .arrow.prev { border-left: 4px solid var(--white); border-bottom: 4px solid var(--white); left: 24px; transform: translate(0,-50%) rotate(45deg); }
.s-hero .arrow.next { border-right: 4px solid var(--white); border-bottom: 4px solid var(--white); right: 24px; transform: translate(0,-50%) rotate(-45deg); }
.s-hero .arrow:hover { border-color: var(--red-primary); }
.s-hero .bx-controls { height: 20px; position: absolute; bottom: 24px; z-index: 2000; width: 100%; }
.s-hero .bx-pager { height: 20px; text-align: center; }
.s-hero .bx-pager .bx-pager-item { display: inline-block; vertical-align: middle; }
.s-hero .bx-pager .bx-pager-item a { background: var(--white); border: 2px solid transparent; border-radius: 8px; display: block; font-size: 1000px; height: 10px; width: 10px; margin: 0 6px;  overflow: hidden; transition: all 0.25s ease; }
.s-hero .bx-pager .bx-pager-item a.active { background: var(--red-primary); border: 2px solid var(--red-primary); width: 30px; }

/* Institucional */
.s-institucional { padding: 0; }
/* .s-institucional .wrap { max-width: unset; padding: 0; } */
.s-institucional .box-text { padding: 64px; position: relative; }
.s-institucional .box-image { padding: 40px; position: relative; }
.s-institucional .box-image img { border-radius: 0; aspect-ratio: 1; object-fit: cover; }
.s-institucional .box-image::after { content: ''; background: var(--red-primary); height: calc(100% - 80px - 40px); width: 24px; position: absolute; top: calc(40px + 20px); right: calc(40px - 24px); }

/* Produtos */
.s-produtos { background-color: var(--black); margin: 0; padding: 72px 0 0; text-align: center; }
.s-produtos h2 { color: var(--white); font: 800 32px/calc(100% + 0px) 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 0 0 16px; padding: 0; text-transform: uppercase; }
.s-produtos p { color: var(--white); font: 400 16px/160% 'Montserrat', Arial, Helvetica, sans-serif; margin: 0; }
.s-produtos-wrap { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; padding: 0; position: relative; transform: translate(0, 40px); z-index: 2000; } 
.s-produtos-wrap .bx-wrapper,
.s-produtos-wrap .bx-viewport { width: 100%; height: auto; }
.s-produtos-wrap ul { flex: 1 0 100%; margin: 0; padding: 0; list-style: none; }
.s-produtos-wrap ul li { margin: 0; padding: 0; width: 50%; }
.s-produtos-wrap .produto { display: block; background: var(--black); border-radius: 2px; margin: 0 4px; position: relative; text-decoration: none; overflow: hidden; }
.s-produtos-wrap .produto img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; opacity: 0.9; transition: all 0.35s ease;  }
.s-produtos-wrap .produto h3 { background: rgba(0,0,0,0.45); color: var(--white); font: 700 16px/24px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 0; padding: 16px; position: absolute; left: 0; bottom: 0; width: 100%; transition: all 0.35s ease; }
.s-produtos-wrap .produto:hover img { opacity: 1; }
.s-produtos-wrap .produto:hover h3 { background: rgba(0,0,0,0.65); padding: 24px; }
.s-produtos-wrap[data-slider="false"] { overflow: auto; }
.s-produtos-wrap[data-slider="false"]::-webkit-scrollbar { display: none; }
.s-produtos-wrap[data-slider="false"] ul { flex: 1 0 100%; display: flex; align-items: flex-start; justify-content: flex-start; flex-wrap: nowrap; margin: 0; padding: 0; list-style: none; }
.s-produtos-wrap[data-slider="false"] ul li { margin: 0; padding: 0; flex: 0 0 25%; width: 25%; }
.s-produtos-wrap .arrow { cursor: pointer; border: 0; height: 12px; width: 12px; position: absolute; top: 50%; transition: all 0.4s ease; z-index: 1200; }
.s-produtos-wrap .arrow.prev { border-left: 4px solid var(--white); border-bottom: 4px solid var(--white); left: -28px; transform: rotate(45deg); }
.s-produtos-wrap .arrow.next { border-right: 4px solid var(--white); border-bottom: 4px solid var(--white); right: -28px; transform: rotate(-45deg); }
.s-produtos-wrap .arrow:hover { border-color: var(--red-primary); }

/* Soluções */
.s-servicos { background: #fafafa; padding: 128px 0 64px; position: relative; z-index: 1400; overflow: hidden; }
.s-servicos .wrap { position: relative; z-index: 1400; }
.s-servicos h2 { color: var(--red-primary); font: 800 32px/calc(100% + 0px) 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 0 0 16px; padding: 0; text-transform: uppercase; }
.s-servicos p { color: var(--black); font: 400 16px/160% 'Montserrat', Arial, Helvetica, sans-serif; margin: 0; }
.s-servicos-title { margin: 0 auto; text-align: center; }
.s-servicos-wrap { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; margin: 32px 0 0; padding: 0; } 
.s-servicos-wrap .servico { flex: 0 0 calc(50% - 12px); background: var(--white); box-shadow: 0 4px 12px rgba(0,0,0,0.025); border-radius: 4px; margin: 0 0 24px; padding: 0; transition: all 0.3s ease; overflow: hidden; }
.s-servicos-wrap .servico img { background: #fafafa; display: block; width: 100%; height: auto; object-fit: cover; aspect-ratio: 2/1; margin: 0; }
.s-servicos-wrap .servico .servico-text { padding: 32px; text-align: left; }
.s-servicos-wrap .servico h3 { color: var(--red-primary); font: 800 16px/calc(100% + 8px) 'Montserrat', Arial, Helvetica, sans-serif; margin: 0 0 8px; padding: 0; text-transform: uppercase; }
.s-servicos-wrap .servico p,
.s-servicos-wrap .servico ul li,
.s-servicos-wrap .servico ol li { color: var(--black); font: 400 14px/calc(100% + 8px) 'Montserrat', Arial, Helvetica, sans-serif; margin: 0; }
.s-servicos-wrap .servico ul,
.s-servicos-wrap .servico ol { margin: 0; padding: 0 16px; }

/* Galerias */
.s-galerias { background: var(--white); padding: 64px 0; }
.s-galerias h2 { color: var(--red-primary); font: 800 32px/calc(100% + 0px) 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 0 0 16px; padding: 0; text-transform: uppercase; }
.s-galerias p { color: var(--black); font: 400 16px/160% 'Montserrat', Arial, Helvetica, sans-serif; margin: 0; }
.s-galerias-title { margin: 0 auto; text-align: center; }
.s-galerias-wrap { display: flex; align-items: flex-start; justify-content: flex-start; flex-wrap: wrap; margin: 32px 0 0; }
.s-galerias-wrap a { flex: 0 0 25%; padding: 1px; position: relative; overflow: hidden; }
.s-galerias-wrap a img { display: block; aspect-ratio: 1; object-fit: cover; width: 100%; height: auto; }
.s-galerias-wrap a[data-caption]::after { content: attr(data-caption); background: rgba(0,0,0,0.85); color: #fff; font: 700 12px/calc(100% + 8px) 'Montserrat', Arial, Helvetica, sans-serif; text-transform: uppercase; padding: 20px; position: absolute; bottom: 1px; left: 1px; width: calc(100% - 2px); height: calc(100% - 2px); display: flex; align-items: flex-end; justify-content: flex-start; transition: all 0.35s ease-in-out; opacity: 0; }
.s-galerias-wrap a[data-caption]:hover::after { opacity: 0.85; }

/* Parceiros */
.s-parceiros { border-top: 1px solid rgba(0,0,0,0.025); padding: 64px 0; text-align: center; }
.s-parceiros h2 { color: var(--red-primary); font: 800 32px/calc(100% + 0px) 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 0 0 16px; padding: 0; text-transform: uppercase; }
.s-parceiros p { color: var(--black); font: 400 16px/160% 'Montserrat', Arial, Helvetica, sans-serif; margin: 0; }
.s-parceiros-title { margin: 0 auto; text-align: center; }
.s-parceiros-wrap { position: relative; }
.s-parceiros ul,
.s-parceiros ul li { margin: 0; padding: 0; list-style: none; }
.s-parceiros a { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; height: auto; margin: 0; padding: 24px; text-decoration: none; }
.s-parceiros a img { display: block; height: auto; width: 100%; aspect-ratio: 1; object-fit: scale-down; filter: grayscale(98%); transition: all 0.35s ease; }
.s-parceiros a:hover img { filter: grayscale(0%); }
.s-parceiros .arrow { cursor: pointer; border: 0; height: 12px; width: 12px; position: absolute; top: 50%; transition: all 0.4s ease; z-index: 1200; }
.s-parceiros .arrow.prev { border-left: 4px solid var(--black); border-bottom: 4px solid var(--black); left: -28px; transform: translate(0,-50%) rotate(45deg); }
.s-parceiros .arrow.next { border-right: 4px solid var(--black); border-bottom: 4px solid var(--black); right: -28px; transform: translate(0,-50%) rotate(-45deg); }
.s-parceiros .arrow:hover { border-color: var(--red-primary); }

/* Contato */
footer.contato { background: var(--black); font-size: 0; margin: 0; padding: 80px 0; position: relative; width: 100%; }
footer.contato .wrap { z-index: 100; display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; }
footer.contato h2 { color: var(--red-primary); }
footer.contato p { color: var(--white); font-size: 13px; }
.contato-title { flex: 1; }
.contato-infos { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; border-bottom: 1px solid rgba(0,0,0,0.1); padding: 0; margin: 24px 0 0; }
.contato-infos p { flex: 1 0 100%; display: flex; align-items: center; justify-content: flex-start; color: var(--white); font: 500 14px/16px 'Montserrat', Arial, Helvetica, sans-serif !important; margin: 0 0 16px; padding: 0; }
.contato-infos p strong { font-weight: 400; }
.contato-infos p i { display: flex; align-items: center; justify-content: center; background: var(--red-primary); border-radius: 1px; color: var(--black); margin: 0 12px 0 0; font-size: 28px; width: 40px; height: 40px; min-width: 40px; }
.contato-infos p a { color: var(--white); display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; text-decoration: none; }
.contato-form { flex: 2; padding: 0 0 0 32px; }
.contato-form .divider { flex: 1 0 100%; width: 100%; }
.contato-form form { display: flex; align-items: flex-start; justify-content: flex-start; flex-wrap: wrap; }
.contato-form label { margin: 0 0.5% 8px; padding: 0; width: 99%; }
.contato-form label.lbl-1-2 { width: 49%; }
.contato-form label.lbl-1-3 { width: 32.333333%; }
.contato-form label span { display: block; color: var(--white); font: 400 13px/18px 'Montserrat', Arial, Helvetica, sans-serif; padding: 4px; opacity: 0.5; }
.contato-form label .text { border: 0; border-radius: 1px; background: var(--white); margin: 0; padding: 14px; outline: none; color: var(--black); font: 400 14px 'Montserrat', Arial, Helvetica, sans-serif; width: 100%; transition: all 0.5s ease; text-transform: none; }
.contato-form label .text:focus { border-color: var(--black); }
.contato-form label select { height: 50px; padding: 4px; }
.contato-form label textarea { height: 120px; }
.contato-form div.btn-wrap { padding: 8px 0 0; flex: 1; margin: 0 0.5%; display: flex; align-items: center; justify-content: flex-end; }
.contato-form div.btn-wrap .btn-enviar { background: var(--red-primary); border: 0; border-radius: 1px; cursor: pointer; color: var(--black); font: 800 14px/20px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; padding: 16px 40px; text-transform: uppercase; }

.radio, .checkbox { cursor: pointer; margin: 0 0 5px !important; vertical-align: middle; }
.radio-inline, .checkbox-inline { display: inline-block !important; padding: 0 30px 0 0; width: auto !important; }
.radio input, .checkbox input { float: left; margin: 3px 10px 0 0; }

.custom-radio { padding: 10px; overflow: hidden; }
.custom-radio input { visibility: hidden; position: absolute; text-indent: -9999px; }
.custom-radio span { display: inline-block; padding: 0; }
.custom-radio span:before { content: '\f00c'; color: var(--white); font-family: 'FontAwesome'; font-size: 9px; font-weight: normal; display: inline-block; line-height: 12px; width: 18px; height: 18px; background: var(--white); border: 3px solid #ccc; border-radius: 50%; margin: -1px 7px 0; vertical-align: middle; text-align: center; }
.custom-radio.radio-on span:before { border: 3px solid #00386b !important; background: #00386b; }

.custom-checkbox { padding: 4px; margin: 0 0 4px; overflow: hidden; }
.custom-checkbox input { visibility: hidden; position: absolute; text-indent: -9999px; }
.custom-checkbox span { display: inline-block; padding: 0; font-size: 14px; }
.custom-checkbox span:before { content: '\f00d'; color: var(--white); font-family: 'FontAwesome'; font-size: 12px; font-weight: normal; display: inline-block; line-height: 16px; width: 22px; height: 22px; background: var(--white); border: 3px solid #ccc; border-radius: 10%; margin: 0 8px 0 0; vertical-align: middle; text-align: center; }
.custom-checkbox.checkbox-on span { color: #ec6b31 !important; }
.custom-checkbox.checkbox-on span:before { border: 3px solid #ec6b31 !important; background: #ec6b31; }

.localizacao iframe { display: block; width: 100%; height: 500px; border: 0; margin: -80px 0 0; }

.video-container { position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; margin: 50px auto; overflow: hidden; }
.video-container iframe,
.video-container object,
.video-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 2px; }

/* Mensagens */
.sucesso { background: #d9edd7 url(/assets/images/painel/sucesso.png) 10px center no-repeat; border: 1px solid #a1d29a; border-radius: 2px; color: #575f56; font: bold 0.688em/2.273em Tahoma, Geneva, sans-serif; margin: 0 0 20px; padding: 10px 10px 10px 50px; }
.alerta { background: #ffefcc url(/assets/images/painel/alerta.png) 10px center no-repeat; border: 1px solid #ffd67f; border-radius: 2px; color: #de8912; font: bold 0.688em/2.273em Tahoma, Geneva, sans-serif; margin: 0 0 20px; padding: 10px 10px 10px 50px; }
.informacao { background: #ccdcff url(/assets/images/painel/informacao.png) 10px center no-repeat; border: 1px solid #7fa6ff; border-radius: 2px; color: #3d4a66; font: bold 0.688em/2.273em Tahoma, Geneva, sans-serif; margin: 0 0 20px; padding: 10px 10px 10px 50px; }
.erro { background: #ffcccc url(/assets/images/painel/erro.png) 10px center no-repeat; border: 1px solid #ff7f7f; border-radius: 2px; color: #ba4747; font: bold 0.688em/2.273em Tahoma, Geneva, sans-serif; margin: 0 0 20px; padding: 10px 10px 10px 50px; }
.msg { background: #000; color: var(--white); text-align: center; height: 80px; font: 700 1em/5.000em 'Lato', Tahoma, Arial, Helvetica, sans-serif; text-transform: uppercase; text-align: center; position: fixed; bottom: 0; left: 0; width: 100%; z-index: 9999; opacity: 0.75; }

/* Modal */
.modal { display: none; width: 700px; max-width: 96%; padding: 0 !important; }
.modal h2 { background: var(--black); color: var(--white); font: 500 28px/30px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 0; padding: 30px 40px; position: relative; }
.modal .c-form { padding: 40px; }
.modal .c-form p { color: #666; font: 400 16px/160% 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 0 0 10px; padding: 0; }
.modal .c-form label { width: 100%; }
.modal .c-form div:not(.message) { text-align: center; padding: 10px 0 0; position: relative; }
.modal .fancybox-close-small:after { background: none; border: 2px solid var(--white); color: var(--white); line-height: 28px; top: 30px; right: 25px; }

*:disabled { border: 2px solid rgba(0,0,0,0.05) !important; opacity: 0.75; cursor: not-allowed; }

/* Content */
.title { background: var(--black); margin: 0; padding: 200px 0 100px; position: relative; width: 100%; }
.title-bg { background-position: center; background-repeat: no-repeat; mix-blend-mode: multiply; filter: grayscale(100%); background-size: cover; position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0.2; }
.title h1,
.title p { color: var(--white); font: 600 48px/48px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 0; padding: 0; position: relative; }
.title-detail { background: var(--black); height: 56px; width: 100%; display: flex; align-items: flex-end; justify-content: flex-end; flex-flow: column wrap; display: none; }
.title-detail:after { content: ''; height: 56px; width: 56px; border-top: 28px solid var(--white); border-right: 28px solid var(--white); border-left: 28px solid #ec6b31; border-bottom: 28px solid #ec6b31; z-index: 1200; position: relative; }

.content { padding: 48px 0; }
.content h1 { color: var(--black); font: 600 46px/110% 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 0 0 20px; padding: 0; }
.content h1 strong { font-weight: 600; }
.content h2 { color: var(--black); font: 600 36px/100% 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 0 0 18px; padding: 0; }
.content h2 strong { font-weight: 600; }
.content h3 { color: var(--black); font: 500 28px/120% 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 15px 0; padding: 0; }
.content h4 { color: var(--black); font: 600 18px/22px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 15px 0; padding: 0; }
.content h5 { color: var(--black); font: 500 16px/22px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 0 0 10px; padding: 0; }
.content p { color: #666; font: 400 14px/150% 'Montserrat', Arial, Helvetica, sans-serif; text-rendering: optimizelegibility; margin: 0 auto 18px; }
.content p strong,
.content p b { font-weight: 600; }
.content ul,
.content ol { color: #888; font: 400 14px/150% 'Montserrat', Arial, Helvetica, sans-serif; text-rendering: optimizelegibility; font-feature-settings: "liga"; margin: 0 auto 24px; padding: 0 35px; }
.content ul li,
.content ol li { margin: 5px 0; padding: 0; }

.content .wrap-flex { align-items: flex-start; }
.content .wrap-flex div.image { flex: 1; padding: 24px; }
.content .wrap-flex div.image img { display: block; width: 100%; height: auto; }
.content .wrap-flex div.text { flex: 1; padding: 40px; }

.content .wrap .content-title,
.content .wrap .content-text { flex: 1; padding: 24px; }

/* Produtos */
.product-page { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; }
.product-data { flex: 1 0; padding: 0 56px 0 0; position: sticky; top: 130px; left: 0; }
.product-photos { flex: 2 0; margin: -80px 0 0; position: relative; }
.product-photos img { display: block; margin: 0 auto 8px; height: auto; width: 100%; }
.btn-catalogo { display: block; background: var(--red-primary); border-left: 3px solid var(--black); border-radius: 2px 24px 2px 2px; color: var(--black); font: 800 16px/22px 'Montserrat', Arial, Helvetica, sans-serif; margin: 8px 0; padding: 16px 24px; text-decoration: none; position: relative; overflow: hidden; transition: all 0.35s ease; }
.btn-catalogo:hover { background: var(--black); border-left: 3px solid var(--red-primary); color: var(--white); }
.btn-catalogo:before { content: '\f1c5'; width: 40px; height: 60px; mix-blend-mode: overlay; opacity: 0.75; color: var(--black); font: normal 48px 'FontAwesome'; position: absolute; top: 50%; left: -8px; transform: translate(0,-50%); display: flex; align-items: center; justify-content: center; display: none; }
.btn-catalogo span { display: block; }
.btn-catalogo span:nth-child(2) { font-size: 12px; font-weight: 500; }

footer.contato.contato-produtos { padding: 40px 0; }
.contato-produtos .contato-title > h2,
.contato-produtos .contato-title > p { display: none; }
.contato-produtos .contato-infos { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; }
.contato-produtos .contato-infos p { flex: 1; }
.contato-produtos .contato-infos p:last-child { display: none; }
.contato-produtos .contato-form { display: none; }


/*
** RESPONSIVE
*/
@media screen and (max-width: 1024px){
    /* Default */
    .wrap { padding: 0 24px; }

	/* Header */
    header { background: var(--white); border: 0; box-shadow: 0 0 25px rgba(0,0,0,0.35); position: fixed; padding: 8px 0; }
    header .wrap { padding: 0 24px; }
    header .wrap:before { content: ''; width: 28px; }
	header .logotipo,
    header.fixed .logotipo { max-width: 50%; height: 48px; margin: 0; }
	header .logotipo img,
    header.fixed .logotipo img { height: 48px; width: auto; }
	header .phone-ico { cursor: pointer; color: var(--red-primary); width: 28px; height: 28px; margin: 0; display: flex; align-items: center; justify-content: center; text-decoration: none; }
	header .phone-ico i { font-size: 24px; }
	header .phone-ico img { height: 24px; width: auto; }

    header .nav-ico { cursor: pointer; display: block; border-top: 3px solid var(--black); width: 28px; height: 19px; margin: 0; position: relative; transition: all 0.5s ease; }
    header .nav-ico:before { content: ''; display: block; background: var(--black); height: 3px; width: 100%; position: absolute; top: 5px; left: 0; transition: all 0.5s ease; }
    header .nav-ico:after { content: ''; display: block; background: var(--black); height: 3px; width: 100%; position: absolute; bottom: 0; left: 0; transition: all 0.5s ease; }
	header .close-ico { display: block; text-align: right; }
    header .close-ico span { cursor: pointer; display: inline-block; border-top: 0; width: 28px; height: 19px; margin: 0 auto 15px; position: relative; transition: all 0.5s ease; }
    header .close-ico span:before { content: ''; display: block; width: 100%; left: 0; height: 3px; background: var(--red-primary); position: absolute; transform: rotate(45deg); top: 10px; }
    header .close-ico span:after { content: ''; display: block; width: 100%; left: 0; height: 3px; background: var(--red-primary); position: absolute; transform: rotate(135deg); bottom: initial; top: 10px; }

    header nav { display: block; background: var(--black); box-shadow: 0 0 35px rgba(0,0,0,0.35); position: fixed; top: 0; right: -410px; width: 320px; height: 100%; overflow: auto; margin: 0; padding: 24px; transition: all 0.45s ease; z-index: 9999; }
	header nav.on { right: 0; }
	header nav > ul { width: 100%; margin: 16px 0; text-align: left; }
	header nav > ul > li { display: block; margin: 0; padding: 0; }
    header nav > ul > li > a,
    header.fixed nav > ul > li > a { border-bottom: 1px solid rgba(0,0,0,0.05); color: #fafafa; display: block; font: 600 14px/20px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 4px 0; padding: 8px; text-align: center; text-decoration: none; text-transform: none; transition: all 0.45s ease; }
    header nav > ul > li > a:hover { color: var(--white); }
	header nav > ul > li > a:after { display: none; }

    .header-itens { justify-content: center; margin: 8px 0 0; }
    .header-itens .btn-whatsapp { height: 40px; width: 40px; margin: 1px; color: var(--black); }
    .header-itens .btn-whatsapp i { font-size: 24px; }
    .header-itens .btn-orcamento { border: 2px solid var(--white); border-radius: 4px; color: var(--white); height: 40px; font: 800 12px 'Montserrat', sans-serif; margin: 16px 0 0; padding: 0 40px; }
    .header-social { padding: 0; }
    .header-social a { background: var(--red-primary); color: var(--black); margin: 1px; }

    /* Home */
	.s-hero { padding: 64px 0 0; }
    .s-hero h1 { font: 300 32px/calc(100% + 8px) 'Montserrat', Arial, Helvetica, sans-serif; }

    .s-institucional .box-image, 
    .s-institucional .box-text { padding: 32px; }

    .s-produtos-wrap { padding: 0 24px; }
    .s-produtos-wrap .arrow.prev { left: 0; }
    .s-produtos-wrap .arrow.next { right: 0; }

    .s-galerias-wrap a { flex: 0 0 33.333333%; }
    .s-galerias-wrap a:nth-child(n+7) { display: none; }

    .s-parceiros .arrow.prev { left: 0; }
    .s-parceiros .arrow.next { right: 0; }

    footer.contato { padding: 64px; }
    .contato-title { flex: 1 0 100%; }
    .contato-form { flex: 1 0 100%; padding: 0; }
    .contato-form label,
    .contato-form label.lbl-1-2,
    .contato-form label.lbl-1-3, 
    .contato-form div.btn-wrap .btn-enviar { width: 100%; }
    

    /* Produtos */
    .title { padding: 160px 0 60px; text-align: center; }
    .title h1, .title p { font-size: 40px; }

    .content { padding: 40px 0; }

    .product-data,
    .product-photos { flex: 1 0 100%; padding: 8px; margin: 8px 0; }
    .product-data { position: static; }

    .contato-produtos .contato-infos p { flex: 1 0 100%; }

}

@media screen and (max-width: 768px){
    /* Home */
    .s-institucional .wrap-flex { gap: 0; flex-direction: column-reverse; }
    .s-institucional .box-image, 
    .s-institucional .box-text { flex: 1 0 100%; max-width: 100%; }
    .s-institucional .box-text p:last-child { margin: 0; }

    .s-produtos-wrap { padding: 0; position: relative; left: -24px; width: calc(100% + 48px); }
    .s-produtos-wrap ul { flex: 1 0 100%; display: flex; align-items: flex-start; justify-content: flex-start; flex-wrap: nowrap; overflow: auto; }
    .s-produtos-wrap ul::-webkit-scrollbar { display: none; }
    .s-produtos-wrap ul::before,
    .s-produtos-wrap ul::after { content: ''; display: flex; border: 8px solid transparent;  }
    .s-produtos-wrap ul li { flex: 0 0 75%; width: 50%; }
    .s-produtos-wrap .produto { display: block; background: var(--black); border-radius: 2px; margin: 0 4px; position: relative; text-decoration: none; overflow: hidden; }
    .s-produtos-wrap .produto img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; opacity: 0.9; transition: all 0.35s ease;  }
    .s-produtos-wrap .produto h3 { background: rgba(0,0,0,0.45); color: var(--white); font: 700 16px/24px 'Montserrat', Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 0; padding: 16px; position: absolute; left: 0; bottom: 0; width: 100%; transition: all 0.35s ease; }
    .s-produtos-wrap .produto:hover img { opacity: 1; }
    .s-produtos-wrap .produto:hover h3 { background: rgba(0,0,0,0.65); padding: 24px; }
    .s-produtos-wrap .arrow { display: none; }

    .s-servicos-wrap { gap: 16px; }
    .s-servicos-wrap .servico { flex: 1 0 100%; margin: 0; }

    .s-galerias-wrap a { flex: 0 0 50%; }
    .s-galerias-wrap a:nth-child(n+7) { display: block; }

    footer.contato { padding: 40px; }
}

@media screen and (max-width: 485px){
    footer.contato { padding: 32px 8px; }
}