/* Vars */

:root {
 --cor-base:#004369;
 --cor-clara:#56697a;
 --cor-escura:#0d2840;
 --cor-dois:#e96502;
 --cor-bg:#fcfcfc;
}

/* Reset */

* {
 margin:0; padding:0; border:0; outline:0;
 box-sizing:border-box;
}

/* Base */

html {
 position:relative;
 min-height:100%;
}

body {
 margin:0;
 height:100%;
 min-width:300px;
 overflow-y:scroll;
 overflow-x:hidden;
 background-color:var(--cor-bg);
 color:#404040;
 font-family:Arial,Helvetica;
 font-size:1em;
 font-weight:400;
}

.outfit {
 font-family:'Outfit',Arial,Helvetica;
 font-optical-sizing:auto;
 font-size:1em;
 font-weight:400;
 color:#404040;
}

/* Tags */

a {
 text-decoration:none;
 color:#404040;
 outline:none;
 overflow-wrap:anywhere;
}

a:hover {
 text-decoration:none;
 color:var(--cor-escura);
}

a.branco {
 text-decoration:none;
 color:#fff;
 outline:none;
 overflow-wrap:anywhere;
}

a.branco:hover {
 text-decoration:none;
 color:var(--cor-escura);
}

a.azul {
 text-decoration:none;
 color:var(--cor-base);
 outline:none;
 overflow-wrap:anywhere;
}

a.azul:hover {
 text-decoration:none;
 color:#000;
}

form {
 display:inline;
}

input[type=text],input[type=password],input[type=date],input[type=file],select,textarea {
 font-family:Arial,Helvetica;
 border:solid 1px var(--cor-escura);
 background-color:#fff;
 border-radius:2px;
 color:#000;
 margin-bottom:8px;
 padding:9px;
 outline:none;
 resize:none;
 width:100%;
 max-width:600px;
}

input[type=text]:focus,input[type=password]:focus,input[type=date]:focus,select:focus,textarea:focus {
 border:solid 1px var(--cor-dois);
}

input[type=text],input[type=password],input[type=file] {
 width:100%;
 max-width:600px;
}

input[type=checkbox] {
 margin:10px 4px 13px 17px;
 vertical-align:middle;
}

input[type=checkbox]:nth-child(1) {
 margin-left:0;
}

::placeholder {
 color:var(--cor-escura);
 opacity:0.4;
 font-size:1.1em;
}

button,input[type=button],input[type=submit] {
 background-color:var(--cor-escura);
 border:solid 1px var(--cor-escura);
 border-radius:2px;
 padding:8px;
 color:#fff;
 outline:none;
 cursor:pointer;
 transition:0.3s;
}

button:hover,input[type=button]:hover,input[type=submit]:hover {
 background-color:var(--cor-dois);
 border:solid 1px var(--cor-dois);
}

h1 {
 color:var(--cor-base);
 border-bottom:solid 2px var(--cor-clara);
 padding:0.3em 0;
 margin-bottom:1em;
 font-weight:500;
}

hr {
 border:0;
 width:100%;
 height:1px;
 background-color:var(--cor-base);
}

li {
 margin-left:1em;
}

blockquote {
 border-left:solid 3px var(--cor-base);
 padding-left:1em;
 font-style:italic;
}

break {
 flex-basis:100%;
 width:0; height:0;
 overflow:hidden;
}

main {
 margin:0;
 padding:0;
}

/* Table */

.table {
 display:table;
 width:100%;
 border-collapse:collapse;
}

.table > div {
 display:table-row;
}

.table > div > div {
 display:table-cell;
 border:1px solid var(--cor-escura);
 padding:7px;
 vertical-align:middle;
}

.table-header > div {
 font-weight:bold;
 background:var(--cor-clara);
}

