/* =========================================================
   GME ENGENHARIA — design tokens
   Navy + lime sampled directly from assets/logo-gme-engenharia.jpeg
   ========================================================= */
:root{
  --navy-950:#0B1626;
  --navy-900:#12233C;
  --navy-800:#183054;
  --navy-700:#23406E;
  --navy-600:#2F538A;

  --lime-600:#6F8E1B;
  --lime-500:#8AAE22;
  --lime-400:#A6CC3B;
  --lime-100:#E8F1D2;

  --paper-50:#F4F3EE;
  --paper-100:#EAE8DF;
  --paper-200:#DCD9CC;

  --ink-900:#12181F;
  --ink-700:#3A4450;
  --ink-500:#5C6773;
  --white:#FFFFFF;

  --line-on-light: rgba(18,24,31,.14);
  --line-on-light-strong: rgba(18,24,31,.28);
  --line-on-dark: rgba(244,243,238,.18);
  --line-on-dark-strong: rgba(244,243,238,.34);

  --font-display:"Big Shoulders Display","Arial Narrow",sans-serif;
  --font-body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --font-mono:"Martian Mono","Consolas","SFMono-Regular",Menlo,monospace;

  --container-w:1280px;
  --header-h:84px;

  --ease:cubic-bezier(.16,.84,.32,1);
}

@media (max-width:720px){
  :root{ --header-h:64px; }
}

/* =========================================================
   RESET
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:var(--header-h); }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
body{
  margin:0;
  background:var(--paper-50);
  color:var(--ink-900);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p,dl,dd,figure{ margin:0; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
input,select,textarea{ font:inherit; color:inherit; }
svg.icon{ width:1.5em; height:1.5em; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }

:focus-visible{ outline:2px solid var(--lime-500); outline-offset:3px; }

.container{ max-width:var(--container-w); margin-inline:auto; padding-inline:24px; }
@media (max-width:720px){ .container{ padding-inline:20px; } }

.mono{ font-family:var(--font-mono); letter-spacing:.01em; }

.skip-link{
  position:absolute; left:12px; top:-60px; z-index:1000;
  background:var(--lime-500); color:var(--navy-950); padding:10px 16px;
  font-family:var(--font-mono); font-weight:600; transition:top .2s var(--ease);
}
.skip-link:focus{ top:12px; }

.scroll-progress{ position:fixed; top:0; left:0; right:0; height:2px; z-index:400; background:transparent; }
.scroll-progress-fill{
  display:block; height:100%; width:100%; background:var(--lime-500);
  transform:scaleX(0); transform-origin:left; will-change:transform;
}
@media (prefers-reduced-motion:reduce){ .scroll-progress{ display:none; } }

/* =========================================================
   FLOATING WHATSAPP
   ========================================================= */
.fab-whatsapp{
  position:fixed; right:24px; bottom:24px; z-index:450;
  opacity:0; transform:translateY(18px) scale(.85); pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.fab-whatsapp.is-visible{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.fab-whatsapp.is-hidden{ opacity:0 !important; transform:translateY(18px) scale(.85) !important; pointer-events:none !important; }
.fab-whatsapp-inner{
  position:relative; display:flex; align-items:center; justify-content:center;
  width:60px; height:60px; border-radius:50%; background:var(--lime-500); color:var(--navy-950);
  border:1px solid var(--line-on-light-strong); will-change:transform;
}
.fab-whatsapp-inner .icon{ width:1.8rem; height:1.8rem; }
.fab-whatsapp-ring{
  content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none;
  animation:btnPulse 2.4s var(--ease) infinite;
}
.fab-whatsapp-inner:hover .fab-whatsapp-ring{ animation-play-state:paused; }
.fab-whatsapp-tooltip{
  position:absolute; right:calc(100% + 14px); top:50%; transform:translateY(-50%) translateX(6px);
  background:var(--navy-950); color:var(--white); font-size:.68rem; font-weight:600; letter-spacing:.1em;
  padding:9px 14px; border-radius:3px; white-space:nowrap;
  opacity:0; pointer-events:none; transition:opacity .2s var(--ease), transform .2s var(--ease);
}
.fab-whatsapp-inner:hover ~ .fab-whatsapp-tooltip, .fab-whatsapp-inner:focus-visible ~ .fab-whatsapp-tooltip{
  opacity:1; transform:translateY(-50%) translateX(0);
}
@media (max-width:720px){
  .fab-whatsapp{ right:16px; bottom:16px; }
  .fab-whatsapp-inner{ width:52px; height:52px; }
  .fab-whatsapp-inner .icon{ width:1.5rem; height:1.5rem; }
  .fab-whatsapp-tooltip{ display:none; }
}
@media (prefers-reduced-motion:reduce){
  .fab-whatsapp{ transition:opacity .2s; }
  .fab-whatsapp-inner{ transform:none !important; }
  .fab-whatsapp-ring{ animation:none; }
}

/* =========================================================
   TYPE
   ========================================================= */
h1,h2,h3{ font-family:var(--font-display); font-weight:800; letter-spacing:-.01em; line-height:.98; text-wrap:balance; }
h2{ font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem); color:var(--navy-900); }
h3{ font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem); color:var(--navy-900); }

.section-head{ max-width:760px; margin-bottom:56px; }
.section-sub{ margin-top:14px; font-size:1.05rem; color:var(--ink-700); max-width:56ch; }

.label-tag{ font-size:.68rem; letter-spacing:.18em; color:var(--paper-100); opacity:.65; }

/* tick list — dimension-style bullets */
.tick-list{ display:grid; gap:10px; margin-top:20px; }
.tick-list li{ position:relative; padding-left:22px; font-size:.98rem; color:var(--ink-700); }
.tick-list li::before{ content:""; position:absolute; left:0; top:.55em; width:11px; height:1px; background:var(--lime-600); }
.tick-list-2col{ grid-template-columns:1fr 1fr; column-gap:32px; }
@media (max-width:560px){ .tick-list-2col{ grid-template-columns:1fr; } }

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  position:relative;
  display:inline-flex; align-items:center; gap:10px; justify-content:center;
  font-family:var(--font-body); font-weight:700; font-size:.92rem;
  padding:14px 22px; border-radius:3px; border:1px solid transparent;
  white-space:nowrap; transition:transform .18s var(--ease), background-color .18s var(--ease), box-shadow .18s var(--ease);
}
.btn .icon{ width:1.15em; height:1.15em; }
.btn::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  box-shadow:0 0 0 0 rgba(138,174,34,.55);
  animation:btnPulse 2.4s var(--ease) infinite;
}
.btn:hover::after{ animation-play-state:paused; box-shadow:0 0 0 0 rgba(138,174,34,0); }
@keyframes btnPulse{
  0%{ box-shadow:0 0 0 0 rgba(138,174,34,.5); }
  70%{ box-shadow:0 0 0 14px rgba(138,174,34,0); }
  100%{ box-shadow:0 0 0 0 rgba(138,174,34,0); }
}
.btn-lime{ background:var(--lime-500); color:var(--navy-950); }
.btn-lime:hover{ background:var(--lime-400); transform:translateY(-1px); }
.btn-outline{ background:transparent; color:var(--navy-900); border-color:var(--line-on-light-strong); }
.btn-outline:hover{ border-color:var(--lime-600); color:var(--lime-600); transform:translateY(-1px); }
.btn-ghost{ background:transparent; color:var(--paper-100); border-color:var(--line-on-dark-strong); }
.btn-ghost:hover{ border-color:var(--lime-400); color:var(--lime-400); transform:translateY(-1px); }
.btn-lg{ padding:16px 28px; font-size:.98rem; }
.btn-sm{ padding:9px 16px; font-size:.82rem; }

