/* ============================================================
   EMPREENDIMENTOS AIZEN — style.css
   Industrial premium: preto #111 + off-white #F4F3EC + amarelo #F2B90D
   ============================================================ */

:root {
  --black: #070707;
  --black-2: #0d0d0a;
  --black-3: #12110d;
  --offwhite: #f3eed7;
  --offwhite-2: #e2d9b8;
  --yellow: #d9c782;
  --yellow-2: #b5b562;
  --gray: #9b9171;
  --gray-light: #d8cfb1;

  --font-display: 'Clash Display', 'Cabinet Grotesk', 'Arial Narrow', sans-serif;
  --font-body: 'Satoshi', 'Inter', system-ui, sans-serif;
  --font-mono: 'Space Grotesk', 'JetBrains Mono', ui-monospace, 'SFMono-Regular', monospace;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --tr: 220ms var(--ease-out);

  --container: 1320px;
  --pad: clamp(1.5rem, 4vw, 3rem);

  /* base-8 spacing scale */
  --s-1: 8px;   --s-2: 16px;  --s-3: 24px;  --s-4: 32px;
  --s-5: 40px;  --s-6: 48px;  --s-8: 64px;  --s-10: 80px;
  --s-12: 96px; --s-16: 128px; --s-20: 160px;

  /* consistent radii */
  --r-sm: 8px; --r: 14px; --r-lg: 20px;

  /* hairline borders (dark surfaces) */
  --bd: 1px solid rgba(255,255,255,.08);
  --bd-strong: 1px solid rgba(255,255,255,.14);
  --bd-light: 1px solid rgba(17,17,17,.10);

  /* section vertical rhythm */
  --sec-pad: clamp(6rem, 12vw, 10rem);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: auto; -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

body {
  font-family: var(--font-body);
  background: var(--offwhite);
  color: var(--black);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
  transition: background-color 0.8s var(--ease-in-out), color 0.8s var(--ease-in-out);
}
html { overflow-x: clip; }
body.is-loading { overflow: hidden; height: 100vh; }

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

/* ---------- Keyboard navigation / focus ---------- */
.skip-link {
  position: fixed; top: .75rem; left: .75rem; z-index: 1300;
  padding: .75rem 1rem; border-radius: var(--r-sm);
  background: var(--yellow); color: var(--black); font-weight: 700;
  transform: translateY(-160%); transition: transform .2s var(--ease-out);
}
.skip-link:focus { transform: translateY(0); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--yellow); outline-offset: 4px;
}
:where(input, select, textarea):focus-visible { outline: none; }

/* ---------- Internal page transition ---------- */
.page-transition {
  position: fixed; inset: 0; z-index: 1200; pointer-events: none;
  display: grid; place-items: center; background: var(--yellow);
  transform: translateY(100%); will-change: transform;
}
.page-transition__mark {
  width: 48px; height: 64px; opacity: .9;
  background: var(--black);
  clip-path: polygon(50% 0, 100% 42%, 72% 42%, 72% 100%, 28% 100%, 28% 42%, 0 42%);
}
.page-transition.is-active { transform: translateY(0); transition: transform .18s var(--ease-in-out); }
body.is-transitioning, body.menu-open { overflow: hidden; }

/* ---------- Custom scrollbar (thin dark, yellow thumb) ---------- */
* { scrollbar-width: thin; scrollbar-color: var(--yellow) rgba(17,17,17,.9); }
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: #0c0c0c; }
::-webkit-scrollbar-thumb { background: var(--yellow); border-radius: 100px; border: 2px solid #0c0c0c; }
::-webkit-scrollbar-thumb:hover { background: var(--yellow-2); }
::selection { background: var(--yellow); color: var(--black); }

/* ---------- Global grain / noise overlay (fixed, subtle) ---------- */
.grain-overlay {
  position: fixed; inset: 0; z-index: 500; pointer-events: none;
  opacity: .04; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding-inline: var(--pad); }

/* ---------- Background theme by section ---------- */
body.theme-dark { background: var(--black); color: var(--offwhite); }
body.theme-light { background: var(--offwhite); color: var(--black); }

.section-dark { background: var(--black); color: var(--offwhite); position: relative; }
.section-light { background: var(--offwhite); color: var(--black); position: relative; }

/* ---------- Typography helpers ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--font-mono); font-weight: 500;
  font-size: .7rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gray); margin-bottom: 1.4rem;
}
.eyebrow::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--yellow);
  box-shadow: 0 0 0 0 rgba(242,185,13,.6); animation: eyebrow-dot 2.2s ease-out infinite;
}
@keyframes eyebrow-dot {
  0% { box-shadow: 0 0 0 0 rgba(242,185,13,.55); }
  70% { box-shadow: 0 0 0 7px rgba(242,185,13,0); }
  100% { box-shadow: 0 0 0 0 rgba(242,185,13,0); }
}
.eyebrow--light { color: var(--gray-light); }

/* mono utility for technical data / labels */
.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; letter-spacing: .01em; }

.section-title {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(2.4rem, 5.2vw, 4.6rem); line-height: 0.98;
  letter-spacing: -0.02em; text-wrap: balance;
}
.section-title--light { color: var(--offwhite); }

.hl {
  position: relative; display: inline-block; padding: 0 .12em;
  color: var(--black); z-index: 0; white-space: nowrap;
}
.hl::before {
  content: ""; position: absolute; inset: 12% -2% 8% -2%;
  background: var(--yellow); z-index: -1; transform-origin: left center;
  transform: scaleX(0);
}
.reveal-ready .hl::before { transform: scaleX(1); transition: transform .7s var(--ease-out); }

.lead { font-size: clamp(1rem, 1.3vw, 1.12rem); color: var(--gray); max-width: 46ch; margin-top: 1.2rem; line-height: 1.65; }
.section-light .lead { color: #5a5a52; }
.lead--light { color: var(--gray-light); }

.section-head { max-width: 820px; margin-bottom: clamp(3rem, 6vw, 5rem); }

/* ============================================================
   INDUSTRIAL TEXTURE LAYERS
   ============================================================ */
/* Blueprint vertical grid — 12-col hairlines on dark sections */
.section-dark { position: relative; }
.section-dark > .blueprint,
.blueprint {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  max-width: var(--container); margin-inline: auto;
  padding-inline: var(--pad);
  background-image: repeating-linear-gradient(
    to right,
    rgba(255,255,255,.035) 0 1px,
    transparent 1px calc(100% / 12)
  );
  background-clip: content-box;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
}

/* corner "+" registration marks */
.corner-marks { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.corner-marks::before, .corner-marks::after {
  content: "+"; position: absolute;
  font-family: var(--font-mono); font-size: 1rem; line-height: 1;
  color: rgba(255,255,255,.22);
}
.section-light .corner-marks::before, .section-light .corner-marks::after { color: rgba(17,17,17,.2); }
.corner-marks::before { top: 1.6rem; left: 1.6rem; }
.corner-marks::after { top: 1.6rem; right: 1.6rem; }
.corner-marks--btm::before { top: auto; bottom: 1.6rem; left: 1.6rem; }
.corner-marks--btm::after { top: auto; bottom: 1.6rem; right: 1.6rem; }

/* giant ghost section number */
.sec-ghost {
  position: absolute; z-index: 0; pointer-events: none; user-select: none;
  font-family: var(--font-display); font-weight: 700; line-height: .8;
  font-size: clamp(8rem, 22vw, 20rem);
  color: transparent !important; -webkit-text-stroke: 1.5px rgba(17,17,17,.07);
  top: 2rem; right: -.5rem; max-width: 100%;
}
.section-dark .sec-ghost { -webkit-text-stroke-color: rgba(255,255,255,.06); }
/* qualquer seção que contenha um ghost recorta o excesso e mantém o conteúdo à frente */
section:has(> .sec-ghost) { overflow: clip; }
section:has(> .sec-ghost) > .container { position: relative; z-index: 1; }

/* ruler ticks along a section edge */
.ruler {
  position: absolute; left: 0; right: 0; height: 14px; z-index: 1; pointer-events: none;
  background-image: repeating-linear-gradient(to right, rgba(255,255,255,.18) 0 1px, transparent 1px 40px);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.ruler--top { top: 0; }
.ruler--btm { bottom: 0; }
.section-light .ruler { background-image: repeating-linear-gradient(to right, rgba(17,17,17,.16) 0 1px, transparent 1px 40px); }

/* keep section content above texture */
.section-dark > .container, .section-light > .container { position: relative; z-index: 2; }
/* clip decorative overflow (ghost numbers) on textured sections — NOT on pinned processo */
.sobre, .servicos, .alcance, .depo, .contato { overflow: clip; }

/* ---------- Buttons ---------- */
.btn {
  position: relative; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  font-weight: 700; font-size: .9rem; letter-spacing: .01em;
  padding: 1rem 1.8rem; border-radius: 100px; white-space: nowrap;
  transition: color var(--tr), border-color var(--tr), transform var(--tr), box-shadow var(--tr);
  will-change: transform;
}
.btn > span, .btn { z-index: 1; }
/* arrow that slides in on hover */
.btn::after {
  content: "\2192"; display: inline-block; width: 0; overflow: hidden;
  opacity: 0; transform: translateX(-6px);
  transition: width .3s var(--ease-out), opacity .3s var(--ease-out), transform .3s var(--ease-out);
  font-weight: 500;
}
.btn:hover::after { width: 1.1em; opacity: 1; transform: translateX(0); }
/* fill layer */
.btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  transform: scaleX(0); transform-origin: left center;
  transition: transform .4s var(--ease-out);
}
.btn--solid { background: var(--yellow); color: var(--black); }
.btn--solid::before { background: var(--yellow-2); }
.btn--solid:hover { color: var(--black); box-shadow: 0 12px 34px -8px rgba(242,185,13,.55); }
.btn--solid:hover::before { transform: scaleX(1); }
.btn--ghost { background: transparent; color: var(--offwhite); border: 1px solid rgba(244,243,236,.28); }
.btn--ghost::before { background: var(--yellow); }
.btn--ghost:hover { color: var(--black); border-color: var(--yellow); }
.btn--ghost:hover::before { transform: scaleX(1); }
.btn--pill { background: var(--yellow); color: var(--black); padding: .72rem 1.4rem; font-size: .82rem; }
.btn--pill::before { background: var(--yellow-2); }
.btn--pill:hover::before { transform: scaleX(1); }
.btn--full { width: 100%; }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .6; cursor: wait; transform: none; }

/* ============ SCROLL PROGRESS (reading bar) ============ */
.scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 100%;
  background: linear-gradient(90deg, var(--yellow), var(--yellow-2));
  transform: scaleX(0); transform-origin: left;
  z-index: 200; will-change: transform;
  box-shadow: 0 0 12px rgba(242,185,13,.5);
}

