/* =========================================
   VIGORE ENGENHARIA — STYLESHEET
   Paleta: Azul-ardósia escuro + Laranja salmão + Creme
   ========================================= */

/* --- RESET & BASE --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --azul:        #3d4f6b;
  --azul-escuro: #2a3548;
  --azul-claro:  #5a6f90;
  --laranja:     #e8855a;
  --laranja-h:   #d96c3e;
  --creme:       #faf5ef;
  --creme-d:     #f0e9df;
  --branco:      #ffffff;
  --texto:       #2a3548;
  --texto-leve:  #6b7a90;

  --r-sm:  6px;
  --r-md:  12px;
  --r-lg:  20px;
  --r-xl:  32px;

  --shadow-sm: 0 2px 8px rgba(42,53,72,.08);
  --shadow-md: 0 8px 32px rgba(42,53,72,.12);
  --shadow-lg: 0 20px 60px rgba(42,53,72,.18);

  --trans: .3s cubic-bezier(.4,0,.2,1);
  --trans-slow: .6s cubic-bezier(.4,0,.2,1);

  --font-display: 'Barlow Condensed', sans-serif;
  --font-body:    'Barlow', sans-serif;
}

html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: var(--font-body);
  background: var(--creme);
  color: var(--texto);
  line-height: 1.65;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
ul { list-style: none; }
input, select, textarea, button { font-family: inherit; }

/* --- SCROLLBAR --- */
/* Firefox scrollbar */
html { scrollbar-width: thin; scrollbar-color: var(--laranja) var(--creme-d); }

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--creme-d); }
::-webkit-scrollbar-thumb { background: var(--laranja); border-radius: 3px; }

/* --- UTILITIES --- */
.container {
  width: min(1240px, 100%);
  margin: 0 auto;
  padding: 0 2rem;
}

.section-tag {
  display: inline-block;
  font-family: var(--font-display);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--laranja);
  border-left: 3px solid var(--laranja);
  padding-left: .75rem;
  margin-bottom: 1rem;
}

.section-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.1;
  color: var(--azul-escuro);
  margin-bottom: 1.5rem;
  text-transform: uppercase;
}

.section-title em {
  font-style: normal;
  color: var(--laranja);
}

.section-header {
  text-align: center;
  margin-bottom: 4rem;
}

.section-header .section-tag {
  border-left: none;
  padding-left: 0;
  border-bottom: 3px solid var(--laranja);
  padding-bottom: .25rem;
}

/* --- REVEAL ANIMATIONS --- */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .7s ease, transform .7s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity .8s ease .2s, transform .8s ease .2s;
}

.reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}

/* --- BUTTONS --- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .85rem 2rem;
  border-radius: var(--r-sm);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all var(--trans);
}

.btn--primary {
  background: var(--laranja);
  color: var(--branco);
  border-color: var(--laranja);
}

.btn--primary:hover {
  background: var(--laranja-h);
  border-color: var(--laranja-h);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(232,133,90,.35);
}

.btn--ghost {
  background: transparent;
  color: var(--branco);
  border-color: rgba(255,255,255,.5);
}

.btn--ghost:hover {
  background: rgba(255,255,255,.1);
  border-color: var(--branco);
}

.btn--full { width: 100%; justify-content: center; }

/* =========================================
   NAVIGATION
   ========================================= */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 1.25rem 0;
  transition: all var(--trans);
}

.nav.scrolled {
  background: var(--azul-escuro);
  padding: .8rem 0;
  box-shadow: var(--shadow-md);
}

.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(1240px, 100%);
  margin: 0 auto;
  padding: 0 2rem;
}

.nav__logo {
  display: flex;
  align-items: baseline;
  gap: .1rem;
  text-decoration: none;
}

.logo-v { font-family: var(--font-display); font-size: 1.6rem; font-weight: 900; color: var(--laranja); }
.logo-igore { font-family: var(--font-display); font-size: 1.6rem; font-weight: 900; color: var(--branco); }
.logo-sub {
  font-family: var(--font-display);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .2em;
  color: rgba(255,255,255,.6);
  margin-left: .3rem;
  align-self: center;
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.nav__links a {
  font-family: var(--font-display);
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
  transition: color var(--trans);
  position: relative;
}

.nav__links a::after {
  content: '';
  position: absolute;
  bottom: -4px; left: 0;
  width: 0; height: 2px;
  background: var(--laranja);
  transition: width var(--trans);
}

.nav__links a:hover { color: var(--branco); }
.nav__links a:hover::after { width: 100%; }

.nav__cta {
  background: var(--laranja) !important;
  color: var(--branco) !important;
  padding: .45rem 1.2rem;
  border-radius: var(--r-sm);
}

.nav__cta::after { display: none; }
.nav__cta:hover { background: var(--laranja-h) !important; }

.nav__burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}

.nav__burger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--branco);
  border-radius: 2px;
  transition: all var(--trans);
}

/* Mobile menu */
.mobile-menu {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: var(--azul-escuro);
  z-index: 99;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateX(100%);
  transition: transform var(--trans-slow);
}

.mobile-menu.open { transform: translateX(0); }

.mobile-menu ul {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.mobile-menu a {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--branco);
  letter-spacing: .08em;
  transition: color var(--trans);
}

.mobile-menu a:hover { color: var(--laranja); }

/* =========================================
   HERO
   ========================================= */
.hero {
  min-height: 100vh;
  background: var(--azul-escuro);
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.hero__accent-bar {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 6px;
  background: var(--laranja);
}

.hero__bg-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}

.hero__content {
  padding: 8rem 3rem 6rem 5rem;
  position: relative;
  z-index: 1;
}

.hero__eyebrow {
  font-family: var(--font-display);
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--laranja);
  margin-bottom: 1.5rem;
}

