@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');

:root {
  font-family:'DM Sans',sans-serif;
  color:#17344a;
  background:#fff;
  font-synthesis:none;
  font-size:16px;
  scroll-behavior:smooth;
  scroll-padding-top:85px;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
}

a {
  color:inherit;
  text-decoration:none;
}

button,
a {
  -webkit-tap-highlight-color:transparent;
}

a:focus-visible {
  outline:3px solid #159bed;
  outline-offset:6px;
}

::selection {
  background:#c8e8af;
  color:#102c22;
}

.container {
  max-width:1392px;
  margin:0 auto;
  padding:0 64px;
}

.site-header {
  height:112px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
}

.brand {
  display:flex;
  align-items:center;
  gap:12px;
}

.brand-crop {
  width:53px;
  height:35px;
  overflow:hidden;
  position:relative;
  display:block;
  background:white;
}

.brand-crop img {
  width:217px;
  max-width:none;
  position:absolute;
  left:-81px;
  top:-79px;
}

.brand-type {
  font-family:'Manrope',sans-serif;
  font-size:30px;
  font-weight:800;
  line-height:1;
  letter-spacing:.04em;
  color:#17344a;
}

.brand-type>span {
  display:block;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  letter-spacing:.2em;
  margin-top:6px;
  color:#24864c;
}

.main-nav {
  display:flex;
  align-items:center;
  gap:37px;
  font-size:14px;
  font-weight:600;
}

.nav-cta {
  padding:14px 19px;
  border:1px solid #cbd6cc;
  border-radius:4px;
}

.nav-cta span {
  margin-left:22px;
}

.hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:58px;
  padding-top:18px;
  padding-bottom:58px;
  align-items:center;
}

.eyebrow {
  font-size:12px;
  letter-spacing:.1em;
  font-weight:700;
  line-height:1.6;
  margin:0 0 25px;
  display:flex;
  align-items:center;
  gap:11px;
}

.eyebrow-line {
  width:24px;
  height:2px;
  background:#28844d;
}

.hero h1 {
  font-family:'Manrope',sans-serif;
  font-size:clamp(44px,5.3vw,76px);
  font-weight:500;
  line-height:1.06;
  letter-spacing:-.055em;
  margin:0 0 27px;
}

.hero h1 em {
  font-style:normal;
  color:#258442;
}

.hero-description {
  font-size:16px;
  line-height:1.75;
  color:#5c6b6c;
  max-width:415px;
  margin:0 0 28px;
}

.primary-button {
  display:inline-flex;
  gap:34px;
  align-items:center;
  padding:18px 23px;
  border-radius:4px;
  background:#23753f;
  color:#fff;
  font-size:14px;
  font-weight:600;
  transition:transform .2s,background .2s;
}

.primary-button:hover {
  background:#155d31;
  transform:translateY(-2px);
}

.primary-button span {
  font-size:20px;
  line-height:1;
}

.hero-caption {
  font-size:12px;
  margin-top:37px;
  display:flex;
  align-items:center;
  gap:12px;
  color:#6f7b79;
}

.mini-rule {
  height:1px;
  width:28px;
  background:#9caaa0;
}

.hero-visual {
  height:590px;
  position:relative;
  border-radius:5px 80px 5px 5px;
  overflow:hidden;
  background:#164b32;
}

.field-photo {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.image-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,#021c2120 45%,#082d22d9);
}

.image-index {
  position:absolute;
  top:27px;
  left:28px;
  font-size:12px;
  letter-spacing:.18em;
  color:white;
}

.photo-caption {
  position:absolute;
  bottom:27px;
  left:32px;
  color:white;
}

.photo-caption-kicker {
  font-size:12px;
  letter-spacing:.17em;
}

.photo-caption p {
  font-family:'Manrope',sans-serif;
  font-size:32px;
  font-weight:500;
  letter-spacing:-.03em;
  line-height:1.25;
  margin:14px 0;
}

.image-corner {
  position:absolute;
  bottom:38px;
  right:34px;
  color:white;
  font-size:33px;
}

.expertise-strip {
  background:#f1f6ed;
  border-top:1px solid #e3ebdf;
  border-bottom:1px solid #e3ebdf;
  padding:27px 0;
}

.expertise-strip .container {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.09em;
}

.expertise-strip span:nth-child(even) {
  font-weight:400;
  color:#879d7d;
}

.section-space {
  padding-top:94px;
  padding-bottom:96px;
}

.section-heading {
  display:flex;
  justify-content:space-between;
  gap:35px;
  align-items:flex-end;
  margin-bottom:43px;
}