/* ============ PRELOADER ============ */
.preloader {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  background: var(--black);
}
.preloader__inner { text-align: center; position: relative; z-index: 2; }
.preloader__logo svg { margin: 0 auto 1.5rem; }
.pl-arrow { stroke-dasharray: 260; stroke-dashoffset: 260; }
.preloader__count {
  font-family: var(--font-display); font-weight: 600; color: var(--offwhite);
  font-size: clamp(3rem, 12vw, 6rem); line-height: 1; letter-spacing: -.02em;
}
.preloader__pct { color: var(--yellow); font-size: .4em; margin-left: .1em; }
.preloader__word {
  margin-top: 1rem; font-size: .72rem; letter-spacing: .35em;
  color: var(--gray); text-transform: uppercase;
}
.preloader__curtain {
  position: absolute; inset: 0; background: var(--yellow); z-index: 3;
  transform: translateY(100%);
}
body:not(.is-loading) .preloader { pointer-events: none; }

/* ============ CUSTOM CURSOR ============ */
.cursor-dot, .cursor-ring {
  position: fixed; top: 0; left: 0; border-radius: 50%; z-index: 900;
  pointer-events: none; opacity: 0; will-change: transform;
  mix-blend-mode: difference;
}
.cursor-dot { width: 7px; height: 7px; background: var(--yellow); margin: -3.5px 0 0 -3.5px; }
.cursor-ring {
  width: 38px; height: 38px; border: 1.5px solid rgba(242,185,13,.7);
  margin: -19px 0 0 -19px; transition: width .25s var(--ease-out), height .25s var(--ease-out), margin .25s var(--ease-out), background .25s var(--ease-out);
}
.cursor-ring.is-hover { width: 62px; height: 62px; margin: -31px 0 0 -31px; background: rgba(242,185,13,.12); }
body.cursor-active .cursor-dot, body.cursor-active .cursor-ring { opacity: 1; }

/* ============ TOPBAR ============ */
.topbar {
  background: var(--yellow); color: var(--black);
  font-size: .78rem; font-weight: 500; position: relative; z-index: 60;
}
.topbar__inner { display: flex; align-items: center; justify-content: space-between; height: 40px; }
.topbar__contacts { display: flex; align-items: center; gap: 1.6rem; overflow: hidden; }
.topbar__item { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.topbar__item svg { opacity: .75; }
.topbar__social { display: flex; gap: .8rem; }
.topbar__social a { transition: transform var(--tr), opacity var(--tr); opacity: .8; }
.topbar__social a:hover { opacity: 1; transform: translateY(-2px); }
.topbar__social-placeholder { display: inline-flex; opacity: .5; cursor: not-allowed; }

/* ============ NAVBAR ============ */
.nav {
  position: sticky; top: 0; z-index: 80;
  background: rgba(17,17,17,.9); backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(244,243,236,.08);
  transition: transform .4s var(--ease-out), background .3s;
}
.nav__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; height: 76px; }
.brand { display: flex; align-items: center; }
.logo-svg .logo-letter { font-family: var(--font-display); font-weight: 700; font-size: 60px; fill: var(--offwhite); }
.logo-svg .logo-sub { font-family: var(--font-body); font-weight: 700; font-size: 15px; letter-spacing: 9px; fill: var(--yellow); }
.section-light .logo-svg .logo-letter { fill: var(--black); }

.nav__menu { display: flex; gap: 2rem; margin-left: auto; }
.nav__menu a {
  font-size: .9rem; font-weight: 500; color: var(--offwhite); position: relative; padding: .3rem 0;
  transition: color var(--tr);
}
.nav__menu a::after {
  content: ""; position: absolute; left: 0; bottom: -2px; width: 100%; height: 2px;
  background: var(--yellow); transform: scaleX(0); transform-origin: right; transition: transform .3s var(--ease-out);
}
.nav__menu a:hover { color: var(--yellow); }
.nav__menu a:hover::after { transform: scaleX(1); transform-origin: left; }
.nav__cta { margin-left: 1.5rem; }

.nav__toggle { display: none; flex-direction: column; gap: 5px; width: 34px; height: 34px; align-items: center; justify-content: center; }
.nav__toggle span { width: 24px; height: 2px; background: var(--offwhite); transition: transform .3s var(--ease-out), opacity .2s; }
.nav__toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav__toggle.open span:nth-child(2) { opacity: 0; }
.nav__toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============ HERO ============ */
.hero { min-height: 100vh; display: flex; align-items: center; position: relative; overflow: hidden; padding: 8rem 0 6rem; }
.hero__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.hero__img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; will-change: transform; }
.hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(17,17,17,.92) 0%, rgba(17,17,17,.7) 45%, rgba(17,17,17,.35) 100%), linear-gradient(0deg, rgba(17,17,17,.85), rgba(17,17,17,.15) 60%); }
.hero__grain { position: absolute; inset: 0; opacity: .5; background-image: radial-gradient(rgba(242,185,13,.04) 1px, transparent 1px); background-size: 4px 4px; }
.hero__content { position: relative; z-index: 2; max-width: 900px; }
.hero__title {
  font-family: var(--font-display); font-weight: 600; color: var(--offwhite);
  font-size: clamp(2.6rem, 7.5vw, 6rem); line-height: 0.98; letter-spacing: -0.02em;
  margin: .4rem 0 1.6rem;
}
.hero__title .line { display: block; overflow: hidden; }
.hero__title .word { display: inline-block; }
.hero__title .hl { color: var(--black); }
.hero__sub { color: var(--gray-light); font-size: clamp(1rem, 1.5vw, 1.25rem); max-width: 54ch; line-height: 1.6; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.2rem; }

/* Faixa de dados técnicos (mono) */
.hero__data {
  display: flex; align-items: center; flex-wrap: wrap; gap: 1.4rem;
  margin-top: 3rem; padding-top: 1.4rem;
  border-top: 1px solid rgba(244,243,236,.14);
  font-family: var(--font-mono); font-size: .74rem; letter-spacing: .04em;
  color: var(--gray-light); text-transform: uppercase;
}
.hero__data-item em { color: var(--yellow); font-style: normal; margin-right: .5rem; opacity: .9; }
.hero__data-sep { width: 4px; height: 4px; border-radius: 50%; background: rgba(244,243,236,.3); }

.hero__badge { position: absolute; right: clamp(1.5rem, 5vw, 5rem); bottom: clamp(3rem, 8vh, 6rem); z-index: 3; width: 128px; height: 128px; }
.spin-badge { position: relative; }
.spin-badge svg { animation: spin 18s linear infinite; }
.spin-badge__text { font-family: var(--font-body); font-weight: 700; font-size: 10px; letter-spacing: 1px; fill: var(--offwhite); text-transform: uppercase; }
.spin-badge__center {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 52px; height: 52px; border-radius: 50%; background: var(--yellow);
  display: flex; align-items: center; justify-content: center;
}
@keyframes spin { to { transform: rotate(360deg); } }

.hero__scroll { position: absolute; left: var(--pad); bottom: 6.4rem; z-index: 3; display: flex; flex-direction: row; align-items: center; gap: .7rem; font-family: var(--font-mono); font-size: .56rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gray-light); }
.hero__scroll span { order: -1; }
.hero__scroll-line { position: relative; width: 46px; height: 1px; background: rgba(244,243,236,.2); overflow: hidden; }
.hero__scroll-line::after { content: ""; position: absolute; left: 0; top: 0; height: 100%; width: 45%; background: linear-gradient(90deg, transparent, var(--yellow)); animation: scrolltravel 1.9s cubic-bezier(0.7,0,0.3,1) infinite; }
@keyframes scrolltravel { 0% { transform: translateX(-120%); } 60%,100% { transform: translateX(240%); } }

/* ============ SOBRE ============ */
.sobre { padding: var(--sec-pad) 0; }
.sobre__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.sobre__media { position: relative; }
.sobre__media .img-mask::after { content: ""; position: absolute; inset: 0; background: linear-gradient(150deg, rgba(242,185,13,.14), rgba(16,16,16,.28)); mix-blend-mode: multiply; pointer-events: none; }
.sobre__media .img-mask { position: relative; }
.img-mask { overflow: hidden; border-radius: var(--r); }
.img-mask img { width: 100%; height: 100%; object-fit: cover; will-change: transform; }
.sobre__media .img-mask { aspect-ratio: 4/5; }
.sobre__float {
  position: absolute; bottom: -1.5rem; right: -1.5rem; background: var(--yellow); color: var(--black);
  padding: 1.4rem 1.6rem; border-radius: var(--r); box-shadow: 0 24px 60px -18px rgba(0,0,0,.45); max-width: 230px;
}
.sobre__float-num { display: block; font-family: var(--font-display); font-weight: 700; font-size: 2.6rem; line-height: 1; }
.sobre__float-label { display: block; font-size: .78rem; font-weight: 600; margin-top: .4rem; line-height: 1.35; }