.hero__title {
  font-family: var(--font-display);
  font-size: clamp(3rem, 6vw, 5.5rem);
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  color: var(--branco);
  margin-bottom: 1.5rem;
}

.hero__title em {
  font-style: normal;
  color: var(--laranja);
  display: inline-block;
  position: relative;
}

.hero__desc {
  font-size: 1.05rem;
  color: rgba(255,255,255,.65);
  max-width: 480px;
  margin-bottom: 2.5rem;
  line-height: 1.7;
}

.hero__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 3.5rem;
}

.hero__stats {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.stat__num {
  display: block;
  font-family: var(--font-display);
  font-size: 1.8rem;
  font-weight: 900;
  color: var(--laranja);
  line-height: 1;
}

.stat__label {
  display: block;
  font-size: .75rem;
  color: rgba(255,255,255,.45);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.stat__divider {
  width: 1px;
  height: 40px;
  background: rgba(255,255,255,.15);
}

/* Hero image */
.hero__image-block {
  padding: 6rem 4rem 6rem 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 1;
}

.hero__img-frame {
  position: relative;
  width: 100%;
  max-width: 420px;
}

.hero__img-inner {
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 2px solid rgba(232,133,90,.3);
  background: var(--azul);
}

.hero__img-placeholder svg {
  width: 100%;
  height: auto;
}

.hero__img-badge {
  position: absolute;
  bottom: -1.5rem;
  left: -1.5rem;
  background: var(--laranja);
  color: var(--branco);
  padding: 1rem 1.5rem;
  border-radius: var(--r-md);
  text-align: center;
  box-shadow: var(--shadow-lg);
}

.badge-year {
  display: block;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .15em;
  opacity: .8;
}

.badge-num {
  display: block;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 900;
  line-height: 1;
}

/* =========================================
   SOBRE
   ========================================= */
.sobre {
  padding: 7rem 0;
  background: var(--creme);
}

.sobre__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: start;
}

.sobre__text {
  color: var(--texto-leve);
  margin-bottom: 1.25rem;
  font-size: 1.05rem;
}

.sobre__text strong { color: var(--azul-escuro); }

/* MVV Cards */
.mvv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.mvv-card {
  background: var(--branco);
  border-radius: var(--r-md);
  padding: 1.75rem;
  border: 1px solid var(--creme-d);
  box-shadow: var(--shadow-sm);
  transition: all var(--trans);
}

.mvv-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: var(--laranja);
}

.mvv-card--full {
  grid-column: 1 / -1;
}

.mvv-card__icon {
  width: 40px;
  height: 40px;
  color: var(--laranja);
  margin-bottom: 1rem;
}

.mvv-card h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--azul-escuro);
  margin-bottom: .5rem;
}

.mvv-card p {
  font-size: .9rem;
  color: var(--texto-leve);
  line-height: 1.6;
}

.valores-list {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .75rem;
}

.valores-list span {
  display: inline-block;
  background: rgba(232,133,90,.1);
  color: var(--laranja);
  border: 1px solid rgba(232,133,90,.3);
  padding: .3rem .85rem;
  border-radius: 100px;
  font-size: .8rem;
  font-weight: 600;
}

/* =========================================
   SERVIÇOS
   ========================================= */
.servicos {
  padding: 7rem 0;
  background: var(--azul-escuro);
}

.servicos .section-tag { color: var(--laranja); }
.servicos .section-title { color: var(--branco); }

.servicos__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  margin-bottom: 3rem;
}

.servico-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--r-md);
  padding: 1.75rem 1.5rem;
  position: relative;
  overflow: hidden;
  transition: all var(--trans);
  cursor: default;
}

.servico-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(232,133,90,.08) 0%, transparent 60%);
  opacity: 0;
  transition: opacity var(--trans);
}

.servico-card:hover {
  border-color: rgba(232,133,90,.4);
  transform: translateY(-4px);
  background: rgba(255,255,255,.07);
}

.servico-card:hover::before { opacity: 1; }

.servico-card__num {
  font-family: var(--font-display);
  font-size: 3.5rem;
  font-weight: 900;
  color: rgba(255,255,255,.05);
  line-height: 1;
  position: absolute;
  top: .75rem;
  right: 1rem;
  user-select: none;
}

.servico-card__icon {
  width: 44px;
  height: 44px;
  color: var(--laranja);
  margin-bottom: 1.25rem;
}

.servico-card h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--branco);
  margin-bottom: .75rem;
  line-height: 1.25;
}

.servico-card p {
  font-size: .875rem;
  color: rgba(255,255,255,.5);
  line-height: 1.6;
  margin-bottom: 1rem;
}

.servico-card__tag {
  display: inline-block;
  background: rgba(232,133,90,.15);
  color: var(--laranja);
  border: 1px solid rgba(232,133,90,.3);
  padding: .25rem .7rem;
  border-radius: 100px;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* Outros serviços */
.outros-servicos {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--r-md);
  padding: 2.5rem;
}

.outros-servicos h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.6);
  margin-bottom: 1.25rem;
}

.outros__tags {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}

.outros__tags span {
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.12);
  padding: .4rem 1rem;
  border-radius: var(--r-sm);
  font-size: .85rem;
  transition: all var(--trans);
  cursor: default;
}

.outros__tags span:hover {
  background: rgba(232,133,90,.15);
  border-color: rgba(232,133,90,.4);
  color: var(--laranja);
}

/* =========================================
   DIFERENCIAIS
   ========================================= */
.diferenciais {
  padding: 7rem 0;
  background: var(--creme-d);
}

.diferenciais__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.diferencial {
  background: var(--branco);
  border-radius: var(--r-md);
  padding: 2rem;
  border: 1px solid transparent;
  box-shadow: var(--shadow-sm);
  transition: all var(--trans);
}