/* =========================================================
   GRID-PAPER TEXTURE
   ========================================================= */
.grid-paper{
  position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:
    repeating-linear-gradient(0deg, var(--line-on-light) 0 1px, transparent 1px 88px),
    repeating-linear-gradient(90deg, var(--line-on-light) 0 1px, transparent 1px 88px);
  opacity:.55;
  mask-image:linear-gradient(to bottom, transparent, black 8%, black 92%, transparent);
}
.ssmaq .grid-paper, .contact .grid-paper{
  background-image:
    repeating-linear-gradient(0deg, var(--line-on-dark) 0 1px, transparent 1px 88px),
    repeating-linear-gradient(90deg, var(--line-on-dark) 0 1px, transparent 1px 88px);
}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:fixed; inset-inline:0; top:0; z-index:200; height:var(--header-h);
  background:linear-gradient(to bottom, rgba(11,22,38,.62), rgba(11,22,38,0));
  transition:background-color .25s var(--ease), border-color .25s var(--ease), backdrop-filter .25s var(--ease);
}
.site-header.is-scrolled{
  background:rgba(244,243,238,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-on-light);
}
.site-header .bar{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand{ display:flex; align-items:center; flex-shrink:0; }
.brand-mark{ height:44px; width:auto; filter:brightness(0) invert(1); transition:filter .3s var(--ease); }
.site-header.is-scrolled .brand-mark{ filter:none; }
@media (max-width:720px){ .brand-mark{ height:34px; } }

.primary-nav ul{ display:flex; gap:28px; }
.primary-nav a{
  font-size:.86rem; font-weight:600; color:var(--white); letter-spacing:.01em;
  padding-block:6px; border-bottom:1px solid transparent; transition:color .2s, border-color .2s;
}
.site-header.is-scrolled .primary-nav a{ color:var(--navy-900); }
.primary-nav a:hover{ color:var(--lime-400); border-color:var(--lime-400); }
.site-header.is-scrolled .primary-nav a:hover{ color:var(--lime-600); border-color:var(--lime-600); }

.bar-actions{ display:flex; align-items:center; gap:16px; flex-shrink:0; }

.lang-switch{ display:flex; align-items:center; gap:5px; flex-shrink:0; }
.lang-btn{
  width:26px; height:18px; padding:0; border-radius:2px; overflow:hidden;
  border:1px solid var(--line-on-dark-strong); background:none; cursor:pointer;
  opacity:.55; transition:opacity .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.lang-btn:hover{ opacity:.85; }
.lang-btn.is-active{ opacity:1; border-color:var(--lime-400); }
.lang-btn img{ width:100%; height:100%; display:block; object-fit:cover; }
.site-header.is-scrolled .lang-btn{ border-color:var(--line-on-light-strong); }
.site-header.is-scrolled .lang-btn.is-active{ border-color:var(--lime-600); }
@media (max-width:900px){ .bar-actions .lang-switch{ display:none; } }

.menu-toggle{ display:none; padding:6px; color:var(--white); }
.site-header.is-scrolled .menu-toggle{ color:var(--navy-900); }

@media (max-width:900px){
  .primary-nav{ display:none; }
  .menu-toggle{ display:inline-flex; }
}

/* mobile nav overlay */
.mobile-nav{
  position:fixed; inset:0; z-index:300; background:var(--navy-950); color:var(--white);
  flex-direction:column; padding-top:20px; overflow-y:auto;
}
.mobile-nav[hidden]{ display:none; }
.mobile-nav:not([hidden]){ display:flex; }
.mobile-nav-head{ display:flex; flex-direction:column; gap:16px; width:100%; padding-block:8px 28px; }
.mobile-nav-head-row{ display:flex; align-items:center; justify-content:space-between; width:100%; }
.mobile-nav-head .menu-toggle{ color:var(--white); }
.lang-switch-mobile .lang-btn{ width:30px; height:21px; border-color:var(--line-on-dark-strong); }
.lang-switch-mobile .lang-btn.is-active{ border-color:var(--lime-400); }
.mobile-nav-list{ display:flex; flex-direction:column; gap:4px; flex:1; }
.mobile-nav-list a{ font-family:var(--font-display); font-weight:700; font-size:2rem; padding-block:14px; border-bottom:1px solid var(--line-on-dark); display:block; }
.mobile-nav-foot{ display:flex; align-items:center; justify-content:center; padding-block:24px 32px; border-top:1px solid var(--line-on-dark); margin-top:auto; }

/* =========================================================
   HERO
   ========================================================= */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; background:var(--navy-950); }
.hero-media{
  position:absolute; left:0; right:0; top:-10%; bottom:-10%; overflow:hidden; will-change:transform;
}
.hero-photo{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:62% 30%;
  transform:scale(1.06); animation:heroPhotoSettle 5s cubic-bezier(.16,1,.3,1) both;
}
#heroVideo{ object-position:center 45%; background:var(--navy-950); }
@media (max-width:640px){
  /* Mobile crops to a narrow vertical slice of the 16:9 source; bias right
     to keep the welder and the spark shower in frame together. */
  #heroVideo{ object-position:78% 45%; }
}
@keyframes heroPhotoSettle{ to{ transform:scale(1); } }
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(11,22,38,.72) 0%, rgba(11,22,38,.18) 32%, rgba(11,22,38,.28) 60%, rgba(11,22,38,.92) 100%),
    linear-gradient(90deg, rgba(11,22,38,.88) 0%, rgba(11,22,38,.35) 46%, rgba(11,22,38,.08) 68%);
}
.hero-grid{
  position:absolute; inset:0;
  background-image:repeating-linear-gradient(0deg, var(--line-on-dark) 0 1px, transparent 1px 64px), repeating-linear-gradient(90deg, var(--line-on-dark) 0 1px, transparent 1px 64px);
  opacity:.22;
}
.hero-content{ position:relative; z-index:1; color:var(--white); padding-block:120px 96px; }
.hero-headline{
  font-family:var(--font-display); font-weight:800; letter-spacing:-.01em;
  font-size:clamp(2.4rem, 1.55rem + 4.3vw, 5.2rem); line-height:.98; max-width:16ch;
}
.hero-headline .hl{ color:var(--lime-400); }