.sobre__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin: 2rem 0; }
.mini-card { background: #fff; border: 1px solid var(--offwhite-2); border-radius: var(--r); padding: 1.6rem; transition: transform var(--tr), border-color var(--tr); }
.mini-card:hover { transform: translateY(-4px); border-color: rgba(242,185,13,.55); }
.mini-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: var(--yellow); color: var(--black); margin-bottom: 1rem; }
.mini-card h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; margin-bottom: .5rem; }
.mini-card p { font-size: .9rem; color: #6a6a62; line-height: 1.55; }

.checklist { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1.5rem; margin-top: .5rem; }
.checklist li { position: relative; padding-left: 1.9rem; font-size: .92rem; font-weight: 500; }
.checklist li::before { content: "✓"; position: absolute; left: 0; top: -1px; width: 22px; height: 22px; border-radius: 50%; background: var(--black); color: var(--yellow); font-size: .72rem; display: flex; align-items: center; justify-content: center; }

/* ============ SERVIÇOS ============ */
.servicos { padding: var(--sec-pad) 0; }
.servicos__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-3); grid-auto-rows: 1fr; }
.svc-card {
  position: relative; border-radius: var(--r); overflow: hidden; background: var(--black-2);
  border: var(--bd); min-height: 400px; display: flex; flex-direction: column;
  transition: transform var(--tr), border-color var(--tr), background var(--tr); will-change: transform;
}
.svc-card::before {
  content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%;
  background: var(--yellow); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease-out); z-index: 3;
}
.svc-card:hover { transform: translateY(-6px); border-color: rgba(242,185,13,.35); background: var(--black-3); }
.svc-card:hover::before { transform: scaleX(1); }
.svc-card__media { height: 210px; overflow: hidden; position: relative; }
.svc-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16,16,16,0) 40%, rgba(23,23,15,.9)); }
.svc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease-out); filter: saturate(.85) contrast(1.05); }
.svc-card:hover .svc-card__media img { transform: scale(1.07); }
.svc-card__body { padding: 1.8rem; flex: 1; }
.svc-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--yellow); color: var(--black); margin: -3.6rem 0 1.1rem; position: relative; z-index: 2; }
.svc-card h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.35rem; color: var(--offwhite); margin-bottom: .6rem; letter-spacing: -.01em; }
.svc-card__desc { font-size: .92rem; color: var(--gray-light); line-height: 1.65; }
.svc-card__no { position: absolute; top: 1.2rem; right: 1.3rem; z-index: 3; font-family: var(--font-mono); font-size: .72rem; letter-spacing: .1em; color: rgba(244,243,236,.55); }

/* featured card spanning larger */
.svc-card--feat { grid-column: span 2; flex-direction: row; min-height: 340px; }
.svc-card--feat .svc-card__media { height: auto; width: 48%; flex: 0 0 48%; }
.svc-card--feat .svc-card__media::after { background: linear-gradient(90deg, rgba(16,16,16,0) 55%, rgba(23,23,15,.9)); }
.svc-card--feat .svc-card__body { display: flex; flex-direction: column; justify-content: center; padding: 2.4rem; }
.svc-card--feat .svc-card__icon { margin: 0 0 1.2rem; }
.svc-card--feat h3 { font-size: 1.9rem; }
.svc-card--feat .svc-card__desc { font-size: 1rem; max-width: 42ch; }

/* ============ MARQUEE ============ */
.marquee { overflow: hidden; padding: 1.6rem 0; border-block: 1px solid rgba(244,243,236,.08); }
.marquee__track { display: flex; width: max-content; will-change: transform; }
.marquee__track span {
  font-family: var(--font-display); font-weight: 600; font-size: clamp(1.6rem, 4vw, 3rem);
  color: transparent; -webkit-text-stroke: 1px rgba(244,243,236,.4); text-stroke: 1px rgba(244,243,236,.4);
  padding-right: 2rem; white-space: nowrap; text-transform: uppercase;
}
.marquee__track .dot { color: var(--yellow); -webkit-text-stroke: 0; margin: 0 1.5rem; }

/* ============ RESULTADOS ============ */
.resultados { padding: var(--sec-pad) 0; }
.resultados__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.resultados__media { position: relative; min-height: 460px; }
.resultados__media .img-mask { position: absolute; border-radius: var(--r); box-shadow: 0 28px 70px -28px rgba(0,0,0,.35); }
.img-mask--a { width: 62%; aspect-ratio: 3/4; top: 0; left: 0; z-index: 2; }
.img-mask--b { width: 60%; aspect-ratio: 4/3; bottom: 0; right: 0; z-index: 1; }
.pillars { display: grid; gap: 1.6rem; margin-top: 2rem; }
.pillars li { display: flex; gap: 1.1rem; align-items: flex-start; }
.pillars__icon { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%; background: var(--black); color: var(--yellow); display: flex; align-items: center; justify-content: center; }
.pillars h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.2rem; margin-bottom: .3rem; }
.pillars p { font-size: .92rem; color: #6a6a62; line-height: 1.55; }

.counters { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: clamp(3.5rem, 7vw, 6rem); border-top: 1px solid var(--offwhite-2); padding-top: clamp(2.5rem, 5vw, 4rem); }
.counter { text-align: center; }
.counter__num { display: block; font-family: var(--font-display); font-weight: 700; font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1; color: var(--black); }
.counter__num::after { content: ""; }
.counter__label { display: block; font-family: var(--font-mono); font-size: .74rem; font-weight: 500; color: #6a6a62; margin-top: .7rem; text-transform: uppercase; letter-spacing: .08em; line-height: 1.4; }

/* ============ FRENTES ============ */
.frentes { padding: clamp(4rem, 8vw, 7rem) 0; background: var(--offwhite-2); }
.frentes__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 5rem); align-items: center; }
.frentes__mini { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
.frentes__mini-card { background: #fff; border-radius: var(--r); padding: 1.4rem; border: 1px solid #e2e0d5; transition: border-color var(--tr), transform var(--tr); }
.frentes__mini-card:hover { border-color: rgba(242,185,13,.55); transform: translateY(-3px); }
.frentes__mini-card strong { display: block; font-family: var(--font-display); font-weight: 600; font-size: 1.05rem; }
.frentes__mini-card span { font-size: .85rem; color: #6a6a62; }
.frentes__media .img-mask { aspect-ratio: 4/3; border-radius: var(--r); }

/* ============ ALCANCE ============ */
.alcance { padding: var(--sec-pad) 0; }
.alcance__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 5rem); align-items: center; }
.alcance__stats { display: flex; flex-wrap: wrap; gap: 2.5rem; margin-top: 2.5rem; }
.alcance__stat-num { display: block; font-family: var(--font-display); font-weight: 700; font-size: clamp(2rem, 4vw, 3rem); color: var(--yellow); line-height: 1; }
.alcance__stat span:last-child { font-family: var(--font-mono); font-size: .74rem; color: var(--gray-light); text-transform: uppercase; letter-spacing: .08em; }
.alcance__map { position: relative; aspect-ratio: 1/1; border-radius: 12px; background: radial-gradient(circle at 55% 45%, rgba(242,185,13,.08), transparent 60%); border: 1px solid rgba(244,243,236,.08); overflow: hidden; }
.alcance__map-dots { position: absolute; inset: 0; background-image: radial-gradient(rgba(244,243,236,.14) 1.4px, transparent 1.4px); background-size: 20px 20px; -webkit-mask-image: radial-gradient(circle at 55% 48%, #000 42%, transparent 70%); mask-image: radial-gradient(circle at 55% 48%, #000 42%, transparent 70%); }
.map-pin { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--yellow); }
.map-pin::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1.5px solid var(--yellow); opacity: .6; animation: pinpulse 2.4s ease-out infinite; }
.map-pin--main { width: 16px; height: 16px; top: 48%; left: 55%; box-shadow: 0 0 0 4px rgba(242,185,13,.2); }
.map-pin--main::after { animation-delay: 0s; }
.map-pin--1 { top: 30%; left: 40%; } .map-pin--1::after { animation-delay: .6s; }
.map-pin--2 { top: 62%; left: 42%; } .map-pin--2::after { animation-delay: 1.1s; }
.map-pin--3 { top: 40%; left: 70%; } .map-pin--3::after { animation-delay: 1.6s; }
@keyframes pinpulse { 0% { transform: scale(.6); opacity: .8; } 100% { transform: scale(2.6); opacity: 0; } }
.map-label { position: absolute; top: calc(48% + 18px); left: 55%; transform: translateX(-50%); font-size: .72rem; font-weight: 700; color: var(--yellow); letter-spacing: .1em; white-space: nowrap; }

/* ============ PROCESSO (PINNED) ============ */
.processo { background: var(--offwhite); }
.processo__pin { min-height: 100vh; display: flex; align-items: center; }
.processo__inner { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 5vw, 5rem); width: 100%; align-items: center; }
.processo__intro { position: relative; }
.processo__progress { position: absolute; left: -2.2rem; top: 0; bottom: 0; width: 4px; display: none; }
.processo__steps { position: relative; }
.proc-step {
  display: flex; gap: 1.5rem; align-items: flex-start; padding: 1.4rem 0;
  opacity: .28; transition: opacity .5s var(--ease-out);
}
.proc-step.is-active { opacity: 1; }
.proc-step__ghost { font-family: var(--font-mono); font-weight: 600; font-size: clamp(2.6rem, 6vw, 4.6rem); line-height: .9; color: transparent; -webkit-text-stroke: 1.2px rgba(17,17,17,.28); flex: 0 0 auto; min-width: 2.4ch; transition: -webkit-text-stroke-color .4s; }
.proc-step.is-active .proc-step__ghost { -webkit-text-stroke-color: var(--yellow); }
.proc-step__content h3 { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.3rem, 2.5vw, 1.9rem); margin-bottom: .5rem; }
.proc-step__content p { font-size: .95rem; color: #6a6a62; line-height: 1.6; max-width: 46ch; }
.processo__track { width: 4px; height: 100%; }
.processo__line-bg { stroke: rgba(17,17,17,.12); stroke-width: 4; }
.processo__line-fg { stroke: var(--yellow); stroke-width: 4; stroke-dasharray: 400; stroke-dashoffset: 400; }

/* ============ VÍDEO ============ */
.video { position: relative; min-height: 82vh; display: flex; align-items: center; overflow: hidden; padding: 6rem 0 5rem; }
.video__media { position: absolute; inset: 0; z-index: 0; }
.video__media img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; will-change: transform; }
.video__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(17,17,17,.9), rgba(17,17,17,.55)); }
.video__content { position: relative; z-index: 2; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 2rem; }
.video__play { width: 150px; height: 150px; }
.video__play-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 60px; height: 60px; border-radius: 50%; background: var(--yellow); display: flex; align-items: center; justify-content: center; }
.video__title { max-width: 18ch; margin: 0 auto; }
.video__partners { position: absolute; bottom: 0; left: 0; right: 0; z-index: 2; overflow: hidden; padding: 1rem 0; background: rgba(17,17,17,.4); border-top: 1px solid rgba(244,243,236,.1); }
.marquee__track--slow span { font-size: clamp(.9rem, 2vw, 1.3rem); -webkit-text-stroke: 0; color: var(--gray-light); letter-spacing: .08em; font-family: var(--font-body); font-weight: 700; }
.marquee__track--slow .dot { color: var(--yellow); }