h2 {
  font-family:'Manrope',sans-serif;
  font-size:42px;
  line-height:1.16;
  letter-spacing:-.045em;
  font-weight:500;
  margin:0;
}

.section-heading>p {
  max-width:335px;
  line-height:1.8;
  color:#687674;
  margin:0 0 4px;
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border:1px solid #dce4dc;
}

.service-card {
  padding:27px 25px;
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
}

.service-card+.service-card {
  border-left:1px solid #dce4dc;
}

.service-number {
  font-size:12px;
  color:#829087;
}

.service-symbol {
  font-family:monospace;
  font-size:33px;
  color:#258442;
  margin-top:27px;
  height:47px;
}

.service-card h3 {
  font-size:20px;
  font-weight:600;
  line-height:1.3;
  letter-spacing:-.025em;
  margin:20px 0 15px;
}

.service-card p {
  font-size:14px;
  color:#64716c;
  line-height:1.7;
  margin:0 0 30px;
}

.service-tag {
  font-size:12px;
  letter-spacing:.06em;
  font-weight:600;
  margin-top:auto;
  color:#34784b;
}

.about-section {
  background:#eaf2e4;
  padding:78px 0;
}

.about-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:58px;
}

.about-monogram {
  font-family:'Manrope',sans-serif;
  display:inline-block;
  font-size:105px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:-.06em;
  margin-top:20px;
  color:#226344;
}

.about-monogram span {
  display:block;
  font-size:15px;
  letter-spacing:.5em;
  font-weight:500;
  margin-top:9px;
}

.about-inner h2 {
  font-size:39px;
}

.about-inner p:not(.eyebrow) {
  color:#51675c;
  line-height:1.85;
  margin:24px 0;
}

.text-link {
  display:inline-flex;
  gap:30px;
  font-weight:600;
  font-size:14px;
  border-bottom:1px solid #87a08d;
  padding-bottom:10px;
}

.approach-header {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
}

.approach-header>p {
  line-height:1.8;
  color:#63746d;
  margin:0;
}

.approach-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
  margin-top:46px;
}

.approach-grid>div {
  padding-top:24px;
  border-top:1px solid #bfcfc3;
}

.approach-grid span {
  font-size:12px;
  letter-spacing:.06em;
  color:#43734d;
}

.approach-grid h3 {
  font-family:'Manrope',sans-serif;
  font-weight:500;
  font-size:27px;
  margin:18px 0 11px;
}

.approach-grid p {
  font-size:15px;
  line-height:1.75;
  color:#63746d;
  max-width:320px;
}

.site-footer {
  background:#173a2d;
  color:white;
  padding:33px 0;
}

.site-footer .container {
  display:flex;
  gap:28px;
  align-items:center;
  justify-content:space-between;
}

.footer-brand {
  font-family:'Manrope',sans-serif;
  font-size:26px;
  font-weight:800;
}

.footer-brand span {
  font-size:12px;
  letter-spacing:.12em;
  font-weight:400;
  margin-left:7px;
}

.site-footer p,
.site-footer a:last-child {
  font-size:12px;
}

.site-footer p {
  opacity:.75;
}

@media(min-width:1600px) {
  .container {
    max-width:1470px;
  }

  .hero {
    gap:80px;
  }

  .hero-visual {
    height:650px;
  }

  .hero h1 {
    font-size:83px;
  }
}

@media(max-width:1100px) {
  .container {
    padding-left:35px;
    padding-right:35px;
  }

  .hero {
    gap:30px;
  }

  .hero h1 {
    font-size:59px;
  }

  .hero-visual {
    height:550px;
  }

  .service-card {
    padding:22px 18px;
  }

  .service-card h3 {
    font-size:18px;
  }

  .hero .eyebrow {
    font-size:12px;
  }

  h2 {
    font-size:37px;
  }

  .expertise-strip .container {
    font-size:12px;
    gap:12px;
  }
}