/* typewriter cursor, appended after the segment currently being typed */
.type-cursor{
  display:inline-block; width:.06em; height:.85em; background:var(--lime-400);
  margin-left:.03em; vertical-align:-.05em; animation:cursorBlink .9s steps(1) infinite;
}
.type-cursor.is-done{ animation:cursorBlink .9s steps(1) 2, cursorFade .3s var(--ease) .9s both; }
@keyframes cursorBlink{ 50%{ opacity:0; } }
@keyframes cursorFade{ to{ opacity:0; } }

.hero-sub{
  margin-top:22px; font-size:clamp(1rem,.9rem + .4vw,1.2rem); max-width:46ch; color:var(--paper-100);
  opacity:0; transform:translateY(10px); transition:opacity .6s var(--ease), transform .6s var(--ease);
}
.hero-credibility{
  margin-top:12px; font-size:.72rem; letter-spacing:.08em; color:var(--paper-100); opacity:0;
  transform:translateY(10px); transition:opacity .6s var(--ease) .08s, transform .6s var(--ease) .08s;
}
.hero-content.is-typed .hero-credibility{ opacity:.7; transform:translateY(0); }
.hero-row{
  margin-top:40px; display:flex; align-items:center; gap:40px; flex-wrap:wrap;
  opacity:0; transform:translateY(10px); transition:opacity .6s var(--ease) .15s, transform .6s var(--ease) .15s;
}
.hero-content.is-typed .hero-sub, .hero-content.is-typed .hero-row{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion:reduce){
  .hero-photo{ animation:none; transform:none; }
  .type-cursor{ display:none; }
  .hero-sub, .hero-row, .hero-credibility,
  .hero-content.is-typed .hero-sub, .hero-content.is-typed .hero-row, .hero-content.is-typed .hero-credibility{
    transition:none !important; opacity:1; transform:none;
  }
  .hero-content.is-typed .hero-credibility{ opacity:.7; }
}

.cota{ position:relative; display:flex; align-items:center; gap:14px; padding-left:18px; margin-block:6px; }
.cota-line{
  position:absolute; left:0; top:0; bottom:0; width:1px; background:var(--line-on-dark-strong);
  transform-origin:top; transform:scaleY(0);
}
.hero-content.is-typed .cota-line{ animation:cotaGrow .6s var(--ease) .85s both; }
.cota-line::before, .cota-line::after{
  content:""; position:absolute; left:-4px; width:9px; height:1px; background:var(--line-on-dark-strong);
  opacity:0;
}
.hero-content.is-typed .cota-line::before, .hero-content.is-typed .cota-line::after{
  animation:cotaTick .25s var(--ease) 1.4s both;
}
.cota-line::before{ top:0; }
.cota-line::after{ bottom:0; }
.hero-content.is-typed .cota-line::after{ animation-delay:1.5s; }
@keyframes cotaGrow{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
@keyframes cotaTick{ from{ opacity:0; transform:scaleX(0); } to{ opacity:1; transform:scaleX(1); } }
@media (prefers-reduced-motion:reduce){
  .cota-line, .cota-line::before, .cota-line::after,
  .hero-content.is-typed .cota-line, .hero-content.is-typed .cota-line::before, .hero-content.is-typed .cota-line::after{
    animation:none !important; opacity:1; transform:none;
  }
}
.cota-value{ font-size:2.6rem; font-weight:700; color:var(--lime-400); line-height:1; }
.cota-label{ font-size:.68rem; letter-spacing:.1em; color:var(--paper-100); line-height:1.3; }

.scroll-cue{
  position:absolute; left:24px; bottom:28px; z-index:1; color:var(--white); display:flex; align-items:center; gap:8px;
  font-size:.68rem; letter-spacing:.16em;
}
.scroll-cue .icon{ width:1.1em; height:1.1em; animation:cueDown 1.8s var(--ease) infinite; }
@keyframes cueDown{ 0%,100%{ transform:translateY(0); opacity:.6; } 50%{ transform:translateY(6px); opacity:1; } }
@media (max-width:720px){ .scroll-cue{ display:none; } }

/* =========================================================
   ABOUT
   ========================================================= */
.about{ padding-block:80px; }
.about-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; }
.about-head h2{ position:sticky; top:calc(var(--header-h) + 24px); }
.about-body .lede{ font-size:clamp(1.15rem,1rem + .6vw,1.5rem); font-weight:600; color:var(--navy-900); max-width:44ch; }
.about-body p:not(.lede){ margin-top:18px; max-width:56ch; color:var(--ink-700); }

.stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; padding-top:28px; border-top:1px solid var(--line-on-light); }
.stat{ display:flex; flex-direction:column; gap:8px; }
.stat dt{ font-size:.7rem; color:var(--lime-600); }
.stat dd{ font-size:.86rem; color:var(--ink-700); }
.stat-num{ display:block; font-size:1.9rem; font-weight:700; color:var(--navy-900); }

@media (max-width:900px){
  .about-grid{ grid-template-columns:1fr; gap:36px; }
  .about-head h2{ position:static; }
  .stat-row{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:720px){ .about{ padding-block:56px; } }

/* =========================================================
   RESOLVE — "O que sua indústria precisa resolver?"
   Same flat hairline-grid grammar as SSMAQ (icon, h3, p),
   reused rather than inventing a new card style.
   ========================================================= */
.resolve{ padding-block:80px; background:var(--navy-950); color:var(--white); }
.resolve h2{ color:var(--white); }
.resolve .section-sub{ color:var(--paper-100); }

.resolve-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-on-dark); border:1px solid var(--line-on-dark); margin-top:8px; }
.resolve-item{
  position:relative; overflow:hidden;
  background:var(--navy-950); padding:32px 24px;
  opacity:0; transform:translateY(14px); transition:opacity .5s var(--ease), transform .5s var(--ease), background-color .25s var(--ease);
}
.resolve-grid.is-visible .resolve-item{ opacity:1; transform:translateY(0); }
.resolve-grid .resolve-item:nth-child(1){ transition-delay:0s; } .resolve-grid .resolve-item:nth-child(2){ transition-delay:.05s; }
.resolve-grid .resolve-item:nth-child(3){ transition-delay:.1s; } .resolve-grid .resolve-item:nth-child(4){ transition-delay:.15s; }
.resolve-grid .resolve-item:nth-child(5){ transition-delay:.2s; } .resolve-grid .resolve-item:nth-child(6){ transition-delay:.25s; }
.resolve-item:hover{ background:var(--navy-900); }
.resolve-item::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(166,204,59,.22), transparent 62%);
  opacity:0; transition:opacity .3s var(--ease);
}
.resolve-item:hover::before{ opacity:1; }
.resolve-item > *{ position:relative; z-index:1; }
.resolve-item .icon{ width:2.2rem; height:2.2rem; color:var(--lime-400); transition:transform .3s var(--ease); }
.resolve-item:hover .icon{ transform:scale(1.15); }
.resolve-item h3{ font-family:var(--font-body); font-weight:700; font-size:1.2rem; color:var(--white); margin-top:18px; }
.resolve-item p{ margin-top:8px; font-size:.88rem; color:var(--paper-100); }