/* ============ DEPOIMENTOS ============ */
.depo { padding: var(--sec-pad) 0; }
.depo__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.depo-card { background: var(--black-2); border: var(--bd); border-radius: var(--r); padding: 2.2rem; transition: transform var(--tr), border-color var(--tr), background var(--tr); }
.depo-card:hover { transform: translateY(-4px); border-color: rgba(242,185,13,.3); }
.stars { color: var(--yellow); letter-spacing: .15em; margin-bottom: 1rem; }
.depo-card p { color: var(--gray-light); line-height: 1.65; font-size: .98rem; }
.depo-card footer { margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid rgba(244,243,236,.1); }
.depo-card footer strong { display: block; font-family: var(--font-display); font-weight: 600; color: var(--offwhite); }
.depo-card footer span { font-size: .82rem; color: var(--gray); }

/* ============ FAQ ============ */
.faq { padding: var(--sec-pad) 0; }
.faq__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2.5rem, 6vw, 5rem); align-items: start; }
.faq__head .btn { margin-top: 2rem; }
.faq-item { border-bottom: 1px solid #ddd9c9; }
.faq-item summary { list-style: none; cursor: pointer; padding: 1.4rem 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-family: var(--font-display); font-weight: 600; font-size: 1.1rem; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; font-size: 1.6rem; color: var(--yellow); font-weight: 400; transition: transform .3s var(--ease-out); flex: 0 0 auto; }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item__body { overflow: hidden; }
.faq-item__body p { padding: 0 0 1.4rem; color: #6a6a62; line-height: 1.6; max-width: 60ch; }

/* ============ CONTATO ============ */
.contato { padding: var(--sec-pad) 0; }
.contato__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(2.5rem, 6vw, 5rem); align-items: start; }
.contato__cards { display: grid; gap: 1rem; margin-top: 2.5rem; }
.contato__card { display: flex; align-items: center; gap: 1rem; padding: 1.2rem 1.4rem; background: var(--black-2); border: var(--bd); border-radius: var(--r-sm); transition: border-color var(--tr), transform var(--tr); }
.contato__card:hover { border-color: rgba(242,185,13,.4); transform: translateX(4px); }
.contato__card-ico { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; background: var(--yellow); color: var(--black); display: flex; align-items: center; justify-content: center; }
.contato__card strong { display: block; font-weight: 700; font-size: .95rem; color: var(--offwhite); }
.contato__card span { font-size: .85rem; color: var(--gray-light); }

.contato__form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; background: var(--black-2); padding: clamp(1.6rem, 3vw, 2.4rem); border-radius: 12px; border: 1px solid rgba(244,243,236,.08); min-width: 0; }
.field { display: flex; flex-direction: column; gap: .45rem; grid-column: 1 / -1; min-width: 0; }
.field--half { grid-column: span 1; }
.field label { font-size: .8rem; font-weight: 600; color: var(--gray-light); letter-spacing: .03em; }
.field input, .field select, .field textarea {
  background: #111; border: 1px solid rgba(244,243,236,.14); border-radius: var(--r-sm); padding: .9rem 1.1rem;
  color: var(--offwhite); font-family: inherit; font-size: .95rem; transition: border-color var(--tr), box-shadow var(--tr);
  width: 100%; min-width: 0; box-sizing: border-box;
}
.field input::placeholder, .field textarea::placeholder { color: #5a5a52; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--yellow); box-shadow: 0 0 0 3px rgba(242,185,13,.15); }
.field textarea { resize: vertical; }
.contato__form .btn { grid-column: 1 / -1; margin-top: .3rem; }
.form-feedback { grid-column: 1 / -1; font-size: .9rem; font-weight: 600; color: var(--yellow); min-height: 1.2em; opacity: 0; transition: opacity .3s; }
.form-feedback.show { opacity: 1; }

/* ============ FOOTER ============ */
.footer { padding: clamp(4rem, 7vw, 6rem) 0 2rem; border-top: 1px solid rgba(244,243,236,.1); }
.footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.3fr; gap: 2.5rem; }
.footer__brand p { color: var(--gray); font-size: .92rem; line-height: 1.6; margin-top: 1rem; max-width: 34ch; }
.footer__col h3 { font-family: var(--font-display); font-weight: 600; font-size: 1rem; color: var(--offwhite); margin-bottom: 1.2rem; }
.footer__col a, .footer__col span { display: block; color: var(--gray-light); font-size: .9rem; margin-bottom: .7rem; transition: color var(--tr); }
.footer__col a:hover { color: var(--yellow); }
.footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 3.5rem; padding-top: 1.8rem; border-top: 1px solid rgba(244,243,236,.1); font-family: var(--font-mono); font-size: .72rem; letter-spacing: .02em; color: var(--gray); }

/* ============ REVEAL STATES (JS-driven) ============
   REGRA DE OURO: estados iniciais escondidos SÓ existem quando <html> tem
   a classe .js-anim (adicionada por JS APENAS após GSAP inicializar com
   sucesso). Sem GSAP => nada fica invisível; o site funciona estático e legível. */
.js-anim .reveal-fade { opacity: 0; }
.js-anim [data-reveal-img] img { transform: scale(1.18); }
.js-anim .divider { transform: scaleX(0); }
/* Fallback explícito: sem .js-anim tudo visível e sem transform residual */
html:not(.js-anim) .reveal-fade,
html:not(.js-anim) .split-word,
html:not(.js-anim) .svc-block__no { opacity: 1 !important; transform: none !important; }
html:not(.js-anim) [data-reveal-img] img { transform: none !important; }
html:not(.js-anim) .divider { transform: scaleX(1) !important; }
html:not(.js-anim) .hl::before { transform: scaleX(1) !important; }

/* ---- Skew wrapper (velocity-based section skew) ---- */
.skew-wrap { will-change: transform; }

/* ---- Split text (line/word reveal) ---- */
.split-line { display: block; overflow: hidden; padding: 0.12em 0.06em; margin: -0.12em -0.06em; }
.split-word { display: inline-block; will-change: transform; }
.split-word .hl { white-space: nowrap; }

/* ---- Section divider (draw-in) ---- */
.divider {
  display: block; height: 2px; width: 100%; max-width: 340px; margin-top: 1.6rem;
  background: linear-gradient(90deg, var(--yellow), rgba(242,185,13,0));
  transform: scaleX(0); transform-origin: left center; will-change: transform;
}

/* ---- Card icon pop initial state (JS-driven) ---- */
.anim-ready .svc-card__icon, .anim-ready .mini-card__icon,
.anim-ready .pillars__icon, .anim-ready .contato__card-ico { will-change: transform; }

/* ---- CTA pulse (yellow shadow) ---- */
.cta-pulse { position: relative; }

/* ---- Card 3D tilt hover (desktop, JS quickTo) ---- */
@media (hover: hover) and (pointer: fine) {
  .svc-card, .depo-card, .mini-card { transform-style: preserve-3d; }
}

/* ---- FAQ animated open (JS drives height) ---- */
.faq-item__body { height: 0; overflow: hidden; }
.faq-item[open] .faq-item__body { height: auto; }
.js-faq .faq-item__body { height: 0; }
.js-faq .faq-item[open] .faq-item__body { height: 0; } /* JS sets explicit px */

