/* Hero ------------------------------------------------------------------ */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  background: var(--gradient-hero);
}
.hero__content {
  position: relative;
  z-index: 10;
  max-width: 80rem;
  margin-inline: auto;
  padding: 10rem 1.5rem 6rem;
  width: 100%;
}
.hero__content h1 {
  font-size: 3rem;
  color: #fff;
  max-width: 56rem;
  line-height: 1.05;
}
.hero__content p {
  color: rgb(255 255 255 / 0.8);
  font-size: 1.125rem;
  max-width: 36rem;
  margin-top: 1.5rem;
}
.hero__actions { display: flex; gap: 1rem; margin-top: 2.5rem; flex-wrap: wrap; }
@media (min-width: 768px) {
  .hero__content h1 { font-size: 4.5rem; }
}

/* Stats ------------------------------------------------------------------ */
.stats { grid-template-columns: repeat(2, 1fr); }
.stats__number { font-size: 2.5rem; font-weight: 700; letter-spacing: -0.02em; }
.stats__label { font-size: 0.875rem; color: var(--muted-foreground); margin-top: 0.5rem; }
@media (min-width: 768px) {
  .stats { grid-template-columns: repeat(4, 1fr); }
  .stats__number { font-size: 3rem; }
}

/* Serviços card ----------------------------------------------------------- */
.service-card { padding: 2rem; text-align: center; transition: var(--transition-smooth); }
.service-card:hover { border-color: var(--accent); }
.service-card__index { color: var(--accent); font-size: 0.875rem; font-family: ui-monospace, monospace; margin-bottom: 1.5rem; }
.service-card h3 { font-size: 1.25rem; margin-bottom: 0.75rem; }
.service-card p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; }

.rule {
  display: block;
  width: 4rem;
  height: 0.25rem;
  background: var(--accent);
  border-radius: 999px;
  margin: 1.5rem auto;
}

/* Projetos grid ------------------------------------------------------------ */
.project-card { overflow: hidden; border-radius: var(--radius); background: var(--card); display: block; }
.project-card__img { aspect-ratio: 4 / 5; overflow: hidden; }
.project-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s ease; }
.project-card:hover .project-card__img img { transform: scale(1.05); }
.project-card__body { padding: 1.5rem; text-align: center; }
.project-card__meta { font-size: 0.75rem; color: var(--muted-foreground); text-transform: uppercase; letter-spacing: 0.05em; }
.project-card__title { font-size: 1.125rem; font-weight: 600; margin-top: 0.5rem; }

.link-accent { font-size: 0.875rem; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; }
.link-accent:hover { color: var(--accent); }

/* Sobre / valores ----------------------------------------------------------- */
.value-card { padding: 1.5rem; }
.value-dot { width: 0.5rem; height: 0.5rem; background: var(--accent); border-radius: 999px; margin-bottom: 1rem; }
.value-card__label { font-weight: 600; }

/* Marquee de parceiros -------------------------------------------------- */
.marquee-mask {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
  mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}
.marquee-track {
  display: flex;
  width: max-content;
  padding-block: 1rem;
  animation: marquee-x 40s linear infinite;
  will-change: transform;
}
.marquee-pause:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee-x {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
}

.partner-logo {
  flex-shrink: 0;
  margin-inline: 0.75rem;
  width: 10rem;
  height: 6rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition-smooth);
}
.partner-logo:hover { border-color: var(--accent); box-shadow: var(--shadow-card); }
.partner-logo img { max-height: 3.5rem; width: auto; object-fit: contain; }
.partner-logo span { font-size: 0.875rem; font-weight: 600; color: var(--muted-foreground); text-align: center; padding-inline: 1rem; }
@media (min-width: 768px) {
  .partner-logo { width: 12rem; height: 7rem; margin-inline: 1.25rem; }
  .partner-logo img { max-height: 3.5rem; }
}