@media (max-width:900px){ .resolve-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .resolve{ padding-block:56px; } .resolve-grid{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){
  .resolve-item{ opacity:1; transform:none; transition:background-color .2s; }
  .resolve-item:hover .icon{ transform:none; }
}

/* =========================================================
   WHY — "Por que contratar a GME?" A small inline mono number
   prefixes each heading — deliberately NOT the pillar-num-row /
   pillar-rule module-number component (reserved for sequences
   with real order information: the 5 specialties, mobile menu).
   This list sits right above Especialidades and reusing the same
   large-numeral treatment for two different "01-04"/"01-05" sequences
   back to back read as one continuing list, not two.
   ========================================================= */
.why{ padding-block:80px; background:var(--paper-50); }
.why-grid{ margin-top:8px; display:grid; grid-template-columns:1fr 1fr; gap:56px 64px; }
.why-num{ display:inline-block; margin-right:10px; font-size:.78rem; font-weight:700; letter-spacing:.04em; color:var(--lime-600); vertical-align:.1em; }
.why-item p{ margin-top:12px; color:var(--ink-700); max-width:44ch; }

@media (max-width:720px){
  .why{ padding-block:56px; }
  .why-grid{ grid-template-columns:1fr; gap:40px; }
}

/* =========================================================
   PILLARS / ESPECIALIDADES
   ========================================================= */
.pillars{ position:relative; padding-block:80px 40px; background:var(--paper-50); }
.pillars > .container{ position:relative; z-index:1; }
.pillar-list{ position:relative; z-index:1; }

.pillar{ padding-block:56px; border-top:1px solid var(--line-on-light); }
.pillar-grid{ display:grid; grid-template-columns:.95fr 1.05fr; gap:64px; align-items:center; }
.pillar-alt .pillar-grid{ grid-template-columns:1.05fr .95fr; }
.pillar-alt .pillar-text{ order:2; }
.pillar-alt .pillar-photo{ order:1; }

.pillar-num-row{ display:flex; align-items:center; gap:16px; margin-bottom:18px; }
.pillar-num{ font-size:2.6rem; font-weight:700; color:var(--navy-800); line-height:1; }
.pillar-rule{ height:1px; flex:1; max-width:64px; background:var(--lime-500); transform:scaleX(0); transform-origin:left; transition:transform .8s var(--ease); }
.is-visible .pillar-rule{ transform:scaleX(1); }
.icon-pillar{ width:2rem; height:2rem; color:var(--lime-600); }

.pillar-text p{ margin-top:16px; color:var(--ink-700); max-width:48ch; }

.pillar-photo{ overflow:hidden; border-radius:2px; aspect-ratio:3/4; }
.pillar-photo img{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.1); transition:transform 1.1s var(--ease);
}
.pillar.is-visible .pillar-photo img{ transform:scale(1); }

@media (max-width:860px){
  .pillar-grid, .pillar-alt .pillar-grid{ grid-template-columns:1fr; gap:28px; }
  .pillar-alt .pillar-text, .pillar-alt .pillar-photo{ order:initial; }
  .pillar{ padding-block:40px; }
}

@media (prefers-reduced-motion:reduce){
  .pillar-photo img{ transform:none; transition:none; }
}

/* Pillar rail — sticky vertical index, desktop only */
.pillar-rail{
  position:fixed; right:28px; top:50%; transform:translateY(-50%); z-index:150;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  opacity:0; pointer-events:none; transition:opacity .4s var(--ease);
}
.pillar-rail.is-visible{ opacity:1; pointer-events:auto; }
.pillar-rail-track{
  position:absolute; left:50%; top:4px; bottom:4px; width:1px; background:var(--line-on-light-strong);
  transform:translateX(-50%); z-index:-1;
}
.pillar-rail-item{
  display:flex; align-items:center; justify-content:center; width:34px; height:34px;
}
.pillar-rail-num{
  font-size:.68rem; font-weight:600; color:var(--ink-500); background:var(--paper-50);
  padding:3px 5px; transition:color .25s var(--ease), transform .25s var(--ease);
}
.pillar-rail-item.is-active .pillar-rail-num{ color:var(--lime-600); transform:scale(1.3); }
.pillar-rail-item:hover .pillar-rail-num{ color:var(--navy-800); }

@media (max-width:1180px){ .pillar-rail{ display:none; } }
@media (prefers-reduced-motion:reduce){
  .pillar-rail{ transition:none; }
  .pillar-rail-num{ transition:none; }
}

/* =========================================================
   CTA STRIP — intermediate conversion band, reuses .btn/.btn-ghost
   ========================================================= */
.cta-strip{ padding-block:64px; background:var(--navy-950); color:var(--white); text-align:center; }
.cta-strip-compact{ padding-block:48px; border-top:1px solid var(--line-on-dark); }
.cta-strip-inner{ max-width:640px; margin-inline:auto; }
.cta-strip h2{ color:var(--white); }
.cta-strip p{ margin-top:14px; font-size:1.05rem; color:var(--paper-100); }
.cta-strip-actions{ margin-top:32px; display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; }
@media (max-width:560px){ .cta-strip{ padding-block:48px; } }

/* =========================================================
   GALLERY
   ========================================================= */
.gallery{ padding-block:80px; background:var(--navy-950); color:var(--white); }
.gallery h2{ color:var(--white); }
.gallery .section-sub{ color:var(--paper-100); }

.gallery-project-head{ margin-top:48px; margin-bottom:16px; }
.gallery-project-head:first-of-type{ margin-top:0; }
.gallery-project-title{ margin-top:6px; font-family:var(--font-body); font-weight:700; font-size:1.15rem; color:var(--white); }