/* ============ RESPONSIVE ============ */
@media (max-width: 1024px) {
  .servicos__grid { grid-template-columns: repeat(2, 1fr); }
  .depo__grid { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .processo__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .counters { grid-template-columns: repeat(2, 1fr); gap: 2rem; }
}

@media (max-width: 860px) {
  .topbar__item--addr, .topbar__contacts .topbar__item:nth-child(2), .topbar__contacts .topbar__item:nth-child(3) { display: none; }
  .topbar__inner { justify-content: space-between; }
  .nav__menu, .nav__cta { display: none; }
  .nav__toggle { display: flex; }
  .nav__menu.open {
    display: flex; flex-direction: column; position: absolute; top: 76px; left: 0; right: 0; z-index: 2;
    background: rgba(16,16,16,.98); padding: 1.5rem var(--pad) 2rem; gap: 1.2rem;
    border-bottom: 1px solid rgba(244,243,236,.1); box-shadow: 0 24px 60px rgba(0,0,0,.35);
  }
  .nav__menu.open a { font-size: 1.1rem; }
  .sobre__grid, .resultados__grid, .frentes__grid, .alcance__grid, .faq__grid, .contato__grid { grid-template-columns: 1fr; }
  .sobre__media .img-mask { aspect-ratio: 16/11; }
  .sobre__float { right: 1rem; bottom: -1.2rem; }
  .resultados__media { min-height: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .resultados__media .img-mask { position: relative; width: 100%; inset: auto; }
  .img-mask--a { aspect-ratio: 3/4; } .img-mask--b { aspect-ratio: 3/4; }
  .frentes__grid { direction: ltr; }
  .frentes__media { order: -1; }
  .alcance__map { max-width: 420px; }
  .contato__form { grid-template-columns: 1fr; }
  .field--half { grid-column: 1 / -1; }
}

@media (max-width: 860px) {
  .sec-ghost { font-size: clamp(7rem, 30vw, 12rem); top: 1rem; }
  .blueprint { display: none; }
  .corner-marks::before, .corner-marks::after { font-size: .85rem; }
}

@media (max-width: 560px) {
  .servicos__grid { grid-template-columns: 1fr; }
  .sobre__cards, .checklist, .frentes__mini { grid-template-columns: 1fr; }
  .counters { grid-template-columns: 1fr 1fr; }
  .footer__grid { grid-template-columns: 1fr; }
  .resultados__media { grid-template-columns: 1fr; max-width: 340px; }
  .hero__badge { width: 76px; height: 76px; right: .8rem; top: 6.5rem; bottom: auto; }
  .hero__badge svg { width: 76px; height: 76px; }
  .hero__badge .spin-badge__center { width: 36px; height: 36px; }
  .hero__data { gap: .7rem 1rem; margin-top: 2rem; font-size: .68rem; }
  .hero__data-sep { display: none; }
  .alcance__stats { gap: 1.5rem; }
  .processo__inner { gap: 2rem; }
  .proc-step { gap: 1rem; padding: 1rem 0; }
  .sec-ghost { display: none; }
}

/* ============ TOUCH / MOBILE: sem cursor custom ============ */
@media (hover: none), (pointer: coarse), (max-width: 900px) {
  .cursor-dot, .cursor-ring { display: none !important; }
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion: reduce) and (max-width: 0px) {
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .reveal-fade { opacity: 1 !important; }
  [data-reveal-img] img { transform: none !important; }
  .hero__img, .video__media img { position: absolute; inset: 0; height: 100%; }
  .spin-badge svg, .map-pin::after, .hero__scroll-line::after, .eyebrow::before, .grain-overlay { animation: none !important; }
  .grain-overlay { display: none !important; }
  .hl::before { transform: scaleX(1) !important; }
  .cursor-dot, .cursor-ring { display: none !important; }
  .divider { transform: scaleX(1) !important; }
  .split-word { transform: none !important; opacity: 1 !important; }
  .skew-wrap { transform: none !important; }
  .faq-item__body { height: auto !important; }
  .faq-item[open] .faq-item__body { height: auto !important; }
  .page-transition { display: none !important; }
}


/* ============================================================
   SUBPÁGINA DE SERVIÇOS (servicos.html) — CSS modular
   Reutiliza tokens, .container, .btn, .eyebrow, .img-mask, .marquee
   ============================================================ */

/* ---- Link ativo no menu ---- */
.nav__menu a.is-active { color: var(--yellow); }
.nav__menu a.is-active::after { transform: scaleX(1); }

/* ---- HERO INTERNO (menor) ---- */
.hero--inner { min-height: 68vh; padding: 9rem 0 5rem; }
.hero--inner .hero__content { max-width: 960px; }
.hero--inner .hero__overlay { background: linear-gradient(90deg, rgba(16,16,16,.94) 0%, rgba(16,16,16,.76) 50%, rgba(16,16,16,.5) 100%), linear-gradient(0deg, rgba(16,16,16,.9), rgba(16,16,16,.25) 65%); }
.hero--inner .hero__title { margin-top: 1.1rem; }

/* ---- BREADCRUMB (mono) ---- */
.breadcrumb { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--font-mono); font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gray-light); }
.breadcrumb a { color: var(--gray-light); transition: color var(--tr); }
.breadcrumb a:hover { color: var(--yellow); }
.breadcrumb .sep { width: 16px; height: 1px; background: rgba(244,243,236,.3); display: inline-block; }
.breadcrumb .current { color: var(--offwhite); }

/* ============================================================
   ÍNDICE EDITORIAL (sumário 01–08)
   ============================================================ */
.svc-list { position: relative; }
.svc-list .container { position: relative; z-index: 2; }
.svc-index { border-top: var(--bd); margin-top: 3rem; }
.svc-index__row {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center;
  gap: 2rem; padding: clamp(1.4rem, 3vw, 2.4rem) 0;
  border-bottom: var(--bd); position: relative; color: var(--offwhite);
  transition: color var(--tr), padding-left var(--tr);
}
.svc-index__row::before {
  content: ""; position: absolute; left: -100%; top: 0; height: 100%; width: 100%;
  background: linear-gradient(90deg, rgba(242,185,13,.06), transparent 60%);
  transition: left .5s var(--ease-out); pointer-events: none; z-index: -1;
}
.svc-index__no { font-family: var(--font-mono); font-size: .9rem; color: var(--yellow); letter-spacing: .05em; min-width: 3ch; }
.svc-index__title { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.4rem, 3.2vw, 2.5rem); line-height: 1.04; letter-spacing: -.02em; transition: transform var(--tr); }
.svc-index__meta { display: flex; align-items: center; gap: 1.2rem; }
.svc-index__tag { font-family: var(--font-mono); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gray); }
.svc-index__arrow { display: inline-flex; width: 42px; height: 42px; border-radius: 50%; border: var(--bd); align-items: center; justify-content: center; color: var(--offwhite); transition: transform var(--tr), background var(--tr), color var(--tr), border-color var(--tr); flex-shrink: 0; }
.svc-index__arrow svg { width: 18px; height: 18px; }

@media (hover: hover) and (pointer: fine) {
  .svc-index__row:hover { color: var(--yellow); padding-left: 1.2rem; }
  .svc-index__row:hover::before { left: 0; }
  .svc-index__row:hover .svc-index__title { transform: translateX(6px); }
  .svc-index__row:hover .svc-index__arrow { background: var(--yellow); color: var(--black); border-color: var(--yellow); transform: rotate(-45deg); }
}
.svc-index__row.is-featured .svc-index__title { color: var(--yellow); }
.svc-index__row.is-featured .svc-index__tag { color: var(--yellow); }
.svc-index__row.is-featured .svc-index__arrow { border-color: rgba(242,185,13,.5); }

/* preview seguindo cursor (desktop only) */
.svc-index-preview {
  position: fixed; top: 0; left: 0; z-index: 60; width: 320px; height: 220px;
  margin: -110px 0 0 -160px; border-radius: var(--r); overflow: hidden;
  pointer-events: none; opacity: 0; visibility: hidden;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,.6); border: 1px solid rgba(242,185,13,.35);
}
.svc-index-preview img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(1.05) contrast(1.05); }
.svc-index-preview::after { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(242,185,13,.12), rgba(16,16,16,.25)); }
@media (hover: none), (pointer: coarse) { .svc-index-preview { display: none !important; } }

/* ============================================================
   BLOCOS DETALHADOS (8 serviços)
   ============================================================ */
.svc-block { position: relative; overflow: clip; }
.svc-block__inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 6rem);
  align-items: center; position: relative; z-index: 2;
}
.svc-block--reverse .svc-block__media { order: 2; }
.svc-block--reverse .svc-block__body { order: 1; }
/* Número fantasma do bloco: SEMPRE atrás, outline sutil, contido, nunca sólido */
.svc-block__no {
  position: absolute; font-family: var(--font-mono); font-weight: 500;
  font-size: clamp(6rem, 15vw, 13rem); line-height: .8; letter-spacing: -.04em;
  top: -1.5rem; right: -.5rem; z-index: 0; pointer-events: none; user-select: none;
  /* preenchimento transparente + contorno de baixíssima opacidade => nunca vira bloco sólido */
  color: transparent !important;
  -webkit-text-stroke: 1.4px rgba(17,17,17,.10);
}
.section-dark .svc-block__no { -webkit-text-stroke-color: rgba(255,255,255,.09); }
.section-light .svc-block__no { -webkit-text-stroke-color: rgba(17,17,17,.10); }
.svc-block__body { position: relative; z-index: 2; }
/* conteúdo do bloco sempre ACIMA do número fantasma (z-index:0) */
.svc-block__body > .eyebrow,
.svc-block__body > .svc-block__title,
.svc-block__body > .svc-block__desc,
.svc-block__body > .svc-block__list,
.svc-block__body > .svc-block__stat,
.svc-block__body > .svc-block__actions { position: relative; z-index: 1; }
.svc-block__title { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.9rem, 4vw, 3.2rem); line-height: 1.02; letter-spacing: -.025em; margin: .8rem 0 1.1rem; }
.section-light .svc-block__title { color: var(--black); }
.section-dark .svc-block__title { color: var(--offwhite); }
.svc-block__title .hl { position: relative; color: inherit; }
.svc-block__desc { font-size: clamp(1rem, 1.4vw, 1.14rem); line-height: 1.65; max-width: 52ch; }
.section-light .svc-block__desc { color: #4a4a42; }
.section-dark .svc-block__desc { color: var(--gray-light); }
.svc-block__list { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1.5rem; margin: 1.8rem 0; }
.svc-block__list li { position: relative; padding-left: 1.9rem; font-size: .92rem; font-weight: 500; line-height: 1.4; }
.section-light .svc-block__list li { color: var(--black); }
.section-dark .svc-block__list li { color: var(--offwhite); }
.svc-block__list li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--yellow); color: var(--black); font-size: .72rem; display: flex; align-items: center; justify-content: center; }
.svc-block__stat { display: inline-flex; align-items: baseline; gap: .7rem; margin-top: .4rem; padding: 1rem 1.3rem; border: var(--bd-strong); border-radius: var(--r-sm); }
.section-light .svc-block__stat { border: 1px solid rgba(16,16,16,.14); }
.svc-block__stat strong { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.8rem, 3vw, 2.6rem); color: var(--yellow); line-height: 1; }
.svc-block__stat span { font-family: var(--font-mono); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; }
.section-light .svc-block__stat span { color: var(--gray); }
.section-dark .svc-block__stat span { color: var(--gray-light); }
.svc-block__actions { margin-top: 2rem; }