@media(max-width:760px) {
  .container {
    padding-left:23px;
    padding-right:23px;
  }

  .site-header {
    height:91px;
  }

  .main-nav {
    gap:18px;
    font-size:13px;
  }

  .nav-cta {
    display:none;
  }

  .brand {
    gap:8px;
  }

  .brand-type {
    font-size:26px;
  }

  .brand-crop {
    width:48px;
    height:28px;
  }

  .brand-crop img {
    width:193px;
    left:-72px;
    top:-70px;
  }

  .hero {
    grid-template-columns:1fr;
    gap:33px;
    padding-top:20px;
    padding-bottom:34px;
  }

  .hero h1 {
    font-size:clamp(44px,10.5vw,68px);
    letter-spacing:-.045em;
  }

  .hero .eyebrow {
    font-size:12px;
    letter-spacing:.07em;
    margin-bottom:24px;
  }

  .hero-description {
    font-size:16px;
    max-width:500px;
  }

  .hero-visual {
    height:390px;
    margin:0;
  }

  .hero-visual {
    border-top-right-radius:60px;
  }

  .hero-caption {
    margin-top:24px;
  }

  .expertise-strip {
    padding:21px 0;
  }

  .expertise-strip .container {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px 12px;
    font-size:12px;
  }

  .expertise-strip span:nth-child(even) {
    display:none;
  }

  .section-space {
    padding-top:61px;
    padding-bottom:62px;
  }

  .section-heading {
    display:block;
    margin-bottom:28px;
  }

  h2,
.about-inner h2 {
    font-size:34px;
  }

  .section-heading>p {
    margin-top:24px;
    max-width:none;
  }

  .eyebrow {
    margin-bottom:18px;
  }

  .service-grid {
    grid-template-columns:1fr 1fr;
  }

  .service-card {
    padding:22px 18px;
  }

  .service-card:nth-child(3) {
    border-left:0;
  }

  .service-card:nth-child(n+3) {
    border-top:1px solid #dce4dc;
  }

  .service-card h3 {
    font-size:19px;
  }

  .service-card p {
    font-size:14px;
  }

  .service-tag {
    font-size:12px;
    line-height:1.5;
  }

  .service-symbol {
    margin-top:18px;
  }

  .about-section {
    padding:54px 0;
  }

  .about-inner {
    grid-template-columns:1fr;
    gap:36px;
  }

  .about-monogram {
    display:none;
  }

  .about-label .eyebrow {
    margin:0;
  }

  .about-inner h2 {
    font-size:36px;
  }

  .about-inner p:not(.eyebrow) {
    font-size:16px;
  }

  .approach-header {
    display:block;
  }

  .approach-header>p {
    margin-top:22px;
  }

  .approach-grid {
    grid-template-columns:1fr;
    gap:24px;
    margin-top:30px;
  }

  .approach-grid p {
    max-width:none;
    margin-bottom:0;
  }

  .site-footer .container {
    flex-wrap:wrap;
    gap:18px;
  }

  .site-footer p {
    order:3;
    width:100%;
    margin:0;
  }

  .site-footer a:last-child {
    margin-left:auto;
  }

  .photo-caption p {
    font-size:29px;
  }
}

@media(max-width:380px) {
  .main-nav {
    gap:12px;
  }

  .hero h1 {
    font-size:41px;
  }

  .service-grid {
    grid-template-columns:1fr;
  }

  .service-card+.service-card {
    border-left:0;
    border-top:1px solid #dce4dc;
  }

  .text-link {
    gap:12px;
    font-size:13px;
  }
}

@media(prefers-reduced-motion:reduce) {
  :root {
    scroll-behavior:auto;
  }

  * {
    transition:none!important;
  }
}

.focus-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-bottom:30px;
}