.gallery-grid{
  margin-top:8px; display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; gap:4px;
}
.g-item{
  position:relative; overflow:hidden; grid-row:span 2; cursor:pointer;
  opacity:0; transform:scale(.97); transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.g-item.is-visible{ opacity:1; transform:scale(1); }
.gallery-grid .g-item:nth-child(1){ transition-delay:0s; }
.gallery-grid .g-item:nth-child(2){ transition-delay:.05s; }
.gallery-grid .g-item:nth-child(3){ transition-delay:.1s; }
.gallery-grid .g-item:nth-child(4){ transition-delay:.15s; }
.gallery-grid .g-item:nth-child(5){ transition-delay:.2s; }
.gallery-grid .g-item:nth-child(6){ transition-delay:.25s; }
.gallery-grid .g-item:nth-child(7){ transition-delay:.3s; }
.g-item.g-tall{ grid-row:span 3; }
.g-item.g-wide{ grid-column:span 2; grid-row:span 2; }
.g-item{ perspective:900px; }
.g-item img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); will-change:transform; }
.g-item:focus-visible img{ transform:scale(1.05); }
.g-item figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:16px 14px 12px;
  font-size:.62rem; letter-spacing:.08em; color:var(--paper-100);
  background:linear-gradient(to top, rgba(11,22,38,.92) 0%, rgba(11,22,38,.78) 45%, rgba(11,22,38,0) 100%);
  opacity:0; transform:translateY(6px); transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.g-item:hover figcaption, .g-item:focus-visible figcaption{ opacity:1; transform:translateY(0); }
.g-item-desc{
  display:block; margin-top:4px; font-family:var(--font-body); font-weight:400;
  text-transform:none; letter-spacing:normal; font-size:.72rem; line-height:1.4; color:var(--paper-100); opacity:.9;
}
.g-item-expand{
  position:absolute; right:14px; top:14px; width:1.4rem; height:1.4rem; color:var(--white);
  opacity:0; transform:scale(.7); transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.g-item:hover .g-item-expand, .g-item:focus-visible .g-item-expand{ opacity:1; transform:scale(1); }
.g-item:focus-visible{ outline:2px solid var(--lime-500); outline-offset:-2px; }

@media (prefers-reduced-motion:reduce){
  .g-item{ opacity:1; transform:none; transition:none; }
}

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:500; flex-direction:column; align-items:center; justify-content:center;
}
.lightbox[hidden]{ display:none; }
.lightbox:not([hidden]){ display:flex; }
.lightbox-backdrop{ position:absolute; inset:0; background:rgba(11,22,38,.94); animation:lbFade .25s var(--ease) both; }
.lightbox-figure{
  position:relative; z-index:1; max-width:min(92vw, 1100px); max-height:82vh;
  display:flex; flex-direction:column; align-items:center; gap:14px;
  animation:lbIn .3s var(--ease) both;
}
.lightbox-img{ max-width:100%; max-height:74vh; width:auto; height:auto; object-fit:contain; }
.lightbox-caption{ font-size:.68rem; letter-spacing:.1em; color:var(--paper-100); text-align:center; }
.lightbox-caption-desc{ margin-top:8px; font-size:.88rem; color:var(--paper-100); opacity:.85; text-align:center; max-width:56ch; margin-inline:auto; }
.lightbox-close{
  position:absolute; top:20px; right:20px; z-index:2; width:44px; height:44px;
  display:flex; align-items:center; justify-content:center; color:var(--white);
  border:1px solid var(--line-on-dark-strong); transition:background-color .2s var(--ease);
}
.lightbox-close:hover{ background:var(--line-on-dark); }
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:48px; height:48px;
  display:flex; align-items:center; justify-content:center; color:var(--white);
  border:1px solid var(--line-on-dark-strong); transition:background-color .2s var(--ease), border-color .2s var(--ease);
}
.lightbox-nav:hover{ background:var(--line-on-dark); border-color:var(--lime-500); }
.lightbox-prev{ left:20px; }
.lightbox-next{ right:20px; }
@keyframes lbFade{ from{ opacity:0; } }
@keyframes lbIn{ from{ opacity:0; transform:scale(.96) translateY(10px); } }

@media (max-width:720px){
  .lightbox-nav{ width:40px; height:40px; }
  .lightbox-prev{ left:8px; }
  .lightbox-next{ right:8px; }
  .lightbox-close{ top:12px; right:12px; }
}
@media (prefers-reduced-motion:reduce){
  .lightbox-backdrop, .lightbox-figure{ animation:none; }
}

@media (max-width:900px){
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:220px; }
  .g-item.g-wide{ grid-column:span 2; }
}
@media (max-width:560px){
  .gallery{ padding-block:56px; }
  .gallery-grid{ grid-template-columns:1fr; grid-auto-rows:280px; }
  .g-item, .g-item.g-tall, .g-item.g-wide{ grid-column:span 1; grid-row:span 1; }
  .g-item figcaption{ opacity:1; transform:none; }
}

/* =========================================================
   RENTAL — equipment available for rent (Locação de Equipamentos)
   ========================================================= */
.rental{ padding-block:80px; background:var(--navy-950); color:var(--white); border-top:1px solid var(--line-on-dark); }
.rental h2{ color:var(--white); }
.rental .section-sub{ color:var(--paper-100); }

.rental-grid{ margin-top:40px; display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:center; }

.rental-photos{ display:grid; grid-template-columns:1.3fr 1fr; grid-auto-rows:1fr; gap:10px; }
.rental-photo{ overflow:hidden; border-radius:2px; border:1px solid var(--line-on-dark-strong); background:var(--navy-900); }
.rental-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.rental-photo-main{ grid-row:1 / span 2; aspect-ratio:2/3; }
.rental-photos .rental-photo:not(.rental-photo-main){ aspect-ratio:4/3; }
.rental-photo-contain img{ object-fit:contain; }

.rental-text h3{ margin-top:6px; color:var(--white); }
.rental-text p{ margin-top:16px; color:var(--paper-100); max-width:48ch; }
.rental-text .tick-list li{ color:var(--paper-100); }
.rental-text .tick-list li::before{ background:var(--lime-400); }
.rental-text .btn{ margin-top:28px; }

@media (max-width:860px){
  .rental-grid{ grid-template-columns:1fr; gap:32px; }
  .rental-photos{ max-width:420px; margin-inline:auto; }
}
@media (max-width:560px){ .rental{ padding-block:56px; } }

/* =========================================================
   PORTFOLIO PDF — download promo. Replaced the earlier
   "Casos de campo" placeholder section outright (client request).
   ========================================================= */