.svc-block__media { position: relative; }
.svc-block .img-mask { aspect-ratio: 4/3; box-shadow: 0 30px 70px -30px rgba(0,0,0,.4); }
.svc-block__media .svc-block__badge {
  position: absolute; bottom: -1.1rem; left: -1.1rem; z-index: 3;
  background: var(--yellow); color: var(--black); font-family: var(--font-mono);
  font-size: .64rem; letter-spacing: .16em; text-transform: uppercase;
  padding: .7rem 1rem; border-radius: var(--r-sm);
}
.svc-block--featured .img-mask { aspect-ratio: 16/11; }
.svc-block--featured .svc-block__inner { gap: clamp(3rem, 7vw, 7rem); }

/* CTA final servicos */
.svc-cta { text-align: center; }
.svc-cta .container { max-width: 760px; }
.svc-cta .btn { margin-top: 2rem; }

/* ---- RESPONSIVO ---- */
@media (max-width: 900px) {
  .svc-block__inner { grid-template-columns: 1fr; gap: 2.2rem; }
  .svc-block--reverse .svc-block__media,
  .svc-block--reverse .svc-block__body { order: 0; }
  .svc-block__list { grid-template-columns: 1fr; }
  .svc-index__row { grid-template-columns: auto 1fr; gap: 1rem 1.4rem; }
  .svc-index__meta { grid-column: 2; justify-content: flex-start; }
  .svc-block__no { font-size: 30vw; top: -1.2rem; }
  .hero--inner { min-height: 60vh; padding: 8rem 0 4rem; }
}
@media (max-width: 560px) {
  .svc-index__meta .svc-index__tag { display: none; }
  .svc-block__media .svc-block__badge { left: 0; bottom: -.8rem; }
}

/* reduced-motion: garantir visibilidade dos novos elementos */
@media (prefers-reduced-motion: reduce) and (max-width: 0px) {
  .svc-index__row, .svc-block__no, .svc-block__title, .svc-block__desc,
  .svc-block__list li, .svc-block__stat, .breadcrumb { opacity: 1 !important; transform: none !important; }
  .svc-index-preview { display: none !important; }
}

/* ---- "Ver todos os serviços" (index) ---- */
.servicos__more { display: flex; justify-content: center; margin-top: clamp(2.5rem, 5vw, 4rem); }

/* ============================================================
   SUBPÁGINAS: SOBRE / PROJETOS / CONTATO — CSS modular
   ============================================================ */

/* ---- MANIFESTO / HISTÓRIA (sobre) ---- */
.manifesto__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.manifesto__body .lead { margin-top: 1.2rem; }
.manifesto__quote { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.18; letter-spacing: -.02em; margin-top: 1.6rem; }
.section-light .manifesto__quote { color: var(--black); }
.manifesto__media { position: relative; }
.manifesto__media .img-mask { aspect-ratio: 3/4; }
.manifesto__seal {
  position: absolute; bottom: -1.4rem; left: -1.4rem; z-index: 3;
  width: 116px; height: 116px; border-radius: 50%; background: var(--yellow); color: var(--black);
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  font-family: var(--font-mono); box-shadow: 0 20px 50px -12px rgba(242,185,13,.5);
}
.manifesto__seal strong { font-family: var(--font-display); font-weight: 700; font-size: 1.7rem; line-height: 1; }
.manifesto__seal span { font-size: .58rem; letter-spacing: .16em; text-transform: uppercase; margin-top: .3rem; }

/* ---- TIMELINE VERTICAL (sobre) ---- */
.timeline { position: relative; margin-top: clamp(3rem, 6vw, 5rem); padding-left: 3.4rem; }
.timeline__line { position: absolute; left: 10px; top: 6px; bottom: 6px; width: 2px; background: rgba(255,255,255,.12); overflow: hidden; }
.section-light .timeline__line { background: rgba(17,17,17,.12); }
.timeline__line-fg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: var(--yellow); transform-origin: top; }
.js-anim .timeline__line-fg { transform: scaleY(0); }
html:not(.js-anim) .timeline__line-fg { transform: scaleY(1) !important; }
html:not(.js-anim) .timeline__dot::after { transform: scale(1) !important; }
.timeline__item { position: relative; padding-bottom: clamp(2.2rem, 4vw, 3.4rem); }
.timeline__item:last-child { padding-bottom: 0; }
.timeline__dot { position: absolute; left: -3.4rem; top: 2px; width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--yellow); background: var(--black); display: flex; align-items: center; justify-content: center; }
.timeline__dot::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--yellow); transform: scale(0); transition: transform .4s var(--ease-out); }
.section-light .timeline__dot { background: var(--offwhite); }
.timeline__item.is-active .timeline__dot::after { transform: scale(1); }
.timeline__year { font-family: var(--font-mono); font-size: .82rem; letter-spacing: .16em; color: var(--yellow); }
.timeline__title { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.25rem, 2.4vw, 1.7rem); line-height: 1.1; margin: .3rem 0 .5rem; letter-spacing: -.02em; }
.section-light .timeline__title { color: var(--black); }
.timeline__desc { font-size: .98rem; line-height: 1.6; max-width: 46ch; }
.section-light .timeline__desc { color: #4a4a42; }
.section-dark .timeline__desc { color: var(--gray-light); }

/* ---- MISSÃO / VISÃO / VALORES (sobre) ---- */
.mvv__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.2rem, 2.5vw, 2rem); margin-top: 3rem; }
.mvv__card { border: var(--bd); border-radius: var(--r); padding: clamp(1.8rem, 3vw, 2.6rem); position: relative; overflow: hidden; transition: border-color var(--tr), transform var(--tr); }
.section-dark .mvv__card { background: linear-gradient(180deg, rgba(255,255,255,.02), transparent); }
.mvv__card::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--yellow); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease-out); }
.mvv__card:hover { transform: translateY(-6px); border-color: rgba(242,185,13,.4); }
.mvv__card:hover::before { transform: scaleX(1); }
.mvv__ico { width: 52px; height: 52px; border-radius: var(--r-sm); background: var(--yellow); color: var(--black); display: flex; align-items: center; justify-content: center; margin-bottom: 1.4rem; }
.mvv__card h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.4rem; letter-spacing: -.02em; margin-bottom: .7rem; }
.mvv__card p { font-size: .98rem; line-height: 1.6; color: var(--gray-light); }
.section-light .mvv__card p { color: #4a4a42; }

/* ---- CERTIFICAÇÕES / COMPROMISSOS (sobre) ---- */
.certs { margin-top: clamp(3rem, 6vw, 5rem); border-top: var(--bd); border-bottom: var(--bd); }
.certs__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.certs__item { padding: clamp(1.6rem, 3vw, 2.4rem) 1.4rem; border-left: var(--bd); text-align: center; }
.certs__item:first-child { border-left: none; }
.certs__item-ico { color: var(--yellow); margin-bottom: .9rem; display: flex; justify-content: center; }
.certs__item strong { display: block; font-family: var(--font-mono); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: .4rem; }
.certs__item span { font-size: .86rem; color: var(--gray-light); line-height: 1.4; }
.section-light .certs__item span { color: #4a4a42; }

/* ---- EQUIPE (sobre) ---- */
.equipe__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.equipe__media .img-mask { aspect-ratio: 4/3; }

/* ============================================================
   PROJETOS
   ============================================================ */
.proj-note { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .1em; color: var(--gray); margin-top: 1rem; display: inline-flex; align-items: center; gap: .5rem; }
.proj-note::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--yellow); flex-shrink: 0; }