@media (max-width:768px) {

 .table {
  display:block;
 }

 .table > div {
  display:block;
  border:1px solid var(--cor-base);
  border-radius:6px;
  overflow:hidden;
  margin-bottom:1em;
 }

 .table > div > div {
  display:block;
  border:none;
  border-bottom:1px solid var(--cor-clara);
  padding:8px;
 }

 .table > div > div:last-child {
  border-bottom:none;
 }

 .table > div > div::before {
  content:attr(data-label);
  font-size:0.9em;
  font-weight:bold;
  display:block;
  margin-bottom:4px;
  color:var(--cor-base);
 }

 .table-header {
  display:none !important;
 }

}

/* Dialog */

dialog {
 position:fixed;
 overflow:hidden;
 margin:auto;
 min-width:280px;
 max-width:600px;
 padding:0;
 border-radius:9px;
 box-shadow:0 10px 20px #0009;
}

dialog[open]:not(:modal) {
 top:20%;
 left:50%;
 transform:translate(-50%,-50%);
 margin:0;
}

dialog::backdrop {
 background:rgba(0,0,0,.15);
}

#dialog-header {
 padding:12px 14px 10px 14px;
 font-weight:bold;
 background:var(--cor-base);
 color:#fff;
}

#dialog-content {
 padding:20px 16px;
}

#dialog-footer {
 text-align:right;
 padding:6px;
 border-top:1px solid #ddd;
}

#dialog-footer button {
 min-width:70px;
 cursor:pointer;
 margin:6px;
}

#dialog-footer button:last-child {
 margin-right:12px;
}

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

 dialog {
  max-width:85%;
 }

 #dialog-footer {
  text-align:center;
 }

 #dialog-footer button {
  margin:6px 6px 0 6px;
 }

 #dialog-footer button:last-child {
  margin-right:6px;
  margin-bottom:12px;
 }

}

/* Específicos */

.nosel {
 user-select:none;
 -moz-user-select:none;
 -ms-user-select:none;
 -webkit-user-select:none;
 -webkit-touch-callout:none;
 -webkit-tap-highlight-color:transparent;
}

.yessel {
 user-select:text !important;
 -moz-user-select:text !important;
 -ms-user-select:text !important;
 -webkit-user-select:text !important;
}

.noresp {
 display:initial;
}

.yesresp {
 display:none;
}

.flex {
 display:flex;
 flex-wrap:wrap;
 justify-content:center;
}

.loading {
 display:none;
 z-index:99;
}

.load1 {
 position:absolute;
 top:0; left:0;
 z-index:99;
 width:100%;
 height:100%;
 background-color:#fff;
 opacity:0.2;
}

.load2 {
 width:48px;
 height:48px;
 position:fixed;
 top:49%;
 left:49%;
 transform:translate(-50%,-50%);
 animation:rotation 1.7s infinite linear;
}

@keyframes rotation {
 from { transform:rotate(0deg); }
 to { transform:rotate(359deg); }
}

/* YouTube */

.embed-container {
 position:relative;
 padding-bottom:56.25%;
 height:0;
 overflow:hidden;
 max-width:100%;
}

.embed-container iframe,.embed-container object,.embed-container embed {
 position:absolute;
 top:0; left:0;
 width:100%;
 height:100%;
}

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

 .noresp {
  display:none;
 }

 .yesresp {
  display:initial;
 }

}

@media screen and (max-width:330px) {
 body {
  font-size:0.9em;
 }
}

@media screen and (max-width:270px) {
 body { display:table-column;background:url(/imagens/layout/logotipo.png) center center / contain no-repeat fixed padding-box content-box var(--cor-bg); }
}

/* Projeto */

.topo {
 width:100%;
 height:170px;
 background-color:#fff;
 box-shadow:0 0 10px rgba(0,0,0,0.5);
}

.topologo {
 display:inline-block;
 width:100%;
 max-width:245px;
 padding:10px;
}

.logo {
 width:100%;
 max-width:225px;
}

.topobotoes {
 display:inline-block;
 float:right;
 width:100%;
 max-width:250px;
 padding:25px 10px 0;
}