.diferencial:hover {
  border-color: var(--laranja);
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

.diferencial__icon {
  width: 52px;
  height: 52px;
  color: var(--laranja);
  margin-bottom: 1.25rem;
  padding: .75rem;
  background: rgba(232,133,90,.08);
  border-radius: var(--r-sm);
}

.diferencial h3 {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--azul-escuro);
  margin-bottom: .75rem;
}

.diferencial p {
  font-size: .9rem;
  color: var(--texto-leve);
  line-height: 1.65;
}

.diferencial--highlight {
  background: var(--azul-escuro);
  border-color: transparent;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.5rem;
}

.diferencial--highlight:hover {
  border-color: var(--laranja);
}

.diferencial__quote {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--branco);
  font-style: italic;
}

.diferencial__kanban {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
}

.kb-tag {
  background: rgba(232,133,90,.2);
  color: var(--laranja);
  border: 1px solid rgba(232,133,90,.4);
  padding: .3rem .85rem;
  border-radius: var(--r-sm);
  font-size: .8rem;
  font-weight: 700;
}

.kb-plus { color: rgba(255,255,255,.3); font-weight: 300; }

/* =========================================
   EQUIPE
   ========================================= */
.equipe {
  padding: 7rem 0;
  background: var(--creme);
}

.equipe__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.membro {
  background: var(--branco);
  border-radius: var(--r-lg);
  overflow: hidden;
  display: grid;
  grid-template-columns: 160px 1fr;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--creme-d);
  transition: all var(--trans);
}

.membro:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: rgba(232,133,90,.3);
}

.membro__photo {
  background: var(--azul-escuro);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.membro__photo-placeholder svg {
  width: 100%;
  height: auto;
}

.membro__info {
  padding: 1.75rem;
}

.membro__info h3 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--azul-escuro);
  margin-bottom: .3rem;
}

.membro__role {
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--laranja);
  margin-bottom: .6rem;
}

.membro__formation {
  font-size: .82rem;
  color: var(--texto-leve);
  line-height: 1.5;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--creme-d);
}

.membro__exp h4 {
  font-family: var(--font-display);
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--azul-claro);
  margin-bottom: .6rem;
}

.membro__exp ul {
  display: flex;
  flex-direction: column;
  gap: .4rem;
}

.membro__exp li {
  font-size: .8rem;
  color: var(--texto-leve);
  padding-left: .9rem;
  position: relative;
  line-height: 1.4;
}

.membro__exp li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .55em;
  width: 5px;
  height: 5px;
  background: var(--laranja);
  border-radius: 50%;
}

/* =========================================
   CLIENTES
   ========================================= */
.clientes {
  padding: 7rem 0;
  background: var(--azul-escuro);
}

.clientes .section-tag { color: var(--laranja); }
.clientes .section-title { color: var(--branco); }

.clientes__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.cliente-logo {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--r-md);
  aspect-ratio: 2 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--trans);
  cursor: default;
}

.cliente-logo:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(232,133,90,.3);
  transform: scale(1.03);
}

.cliente-logo__inner {
  font-family: var(--font-display);
  font-size: .9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.5);
  text-align: center;
  padding: .5rem;
  transition: color var(--trans);
}

.cliente-logo:hover .cliente-logo__inner { color: var(--branco); }

/* Logo images — mantém proporção, harmoniza no fundo escuro */
.cliente-logo__img {
  display: block;
  width: auto;
  height: auto;
  max-width: 65%;
  max-height: 60px;
  object-fit: contain;
  filter: brightness(0) invert(1) opacity(0.55);
  transition: filter var(--trans), transform var(--trans);
  margin: 0 auto;
}

.cliente-logo:hover .cliente-logo__img {
  filter: brightness(0) invert(1) opacity(1);
  transform: scale(1.05);
}

/* =========================================
   CONTATO
   ========================================= */
.contato {
  padding: 7rem 0;
  background: var(--creme);
}

.contato__grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 5rem;
  align-items: start;
}

.contato__left p {
  color: var(--texto-leve);
  font-size: 1.05rem;
  margin-bottom: 2.5rem;
}

.contato__info {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.contato__item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  color: var(--texto);
  font-size: .95rem;
  line-height: 1.5;
  transition: color var(--trans);
}

a.contato__item:hover { color: var(--laranja); }

.contato__item-icon {
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: rgba(232,133,90,.1);
  border-radius: var(--r-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--laranja);
  padding: .6rem;
}

/* Form */
.form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  background: var(--branco);
  padding: 2.5rem;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}

.form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.form__group {
  display: flex;
  flex-direction: column;
  gap: .45rem;
}

.form__group label {
  font-size: .8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--azul-claro);
}

.form__group input,
.form__group select,
.form__group textarea {
  padding: .8rem 1rem;
  border: 1.5px solid var(--creme-d);
  border-radius: var(--r-sm);
  font-size: 1rem; /* >= 16px — evita auto-zoom no iOS Safari */
  color: var(--texto);
  background: var(--creme);
  transition: border-color var(--trans), box-shadow var(--trans);
  outline: none;
  resize: vertical;
}

.form__group input:focus,
.form__group select:focus,
.form__group textarea:focus {
  border-color: var(--laranja);
  box-shadow: 0 0 0 3px rgba(232,133,90,.12);
}

.form__group select { -webkit-appearance: none; appearance: none; cursor: pointer; }
.form__group input::placeholder,
.form__group textarea::placeholder { color: var(--texto-leve); opacity: .7; }

/* =========================================
   FOOTER
   ========================================= */
.footer {
  background: #1a2336;
  padding: 4rem 0 2rem;
}

.footer__inner {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255,255,255,.07);
}

