/* Referência.tec – refinamento visual v2
   - tipografia de menor contraste
   - logo oficial padrão da marca (controlada pelo model)
   - vitrine de sistemas com área de marca realmente maior */

body {
  font-weight: 400;
  letter-spacing: .001em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Marca do portal: a imagem oficial é usada quando não houver upload no painel. */
.brand {
  min-width: 206px;
}

.brand > img {
  width: auto;
  height: 48px;
  max-width: 224px;
  object-fit: contain;
}

.footer-brand > img {
  height: 42px;
}

.brand-mark,
.brand-copy { font-weight: 600; }
.brand-copy small { font-weight: 500; }
.nav-links { font-weight: 500; }

.eyebrow {
  font-weight: 600;
  letter-spacing: 1.55px;
}

h1 {
  font-weight: 600;
  letter-spacing: -2.15px;
}

.section-heading h2,
.about-copy h2,
.contact-copy h2 {
  font-weight: 600;
  letter-spacing: -1.35px;
}

.hero p,
.section-heading p,
.about-copy p,
.contact-copy p,
.system-card p,
.service-card p,
.portfolio-card p {
  font-weight: 400;
}

.button,
.text-link,
.system-link,
.portfolio-link { font-weight: 600; }
.hero-chips span { font-weight: 500; }

/* Sistemas: a marca ganha um painel real, acima do conteúdo editorial. */
.systems-grid {
  gap: 28px;
}

.system-card {
  min-height: 472px;
  padding: 0;
  overflow: hidden;
  border-radius: 22px;
  background: #fff;
}

.system-card.is-featured {
  background: #fff;
}

.system-card-visual {
  display: flex;
  min-height: 230px;
  align-items: center;
  justify-content: center;
  padding: 34px 42px 30px;
  border-bottom: 1px solid #e8eef5;
  background:
    radial-gradient(circle at 50% 14%, rgba(91, 172, 245, .20), transparent 61%),
    linear-gradient(145deg, #fcfdff 0%, #eef6ff 100%);
}

.system-logo {
  display: grid;
  width: min(100%, 290px);
  height: 146px;
  place-items: center;
  padding: 18px 26px;
  overflow: hidden;
  color: var(--blue);
  border: 1px solid rgba(184, 214, 246, .96);
  border-radius: 20px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 18px 36px rgba(29, 76, 132, .13);
}

.system-logo.has-logo img {
  width: 100%;
  max-width: 238px;
  max-height: 108px;
  object-fit: contain;
  transform: scale(1.12);
  transform-origin: center;
}

.system-logo.has-icon {
  width: 132px;
  height: 132px;
}

.system-logo.has-icon svg {
  width: 54px;
  height: 54px;
}

.system-card-meta {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 19px 29px 0;
}

.system-category {
  color: #5e88c3;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1px;
}

.status {
  padding: 5px 10px;
  font-weight: 600;
}

.system-card-main {
  margin: 11px 29px 0;
}

.system-card h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -.7px;
}

.system-card p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.system-card-footer {
  margin: auto 29px 0;
  padding: 18px 0 25px;
}

/* Mantém a suavidade nos demais blocos. */
.number-item strong,
.service-card h3,
.portfolio-card h3 { font-weight: 600; }
.filter,
.portfolio-meta,
.tag-list span,
.field label { font-weight: 600; }
.field label em { font-weight: 400; }
.form-success { font-weight: 500; }

@media (max-width: 680px) {
  .brand { min-width: 170px; }
  .brand > img { height: 42px; max-width: 190px; }
  h1 { letter-spacing: -1.65px; }

  .system-card { min-height: 0; }

  .system-card-visual {
    min-height: 206px;
    padding: 28px 24px 25px;
  }

  .system-logo {
    width: min(100%, 256px);
    height: 128px;
    padding: 16px 22px;
  }

  .system-logo.has-logo img {
    max-width: 208px;
    max-height: 92px;
  }

  .system-card-meta {
    padding: 17px 23px 0;
  }

  .system-card-main {
    margin: 10px 23px 0;
  }

  .system-card-footer {
    margin-right: 23px;
    margin-left: 23px;
    padding-bottom: 23px;
  }
}