.topobot {
 display:inline-block;
 width:230px;
 height:39px;
 background-color:var(--cor-escura);
 border:1px solid var(--cor-escura);
 border-radius:5px;
 text-align:left;
 padding:8px 15px 10px 25px;
 margin:3px 0;
 font-size:0.8em;
 font-weight:600;
 color:#fff;
 letter-spacing:0.3px;
 transition:0.3s;
}

.topobot-ico {
 width:23px;
 filter:invert() brightness(100);
 margin-bottom:-7px;
 margin-right:10px;
}

.topotxt {
 display:inline-block;
}

.topobot:hover {
 background-color:#fff;
}

.topobot:hover .topobot-ico {
 filter:none;
}

.menu {
 width:98%;
 max-width:1250px;
 height:50px;
 background-color:var(--cor-dois);
 border-radius:8px;
 box-shadow:0 3px 5px rgba(0,0,0,0.3);
 margin:-27px auto 0;
 padding:16px 10px 0;
 text-align:center;
 position:relative;
}

.menuitem {
 display:inline-block;
 margin:0 20px;
 font-size:0.95em;
 font-weight:500;
 color:#fff;
 letter-spacing:0.5px;
}

#menu_hamb_ico {
 display:none;
 width:35px;
 height:35px;
 position:fixed;
 top:0;
 right:0;
 border:0;
 margin:13px 10px 0 0;
 cursor:pointer;
 z-index:2;
}

#menu_resp {
 display:none;
 position:fixed;
 top:58px;
 left:0;
 width:100%;
 text-align:center;
 background:#fff;
 box-shadow:0 5px 5px rgba(0,0,0,0.2); 
 padding:25px 25px 7px;
 z-index:2;
}

.menuitem_resp {
 display:inline-block;
 width:100%;
 border:1px solid var(--cor-escura);
 border-radius:3px;
 padding:8px;
 margin-bottom:15px;
 font-size:1em;
 font-weight:500;
 color:var(--cor-escura);
 cursor:pointer;
 letter-spacing:0.3px;
}

.menuitem_resp:hover {
 color:var(--cor-escura);
}

#topo_navbar {
 position:fixed;
 display:block;
 width:100%;
 top:-60px;
 background-color:var(--cor-dois);
 text-align:center;
 padding:15px 10px;
 transition:top 0.9s;
 z-index:2;
}

.rodape {
 width:100%;
 background-color:#d8d8d8;
 padding:35px 15px 25px;
 text-align:center;
}

.rodlogo {
 flex:1;
 width:100%;
 max-width:330px;
 padding:10px 20px;
 text-align:center;
 border-right:1px solid var(--cor-base);
}

.rodtxt {
 flex:1;
 text-align:left;
 padding:20px 0 0 20px;
 color:var(--cor-base);
 font-weight:500;
 line-height:1.35em;
}

.roditem {
 display:inline-block;
 margin:10px 10px 0;
 font-weight:500;
 font-size:0.9em;
 letter-spacing:0.25px;
}

.rodtraco {
 display:inline-block;
 color:var(--cor-base);
 margin:0 5px;
}

.inweb {
 width:100%;
 background-color:var(--cor-escura);
 text-align:center;
 padding:13px;
 font-size:0.8em;
 letter-spacing:0.5px;
}

.floatwhats {
 position:fixed;
 bottom:15px;
 right:20px;
 z-index:9;
 cursor:pointer;
}

.floatwhats_img {
 width:60px;
 transition:0.6s;
}

.floatwhats_img:hover {
 width:76px;
 transform:rotate(360deg);
}

.titulo {
 width:100%;
 background-color:var(--cor-escura);
 margin-top:-23px;
 padding:100px 20px 80px;
 text-align:center;
 font-size:2.2em;
 font-weight:800;
 color:#fff;
 letter-spacing:1.5px;
}