.footer__brand p {
  color: rgba(255,255,255,.4);
  font-size: .9rem;
  margin-top: 1rem;
  max-width: 300px;
  line-height: 1.6;
}

.footer__links h4,
.footer__contact h4 {
  font-family: var(--font-display);
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .15em;
  color: var(--laranja);
  margin-bottom: 1.25rem;
}

.footer__links ul {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}

.footer__links a {
  font-size: .9rem;
  color: rgba(255,255,255,.45);
  transition: color var(--trans);
}

.footer__links a:hover { color: var(--branco); }

.footer__contact p {
  font-size: .9rem;
  color: rgba(255,255,255,.45);
  margin-bottom: .4rem;
}

.footer__bottom {
  text-align: center;
  color: rgba(255,255,255,.2);
  font-size: .8rem;
}

/* =========================================
   RESPONSIVE
   ========================================= */
@media (max-width: 1100px) {
  .servicos__grid { grid-template-columns: repeat(3, 1fr); }
  .clientes__grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .hero__image-block { display: none; }
  .hero__content { padding: 7rem 2rem 5rem 3.5rem; }

  .sobre__grid { grid-template-columns: 1fr; }
  .diferenciais__grid { grid-template-columns: 1fr 1fr; }
  .equipe__grid { grid-template-columns: 1fr; }
  .contato__grid { grid-template-columns: 1fr; gap: 3rem; }
  .footer__inner { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .nav__links { display: none; }
  .nav__burger { display: flex; }

  .servicos__grid { grid-template-columns: 1fr 1fr; }
  .clientes__grid { grid-template-columns: repeat(2, 1fr); }
  .diferenciais__grid { grid-template-columns: 1fr; }
  .mvv-grid { grid-template-columns: 1fr; }

  .membro {
    grid-template-columns: 1fr;
  }
  .membro__photo {
    display: none;
  }
  .form__row { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .container { padding: 0 1.25rem; }
  .servicos__grid { grid-template-columns: 1fr; }
  .clientes__grid { grid-template-columns: 1fr 1fr; }
  .hero__stats { flex-direction: column; align-items: flex-start; }
  .stat__divider { width: 40px; height: 1px; }
}

/* ─── FOTOS DOS MEMBROS ─────────────────────────────────────── */
.membro__foto {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform var(--trans), filter var(--trans);
  filter: brightness(0.9);
}

.membro:hover .membro__foto {
  transform: scale(1.05);
  filter: brightness(1.08) drop-shadow(0 0 12px rgba(232,133,90,.45));
}

.footer__bottom p + p {
  margin-top: .3rem;
}

/* ─── SKIP LINK (acessibilidade) ───────────────────────────────── */
.skip-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  background: var(--laranja);
  color: var(--branco);
  padding: .5rem 1rem;
  border-radius: var(--r-sm);
  font-weight: 700;
  z-index: 9999;
  transition: top .2s;
}
.skip-link:focus { top: 1rem; }

/* ─── WHATSAPP FLUTUANTE ────────────────────────────────────────── */
.whatsapp-float {
  position: fixed;
  bottom: calc(2rem + env(safe-area-inset-bottom, 0px));
  right: calc(2rem + env(safe-area-inset-right, 0px));
  width: 58px;
  height: 58px;
  background: #25d366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,.45);
  z-index: 200;
  transition: transform var(--trans), box-shadow var(--trans);
}
.whatsapp-float:hover {
  transform: scale(1.1);
  box-shadow: 0 8px 30px rgba(37,211,102,.6);
}

/* ─── LGPD CHECKBOX ─────────────────────────────────────────────── */
.form__group--check {
  flex-direction: row;
  align-items: flex-start;
  gap: .75rem;
}
.form__check-label {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: .85rem;
  color: var(--texto-leve);
  cursor: pointer;
  line-height: 1.5;
}
.form__check-label input[type="checkbox"] {
  margin-top: .15rem;
  width: 16px;
  min-width: 16px;
  height: 16px;
  accent-color: var(--laranja);
  cursor: pointer;
}
.form__check-label a {
  color: var(--laranja);
  text-decoration: underline;
}

/* ─── HOVER APENAS EM DISPOSITIVOS COM MOUSE ───────────────────
   Impede comportamento inconsistente em touchscreens (iOS/Android)
   ────────────────────────────────────────────────────────────── */
@media (hover: none) {
  .mvv-card:hover,
  .servico-card:hover,
  .diferencial:hover,
  .diferencial--highlight:hover,
  .membro:hover,
  .cliente-logo:hover {
    transform: none;
    box-shadow: var(--shadow-sm);
    border-color: inherit;
    background: inherit;
  }
  .cliente-logo:hover .cliente-logo__img {
    filter: brightness(0) invert(1) opacity(0.55);
    transform: none;
  }
  .membro:hover .membro__foto {
    transform: none;
    filter: brightness(0.9);
  }
}

/* Nota abaixo do botão do formulário */
.form__nota { margin-top: 12px; font-size: .85rem; opacity: .75; line-height: 1.5; }
.form__nota a { color: inherit; text-decoration: underline; }

/* Correção: evita rolagem lateral no celular (e-mail longo na coluna de contato) */
.contato__left, .contato__right { min-width: 0; }
.contato__item span { overflow-wrap: anywhere; }

/* =========================================
   CLIENTES — logos coloridos em fundo claro
   ========================================= */
.clientes { background: var(--creme); }
.clientes .section-title { color: var(--azul); }
.cliente-logo { background: var(--branco); border: 1px solid var(--creme-d); box-shadow: var(--shadow-sm); }
.cliente-logo:hover { background: var(--branco); border-color: rgba(232,133,90,.4); box-shadow: var(--shadow-md); }
.cliente-logo__img, .cliente-logo:hover .cliente-logo__img { filter: none; max-width: 75%; max-height: 72px; }
@media (hover: none) {
  .cliente-logo:hover { background: var(--branco); border-color: var(--creme-d); }
  .cliente-logo:hover .cliente-logo__img { filter: none; }
}

/* =========================================
   BARRA SUPERIOR BRANCA COM O LOGO OFICIAL
   ========================================= */
.nav, .nav.scrolled { background: var(--branco); box-shadow: 0 2px 16px rgba(42,53,72,.10); }
.nav { padding: .7rem 0; }
.nav.scrolled { padding: .5rem 0; }
.nav__logo { align-items: center; }
.nav__logo-img { display: block; height: 46px; width: auto; transition: height var(--trans); }
.nav.scrolled .nav__logo-img { height: 38px; }
.nav__links a { color: var(--azul); }
.nav__links a:hover, .nav__links a.active { color: var(--laranja); }
.nav__burger span { background: var(--azul); }
@media (max-width: 600px) { .nav__logo-img { height: 36px; } }

/* =========================================
   OBRAS (cartões gerados por obras.js a partir de data/obras.json)
   ========================================= */
.obras { padding: 7rem 0; background: var(--branco); }
.obras .section-header { margin-bottom: 2.5rem; }
.obras__filtros { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-bottom: 2.5rem; }
.obras__filtro {
  font-family: var(--font-display); font-size: .85rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  background: var(--creme); color: var(--azul); border: 1px solid var(--creme-d); border-radius: 999px;
  padding: .45rem 1.1rem; cursor: pointer; transition: all var(--trans);
}
.obras__filtro:hover { border-color: var(--laranja); color: var(--laranja-h); }
.obras__filtro.ativo { background: var(--laranja); border-color: var(--laranja); color: var(--branco); }
.obras__filtro:focus-visible, .obras__btn-mais:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.obras__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.obras__vazio { grid-column: 1 / -1; text-align: center; color: var(--texto-leve); }
.obra {
  background: var(--branco); border: 1px solid var(--creme-d); border-radius: var(--r-md);
  overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--shadow-sm);
  transition: transform var(--trans), box-shadow var(--trans);
}
.obra:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.obra__midia { position: relative; }
.obra__foto { display: block; width: 100%; max-width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.obra__foto--vazia { background: linear-gradient(135deg, var(--azul) 0%, var(--azul-escuro) 100%); color: var(--laranja); display: grid; place-items: center; }
.obra__foto--vazia svg { width: 64px; height: 64px; opacity: .8; }
.obra__status {
  position: absolute; top: .8rem; left: .8rem; background: var(--azul-escuro); color: var(--branco);
  font-family: var(--font-display); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  padding: .3rem .7rem; border-radius: var(--r-sm);
}
.obra__status--andamento { background: var(--laranja); }
.obra__corpo { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .45rem; min-width: 0; }
.obra__cat { font-family: var(--font-display); font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--laranja-h); }
.obra__titulo { font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; line-height: 1.15; color: var(--azul-escuro); text-transform: uppercase; }
.obra__meta { font-size: .9rem; font-weight: 600; color: var(--azul); }
.obra__cliente { font-size: .9rem; color: var(--texto-leve); }
.obra__desc { font-size: .95rem; color: var(--texto); line-height: 1.6; }
.obra__destaques { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .4rem; padding: 0; }
.obra__destaques li { background: var(--creme); color: var(--azul); font-size: .8rem; font-weight: 600; padding: .25rem .65rem; border-radius: 999px; font-variant-numeric: tabular-nums; }
.obras__mais { text-align: center; margin-top: 2.5rem; }
.obras__btn-mais { background: transparent; color: var(--azul); border: 2px solid var(--azul); cursor: pointer; }
.obras__btn-mais:hover { background: var(--azul); color: var(--branco); }
@media (max-width: 1024px) { .obras__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .obras { padding: 5rem 0; } .obras__grid { grid-template-columns: 1fr; } }
@media (hover: none) { .obra:hover { transform: none; box-shadow: var(--shadow-sm); } }
@media (prefers-reduced-motion: reduce) { .obra, .obra:hover { transition: none; transform: none; } }
.obras__btn-mais[hidden], .obras__filtros[hidden], .obras[hidden] { display: none !important; }
.obra__foto { object-position: center 12%; }
.obra__acervo { margin-top: auto; padding-top: .8rem; border-top: 1px solid var(--creme-d); font-size: .8rem; font-weight: 600; letter-spacing: .02em; color: var(--texto-leve); }
.obra__corpo { flex: 1; }