.focus-card {
  padding:32px;
  background:linear-gradient(130deg,#eaf5eb,#f4f9f8);
  border:1px solid #cadfd4;
  border-top:3px solid #228577;
  border-radius:4px;
}

.focus-label {
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.1em;
  color:#2d7161;
}

.focus-card h3 {
  font-family:'Manrope',sans-serif;
  font-size:1.8rem;
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.035em;
  margin:22px 0 18px;
}

.focus-card p {
  font-size:1rem;
  line-height:1.8;
  color:#526c61;
  margin:0 0 26px;
}

.focus-detail {
  display:block;
  border-top:1px solid #c3d9ce;
  padding-top:17px;
  font-size:.8125rem;
  line-height:1.7;
  color:#2e6e5e;
}

@media(max-width:760px) {
  .focus-grid {
    grid-template-columns:1fr;
    gap:18px;
  }

  .focus-card {
    padding:26px 23px;
  }

  .focus-card h3 {
    font-size:1.6rem;
  }

  .expertise-strip .container {
    font-size:.75rem;
    letter-spacing:.025em;
  }
}

.site-shell {
  background-image:radial-gradient(ellipse at 75% 12%,#26b6ca0a,transparent 40%);
}

.hero h1 em {
  color:#167f72;
  background:linear-gradient(115deg,#218144 12%,#087e9c 90%);
  background-clip:text;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.hero-copy {
  min-width:0;
}

.hero h1 {
  font-size:clamp(2.6rem,5.1vw,4.6rem);
}

.hero-visual {
  border:1px solid #329b8940;
  box-shadow:0 20px 70px -45px #128b88;
}

.hero-visual:after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:linear-gradient(#abf8e214 1px,transparent 1px),linear-gradient(90deg,#abf8e214 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(#000,transparent 75%);
}

.service-card-ai {
  background:linear-gradient(135deg,#eaf8ef,#eef8fb);
  box-shadow:inset 0 3px #278c83;
}

.service-card-ai .service-symbol {
  font-family:'Manrope',sans-serif;
  font-size:1.7rem;
  font-weight:750;
  color:#167d81;
}

.service-card-ai .service-tag {
  line-height:1.7;
}

@media(min-width:761px) and (max-width:1000px) {
  .hero h1 {
    font-size:clamp(2.25rem,4.9vw,3.1rem);
  }
}

@media(max-width:760px) {
  .hero h1 {
    font-size:clamp(2.2rem,9.3vw,4rem);
  }

  .photo-caption p {
    font-size:1.6rem;
  }

  .photo-caption {
    left:24px;
    bottom:19px;
  }

  .photo-caption-kicker {
    font-size:.75rem;
    letter-spacing:.08em;
  }

  .image-corner {
    right:23px;
    bottom:29px;
  }

  .service-card-ai .service-number {
    font-size:.75rem;
  }
}

.contact-section {
  padding:80px 0;
  background:#eff6ef;
  border-top:1px solid #d6e5db;
}

.contact-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
}

.contact-copy>p:not(.eyebrow) {
  max-width:390px;
  font-size:1rem;
  line-height:1.8;
  color:#526c61;
  margin:24px 0;
}

.contact-email {
  display:inline-block;
  font-size:1rem;
  font-weight:600;
  color:#24694d;
  border-bottom:1px solid #92b4a1;
  padding-bottom:6px;
  overflow-wrap:anywhere;
}

.contact-form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px 18px;
  align-content:start;
  min-width:0;
}

.contact-field {
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}

.contact-field label {
  font-size:.875rem;
  font-weight:600;
}

.contact-field input,
.contact-field textarea {
  font:inherit;
  font-size:1rem;
  width:100%;
  min-width:0;
  border:1px solid #a6beb0;
  border-radius:5px;
  background:#fff;
  color:#17344a;
  padding:14px;
  line-height:1.5;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder {
  color:#62756b;
  opacity:1;
}

.contact-field textarea {
  resize:vertical;
  min-height:145px;
}

.contact-field input:focus,
.contact-field textarea:focus {
  outline:2px solid #288978;
  outline-offset:2px;
}

.contact-message,
.contact-help,
.contact-status,
.contact-form noscript {
  grid-column:1/-1;
}

.contact-help {
  font-size:.875rem;
  line-height:1.65;
  color:#53695d;
  margin:0;
}

.contact-submit {
  border:0;
  font-family:inherit;
  cursor:pointer;
  justify-self:start;
  grid-column:1/-1;
}

.contact-submit:focus-visible {
  outline:3px solid #159bed;
  outline-offset:5px;
}

.contact-status {
  font-size:.875rem;
  line-height:1.7;
  margin:0;
  padding:14px 16px;
  border:1px solid #9abaac;
  border-radius:4px;
  color:#254f40;
  background:#e5f1e9;
}

/* Falha no envio: terracota discreta, para destoar do verde do "deu certo" sem gritar. */
.contact-status-erro {
  border-color:#d8a99a;
  color:#8a3c28;
  background:#fbeeea;
}

.contact-submit:disabled {
  opacity:.65;
  cursor:progress;
}

@media(max-width:1000px) {
  .contact-layout {
    gap:35px;
  }

  .contact-form {
    grid-template-columns:1fr;
  }
}

@media(max-width:760px) {
  .contact-section {
    padding:56px 0;
  }

  .contact-layout {
    grid-template-columns:1fr;
    gap:35px;
  }

  .main-nav {
    gap:14px;
  }

  .main-nav>a[href="#empresa"] {
    display:none;
  }

  .main-nav .contact-nav {
    display:block;
    padding:10px 12px;
  }

  .contact-nav span {
    display:none;
  }

  .contact-copy h2 {
    font-size:2rem;
  }
}

@media(max-width:380px) {
  .main-nav {
    gap:10px;
  }

  .main-nav .contact-nav {
    padding:9px 7px;
  }
}

@media(max-width:760px) {
  .service-grid {
    grid-template-columns:1fr;
  }

  .service-card+.service-card {
    border-left:0;
    border-top:1px solid #dce4dc;
  }
}

/* Campo isca do formulário de contato: gente nunca vê, robô preenche e a mensagem é
   descartada no servidor. Tem de ser display:none mesmo — fora da tela, leitores de
   tela e navegação por teclado ainda chegariam nele. */
.contact-isca { display: none; }