.centro {
 width:100%;
 max-width:1250px;
 margin:0 auto;
 padding:60px 20px;
 font-size:1.15em;
 line-height:1.4em;
 font-weight:300;
}

/** INTERNAS **/

.empres-mapa {
 flex:1;
 max-width:362px;
}

.empres-txt {
 flex:2;
 padding:10px 0 0 40px;
}

.empres-box {
 flex:1;
 border:1px solid var(--cor-dois);
 margin:5px;
 padding:20px 10px;
 text-align:center;
 font-size:0.85em;
 font-weight:400;
 line-height:1.2em;
 color:var(--cor-escura);
}

.empres-ico {
 width:60px;
 filter:invert() contrast(30%);
 margin-bottom:5px;
}

.serv-box {
 flex:1;
 max-width:240px;
 min-width:200px;
 height:130px;
 background-color:#fff;
 border:1px solid var(--cor-dois);
 margin:8px;
 text-align:center;
 position:relative;
}

.serv-boxtxt {
 position:absolute;
 top:50%;
 left:50%;
 transform:translateX(-50%) translateY(-50%);
 width:100%;
 padding:10px;
 font-weight:500;
 font-size:1em;
 line-height:1.2em;
}

.serv-servico {
 flex:1;
 max-width:570px;
 border:1px solid var(--cor-escura);
 margin:15px;
 padding:10px;
}

.clien-logo {
 width:100%;
 max-width:180px;
 border:10px solid #fff;
 outline:1px solid #C0C0C0;
 margin:5px;
}

.thumbs { 
 width:45%;
 max-width:160px;
 margin:4px;
}

.thumbs:hover {
 box-shadow:0 5px 5px rgba(0,0,0,0.5);
}

.orc-texto {
 flex:1;
 padding-right:50px;
}

.orc-form {
 flex:1;
}

.ctt-bot {
 display:inline-block;
 width:45%;
 max-width:350px;
 background-color:var(--cor-dois);
 border-radius:5px;
 text-align:center;
 padding:13px 10px;
 margin:5px;
 color:#fff;
 font-weight:600;
 font-size:0.85em;
 letter-spacing:0.5px;
 transition:0.3s;
}

.ctt-botico {
 width:27px;
 margin-right:6px;
 margin-bottom:-6px;
 filter:invert() brightness(100);
}

.ctt-bot:hover {
 background-color:var(--cor-escura);
 color:#fff;
}

.ctt-mapa {
 flex:3;
}

.ctt-texto {
 flex:2;
 padding:10px 0 0 25px;
}

/***********/

@media screen and (max-width:1200px) {
 .titulo {
  font-size:2em;
 }
 .centro {
  padding:40px 20px;
  font-size:1.1em;
 }
 .serv-box {
  max-width:200px;
  min-width:180px;
  height:100px;
  margin:6px;
 }
 .serv-boxtxt {
  font-size:0.9em;
 } 
}

@media screen and (max-width:900px) {
 .topo {
  height:120px;
 }
 .topologo {
  max-width:170px;
 }
 .logo {
  max-width:150px;
 }
 .topobotoes {
  max-width:200px;
  padding:12px 10px 0;
 }
 .topobot {
  width:180px;
  height:35px;
  padding:7px 8px 0;
  margin:2px 0;
  font-size:0.7em;
 }
 .topobot-ico {
  width:20px;
  margin-bottom:-6px;
 }
 .menu {
  height:38px;
  border-radius:4px;
  margin:-20px auto 0;
  padding:9px 5px 0;
 }
 .menuitem {
  margin:0 10px;
  font-size:0.85em;
 }
 .rodlogo {
  flex:2;
 }
 .rodtxt {
  flex:3;
  padding:10px 0 0 20px;
 }
 .roditem {
  margin:10px 0 0;
 }
 .floatwhats {
  bottom:5px;
  right:10px;
 }
 .floatwhats_img {
  width:50px;
 }
 .floatwhats_img:hover {
  width:50px;
  transform:none;
 }
 .titulo {
  padding:70px 20px 50px;
  font-size:1.7em;
 }
 .centro {
  padding:35px 20px;
  font-size:1em;
 }
 .empres-mapa {
  flex:2;
 }
 .empres-txt {
  flex:3;
  padding:0px 0 0 25px;
 }
 .empres-box {
  max-width:150px;
  min-width:150px;
  padding:15px 10px;
 }
 .serv-servico {
  margin:8px;
  padding:8px;
 }
 .clien-logo {
  width:45%;
  max-width:150px;
  border:5px solid #fff;
  margin:3px;
 }
 .orc-texto {
  flex:none;
  display:inline-block;
  width:100%;
  padding-right:0;
  margin-top:-10px;
 }
 .orc-form {
  flex:none;
  display:inline-block;
  width:100%;
  padding-top:30px;
  text-align:center;
 }
}