/* filtro */
.proj-filter { display: flex; flex-wrap: wrap; gap: .6rem; margin: 2.5rem 0 3rem; }
.proj-filter__btn {
  font-family: var(--font-mono); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase;
  padding: .7rem 1.3rem; border: var(--bd-strong); border-radius: 100px; color: var(--gray-light);
  transition: all var(--tr); background: transparent;
}
.section-light .proj-filter__btn { border: 1px solid rgba(17,17,17,.18); color: #4a4a42; }
.proj-filter__btn:hover { border-color: var(--yellow); color: var(--offwhite); }
.section-light .proj-filter__btn:hover { color: var(--black); }
.proj-filter__btn.is-active { background: var(--yellow); color: var(--black); border-color: var(--yellow); }

/* grid galeria */
.proj-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.2rem, 2.2vw, 1.8rem); }
.proj-card {
  position: relative; border-radius: var(--r); overflow: hidden; cursor: pointer;
  aspect-ratio: 4/3; border: var(--bd); background: var(--black-2);
}
.proj-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease-out); filter: saturate(1.02); }
.proj-card:hover .proj-card__img { transform: scale(1.08); }
.proj-card__overlay {
  position: absolute; inset: 0; z-index: 2; padding: 1.4rem;
  display: flex; flex-direction: column; justify-content: flex-end;
  background: linear-gradient(0deg, rgba(16,16,16,.92) 0%, rgba(16,16,16,.2) 55%, transparent 100%);
  transition: background .4s var(--ease-out);
}
.proj-card:hover .proj-card__overlay { background: linear-gradient(0deg, rgba(242,185,13,.9) 0%, rgba(242,185,13,.25) 55%, transparent 100%); }
.proj-card__cat { font-family: var(--font-mono); font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--yellow); transition: color var(--tr); }
.proj-card:hover .proj-card__cat { color: var(--black); }
.proj-card__title { font-family: var(--font-display); font-weight: 600; font-size: 1.24rem; line-height: 1.12; letter-spacing: -.02em; color: var(--offwhite); margin-top: .35rem; transition: color var(--tr); }
.proj-card:hover .proj-card__title { color: var(--black); }
.proj-card__loc { font-family: var(--font-mono); font-size: .68rem; color: var(--gray-light); margin-top: .4rem; transition: color var(--tr); }
.proj-card:hover .proj-card__loc { color: rgba(16,16,16,.72); }
.proj-card__arrow { position: absolute; top: 1.2rem; right: 1.2rem; z-index: 3; width: 40px; height: 40px; border-radius: 50%; background: var(--yellow); color: var(--black); display: flex; align-items: center; justify-content: center; opacity: 0; transform: scale(.6) rotate(-30deg); transition: all .4s var(--ease-out); }
.proj-card:hover .proj-card__arrow { opacity: 1; transform: scale(1) rotate(0); background: var(--black); color: var(--yellow); }
.proj-card__arrow svg { width: 18px; height: 18px; }
.proj-card.is-hidden { display: none; }

/* LIGHTBOX */
.lightbox { position: fixed; inset: 0; z-index: 700; display: flex; align-items: center; justify-content: center; padding: clamp(1rem, 4vw, 3rem); visibility: hidden; opacity: 0; }
.lightbox.is-open { visibility: visible; opacity: 1; }
.lightbox__backdrop { position: absolute; inset: 0; background: rgba(8,8,8,.88); backdrop-filter: blur(6px); }
.lightbox__dialog {
  position: relative; z-index: 2; width: min(1000px, 100%); max-height: 90vh; overflow: hidden;
  background: var(--black-2); border: var(--bd-strong); border-radius: var(--r-lg);
  display: grid; grid-template-columns: 1.15fr .85fr;
}
.lightbox__media { position: relative; overflow: hidden; min-height: 320px; }
.lightbox__media img { width: 100%; height: 100%; object-fit: cover; }
.lightbox__body { padding: clamp(1.8rem, 3vw, 2.8rem); overflow-y: auto; }
.lightbox__cat { font-family: var(--font-mono); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--yellow); }
.lightbox__title { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.08; letter-spacing: -.02em; color: var(--offwhite); margin: .5rem 0 .3rem; }
.lightbox__loc { font-family: var(--font-mono); font-size: .74rem; color: var(--gray-light); }
.lightbox__desc { color: var(--gray-light); line-height: 1.65; margin: 1.3rem 0; font-size: .98rem; }
.lightbox__chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.2rem 0; }
.lightbox__chip { font-family: var(--font-mono); font-size: .68rem; letter-spacing: .06em; padding: .45rem .85rem; border: var(--bd-strong); border-radius: 100px; color: var(--offwhite); }
.lightbox__stat { display: inline-flex; align-items: baseline; gap: .6rem; margin-top: .6rem; padding-top: 1.2rem; border-top: var(--bd); }
.lightbox__stat strong { font-family: var(--font-display); font-weight: 700; font-size: 2rem; color: var(--yellow); line-height: 1; }
.lightbox__stat span { font-family: var(--font-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-light); }
.lightbox__close { position: absolute; top: 1rem; right: 1rem; z-index: 4; width: 44px; height: 44px; border-radius: 50%; background: var(--yellow); color: var(--black); display: flex; align-items: center; justify-content: center; transition: transform var(--tr); }
.lightbox__close:hover { transform: rotate(90deg); }

/* ============================================================
   CONTATO (página)
   ============================================================ */