.portfolio-pdf{ padding-block:72px; background:var(--navy-950); color:var(--white); }
.portfolio-pdf h2{ color:var(--white); }
.portfolio-pdf .section-sub{ color:var(--paper-100); margin-top:14px; max-width:56ch; }
.portfolio-pdf-text .btn{ margin-top:24px; }

@media (max-width:560px){ .portfolio-pdf{ padding-block:56px; } }

/* =========================================================
   SEGMENTS
   ========================================================= */
.segments{ padding-block:80px; background:var(--paper-100); }
.segment-grid{
  display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line-on-light-strong);
  border:1px solid var(--line-on-light-strong); margin-top:8px;
}
.segment-grid li{
  position:relative; overflow:hidden;
  background:var(--paper-100); padding:28px 16px; display:flex; flex-direction:column; align-items:center; gap:14px;
  text-align:center; font-size:.82rem; font-weight:600; color:var(--navy-900);
  opacity:0; transform:translateY(12px); transition:opacity .5s var(--ease), transform .5s var(--ease), background-color .2s var(--ease);
}
.segment-grid.is-visible li{ opacity:1; transform:translateY(0); }
.segment-grid li:nth-child(1){ transition-delay:0s; } .segment-grid li:nth-child(2){ transition-delay:.05s; }
.segment-grid li:nth-child(3){ transition-delay:.1s; } .segment-grid li:nth-child(4){ transition-delay:.15s; }
.segment-grid li:nth-child(5){ transition-delay:.2s; } .segment-grid li:nth-child(6){ transition-delay:.25s; }
.segment-grid li:hover{ background:var(--paper-50); }
.segment-grid li::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(138,174,34,.16), transparent 62%);
  opacity:0; transition:opacity .3s var(--ease);
}
.segment-grid li:hover::before{ opacity:1; }
.segment-grid li > *{ position:relative; z-index:1; }
.segment-grid .icon{ width:2rem; height:2rem; color:var(--lime-600); transition:transform .3s var(--ease); }
.segment-grid li:hover .icon{ transform:scale(1.15) rotate(-4deg); }

@media (max-width:900px){ .segment-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:520px){ .segment-grid{ grid-template-columns:repeat(2,1fr); } .segments{ padding-block:56px; } }
@media (prefers-reduced-motion:reduce){
  .segment-grid li{ opacity:1; transform:none; transition:background-color .2s; }
  .segment-grid li:hover .icon{ transform:none; }
}

/* =========================================================
   SSMAQ
   ========================================================= */
.ssmaq{ position:relative; padding-block:80px; background:var(--navy-950); color:var(--white); overflow:hidden; }
.ssmaq > .container{ position:relative; z-index:1; }
.ssmaq h2{ color:var(--white); }
.ssmaq .section-sub{ color:var(--paper-100); }

.ssmaq-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-on-dark); border:1px solid var(--line-on-dark); margin-top:8px; }
.ssmaq-item{
  position:relative; overflow:hidden;
  background:var(--navy-950); padding:32px 24px;
  opacity:0; transform:translateY(14px); transition:opacity .5s var(--ease), transform .5s var(--ease), background-color .25s var(--ease);
}
.ssmaq-grid.is-visible .ssmaq-item{ opacity:1; transform:translateY(0); }
.ssmaq-grid .ssmaq-item:nth-child(1){ transition-delay:0s; } .ssmaq-grid .ssmaq-item:nth-child(2){ transition-delay:.08s; }
.ssmaq-grid .ssmaq-item:nth-child(3){ transition-delay:.16s; } .ssmaq-grid .ssmaq-item:nth-child(4){ transition-delay:.24s; }
.ssmaq-item:hover{ background:var(--navy-900); }
.ssmaq-item::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(166,204,59,.22), transparent 62%);
  opacity:0; transition:opacity .3s var(--ease);
}
.ssmaq-item:hover::before{ opacity:1; }
.ssmaq-item > *{ position:relative; z-index:1; }
.ssmaq-item .icon{ width:2.2rem; height:2.2rem; color:var(--lime-400); transition:transform .3s var(--ease); }
.ssmaq-item:hover .icon{ transform:scale(1.15); }
.ssmaq-item h3{ font-family:var(--font-mono); font-size:.78rem; letter-spacing:.08em; color:var(--white); margin-top:18px; font-weight:700; }
.ssmaq-item p{ margin-top:10px; font-size:.88rem; color:var(--paper-100); }

.differentials{ margin-top:56px; padding-top:32px; border-top:1px solid var(--line-on-dark); }
.differentials-title{ color:var(--white); }
.differentials .tick-list li{ color:var(--paper-100); }
.differentials .tick-list li::before{ background:var(--lime-400); }

.differential-highlight{ position:relative; padding-left:22px; margin-top:18px; margin-bottom:20px; }
.differential-highlight::before{ content:""; position:absolute; left:0; top:2px; bottom:2px; width:2px; background:var(--lime-400); }
.differential-highlight h4{ font-family:var(--font-display); font-weight:800; font-size:1.2rem; letter-spacing:-.01em; color:var(--white); }
.differential-highlight p{ margin-top:8px; font-size:.92rem; color:var(--paper-100); max-width:52ch; }

/* Diferenciais orbit — radial diagram (desktop) collapses to a plain
   stacked list (mobile/tablet), same markup either way. */