@media screen and (max-width:600px) {
 .topo {
  height:60px;
  position:fixed;
  top:0;
  left:0;
  z-index:1;
 }
 .topologo {
  max-width:110px;
  padding:6px 10px 0;
 }
 .logo {
  max-width:90px;
 }
 .menu, .topotxt, #topo_navbar {
  display:none;
 }
 #menu_hamb_ico {
  display:inline-block;
 }
 .topobotoes {
  max-width:140px;
  padding:11px 5px 0;
 }
 .topobot {
  width:35px;
  padding:7px 6px 0;
  margin:2px;
 }
 .rodape {
  padding:20px 15px 5px;
 }
 .rodlogo {
  flex:none;
  display:inline-block;
  width:100%;
  padding:0 50px;
  border-right:0;
 }
 .rodtxt {
  flex:none;
  display:inline-block;
  width:100%;
  max-width:300px;
  padding:20px 0 0;
  font-size:0.95em;
 }
 .roditem, .rodtraco {
  display:none;
 }
 .inweb {
  padding:10px;
  text-align:left;
  font-size:0.75em;
 }
 .titulo {
  margin-top:60px;
  padding:40px 20px;
  font-size:1.3em;
 }
 .centro {
  padding:30px 15px 40px;
  font-size:1em;
 }
 .empres-mapa {
  flex:none;
  display:inline-block;
  width:100%;
  text-align:center;
  padding:0 10px;
 }
 .empres-txt {
  flex:none;
  display:inline-block;
  width:100%;
  padding:10px 5px 0;
 }
 .empres-box {
  flex:none;
  display:inline-block;
  width:45%;
  min-width:120px;
  margin:4px;
  padding:12px 6px;
  font-size:0.9em;
 }
 .empres-ico {
  width:50px;
 }
 .serv-box {
  flex:none;
  display:inline-block;
  width:30%;
  max-width:auto;
  min-width:auto;
  height:80px;
  margin:4px;
 }
 .serv-servico {
  flex:none;
  display:inline-block;
  width:100%;
  max-width:560px;
  margin:10px 0;
  padding:5px;
  line-height:1.25em;
 }
 .ctt-bot {
  width:95%;
  padding:13px 10px;
  margin:5px 0;
  font-size:0.85em;
 }
 .ctt-botico {
  width:21px;
  margin-bottom:-4px;
 }
 .ctt-mapa {
  flex:none;
  display:inline-block;
  width:100%;
 }
 .ctt-texto {
  flex:none;
  display:inline-block;
  width:100%;
  padding:15px 0 15px 0;
  text-align:center;
 }
}

@media screen and (max-width:450px) {
 .titulo {
  padding:30px 15px;
  font-size:1.15em;
 }
 .centro {
  padding:25px 15px;
  font-size:0.95em;
  font-weight:400;
 }
 .empres-box {
  max-width:none;
  padding:12px 8px;
 }
 .serv-boxtxt {
  font-size:0.85em;
 }
 .clien-logo {
  width:30%;
  max-width:120px;
  margin:2px;
 }
}