.contato-page__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2.5rem, 5vw, 4.5rem); align-items: start; }
.contact-cards { display: grid; gap: 1rem; margin-top: 2rem; }
.contact-card { display: flex; gap: 1.1rem; align-items: flex-start; padding: 1.4rem 1.5rem; border: var(--bd); border-radius: var(--r); transition: border-color var(--tr), transform var(--tr); }
.contact-card:hover { border-color: rgba(242,185,13,.4); transform: translateX(4px); }
.contact-card__ico { width: 44px; height: 44px; flex-shrink: 0; border-radius: var(--r-sm); background: rgba(242,185,13,.12); color: var(--yellow); display: flex; align-items: center; justify-content: center; }
.contact-card strong { display: block; font-family: var(--font-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gray-light); margin-bottom: .35rem; }
.contact-card span, .contact-card a { color: var(--offwhite); font-size: .98rem; line-height: 1.45; }
.section-dark .contact-card__body span { color: var(--offwhite); }
.btn--whatsapp { background: #25d366 !important; color: #0a2e17 !important; margin-top: 1.4rem; }
.btn--whatsapp::before { background: #1fb857 !important; }
.btn--whatsapp:hover { color: #0a2e17 !important; }

/* MAPA SVG estilizado */
.map-block { position: relative; border: var(--bd-strong); border-radius: var(--r-lg); overflow: hidden; background: radial-gradient(120% 120% at 70% 20%, #16160f 0%, #0c0c0a 70%); min-height: 340px; }
.map-block__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(242,185,13,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(242,185,13,.06) 1px, transparent 1px); background-size: 34px 34px; }
.map-block__svg { position: relative; z-index: 2; width: 100%; height: auto; display: block; }
.map-state { fill: rgba(242,185,13,.06); stroke: rgba(242,185,13,.5); stroke-width: 1.5; }
.map-pin-dot { fill: var(--yellow); }
.map-pin-ring { fill: none; stroke: var(--yellow); stroke-width: 2; transform-box: fill-box; transform-origin: center; }
.map-block__label { position: absolute; z-index: 3; left: 50%; bottom: 1.4rem; transform: translateX(-50%); font-family: var(--font-mono); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--offwhite); background: rgba(16,16,16,.72); border: var(--bd); padding: .5rem 1rem; border-radius: 100px; }
.map-block__coords { position: absolute; z-index: 3; top: 1.2rem; left: 1.2rem; font-family: var(--font-mono); font-size: .64rem; letter-spacing: .1em; color: var(--gray); }

/* ---- RESPONSIVO SUBPÁGINAS ---- */
@media (max-width: 980px) {
  .manifesto__grid, .equipe__grid, .contato-page__grid { grid-template-columns: 1fr; }
  .manifesto__media { order: -1; }
  .equipe__media { order: -1; }
  .mvv__grid { grid-template-columns: 1fr; }
  .certs__grid { grid-template-columns: repeat(2, 1fr); }
  .certs__item:nth-child(1), .certs__item:nth-child(2) { border-top: none; }
  .certs__item:nth-child(3), .certs__item:nth-child(4) { border-top: var(--bd); }
  .certs__item:nth-child(odd) { border-left: none; }
  .proj-grid { grid-template-columns: repeat(2, 1fr); }
  .lightbox__dialog { grid-template-columns: 1fr; max-height: 88vh; overflow-y: auto; }
  .lightbox__media { min-height: 240px; max-height: 40vh; }
}
@media (max-width: 620px) {
  .proj-grid { grid-template-columns: 1fr; }
  .certs__grid { grid-template-columns: 1fr; }
  .certs__item { border-left: none !important; border-top: var(--bd); }
  .certs__item:first-child { border-top: none; }
  .manifesto__seal { width: 92px; height: 92px; left: 0; bottom: -1rem; }
  .timeline { padding-left: 2.6rem; }
  .timeline__dot { left: -2.6rem; }
}

/* reduced-motion: garantir visibilidade dos novos elementos */
@media (prefers-reduced-motion: reduce) and (max-width: 0px) {
  .timeline__line-fg { transform: scaleY(1) !important; }
  .timeline__item .timeline__dot::after { transform: scale(1) !important; }
  .mvv__card, .certs__item, .proj-card, .contact-card, .timeline__item { opacity: 1 !important; transform: none !important; }
}

/* lock de scroll quando lightbox aberta */
body.lb-open { overflow: hidden; }

/* ============================================================
   SETA MOTION V5 — fallback visual independente de GSAP
   ============================================================ */
html[data-force-motion="true"] { scroll-behavior: auto; }
body.v5-fallback-motion .v5-watch {
  opacity: 0;
  transform: translate3d(0, 72px, 0) scale(.975);
  filter: blur(7px);
  transition: opacity .9s cubic-bezier(.16,1,.3,1), transform 1.05s cubic-bezier(.16,1,.3,1), filter .9s ease;
  will-change: opacity, transform, filter;
}
body.v5-fallback-motion .v5-watch.v5-in {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  filter: blur(0);
}
body.v5-fallback-motion [data-reveal-img].v5-watch { overflow:hidden; }
body.v5-fallback-motion [data-reveal-img].v5-watch img { transform:scale(1.14); transition:transform 1.35s cubic-bezier(.16,1,.3,1); }
body.v5-fallback-motion [data-reveal-img].v5-watch.v5-in img { transform:scale(1); }
body.v5-fallback-motion .section-title.v5-watch { transform:translate3d(-56px,55px,0); }
body.v5-fallback-motion .section-title.v5-watch.v5-in { transform:translate3d(0,0,0); }
html[data-motion-status="active"] #setaV5Status { display:none !important; }


/* ============================================================
   AIZEN V1 THEME OVERRIDES — black & luxury gold
   ============================================================ */
:root{
  --aizen-gold-1:#b5b562;
  --aizen-gold-2:#d9c782;
  --aizen-gold-3:#917c41;
  --aizen-gold-grad:linear-gradient(90deg, rgba(181,181,98,1) 0%, rgba(217,199,130,1) 50%, rgba(145,124,65,1) 100%);
  --aizen-panel:linear-gradient(180deg, rgba(18,17,13,.9), rgba(10,10,10,.96));
  --aizen-panel-soft:linear-gradient(180deg, rgba(26,24,19,.78), rgba(10,10,10,.92));
  --aizen-stroke:1px solid rgba(217,199,130,.22);
  --aizen-shadow:0 24px 70px rgba(0,0,0,.45);
}
body, body.theme-light, body.theme-dark{background:#070707;color:var(--offwhite);}
.section-dark{background:linear-gradient(180deg,#060606 0%,#090909 100%);color:var(--offwhite);}
.section-light{background:linear-gradient(180deg,#0a0a0a 0%,#10100d 100%);color:var(--offwhite);}
.section-light .lead,.section-dark .lead,.section-light .mini-card p,.section-light p,.section-light li,.section-light .manifesto__quote,.section-light .proj-note{color:rgba(243,238,215,.78);}
.section-light .logo-svg .logo-letter{fill:var(--offwhite);}
.section-light .corner-marks::before,.section-light .corner-marks::after{color:rgba(217,199,130,.28);}
.section-light .ruler{background-image:repeating-linear-gradient(to right, rgba(217,199,130,.24) 0 1px, transparent 1px 40px);}
.section-light .sec-ghost{ -webkit-text-stroke-color: rgba(217,199,130,.12);}
::selection{background:var(--yellow);color:#050505;}
.grain-overlay{opacity:.03;}
.topbar{background:#090909;color:var(--offwhite);border-bottom:1px solid rgba(217,199,130,.18);}
.topbar__inner{height:44px;}
.topbar__social-placeholder{opacity:.68;color:var(--yellow);}
.nav{background:rgba(7,7,7,.78);backdrop-filter:blur(18px);border-bottom:1px solid rgba(217,199,130,.16);box-shadow:0 10px 40px rgba(0,0,0,.25);}
.nav.is-hidden{transform:translateY(-100%);}
.brand{padding:.5rem 0;}
.logo-svg .logo-letter{letter-spacing:.02em;fill:var(--offwhite);}
.logo-svg .logo-sub{font-size:13px;letter-spacing:4.5px;fill:url(#aizenBrandGrad);}
.nav__menu a{color:rgba(243,238,215,.86);}
.nav__menu a::after{background:var(--aizen-gold-grad);height:1px;}
.nav__menu a:hover{color:var(--offwhite);}
.btn{border-radius:999px;border:1px solid rgba(217,199,130,.18);box-shadow:none;}
.btn--solid{background:var(--aizen-gold-grad)!important;color:#090909!important;border:none;}
.btn--solid:hover{filter:brightness(1.05);transform:translateY(-2px);}
.btn--ghost,.btn--pill{background:rgba(243,238,215,.03);border:1px solid rgba(217,199,130,.24);color:var(--offwhite);}
.btn--ghost:hover,.btn--pill:hover{background:rgba(217,199,130,.08);border-color:rgba(217,199,130,.38);}
.skip-link{background:var(--yellow);color:#090909;}
.hero{padding-top:9rem;padding-bottom:7rem;}
.hero__overlay{background:linear-gradient(90deg, rgba(7,7,7,.96) 0%, rgba(7,7,7,.82) 42%, rgba(7,7,7,.38) 100%), linear-gradient(180deg, rgba(7,7,7,.75) 0%, rgba(7,7,7,.3) 60%, rgba(7,7,7,.9) 100%);}
.hero__grain{opacity:.32;background-image:radial-gradient(rgba(217,199,130,.08) 1px, transparent 1px);}
.hero__content{max-width:920px;}
.hero__title{max-width:12ch;}
.hero__sub{color:rgba(243,238,215,.76);}
.hero__actions{margin-top:2rem;}
.hero__data{margin-top:2.4rem;padding:1rem 1.15rem 0;border-top:1px solid rgba(217,199,130,.18);border-left:1px solid rgba(217,199,130,.14);background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));border-radius:18px 18px 0 0;}
.hero__data-item em{color:var(--yellow);}
.hero__scroll{bottom:4.4rem;}
.hero__badge{filter:drop-shadow(0 12px 28px rgba(0,0,0,.4));}
.spin-badge__text{fill:var(--yellow);}
.spin-badge__center{background:var(--aizen-gold-grad);color:#090909;}
.eyebrow,.eyebrow--light{color:rgba(243,238,215,.62);}
.eyebrow::before{background:var(--aizen-gold-grad);box-shadow:none;}
.hl{color:#090909;}
.hl::before{background:var(--aizen-gold-grad);border-radius:.2em;}
.section-head{max-width:920px;}
.sobre__grid,.manifesto__grid,.contato-page__grid,.vmv__grid,.why__grid{gap:clamp(2rem,5vw,5rem);}
.img-mask, .proj-card, .mini-card, .contact-card, .contato__card, .svc-index__row, .svc-block, .timeline__item, .value-card, .metric, .impact-card, .faq-item, .vmv-card, .contato__form, .contato-page__form-wrap, .sobre__float, .manifesto__seal, .proj-modal__content, .contact-map, .about-stat, .gallery-card{border-radius:22px;}
.mini-card,.contact-card,.contato__card,.svc-index__row,.proj-card,.proj-filter__btn,.timeline__item,.value-card,.vmv-card,.faq-item,.impact-card,.metric,.contato__form,.contato-page__form-wrap,.contact-map,.about-stat,.manifesto__seal,.sobre__float{background:var(--aizen-panel);border:var(--aizen-stroke)!important;box-shadow:var(--aizen-shadow);}
.mini-card h3,.contact-card strong,.svc-index__title,.proj-card__title,.timeline__item h3,.value-card h3,.vmv-card h3,.faq-item__q,.section-title,.sobre__float-num{color:var(--offwhite);}
.mini-card__icon,.contact-card__ico,.contato__card-ico,.vmv-card__ico,.value-card__ico{background:var(--aizen-gold-grad)!important;color:#090909!important;box-shadow:0 10px 24px rgba(145,124,65,.28);}
.mini-card:hover,.contact-card:hover,.svc-index__row:hover,.proj-card:hover,.faq-item:hover,.impact-card:hover{transform:translateY(-5px);border-color:rgba(217,199,130,.4)!important;}
.checklist li::before{background:var(--aizen-gold-grad);color:#090909;}
.sobre__media .img-mask::after{background:linear-gradient(160deg, rgba(217,199,130,.18), rgba(7,7,7,.35));}
.sobre__float{background:var(--aizen-gold-grad);color:#090909;border:none;}
.manifesto__quote{border-left:3px solid rgba(217,199,130,.65);padding-left:1rem;color:var(--offwhite);}
.divider{background:var(--aizen-gold-grad)!important;height:2px!important;opacity:1!important;}
.metrics__item,.metrics__card,.numbers__item,.about-stat{background:var(--aizen-panel);border:var(--aizen-stroke);box-shadow:var(--aizen-shadow);}
.proj-filter__btn{color:var(--offwhite);border:var(--aizen-stroke);}
.proj-filter__btn.is-active,.proj-filter__btn:hover{background:var(--aizen-gold-grad);color:#090909;border-color:transparent;}
.proj-card__overlay,.proj-modal__overlay{background:linear-gradient(180deg, transparent 0%, rgba(7,7,7,.94) 100%);}
.proj-card__tag,.svc-index__tag,.timeline__meta,.badge, .chip{background:rgba(217,199,130,.12);color:var(--yellow);border:1px solid rgba(217,199,130,.18);}
.field label{color:rgba(243,238,215,.74);}
.field input,.field textarea,.field select{background:rgba(255,255,255,.03);border:1px solid rgba(217,199,130,.16);color:var(--offwhite);border-radius:16px;}
.field input::placeholder,.field textarea::placeholder{color:rgba(243,238,215,.38);}
.field input:focus,.field textarea:focus,.field select:focus{border-color:rgba(217,199,130,.5);box-shadow:0 0 0 4px rgba(217,199,130,.09);}
.footer{background:#050505;border-top:1px solid rgba(217,199,130,.14);}
.footer__col a,.footer__col span,.footer__bottom span{color:rgba(243,238,215,.72);}
.footer h3{color:var(--offwhite);}
.scroll-progress{background:var(--aizen-gold-grad);}
.page-transition{background:var(--aizen-gold-grad);}
.page-transition__mark{background:#090909;clip-path:none;border-radius:8px;transform:rotate(45deg);width:28px;height:28px;}
.cursor-dot{background:var(--yellow);}
.cursor-ring{border-color:rgba(217,199,130,.72);}
.cursor-ring.is-hover{background:rgba(217,199,130,.12);}
.hero.hero--inner{min-height:78vh;}
.hero.hero--inner .hero__content{max-width:860px;}
.breadcrumb a,.breadcrumb .current{color:rgba(243,238,215,.8);}
.breadcrumb .sep{background:var(--yellow);}
.video-section,.timeline,.faq,.metrics,.about-stats,.proj-grid,.contact-cards{position:relative;z-index:1;}
@media (min-width: 992px){
  .hero__content{padding-right:9rem;}
  .sobre__grid{grid-template-columns:1.05fr .95fr;}
  .contato-page__grid{grid-template-columns:.92fr 1.08fr;}
}
@media (max-width: 991px){
  .topbar__contacts{gap:.85rem;}
  .nav{background:rgba(7,7,7,.94);}
  .nav__menu{background:rgba(9,9,9,.98);border:1px solid rgba(217,199,130,.14);box-shadow:0 18px 50px rgba(0,0,0,.45);}
  .hero__title{max-width:none;}
  .hero__data{padding-inline:.8rem;}
}