/* =========================================
   OBRAS — layout horizontal: foto à esquerda, texto à direita
   ========================================= */
.obras__grid { grid-template-columns: 1fr; gap: 1.75rem; max-width: 1080px; margin: 0 auto; }
.obra { flex-direction: row; min-height: 340px; }
.obra__midia { flex: 0 0 42%; max-width: 42%; }
.obra__midia .obra__foto { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-position: center 20%; }
.obra__corpo { padding: 2rem 2.25rem; justify-content: center; }
.obra__titulo { font-size: 1.6rem; }
@media (max-width: 760px) {
  .obra { flex-direction: column; min-height: 0; }
  .obra__midia { flex: none; width: 100%; max-width: 100%; height: auto; aspect-ratio: 1 / 1; }
  .obra__corpo { padding: 1.4rem 1.5rem 1.6rem; }
  .obra__titulo { font-size: 1.35rem; }
}
.obra__galeria { position: absolute; left: .8rem; bottom: .8rem; display: flex; gap: .5rem; z-index: 2; }
.obra__mini { width: 64px; height: 48px; padding: 0; border: 2px solid rgba(255,255,255,.7); border-radius: var(--r-sm); overflow: hidden; cursor: pointer; background: var(--azul-escuro); opacity: .85; transition: opacity var(--trans), border-color var(--trans); }
.obra__mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.obra__mini:hover, .obra__mini.ativo { opacity: 1; border-color: var(--laranja); }
.obra__mini:focus-visible { outline: 3px solid var(--laranja); outline-offset: 2px; }