.orbit{ position:relative; width:100%; max-width:520px; aspect-ratio:1; margin:24px auto 0; }
.orbit-center{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2;
  width:26%; aspect-ratio:1; border-radius:50%; border:1px solid var(--line-on-dark-strong);
  background:var(--navy-950); display:flex; align-items:center; justify-content:center; padding:4.25%;
}
.orbit-center img{ width:100%; height:auto; }
.orbit-lines{ position:absolute; inset:0; z-index:1; }
.orbit-lines line{ stroke:var(--lime-400); stroke-width:.35; stroke-dasharray:1.4 1.6; opacity:.4; }
.orbit-pulse{ fill:var(--lime-400); opacity:.9; }
.orbit-list{ position:absolute; inset:0; z-index:2; list-style:none; }
.orbit-item{
  position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:10px;
  width:30%; text-align:center;
  opacity:0; transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.orbit-list.is-visible .orbit-item{ opacity:1; }
.orbit-item:nth-child(1){ transition-delay:0s; } .orbit-item:nth-child(2){ transition-delay:.08s; }
.orbit-item:nth-child(3){ transition-delay:.16s; } .orbit-item:nth-child(4){ transition-delay:.24s; }
.orbit-item:nth-child(5){ transition-delay:.32s; } .orbit-item:nth-child(6){ transition-delay:.4s; }
.orbit-item:nth-child(7){ transition-delay:.48s; }
.orbit-icon{
  flex-shrink:0; width:56px; height:56px; border-radius:50%; border:1px solid var(--line-on-dark-strong);
  background:var(--navy-950); display:flex; align-items:center; justify-content:center; transition:border-color .2s var(--ease), transform .2s var(--ease);
}
.orbit-item:hover .orbit-icon{ border-color:var(--lime-500); transform:scale(1.06); }
.orbit-icon .icon{ width:1.6rem; height:1.6rem; color:var(--lime-400); }
.orbit-label{ font-size:.76rem; font-weight:600; color:var(--paper-100); line-height:1.3; }

@media (max-width:900px){ .ssmaq-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:768px){
  .orbit{ margin-top:24px; }
  .orbit-icon{ width:46px; height:46px; }
  .orbit-icon .icon{ width:1.3rem; height:1.3rem; }
  .orbit-label{ font-size:.66rem; }
}
@media (max-width:560px){
  .ssmaq{ padding-block:56px; }
  .ssmaq-grid{ grid-template-columns:1fr; }
  .differentials{ margin-top:40px; padding-top:24px; }
  .orbit{ max-width:320px; }
  .orbit-item{ width:34%; gap:6px; }
  .orbit-icon{ width:38px; height:38px; }
  .orbit-icon .icon{ width:1.05rem; height:1.05rem; }
  .orbit-label{ font-size:.6rem; line-height:1.2; }
}
@media (prefers-reduced-motion:reduce){
  .ssmaq-item{ opacity:1; transform:none; transition:background-color .2s; }
  .ssmaq-item:hover .icon{ transform:none; }
  .orbit-item{ opacity:1; transition:none; }
  .orbit-pulse{ display:none; }
}

/* =========================================================
   CLIENTS — logo marquee
   ========================================================= */
.clients{ padding-block:48px 56px; background:var(--paper-50); border-top:1px solid var(--line-on-light); border-bottom:1px solid var(--line-on-light); }
.clients-title{ text-align:center; font-family:var(--font-mono); font-size:.68rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-500); margin-bottom:32px; }

.marquee{
  position:relative; overflow:hidden;
  mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent);
  -webkit-mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}
.marquee-track{ display:flex; width:max-content; animation:marqueeScroll 42s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }

.client-logos{ display:flex; align-items:center; gap:72px; padding-inline:36px; flex-shrink:0; }
.client-logos li{ flex-shrink:0; display:flex; align-items:center; height:40px; }
.client-logos img{
  display:block; max-height:40px; max-width:160px; width:auto; height:auto;
  opacity:.55; transition:opacity .25s var(--ease);
}
.client-logos li:hover img{ opacity:1; }

@keyframes marqueeScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

@media (max-width:720px){
  .client-logos{ gap:48px; }
  .client-logos img{ max-height:32px; max-width:120px; }
}

@media (prefers-reduced-motion:reduce){
  .marquee{ mask-image:none; -webkit-mask-image:none; }
  .marquee-track{ animation:none; flex-wrap:wrap; width:100%; }
  .marquee-track .client-logos:last-of-type{ display:none; }
  .client-logos{ flex-wrap:wrap; justify-content:center; padding-inline:0; }
}

/* =========================================================
   MAP — "Presença em campo". Real simplified South America
   borders (Natural Earth 110m, tolerance-simplified for a
   low-poly technical-drafting look), not a stock map image.
   ========================================================= */
.map-section{ padding-block:64px; background:var(--navy-950); color:var(--white); }
.map-section h2{ color:var(--white); }
.map-section .section-sub{ color:var(--paper-100); }

.map-wrap{ position:relative; max-width:320px; margin:32px auto 0; }
.map-svg{ width:100%; height:auto; display:block; }
.map-country{ fill:none; stroke:var(--line-on-dark-strong); stroke-width:1.2; stroke-linejoin:round; }
.map-country.map-brazil{ stroke:var(--lime-500); stroke-width:1.6; fill:var(--lime-500); fill-opacity:.08; }

.map-route{
  fill:none; stroke:var(--lime-400); stroke-width:1; stroke-dasharray:3 4;
  opacity:0; transition:opacity .6s var(--ease) .3s;
}
.map-wrap.is-visible .map-route{ opacity:.45; }

.map-plane{ opacity:0; transition:opacity .6s var(--ease) .5s; }
.map-wrap.is-visible .map-plane{ opacity:1; }
.map-plane-glyph{ fill:var(--lime-400); }

.map-marker{ opacity:0; transition:opacity .5s var(--ease); }
.map-wrap.is-visible .map-marker{ opacity:1; }
.map-marker-dot{ fill:var(--lime-400); }
.map-marker-hq .map-marker-dot{ fill:var(--lime-400); }
.map-marker-pulse{
  fill:none; stroke:var(--lime-400); stroke-width:1.4;
  transform-origin:center; transform-box:fill-box;
  animation:mapPulse 2.4s var(--ease) infinite;
}
.map-marker-hq .map-marker-pulse{ animation-delay:0s; }
.map-marker:nth-of-type(2) .map-marker-pulse{ animation-delay:.7s; }
.map-marker:nth-of-type(3) .map-marker-pulse{ animation-delay:1.4s; }
@keyframes mapPulse{
  0%{ transform:scale(1); opacity:.85; }
  100%{ transform:scale(4.5); opacity:0; }
}

.map-label{
  position:absolute; transform:translate(-50%,-135%);
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.06em; color:var(--paper-100);
  white-space:nowrap; text-align:center; opacity:0; transition:opacity .5s var(--ease) .2s; pointer-events:none;
}
.map-wrap.is-visible .map-label{ opacity:.85; }
.map-label-hq{ color:var(--lime-400); font-weight:700; opacity:0; }
.map-wrap.is-visible .map-label-hq{ opacity:1; }
/* Chile/Argentina markers sit close together at this scale — branch their
   labels sideways (left/right of the dot) instead of stacking both above it. */
.map-label-left{ transform:translate(-100%,-50%); text-align:right; margin-left:-10px; }
.map-label-right{ transform:translate(0,-50%); text-align:left; margin-left:10px; }

@media (max-width:560px){
  .map-label{ white-space:normal; max-width:96px; line-height:1.35; }
  .map-label-left, .map-label-right{ max-width:88px; }
}
@media (prefers-reduced-motion:reduce){
  .map-marker-pulse{ animation:none; opacity:0; }
  .map-plane{ display:none; }
}

/* =========================================================
   CONTACT
   ========================================================= */
