﻿@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@700;800&display=swap');*{box-sizing:border-box}body{margin:0;background:var(--page-bg);color:#062f50;font:16px 'DM Sans',sans-serif}a{color:inherit}.site-header{height:94px;padding:0 7%;background:#063d63;display:flex;align-items:center;justify-content:space-between}.logo img{width:235px;height:62px;object-fit:contain}.site-header nav{display:flex;align-items:center;gap:28px}.site-header nav a{color:#fff;text-decoration:none;font-size:13px;font-weight:700}.site-header .client-link{border:1px solid #ffffff7c;padding:12px 15px;color:var(--accent)}.hero{min-height:620px;padding:170px 10% 90px;background:linear-gradient(125deg,var(--hero-start),var(--hero-end));color:#fff;display:flex;align-items:center}.hero>div{max-width:780px}.hero h1,h1,h2{font:800 clamp(34px,5vw,72px)/1 Manrope,sans-serif;letter-spacing:-3px;margin:0}.hero em{color:var(--accent);font-style:normal}.hero p{max-width:560px;line-height:1.7;margin:28px 0}.button{display:inline-block;border:0;background:var(--primary);box-shadow:8px 8px 0 var(--accent);padding:17px 22px;color:white;text-decoration:none;font-weight:700;cursor:pointer}.section,.quote,.portal,.admin{padding:90px 10%}.tag{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--primary)}.section h2{font-size:48px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:45px}.cards article{background:var(--card-bg);border-bottom:4px solid var(--accent);padding:28px;min-height:240px}.cards b{color:var(--primary)}.cards h3{font:800 21px Manrope;margin:42px 0 10px}.cards p,.split>p{color:#51666f;line-height:1.6}.split{display:grid;grid-template-columns:1fr 1fr;gap:12%;background:#fff}.quote{display:grid;grid-template-columns:1fr 1fr;gap:60px;background:#e9f4f7}.quote h2,.contact h2{font-size:45px}.quote form,.login-box,.panel-form{display:grid;gap:12px}.quote input,.quote textarea,.login-box input,.panel-form input,.panel-form label,.settings-form input{border:1px solid #cbdbe0;padding:13px;background:#fff;font:inherit}.quote textarea{min-height:110px}.file{font-size:13px}.file input{display:block;margin-top:7px}.notice{color:#08794f;font-weight:700}.error{color:#b42727}.contact{padding:75px 10%;background:#062f50;color:#fff}.contact a{display:block;margin-top:22px;color:var(--accent)}.contact span{margin-left:18px}footer{background:#041f34;color:#afc3ce;padding:20px 10%;display:flex;justify-content:space-between;font-size:12px}.portal{min-height:70vh;max-width:900px;margin:auto}.portal h1,.admin h1{font-size:45px}.login-box{max-width:440px;margin-top:30px;padding:25px;background:#fff}.file-list{display:grid;gap:10px;margin:30px 0}.file-list a{display:grid;grid-template-columns:110px 1fr 80px;gap:12px;padding:17px;background:#fff;text-decoration:none}.file-list span{font-size:10px;color:var(--primary);font-weight:700}.portal-actions{display:flex;align-items:center;gap:25px}.admin{max-width:1400px;margin:auto}.admin-title{display:flex;justify-content:space-between;align-items:center}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:35px 0}.admin-grid>section,.settings,.messages{background:#fff;padding:25px}.admin h2{font-size:28px}.admin-list>div,.manage-files>div{padding:13px 0;border-bottom:1px solid #dfebee;display:flex;gap:12px;align-items:center}.admin-list small{margin-right:auto}.admin-list form,.manage-files form{display:inline}.admin-list button,.manage-files button{border:0;background:none;color:#b42727;cursor:pointer}.settings{margin-bottom:25px}.settings-form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.settings-form label{font-size:12px;font-weight:700;display:grid;gap:5px}.settings-form input[type=color]{height:42px;padding:3px}.settings-form .button{grid-column:1/-1;justify-self:start}.messages article{padding:14px 0;border-bottom:1px solid #dfebee}.admin-login{min-height:100vh;display:grid;place-items:center;background:#063d63}.admin-login form{width:min(420px,90%);padding:35px;background:#fff;display:grid;gap:15px}.admin-login img{width:220px;height:60px;object-fit:contain;background:#063d63;padding:5px}@media(max-width:750px){.site-header{height:auto;padding:15px 6%;gap:12px}.logo img{width:180px;height:48px}.site-header nav a:not(.client-link){display:none}.hero{min-height:530px;padding:130px 7% 70px}.section,.quote,.portal,.admin{padding:60px 7%}.cards,.split,.quote,.admin-grid{grid-template-columns:1fr}.settings-form{grid-template-columns:1fr}.file-list a{grid-template-columns:1fr}.site-header nav{gap:0}footer{gap:10px;flex-direction:column}}