/* Obras: vídeo e miniatura de vídeo */
.obra__foto[hidden] { display: none !important; }
.obra__video { background: #000; object-fit: cover; }
.obra__mini { position: relative; }
.obra__mini--video::after { content: ""; position: absolute; inset: 0; margin: auto; width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 13px; border-color: transparent transparent transparent #fff; filter: drop-shadow(0 0 3px rgba(0,0,0,.8)); }
/* Muitas fotos: as miniaturas rolam de lado em vez de vazar do cartão */
.obra__galeria { right: .8rem; overflow-x: auto; scrollbar-width: none; }
.obra__galeria::-webkit-scrollbar { display: none; }
.obra__mini { flex: 0 0 auto; }

/* =========================================
   ONDE ATUAMOS (mapa)
   ========================================= */
.atuacao { padding: 6rem 0; background: var(--branco); }
.atuacao__grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 3rem; align-items: center; }
.atuacao__mapas { position: relative; }
.mapa { margin: 0; }
.mapa--det { background: var(--creme); border-radius: var(--r-lg); padding: 1rem; }
.mapa--br { position: absolute; left: 1.25rem; bottom: 1.25rem; width: 22%; background: var(--branco); border-radius: var(--r-md); box-shadow: var(--shadow-md); padding: .6rem .6rem .3rem; }
.mapa--br figcaption { font-family: var(--font-display); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--texto-leve); text-align: center; }
.mapa__svg { display: block; width: 100%; height: auto; }
.mapa__uf { fill: #e3dbd0; stroke: #fff; stroke-width: .6; transition: fill var(--trans); }
.mapa--det .mapa__uf { stroke-width: .35; }
.mapa__uf--base { fill: var(--azul); }
.mapa__uf--base:hover { fill: var(--azul-claro); }
.mapa__uf--atend { fill: var(--laranja); }
.mapa__pt { fill: var(--laranja); stroke: #fff; stroke-width: .5; }
.mapa--br .mapa__pt { stroke-width: 1.5; }
.mapa__sede circle { fill: rgba(232,133,90,.35); }
.mapa__sede .mapa__sede-c { fill: var(--laranja); stroke: #fff; stroke-width: .5; }
.mapa__zoom { fill: none; stroke: var(--laranja); stroke-width: 3; stroke-dasharray: 8 5; }
.mapa__rot { font-family: var(--font-display); font-weight: 700; font-size: 7px; letter-spacing: .15em; fill: rgba(255,255,255,.85); pointer-events: none; }
.atuacao__nums { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.atuacao__nums li { background: var(--creme); border-radius: var(--r-md); padding: 1rem .75rem; text-align: center; }
.atuacao__nums strong { display: block; font-family: var(--font-display); font-size: 2.4rem; line-height: 1; color: var(--laranja); }
.atuacao__nums span { font-size: .85rem; color: var(--texto-leve); }
.atuacao__bases h3 { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .05em; color: var(--azul); font-size: 1.3rem; margin: 0 0 .6rem; }
.atuacao__bases p { margin: 0 0 .5rem; color: var(--texto); }
.atuacao__lista { margin: 1.5rem 0 0; }
.atuacao__lista dt { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--azul); margin-top: .9rem; }
.atuacao__lista dd { margin: .2rem 0 0; color: var(--texto-leve); font-size: .95rem; }
.atuacao__legenda { margin-top: 1.5rem; font-size: .8rem; color: var(--texto-leve); display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem; }
.atuacao__chip { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -1px; margin-right: .35rem; }
.atuacao__legenda .atuacao__chip:not(:first-child) { margin-left: .6rem; }
.atuacao__chip--base { background: var(--azul); }
.atuacao__chip--atend { background: var(--laranja); }
.atuacao__chip--pt { background: var(--laranja); border-radius: 50%; }
@media (max-width: 900px) {
  .atuacao { padding: 4rem 0; }
  .atuacao__grid { grid-template-columns: 1fr; gap: 3rem; }
  .mapa--br { width: 24%; bottom: .75rem; left: .75rem; padding: .35rem .35rem .15rem; }
}
@media (max-width: 480px) {
  .atuacao__nums strong { font-size: 1.9rem; }
  .atuacao__nums span { font-size: .75rem; }
}

/* Clientes sem logotipo: cartão com o nome */
.cliente-logo--texto { flex-direction: column; gap: .35rem; padding: .75rem 1rem; text-align: center; position: relative; }
.cliente-logo__nome { font-family: var(--font-display); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-leve); line-height: 1.2; }
.cliente-logo__nome strong { display: block; font-size: 1.15rem; letter-spacing: .02em; color: var(--azul); }
.cliente-logo__uf { font-family: var(--font-display); font-size: .7rem; font-weight: 700; letter-spacing: .12em; color: var(--branco); background: var(--laranja); border-radius: 999px; padding: .1rem .55rem; }
@media (max-width: 480px) { .cliente-logo__nome strong { font-size: .95rem; } .cliente-logo__nome { font-size: .7rem; } }
.cliente-logo--texto, .cliente-logo { min-width: 0; }
.cliente-logo__nome { max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 480px) { .cliente-logo--texto { aspect-ratio: auto; min-height: 96px; padding: .6rem; } }
/* Brasões e logos verticais: um pouco mais altos para ficarem legíveis */
.cliente-logo__img--alto, .cliente-logo:hover .cliente-logo__img--alto { max-height: 104px; }
@media (max-width: 480px) { .cliente-logo__img--alto, .cliente-logo:hover .cliente-logo__img--alto { max-height: 80px; } }

/* Onde atuamos — mapa interativo por município */
.mapa__tabs { display: flex; gap: .4rem; margin-bottom: .75rem; flex-wrap: wrap; }
.mapa__tab { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; padding: .5rem 1rem; border-radius: 999px; border: 1.5px solid var(--azul); background: transparent; color: var(--azul); cursor: pointer; transition: background var(--trans), color var(--trans); }
.mapa__tab:hover { background: rgba(0,0,0,.04); }
.mapa__tab.is-on { background: var(--azul); color: #fff; }
.mapa__geral { position: relative; }
.mapa__geral[hidden], .mapa--uf[hidden] { display: none; }
.mapa__uf--click { cursor: pointer; outline: none; }
.mapa__uf--click:focus-visible { stroke: var(--laranja); stroke-width: 1; }
.mapa__dica { text-align: right; font-size: .78rem; color: var(--texto-leve); margin-top: .4rem; padding-left: 26%; }
.mapa--uf .mun { fill: #e3dbd0; stroke: #fff; stroke-width: 1.2; stroke-linejoin: round; transition: fill var(--trans); }
.mapa--uf .mun:hover { fill: #d3c8b9; }
.mapa--uf .mun--on { fill: var(--azul); }
.mapa--uf .mun--on:hover, .mapa--uf .mun.is-sel.mun--on { fill: var(--azul-claro); }
.mapa--uf .mun.is-sel { stroke: var(--laranja); stroke-width: 2.5; }
.mapa--uf .mapa__sede { pointer-events: none; }
.mapa--uf figcaption { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; margin-top: .6rem; font-size: .9rem; color: var(--texto); }
.mapa__info { font-weight: 600; }
.mapa__voltar { border: 0; background: none; color: var(--azul); font-weight: 700; cursor: pointer; font-size: .85rem; padding: .25rem 0; }
.mapa__voltar:hover { color: var(--laranja); }
@media (max-width: 900px) {
  .mapa__dica { font-size: .72rem; }
}
.mapa__nomes { pointer-events: none; }
.mapa__nomes text { font-family: var(--font-body, inherit); font-weight: 700; font-size: 11px; fill: #fff; stroke: var(--azul-escuro, #2a3548); stroke-width: 2.6px; stroke-linejoin: round; paint-order: stroke; text-anchor: middle; dominant-baseline: middle; }
@media (max-width: 600px) { .mapa__nomes text { font-size: 15px; stroke-width: 3.4px; } }
.mapa__nomes--ro text { font-size: 14px; }
.mapa__nomes .mapa__nome--lado { text-anchor: start; fill: var(--azul-escuro, #2a3548); stroke: var(--creme); }
.mapa__guia { fill: none; stroke: var(--azul-escuro, #2a3548); stroke-width: 1; opacity: .7; }
.mapa__ancora { fill: #fff; stroke: var(--azul-escuro, #2a3548); stroke-width: 1; }
@media (max-width: 600px) { .mapa__nomes--ro text { font-size: 15px; stroke-width: 3px; } }
.mapa--brasil .mapa__svg { max-width: 560px; margin: 0 auto; }
.mapa--brasil .mapa__uf { stroke-width: 1; }
.mapa--brasil .mapa__dica { padding-left: 0; text-align: center; }

/* Valores com frase */
.valores-frases { list-style: none; padding: 0; margin: .75rem 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.5rem; }
.valores-frases li { display: flex; flex-direction: column; gap: .3rem; }
.valores-frases strong { align-self: flex-start; background: rgba(232,133,90,.1); color: var(--laranja); border: 1px solid rgba(232,133,90,.3); padding: .25rem .85rem; border-radius: 100px; font-size: .8rem; font-weight: 600; }
.valores-frases span { font-size: .88rem; color: var(--texto-leve); line-height: 1.55; }
@media (max-width: 600px) { .valores-frases { grid-template-columns: 1fr; } }
.sobre__text { text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.mvv-card p { text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.valores-frases span { text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.valores-frases { grid-template-columns: 1fr; gap: .9rem; }
/* ícone e título lado a lado */
.mvv-card { display: grid; grid-template-columns: auto 1fr; column-gap: .85rem; align-content: start; }
.mvv-card > * { grid-column: 1 / -1; }
.mvv-card > .mvv-card__icon { grid-column: 1; align-self: center; margin-bottom: 1rem; }
.mvv-card > h3 { grid-column: 2; align-self: center; margin: 0 0 1rem; }
.hero__foto { display: block; width: 100%; height: auto; aspect-ratio: 920 / 1140; object-fit: cover; }

/* Hero meio a meio, centralizado */
.hero { grid-template-columns: minmax(0,1fr) minmax(0,1fr); padding-inline: max(0px, calc((100vw - 1360px) / 2)); }
.hero__content { padding: 8rem 2.5rem 5rem 4rem; }
.hero__image-block { padding: 7rem 4rem 5rem 2.5rem; }
.hero__img-frame { max-width: 540px; }
.hero__title { font-size: clamp(2.4rem, 4.4vw, 4.4rem); line-height: 1.05; }
.hero__linha { display: block; white-space: nowrap; }
@media (max-width: 900px) {
  .hero { padding-inline: 0; grid-template-columns: 1fr; }
  .hero__content { padding: 7rem 1.5rem 4rem; }
  .hero__linha { white-space: normal; }
  .hero__title { font-size: clamp(2.4rem, 10vw, 3.4rem); }
}
@media (max-width: 600px) {
  .hero__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 1rem; }
  .hero__stats .stat__divider { display: none; }
}
@media (min-width: 601px) {
  .hero__stats { align-items: stretch; gap: 1.1rem; }
  .hero__stats .stat { flex: 1 1 0; min-width: 0; }
}
.servico-card__icon { width: 56px; height: 56px; } .servico-card__icon svg { width: 100%; height: 100%; }
/* diferenciais: ícone e título lado a lado */
.diferencial { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; align-content: start; }
.diferencial > * { grid-column: 1 / -1; }
.diferencial > .diferencial__icon { grid-column: 1; align-self: center; margin-bottom: 1rem; }
.diferencial > h3 { grid-column: 2; align-self: center; margin: 0 0 1rem; }
.diferencial--highlight { align-content: center; }
@media (min-width: 1025px) {
  .diferenciais__grid { grid-template-columns: repeat(6, 1fr); }
  .diferenciais__grid > .diferencial { grid-column: span 2; }
  .diferenciais__grid > .diferencial:nth-child(4) { grid-column: 2 / span 2; }
}

/* Sobre: texto + foto, linha do tempo, missão/visão/valores */
.sobre__grid { align-items: center; gap: 4rem; }
.sobre__foto { margin: 0; }
.sobre__foto img { display: block; width: 100%; height: auto; border-radius: var(--r-lg); box-shadow: var(--shadow-md); }
.sobre__foto figcaption { font-size: .82rem; color: var(--texto-leve); margin-top: .6rem; }
.linha-tempo { margin: 4.5rem 0 4rem; }
.linha-tempo__titulo { font-family: var(--font-display); font-size: 1.5rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--azul-escuro); margin: 0 0 2rem; text-align: center; }
.linha-tempo__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, 1fr); gap: 1rem; position: relative; }
.linha-tempo__lista::before { content: ""; position: absolute; left: 0; right: 0; top: 1.05rem; height: 2px; background: linear-gradient(90deg, var(--laranja), var(--azul)); opacity: .35; }
.linha-tempo__item { position: relative; padding-top: 2.6rem; }
.linha-tempo__item::before { content: ""; position: absolute; top: .55rem; left: 0; width: 1rem; height: 1rem; border-radius: 50%; background: var(--creme); border: 3px solid var(--laranja); }
.linha-tempo__item--hoje::before { background: var(--laranja); box-shadow: 0 0 0 5px rgba(232,133,90,.2); }
.linha-tempo__ano { display: block; font-family: var(--font-display); font-weight: 900; font-size: 1.6rem; line-height: 1; color: var(--laranja); margin-bottom: .35rem; }
.linha-tempo__item strong { display: block; font-family: var(--font-display); text-transform: uppercase; letter-spacing: .04em; font-size: .9rem; color: var(--azul-escuro); margin-bottom: .35rem; }
.linha-tempo__item p { font-size: .82rem; line-height: 1.5; color: var(--texto-leve); margin: 0; }
.sobre .mvv-grid { grid-template-columns: 1fr 1fr; }
.sobre .valores-frases { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
@media (max-width: 1100px) {
  .linha-tempo__lista { grid-template-columns: repeat(4, 1fr); row-gap: 2rem; }
  .linha-tempo__lista::before { display: none; }
  .sobre .valores-frases { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .sobre__grid { gap: 2rem; }
  .linha-tempo__lista { grid-template-columns: 1fr; row-gap: 1.4rem; padding-left: 1.6rem; }
  .linha-tempo__lista::before { display: block; left: .45rem; right: auto; top: .3rem; bottom: .3rem; width: 2px; height: auto; background: linear-gradient(180deg, var(--laranja), var(--azul)); }
  .linha-tempo__item { padding-top: 0; }
  .linha-tempo__item::before { left: -1.6rem; top: .25rem; }
  .sobre .mvv-grid, .sobre .valores-frases { grid-template-columns: 1fr; }
}

/* Hero: fotos de obras alternando */
.hero__slides { position: relative; aspect-ratio: 920 / 1140; overflow: hidden; }
.hero__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.2s ease; }
.hero__slide.is-on { opacity: 1; }
.hero__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero__slide figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 3rem 1.25rem 2.4rem; background: linear-gradient(transparent, rgba(20,27,40,.85)); color: rgba(255,255,255,.8); font-size: .85rem; text-align: right; }
.hero__slide figcaption strong { display: block; font-family: var(--font-display); text-transform: uppercase; letter-spacing: .05em; font-size: 1.05rem; color: #fff; }
.hero__dots { position: absolute; right: 1.25rem; bottom: 1rem; display: flex; gap: .4rem; z-index: 2; }
.hero__dots span { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.4); transition: background .3s, width .3s; }
.hero__dots span.is-on { width: 20px; border-radius: 4px; background: var(--laranja); }
/* Sobre mais compacto */
.sobre { padding: 4.5rem 0 4.5rem; }
.linha-tempo { max-width: 1000px; margin: 3rem auto 2.5rem; }
.linha-tempo__titulo { margin-bottom: 1.5rem; }
.linha-tempo__lista { grid-template-columns: repeat(4, 1fr); gap: 1.75rem; }
.sobre .mvv-grid { max-width: 1000px; margin: 0 auto; }
.sobre .mvv-card { padding: 1.4rem 1.5rem; }
@media (max-width: 1100px) { .linha-tempo__lista { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px) { .linha-tempo__lista { grid-template-columns: 1fr; } .sobre { padding: 3.5rem 0; } }
.sobre .valores-frases { grid-template-columns: 1fr 1fr; gap: 1.1rem 2rem; } @media (max-width: 720px) { .sobre .valores-frases { grid-template-columns: 1fr; } }
.nowrap { white-space: nowrap; }
@media (max-width: 720px) {
  .hero__eyebrow { font-size: .72rem; letter-spacing: .14em; }
  .hero__title { font-size: min(8.6vw, 3.2rem); }
  .hero__linha { white-space: nowrap; }
  .hero__desc { font-size: .95rem; }
}