.contact{ position:relative; padding-block:80px; background:var(--navy-950); color:var(--white); overflow:hidden; }
.contact > .container{ position:relative; z-index:1; }
.contact h2{ color:var(--white); }
.contact .section-sub{ color:var(--paper-100); }
.contact-lede{ margin-top:18px; font-size:1.05rem; font-weight:600; color:var(--white); max-width:44ch; }
.contact-note{ margin-top:10px; font-size:.92rem; color:var(--paper-100); opacity:.8; max-width:48ch; }
.contact-cta-row{ margin-top:28px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }

.contact-grid{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:72px; }

.contact-list{ margin-top:40px; display:grid; gap:22px; }
.contact-list > div{ display:flex; gap:16px; align-items:flex-start; }
.contact-list dt{ color:var(--lime-400); flex-shrink:0; padding-top:2px; }
.contact-list dd{ font-size:.98rem; color:var(--paper-100); line-height:1.6; }
.contact-list a:hover{ color:var(--lime-400); }
.contact-list .sep{ margin-inline:6px; color:var(--line-on-dark-strong); }

.route-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.route-btn{
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 14px; border:1px solid var(--line-on-dark-strong); border-radius:3px;
  font-size:.76rem; font-weight:600; letter-spacing:.04em; color:var(--paper-100);
  transition:border-color .2s var(--ease), color .2s var(--ease), background-color .2s var(--ease);
}
.route-btn .icon{ width:1.1em; height:1.1em; }
.route-btn:hover{ border-color:var(--lime-500); color:var(--lime-400); background:var(--line-on-dark); }

.contact-form{ background:var(--navy-900); border:1px solid var(--line-on-dark); padding:40px; border-radius:2px; }
.form-credibility{ font-size:.68rem; letter-spacing:.08em; color:var(--paper-100); opacity:.65; }
.form-group-label{ margin-top:28px; padding-top:24px; border-top:1px solid var(--line-on-dark); color:var(--paper-100); opacity:.65; }
.field{ margin-top:20px; }
.form-group-label + .field{ margin-top:16px; }
.field-row{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; }
.field-row .field{ margin-top:20px; }
.form-group-label + .field-row .field{ margin-top:16px; }
label{ display:block; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--paper-100); margin-bottom:8px; transition:color .2s var(--ease); }
.field:focus-within label{ color:var(--lime-400); }
input,select,textarea{
  width:100%; min-width:0; background:transparent; border:0; border-bottom:1px solid var(--line-on-dark-strong);
  color:var(--white); padding-block:10px; font-size:.98rem; transition:border-color .25s var(--ease);
}
select{ appearance:none; background:transparent; }
select option{ color:var(--ink-900); }
input:focus,select:focus,textarea:focus{ outline:none; border-color:var(--lime-500); }
textarea{ resize:vertical; }

.field-consent{ display:flex; align-items:flex-start; gap:11px; margin-top:24px; }
.field-consent input[type="checkbox"]{
  width:18px; height:18px; flex-shrink:0; margin-top:3px; accent-color:var(--lime-500); cursor:pointer;
}
.field-consent label{
  flex:1; margin-bottom:0; text-transform:none; letter-spacing:normal;
  font-size:.82rem; font-weight:400; color:var(--paper-100); line-height:1.55; cursor:pointer;
}
.field-consent a{ color:var(--lime-400); text-decoration:underline; text-underline-offset:2px; }
.field-consent a:hover{ color:var(--lime-100); }

.contact-form .btn{ margin-top:32px; width:100%; }
.form-note{ margin-top:14px; font-size:.78rem; color:var(--paper-100); opacity:.65; }

@media (max-width:900px){
  .contact-grid{ grid-template-columns:minmax(0,1fr); gap:48px; }
  .field-row{ grid-template-columns:minmax(0,1fr); }
  .contact-form{ padding:28px; }
}
@media (max-width:560px){ .contact{ padding-block:56px; } }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--navy-950); color:var(--paper-100); }
.footer-top{
  padding-block:80px 56px; display:grid; grid-template-columns:1.4fr .8fr .9fr .8fr; gap:48px;
  border-bottom:1px solid var(--line-on-dark);
}
.footer-brand img{ height:56px; width:auto; }
.footer-brand p{ margin-top:18px; font-size:.9rem; max-width:32ch; color:var(--paper-100); opacity:.65; }

.footer-nav ul{ margin-top:16px; display:grid; gap:10px; }
.footer-nav a:hover, .footer-contact a:hover, .footer-social a:hover{ color:var(--lime-400); }

.footer-contact p{ margin-top:12px; font-size:.9rem; }
.footer-contact p:first-of-type{ margin-top:16px; }

.footer-social{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.footer-social a{ display:flex; align-items:center; gap:8px; font-size:.9rem; margin-top:2px; }
.footer-social .icon{ width:1.2em; height:1.2em; color:var(--lime-400); }

.footer-bottom{ padding-block:22px; font-size:.8rem; color:var(--paper-100); opacity:.65; display:grid; gap:6px; }
.footer-legal{ letter-spacing:.01em; }

@media (max-width:900px){
  .footer-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .footer-top{ grid-template-columns:1fr; padding-block:56px 40px; gap:36px; }
}

/* =========================================================
   MOTION — the one signature moment: module numbers draw
   their underline in as each pillar enters view (see .pillar-rule)
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  .pillar-rule{ transform:scaleX(1); transition:none; }
}

/* =========================================================
   LEGAL PAGE — Read mode: privacidade.html. Dense document,
   no kickers/eyebrows, h2 re-scaled down from the marketing
   scale so a text-heavy page keeps a working rhythm.
   ========================================================= */
.legal-page{ padding-block:160px 120px; max-width:760px; }
.legal-page h1{ font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem); color:var(--navy-900); }
.legal-page .legal-updated{ margin-top:14px; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.04em; color:var(--ink-500); }
.legal-page .legal-lede{ margin-top:28px; font-size:clamp(1.15rem,1rem + .6vw,1.5rem); font-weight:600; color:var(--navy-900); max-width:60ch; }
.legal-page section{ margin-top:48px; padding-top:32px; border-top:1px solid var(--line-on-light); }
.legal-page h2{ font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem); color:var(--navy-900); }
.legal-page p{ margin-top:14px; color:var(--ink-700); max-width:66ch; line-height:1.65; }
.legal-page p:first-of-type{ margin-top:16px; }
.legal-page .tick-list{ margin-top:18px; display:grid; gap:10px; max-width:66ch; }
.legal-page strong{ color:var(--navy-900); }
.legal-page a{ color:var(--lime-600); text-decoration:underline; text-underline-offset:2px; }
.legal-page a:hover{ color:var(--lime-500); }
.legal-page .legal-back{ margin-top:56px; }
@media (max-width:640px){
  .legal-page{ padding-block:130px 80px; }
}