:root{--ink:#062f50;--paper:#f5f8fa;--line:#d9e8ed}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px 'DM Sans',sans-serif;background:var(--paper)}button,input,textarea{font:inherit}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;background:var(--start);position:absolute;z-index:2;width:100%;border-bottom:1px solid #ffffff25}.brand{display:flex;width:255px;height:68px;overflow:hidden}.brand img{display:block;width:255px;height:60px;object-fit:contain;object-position:left center}nav{display:flex;align-items:center;gap:28px}nav a{color:#fff;text-decoration:none;font-size:13px;font-weight:700}.nav-client{border:1px solid #ffffff85;padding:12px 16px;color:var(--cyan)}.nav-client span{font-size:17px;margin-left:7px}.hero{min-height:100vh;background:linear-gradient(125deg,var(--start),var(--end));position:relative;overflow:hidden;display:flex;align-items:center;padding:125px 10vw 85px;color:#fff}.hero-grid{position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.9%,#fff 50%,transparent 50.1%),linear-gradient(#fff 1px,transparent 1px);background-size:140px 100%,100% 140px;opacity:.09}.hero-content{position:relative;z-index:1;width:72%}.hero h1,h2{font:800 clamp(42px,5vw,78px)/.98 Manrope,sans-serif;letter-spacing:-3.5px;margin:0}.hero h1 em,h2 em{color:var(--cyan);font-style:normal}.hero-content>p{max-width:500px;color:#e3f6fa;line-height:1.7;margin:27px 0 33px}.cta{border:0;background:var(--blue);color:#fff;padding:18px 24px;font-size:12px;font-weight:700;letter-spacing:1px;cursor:pointer;box-shadow:9px 9px 0 var(--cyan);transition:.2s}.cta:hover{transform:translate(3px,3px);box-shadow:6px 6px 0 var(--cyan)}.cta span{font-size:20px;margin-left:20px}.scroll{position:absolute;z-index:1;bottom:27px;left:10%;color:#e2f8fa;text-decoration:none;font-size:9px;font-weight:700;letter-spacing:1.6px}.scroll i{display:inline-block;width:45px;height:1px;background:var(--cyan);vertical-align:middle;margin-left:10px}.section{padding:110px 10vw}.solutions{background:#edf5f8}.eyebrow{letter-spacing:2px;font-size:11px;font-weight:700;color:var(--blue);margin:0 0 20px}.section-intro h2,.company h2,.contact h2{font-size:clamp(34px,4vw,56px)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:55px}.cards article{background:#fff;padding:32px;min-height:250px;border-bottom:4px solid transparent}.cards article:hover{border-color:var(--cyan)}.cards span{color:var(--blue);font:800 14px Manrope}.cards h3{font:800 21px Manrope;margin:48px 0 13px}.cards p,.company>p{color:#53666e;line-height:1.7;font-size:14px}.company{display:grid;grid-template-columns:1fr 1fr;gap:12%;background:#fff}.company>p{max-width:430px;margin:auto 0}.contact{color:#fff;background:linear-gradient(125deg,var(--start),var(--blue) 62%,var(--cyan));position:relative}.contact .eyebrow{color:#9af3f2}.light{margin:38px 9px 36px 0;background:#fff;color:var(--blue)}.contact-info{display:flex;gap:14px;font-size:13px}.contact-info a{color:#fff;text-decoration:none}footer{background:#062f50;color:#9eb1ba;padding:22px 10vw;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px}footer a{color:#5d7986;text-decoration:none}.modal{border:0;padding:0;width:min(720px,calc(100% - 30px));background:#fff;box-shadow:0 28px 70px #00283b70}.modal::backdrop{background:#001a28c9}.modal form{padding:46px;position:relative}.modal h2{font-size:38px;letter-spacing:-2px;margin-bottom:28px}.close{position:absolute;right:18px;top:13px;border:0;background:none;font-size:31px;color:#52636c;cursor:pointer}.fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}label{font-size:12px;font-weight:700;display:grid;gap:7px;color:#334952}input,textarea{width:100%;border:1px solid var(--line);padding:12px;background:#fbfcfc;color:var(--ink);outline-color:var(--blue)}textarea{resize:vertical}.full{grid-column:1/-1}.file{border:1px dashed #8cb7c5;padding:12px;color:#1d718d;cursor:pointer}.file input{display:block;padding:6px 0;border:0;background:transparent}.file small{font-weight:400;color:#6b7b82}.submit{margin-top:24px}.error{color:#bd2f2f;font-size:13px}.toast{position:fixed;z-index:5;right:25px;bottom:25px;background:#07334a;color:#fff;padding:16px 20px;font-size:13px;box-shadow:6px 6px 0 var(--cyan)}@media(max-width:700px){.topbar{height:76px;padding:0 6vw}.brand{width:180px;height:55px}.brand img{width:180px;height:52px}nav a:not(.nav-client){display:none}.nav-client{font-size:10px;padding:10px}.hero{padding:140px 7vw 100px;align-items:flex-start}.hero-content{width:100%}.hero h1{font-size:44px;letter-spacing:-2.5px}.cards,.company{grid-template-columns:1fr}.section{padding:75px 7vw}.cards{margin-top:35px}.cards article{min-height:190px}.cards h3{margin-top:30px}.company{gap:35px}.modal form{padding:36px 24px}.fields{grid-template-columns:1fr}.full{grid-column:auto}.contact-info{flex-direction:column;gap:7px}.contact-info span{display:none}}


.contact{display:grid!important;grid-template-columns:minmax(310px,.9fr) 1.1fr;gap:70px;align-items:center}.map-wrap{height:330px;background:#fff;box-shadow:10px 10px 0 #063d6350;position:relative;overflow:hidden}.map-wrap iframe{width:100%;height:100%;border:0;filter:saturate(.78) contrast(1.04)}.map-wrap>a{position:absolute;right:12px;bottom:12px;background:#fff;color:var(--blue);padding:9px 12px;text-decoration:none;font-size:11px;font-weight:700;box-shadow:3px 3px 0 var(--cyan)}@media(max-width:700px){.contact{grid-template-columns:1fr!important;gap:40px}.map-wrap{height:280px}}


nav button{border:0;background:transparent;cursor:pointer}.cta{text-transform:uppercase}.client-modal{width:min(430px,calc(100% - 30px))}.client-modal label{margin:12px 0}


.hero{background-image:linear-gradient(125deg,rgba(6,61,99,.91),rgba(0,107,170,.86) 62%,rgba(0,134,186,.82)),url("images/hero/obra-protensao.jpeg")!important;background-size:cover!important;background-position:center 46%!important}.hero-grid{opacity:.07!important}


body.admin-login {
  min-height: 100vh;
  margin: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: linear-gradient(135deg, #042d4d, #086c9d 70%, #0fc7cf);
}

.admin-login form {
  width: min(100%, 430px) !important;
  min-height: auto !important;
  display: grid !important;
  gap: 16px !important;
  padding: 42px !important;
  border: 1px solid rgb(255 255 255 / 30%);
  background: rgb(255 255 255 / 97%) !important;
  box-shadow: 14px 14px 0 rgb(2 36 58 / 22%);
}

.admin-login form img {
  width: 238px !important;
  height: 72px !important;
  object-fit: contain;
  object-position: left center;
  margin-bottom: 14px;
  padding: 8px 12px !important;
  background: #063d63 !important;
}

.admin-login form h1 {
  margin: 0 0 14px !important;
  color: #062f50 !important;
  font: 800 34px/1.05 Manrope, sans-serif !important;
  letter-spacing: -1.5px !important;
}

.admin-login form input {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid #c5d7df;
  color: #062f50;
  background: #f8fbfc;
  font: 15px 'DM Sans', sans-serif;
}

.admin-login form .button {
  width: 100%;
  margin-top: 8px;
  padding: 15px 18px;
  border: 0;
  background: #0075bd;
  box-shadow: 6px 6px 0 #14cddd;
  color: #fff;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.admin-login form .error { margin: 0; font-size: 13px; }

@media (max-width: 500px) {
  body.admin-login { padding: 16px; }
  .admin-login form { padding: 30px 24px !important; }
}


body:has(.admin) { background: #eaf2f5; }

.admin {
  max-width: 1120px !important;
  min-height: calc(100vh - 170px);
  margin: 0 auto !important;
  padding: 64px 32px 80px !important;
}

.admin-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 30px;
}

.admin-title h1 {
  margin: 5px 0 0 !important;
  color: #062f50;
  font: 800 42px/1.05 Manrope, sans-serif !important;
  letter-spacing: -2px;
}

.admin-title > a {
  border: 1px solid #9bb7c5;
  padding: 10px 16px;
  color: #062f50;
  text-decoration: none;
  font-size: 13px;
}

.admin > .button { margin-bottom: 30px; }
.admin section { margin: 0 0 28px; padding: 28px; background: #fff; box-shadow: 0 8px 22px rgb(4 47 80 / 8%); }
.admin section h2 { margin: 0 0 22px; color: #062f50; font: 800 25px Manrope, sans-serif !important; }

.admin-list { display: grid; gap: 10px; }
.admin-list .client-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 22px;
  width: 100%;
  padding: 16px 18px;
  border: 1px solid #d8e5ea;
  background: #f9fcfd;
  color: #062f50;
  text-align: left;
  cursor: pointer;
}
.admin-list .client-row strong { font-size: 15px; }
.admin-list .client-row small { color: #617984; }
.admin-list .client-row span { color: #0075bd; font-size: 12px; font-weight: 700; }

.messages article { position: relative; padding: 18px 0; border-bottom: 1px solid #dce8ed; color: #395562; }
.messages article strong { color: #062f50; }
.messages article form { margin-top: 12px; }
.messages article form button, .manage-files button, .client-editor > form:last-child button { border: 0; background: transparent; color: #be3434; cursor: pointer; font-size: 12px; padding: 0; }

.client-editor {
  width: min(650px, calc(100% - 30px));
  border: 0;
  padding: 0;
  background: #fff;
  box-shadow: 0 25px 70px rgb(0 29 47 / 45%);
}
.client-editor::backdrop { background: rgb(0 29 47 / 76%); }
.client-editor > form:first-child { display: grid; gap: 14px; padding: 42px; }
.client-editor h2 { margin: 0 0 8px; color: #062f50; font: 800 31px Manrope, sans-serif !important; }
.client-editor input, .client-editor label { width: 100%; min-height: 46px; padding: 12px; border: 1px solid #cbdde4; background: #fbfdfe; color: #062f50; font: 14px 'DM Sans', sans-serif; }
.client-editor label { display: grid; gap: 8px; height: auto; color: #355563; font-size: 12px; font-weight: 700; }
.client-editor label input { border: 0; padding: 0; min-height: auto; }
.client-editor .button { justify-self: start; margin-top: 10px; }
.dialog-close { position: absolute; top: 13px; right: 16px; border: 0; background: transparent; color: #527080; font-size: 27px; cursor: pointer; }
.manage-files { padding: 0 42px 22px; }
.manage-files h3 { margin: 0 0 10px; font-size: 15px; }
.manage-files > div { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid #e1eaed; font-size: 13px; }
.manage-files > div > a { color: #0075bd; text-decoration: underline; text-underline-offset: 3px; font-weight: 700; }
.client-editor > form:last-child { padding: 0 42px 35px; }

@media (max-width: 650px) {
  .admin { padding: 40px 18px 60px !important; }
  .admin-title h1 { font-size: 32px !important; }
  .admin-list .client-row { grid-template-columns: 1fr; gap: 5px; }
  .client-editor > form:first-child { padding: 35px 22px; }
  .manage-files, .client-editor > form:last-child { padding-left: 22px; padding-right: 22px; }
}


.portal #contactDialog {
  width: min(460px, calc(100% - 30px));
  border: 0;
  padding: 36px;
  background: #fff;
  box-shadow: 0 24px 70px rgb(0 29 47 / 44%);
}

.portal #contactDialog::backdrop { background: rgb(0 29 47 / 74%); }
.portal #contactDialog .close-contact { position: absolute; top: 12px; right: 16px; border: 0; background: transparent; color: #527080; font-size: 25px; cursor: pointer; }
.portal #contactDialog .tag { margin: 12px 0 14px; color: #0075bd; font-size: 10px; letter-spacing: 2px; }
.portal #contactDialog h2 { margin: 0 0 26px; color: #062f50; font: 800 30px/1.08 Manrope, sans-serif !important; letter-spacing: -1.3px; }
.portal #contactDialog a { display: block; width: max-content; text-decoration: none; }
.portal #contactDialog .button { margin-bottom: 18px; }
.portal #contactDialog .email-option { color: #0075bd; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:500px){.portal #contactDialog{padding:30px 24px}.portal #contactDialog h2{font-size:26px!important}}

