:root{
  --black: #080809;
  --black-soft: #0d0d0f;
  --charcoal: #171719;
  --charcoal-2: #222226;
  --steel: #34343a;
  --gold: #c9a45b;
  --gold-bright: #e2c27d;
  --gold-dark: #86652d;
  --white: #f4f1ea;
  --muted: #aaa7a1;
  --line: rgba(201,164,91,.22);
  --display: 'Bebas Neue', Impact, sans-serif;
  --body: 'Manrope', Arial, sans-serif;
  --container: 1180px;

  /* Mantém a página de privacidade compatível */
  --ink: var(--white);
  --paper: var(--black);
  --paper-2: var(--charcoal);
  --rule: var(--line);
  --accent: var(--gold);
  --accent-2: var(--gold-bright);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scrollbar-color:var(--gold-dark) var(--black); }
body{
  margin:0;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.035), transparent 22%),
    radial-gradient(circle at 86% 62%, rgba(201,164,91,.04), transparent 25%),
    linear-gradient(rgba(8,8,9,.76),rgba(8,8,9,.83)),
    url('../img/textura-concreto-chumbo.webp') center top / 760px 760px repeat,
    var(--black);
  color:var(--white);
  font-family:var(--body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
body.menu-open{ overflow:hidden; }
img{ display:block; width:100%; max-width:100%; object-fit:cover; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,p{ margin-top:0; }
button,input,textarea{ font:inherit; }
button,a{ -webkit-tap-highlight-color:transparent; }
:focus-visible{ outline:2px solid var(--gold-bright); outline-offset:4px; }
::selection{ background:var(--gold); color:var(--black); }

.page-grain{
  position:fixed;
  inset:0;
  z-index:999;
  pointer-events:none;
  opacity:.16;
  background-image:
    repeating-radial-gradient(circle at 20% 30%, transparent 0 1px, rgba(255,255,255,.055) 1px 2px),
    repeating-linear-gradient(95deg, transparent 0 3px, rgba(255,255,255,.012) 3px 4px);
  background-size:7px 7px, 11px 11px;
  mix-blend-mode:soft-light;
}

.scroll-progress{ position:fixed; top:0; left:0; right:0; height:2px; z-index:1001; background:rgba(255,255,255,.05); }
.scroll-progress span{ display:block; width:100%; height:100%; background:linear-gradient(90deg,var(--gold-dark),var(--gold-bright)); transform:scaleX(0); transform-origin:left; box-shadow:0 0 16px rgba(201,164,91,.65); }

.eyebrow{
  margin:0 0 .9rem;
  color:var(--gold);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.section-title{
  max-width:12ch;
  margin:0;
  font-family:var(--display);
  font-size:clamp(3.1rem,7vw,6.8rem);
  font-weight:400;
  line-height:.92;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.word-mask{ display:inline-block; overflow:hidden; vertical-align:bottom; }
.word-mask .word{ display:inline-block; transform:translateY(110%); transition:transform .75s cubic-bezier(.16,.8,.2,1); transition-delay:var(--word-delay,0ms); }
.reveal.is-visible .word-mask .word,
.is-visible.split-title .word-mask .word{ transform:translateY(0); }
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible{ opacity:1; transform:none; }
.reveal-up{ opacity:0; transform:translateY(24px); animation:hero-up .75s cubic-bezier(.2,.75,.2,1) forwards; animation-delay:.48s; }

.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  min-height:50px;
  padding:.82rem 1.35rem;
  overflow:hidden;
  border:1px solid transparent;
  border-radius:2px;
  font-size:.84rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  transition:transform .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.32) 48%,transparent 72%);
  transform:translateX(-140%);
  transition:transform .55s ease;
}
.btn:hover::before{ transform:translateX(140%); }
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ color:var(--black); background:linear-gradient(135deg,var(--gold-bright),var(--gold)); border-color:var(--gold-bright); box-shadow:0 10px 28px rgba(201,164,91,.13); }
.btn-primary:hover{ box-shadow:0 14px 34px rgba(201,164,91,.24); }
.btn-outline{ color:var(--white); border-color:rgba(201,164,91,.48); background:rgba(8,8,9,.45); }
.btn-outline:hover{ color:var(--gold-bright); border-color:var(--gold); background:rgba(201,164,91,.06); }
.text-link{ display:inline-flex; align-items:center; gap:.75rem; color:var(--muted); border-bottom:1px solid rgba(255,255,255,.18); padding:.65rem 0; font-size:.88rem; transition:color .2s,border-color .2s; }
.text-link:hover{ color:var(--gold-bright); border-color:var(--gold); }
.text-link span{ transition:transform .2s; }
.text-link:hover span{ transform:translateY(4px); }

/* Cabeçalho */
.site-header{
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  background:linear-gradient(180deg,rgba(8,8,9,.94),rgba(8,8,9,.72));
  border-bottom:1px solid rgba(201,164,91,.12);
  backdrop-filter:blur(14px);
  transition:transform .35s ease, background .35s ease;
}
.site-header.is-hidden{ transform:translateY(-110%); }
.header-inner{ max-width:var(--container); margin:auto; min-height:74px; padding:.7rem 1.4rem; display:flex; align-items:center; gap:2rem; }
.brand{ display:flex; align-items:center; gap:.75rem; margin-right:auto; }
.brand-mark{
  width:42px;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  color:var(--gold-bright);
  font-family:var(--display);
  font-size:1.15rem;
  letter-spacing:.06em;
  box-shadow:inset 0 0 0 3px var(--black), inset 0 0 0 4px rgba(201,164,91,.35);
}
.image-brand{
  overflow:hidden;
  border-radius:4px;
  border-color:rgba(201,164,91,.3);
  background:transparent url('../img/icone-dc-transparente.png') center / 88% auto no-repeat;
  color:transparent;
  box-shadow:0 0 18px rgba(201,164,91,.12);
}
.brand-name{ font-family:var(--display); font-size:1.32rem; line-height:.8; letter-spacing:.06em; text-transform:uppercase; }
.brand-name em{ display:block; margin-top:.35rem; color:var(--gold); font-family:var(--body); font-size:.48rem; font-style:normal; font-weight:700; letter-spacing:.28em; }
.main-nav{ display:flex; align-items:center; gap:1.8rem; }
.main-nav a{ position:relative; color:#cbc8c1; font-size:.78rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.main-nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px; background:var(--gold); transition:right .25s ease; }
.main-nav a:hover::after{ right:0; }
.header-cta{ min-height:42px; padding:.55rem 1rem; font-size:.75rem; }
.nav-toggle{ display:none; width:42px; height:42px; padding:10px; border:1px solid var(--line); background:transparent; flex-direction:column; justify-content:center; gap:5px; }
.nav-toggle span{ display:block; height:1px; width:100%; background:var(--white); transition:transform .25s,opacity .25s; }
.nav-toggle.is-open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* Abertura */
.hero{
  position:relative;
  min-height:100svh;
  padding:9rem 1.4rem 5rem;
  display:flex;
  align-items:center;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background:
    linear-gradient(105deg,rgba(8,8,9,.93) 0%,rgba(13,13,15,.82) 48%,rgba(24,24,27,.68) 100%),
    repeating-linear-gradient(96deg,transparent 0 5px,rgba(255,255,255,.018) 5px 6px),
    url('../img/textura-concreto-chumbo.webp') center / 760px 760px repeat;
}
.hero::before{
  content:"DOM CRUZ";
  position:absolute;
  left:-.02em;
  bottom:-.18em;
  color:rgba(255,255,255,.022);
  font-family:var(--display);
  font-size:clamp(12rem,28vw,32rem);
  line-height:.7;
  white-space:nowrap;
  pointer-events:none;
}
.hero-glow{ position:absolute; top:4%; right:4%; width:48vw; height:48vw; border-radius:50%; background:radial-gradient(circle,rgba(201,164,91,.11),transparent 64%); filter:blur(8px); }
.hero-wordmark{ display:none; }
.hero-inner{ position:relative; z-index:2; width:100%; max-width:var(--container); margin:auto; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr); align-items:center; gap:2rem; }
.hero-copy{ max-width:780px; }
.hero-title{ margin:0 0 1.6rem; font-family:var(--display); font-size:clamp(4.5rem,9.5vw,9.3rem); font-weight:400; line-height:.82; letter-spacing:.005em; text-transform:uppercase; }
.kinetic-line{ display:block; overflow:hidden; padding:.04em 0; }
.kinetic-line > span{ display:block; transform:translateY(110%); animation:title-in .9s cubic-bezier(.16,.8,.2,1) forwards; animation-delay:.12s; }
.kinetic-line:nth-child(2) > span{ animation-delay:.27s; }
.kinetic-line.gold{ color:var(--gold); text-shadow:0 0 34px rgba(201,164,91,.12); }
.hero-text{ max-width:59ch; margin:0 0 1.8rem; color:#b9b6af; font-size:clamp(.98rem,1.5vw,1.1rem); }
.hero-actions{ display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; animation-delay:.62s; }

.hero-object{
  --tilt-x:0deg;
  --tilt-y:0deg;
  position:relative;
  width:min(36vw,430px);
  aspect-ratio:1;
  margin-left:auto;
  display:grid;
  place-items:center;
  perspective:900px;
  transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style:preserve-3d;
  transition:transform .2s ease-out;
  cursor:pointer;
}
.hero-object:focus-visible{ outline:1px solid var(--gold-bright); outline-offset:10px; border-radius:50%; }
.hero-object:hover .logo-card{ filter:drop-shadow(0 18px 18px rgba(0,0,0,.55)) drop-shadow(0 0 18px rgba(201,164,91,.2)); }
.hero-ring{ position:absolute; inset:8%; border:1px solid rgba(201,164,91,.28); border-radius:50%; transform-style:preserve-3d; }
.ring-one{ animation:ring-spin 18s linear infinite; border-left-color:transparent; border-bottom-color:rgba(201,164,91,.08); }
.ring-two{ inset:21%; animation:ring-spin-reverse 12s linear infinite; border-right-color:transparent; box-shadow:0 0 60px rgba(201,164,91,.07); }
.blade{
  position:relative;
  width:38%;
  height:68%;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:linear-gradient(105deg,#101012 0%,#3a3a3f 38%,#101012 62%,#29292d 100%);
  border:1px solid rgba(226,194,125,.58);
  clip-path:polygon(28% 0,100% 11%,87% 100%,7% 93%,0 19%);
  box-shadow:26px 30px 55px rgba(0,0,0,.55), inset 0 0 30px rgba(255,255,255,.05);
  transform:translateZ(55px) rotate(8deg);
  animation:blade-float 5s ease-in-out infinite;
}
.blade::after{ content:""; position:absolute; inset:8px; border:1px solid rgba(201,164,91,.22); clip-path:inherit; }
.blade-shine{ position:absolute; inset:-60% -160%; background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.22) 49%,transparent 56%); animation:blade-shine 4.5s ease-in-out infinite; }
.blade-monogram{ position:relative; color:var(--gold-bright); font-family:var(--display); font-size:clamp(3rem,7vw,6rem); letter-spacing:.05em; text-shadow:0 4px 20px #000; }
.logo-card{
  width:55%;
  height:auto;
  aspect-ratio:1031/1215;
  background:transparent;
  border:0;
  clip-path:none;
  box-shadow:none;
  transition:filter .25s ease;
}
.logo-card img{ position:relative; z-index:2; width:100%; height:100%; object-fit:contain; }
.logo-card .blade-shine{ display:none; }
.logo-card::after{ display:none; }
.object-label{ position:absolute; bottom:8%; color:rgba(244,241,234,.5); font-size:.55rem; font-weight:700; letter-spacing:.28em; }
.scroll-cue{ position:absolute; z-index:3; right:clamp(1.4rem,5vw,5rem); bottom:2rem; display:flex; align-items:center; gap:.8rem; color:rgba(244,241,234,.47); font-size:.6rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.scroll-cue i{ width:40px; height:1px; position:relative; overflow:hidden; background:rgba(255,255,255,.18); }
.scroll-cue i::after{ content:""; position:absolute; inset:0; background:var(--gold); animation:cue 1.8s ease-in-out infinite; }

/* História */
.story{ position:relative; max-width:var(--container); margin:auto; padding:8rem 1.4rem 6rem; }
.story-heading{ max-width:780px; margin-bottom:6rem; }
.story-heading p:last-child{ max-width:55ch; margin:1.6rem 0 0; color:var(--muted); }
.story-layout{ display:grid; grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr); gap:clamp(3rem,8vw,8rem); }
.story-sticky{ position:sticky; top:31vh; align-self:start; min-height:300px; }
.story-number{ color:transparent; -webkit-text-stroke:1px rgba(201,164,91,.55); font-family:var(--display); font-size:clamp(8rem,18vw,14rem); line-height:.8; transition:opacity .25s,transform .25s; }
.story-number.is-changing{ opacity:.18; transform:translateY(12px); }
.story-track{ width:100%; max-width:260px; height:1px; margin:2rem 0 1rem; background:rgba(255,255,255,.14); }
.story-track span{ display:block; height:100%; width:25%; background:var(--gold); box-shadow:0 0 12px rgba(201,164,91,.5); transition:width .55s cubic-bezier(.2,.75,.2,1); }
.story-sticky p{ margin:0; color:var(--gold); font-size:.67rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.story-steps{ display:flex; flex-direction:column; }
.story-step{ min-height:72vh; display:flex; flex-direction:column; justify-content:center; padding:3rem 0; opacity:.24; transform:translateX(28px); transition:opacity .55s ease,transform .55s ease; }
.story-step.is-active{ opacity:1; transform:none; }
.step-kicker{ margin-bottom:1rem; color:var(--gold); font-size:.69rem; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.story-step h3{ max-width:16ch; margin:0 0 1.2rem; font-family:var(--display); font-size:clamp(2.6rem,5vw,5.2rem); font-weight:400; line-height:.94; text-transform:uppercase; }
.story-step p{ max-width:58ch; margin:0; color:var(--muted); }

/* Faixa */
.manifesto{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--gold); color:var(--black); overflow:hidden; transform:none; }
.manifesto.reveal{ transform:none; }
.marquee{ padding:.65rem 0 .48rem; }
.marquee-track{ width:max-content; display:flex; align-items:center; gap:1.5rem; animation:marquee 24s linear infinite; }
.marquee span{ font-family:var(--display); font-size:clamp(2rem,4vw,4rem); line-height:1; }
.marquee i{ font-style:normal; font-size:.9rem; }

/* Serviços */
.services{
  padding:8rem max(1.4rem,calc((100vw - var(--container))/2));
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(23,23,25,.84) 0%,rgba(13,13,15,.90) 100%),
    url('../img/textura-concreto-chumbo.webp') center / 760px 760px repeat;
  border-bottom:1px solid var(--line);
}
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:3.4rem; }
.carousel-controls{ display:flex; gap:.7rem; flex:0 0 auto; }
.carousel-btn{ width:52px; height:52px; border:1px solid var(--line); color:var(--white); background:rgba(255,255,255,.018); cursor:pointer; transition:background .2s,color .2s,transform .2s; }
.carousel-btn:hover{ background:var(--gold); color:var(--black); transform:translateY(-2px); }
.services-viewport{ overflow:visible; }
.services-track{
  display:flex;
  gap:1rem;
  overflow-x:auto;
  padding:.4rem max(1.4rem,calc((100vw - var(--container))/2)) 1.5rem 0;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  cursor:grab;
  touch-action:pan-x;
}
.services-track::-webkit-scrollbar{ display:none; }
.services-track.is-dragging{ cursor:grabbing; scroll-behavior:auto; }
.service-slide{
  position:relative;
  flex:0 0 clamp(230px,25vw,310px);
  min-height:220px;
  padding:1.5rem;
  overflow:hidden;
  scroll-snap-align:start;
  border:1px solid rgba(255,255,255,.1);
  background:
    linear-gradient(150deg,rgba(255,255,255,.045),transparent 48%),
    repeating-linear-gradient(110deg,transparent 0 5px,rgba(255,255,255,.01) 5px 6px),
    #151518;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease;
}
.service-slide::before{ content:""; position:absolute; inset:auto 0 0; height:2px; background:linear-gradient(90deg,var(--gold),transparent); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.service-slide:hover{ transform:translateY(-8px); border-color:rgba(201,164,91,.55); box-shadow:0 20px 45px rgba(0,0,0,.28); }
.service-slide:hover::before{ transform:scaleX(1); }
.service-slide > span{ display:block; margin-bottom:3.8rem; color:var(--gold); font-size:.65rem; font-weight:700; letter-spacing:.16em; }
.service-slide h3{ margin:0 0 .6rem; font-family:var(--display); font-size:1.8rem; font-weight:400; letter-spacing:.03em; text-transform:uppercase; }
.service-slide p{ margin:0; color:var(--muted); font-size:.83rem; line-height:1.55; }
.carousel-progress{ width:min(500px,72%); height:2px; margin-top:1.2rem; background:rgba(255,255,255,.1); }
.carousel-progress span{ display:block; width:15%; height:100%; background:var(--gold); transition:width .15s linear; }
.swipe-hint{ margin:1rem 0 0; color:#706f6b; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }

/* Equipe */
.team{ padding:8rem 1.4rem; border-bottom:1px solid var(--line); }
.team-inner{ max-width:var(--container); margin:auto; }
.team-tabs{ display:flex; gap:0; overflow-x:auto; margin-bottom:1.6rem; border-bottom:1px solid var(--line); scrollbar-width:none; }
.team-tabs::-webkit-scrollbar{ display:none; }
.team-tab{ flex:0 0 auto; padding:1rem 1.6rem; border:0; border-bottom:2px solid transparent; background:transparent; color:#7d7b76; font-family:var(--display); font-size:1.35rem; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; transition:color .22s,border-color .22s,background .22s; }
.team-tab:hover{ color:var(--white); }
.team-tab[aria-selected="true"]{ color:var(--gold-bright); border-color:var(--gold); background:linear-gradient(180deg,transparent,rgba(201,164,91,.06)); }
.team-profile{ min-height:570px; display:grid; grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr); background:linear-gradient(130deg,#101012,#19191d); border:1px solid rgba(255,255,255,.09); transition:opacity .22s ease,transform .22s ease; }
.team-profile.is-changing{ opacity:.25; transform:translateX(14px); }
.professional-photo{ min-height:570px; border-right:1px solid var(--line); }
.media-placeholder{ position:relative; display:grid; place-items:center; overflow:hidden; background:
  linear-gradient(145deg,rgba(201,164,91,.08),transparent 45%),
  repeating-linear-gradient(112deg,transparent 0 8px,rgba(255,255,255,.015) 8px 9px),
  #202024;
}
.media-placeholder::before,.media-placeholder::after{ content:""; position:absolute; width:140%; height:1px; background:rgba(201,164,91,.18); }
.media-placeholder:has(img)::before,.media-placeholder:has(img)::after{ display:none; }
.media-placeholder::before{ transform:rotate(42deg); }
.media-placeholder::after{ transform:rotate(-42deg); }
.media-placeholder span{ position:relative; z-index:2; padding:.55rem .8rem; color:rgba(244,241,234,.38); border:1px solid rgba(201,164,91,.2); font-size:.61rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; background:rgba(8,8,9,.72); }
.professional-photo img,.work-photo img{ width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.professional-photo img{ object-position:center top; }
.team-profile-content{ padding:clamp(2rem,5vw,4.5rem); display:flex; flex-direction:column; justify-content:center; min-width:0; }
.profile-index{ margin:0 0 .6rem; color:var(--gold); font-size:.63rem; font-weight:700; letter-spacing:.2em; }
.team-profile-content > h3{ margin:0 0 2.6rem; font-family:var(--display); font-size:clamp(3rem,6vw,6rem); font-weight:400; line-height:.88; text-transform:uppercase; }
.profile-note{ margin:0 0 .8rem; color:var(--muted); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.work-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; }
.work-photo{ aspect-ratio:1; min-width:0; }
.team-cta{ display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:2rem; padding:1.5rem 0; }
.team-cta p{ margin:0; font-family:var(--display); font-size:clamp(1.8rem,3vw,3rem); text-transform:uppercase; }
.team-cta-actions{ display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; }

/* Localização */
.visit{ padding:8rem 1.4rem; background:
  linear-gradient(120deg,rgba(28,28,31,.80),rgba(12,12,14,.88) 70%),
  repeating-linear-gradient(94deg,transparent 0 7px,rgba(255,255,255,.01) 7px 8px),
  url('../img/textura-concreto-chumbo.webp') center / 760px 760px repeat,
  var(--charcoal);
}
.visit-inner{ max-width:var(--container); margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:center; }
.visit .section-title{ max-width:9ch; }
.visit-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2rem 1.4rem; margin-top:3rem; }
.visit-grid > div:first-child{ grid-column:1/-1; }
.info-label{ display:block; margin-bottom:.45rem; color:var(--gold); font-size:.63rem; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.visit-grid p{ margin:0; color:var(--muted); font-size:.88rem; }
.visit-grid a:hover{ color:var(--gold-bright); }
.visit-map{ position:relative; min-height:560px; border:1px solid rgba(201,164,91,.28); filter:grayscale(1) contrast(1.05); overflow:hidden; }
.visit-map::after{ content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 80px rgba(0,0,0,.5); }
.visit-map iframe{ width:100%; height:100%; min-height:560px; border:0; }
.map-corner{ position:absolute; z-index:2; right:0; bottom:0; width:78px; height:78px; display:grid; place-items:center; background:var(--gold); color:var(--black); font-family:var(--display); font-size:1.8rem; }

/* Rodapé */
.site-footer{ padding:4.5rem 1.4rem 2rem; background:#050506; border-top:1px solid rgba(201,164,91,.16); }
.footer-inner{ max-width:var(--container); margin:auto; display:grid; grid-template-columns:1fr .7fr 1fr; gap:3rem; }
.footer-brand{ display:flex; align-items:center; gap:.75rem; align-self:start; }
.footer-links{ display:flex; flex-direction:column; gap:.65rem; color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
.footer-links a:hover{ color:var(--gold); }
.footer-contact{ color:var(--muted); font-size:.8rem; }
.footer-contact a{ color:var(--gold); }
.footer-copy{ grid-column:1/-1; margin:2rem 0 0; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.07); color:#696762; font-size:.7rem; }
.whats-float{ position:fixed; z-index:92; right:1.3rem; bottom:1.3rem; width:56px; height:56px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#1fbf5b; box-shadow:0 10px 28px rgba(0,0,0,.4); opacity:0; pointer-events:none; transform:scale(.8); transition:opacity .25s,transform .25s; }
.whats-float.is-visible{ opacity:1; pointer-events:auto; transform:scale(1); }
.whats-float:hover{ transform:scale(1.08); }

/* Página de privacidade */
.politica{ color:var(--white); }
.politica strong{ color:var(--white); }

@keyframes title-in{ to{ transform:translateY(0); } }
@keyframes hero-up{ to{ opacity:1; transform:none; } }
@keyframes ring-spin{ to{ transform:rotateZ(360deg) rotateX(55deg); } }
@keyframes ring-spin-reverse{ from{ transform:rotateZ(360deg) rotateY(62deg); } to{ transform:rotateZ(0) rotateY(62deg); } }
@keyframes blade-float{ 0%,100%{ transform:translateZ(55px) rotate(8deg) translateY(0); } 50%{ transform:translateZ(70px) rotate(5deg) translateY(-12px); } }
@keyframes blade-shine{ 0%,25%{ transform:translateX(-50%); } 65%,100%{ transform:translateX(50%); } }
@keyframes cue{ 0%{ transform:translateX(-110%); } 55%,100%{ transform:translateX(110%); } }
@keyframes marquee{ to{ transform:translateX(-50%); } }

@media (max-width:960px){
  .hero-inner{ grid-template-columns:1fr; }
  .hero-copy{ padding-top:3vh; }
  .hero-wordmark{
    position:absolute;
    z-index:1;
    top:11%;
    left:50%;
    display:block;
    width:min(68vw,560px);
    aspect-ratio:3.25;
    overflow:hidden;
    opacity:.42;
    transform:translateX(-50%);
    filter:drop-shadow(0 0 26px rgba(201,164,91,.12));
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  }
  .hero-wordmark img{ width:100%; max-width:none; height:auto; transform:translateY(-58%); filter:saturate(.9) contrast(1.1); }
  .hero-object{ position:absolute; right:-10%; bottom:-4%; width:42vw; opacity:.58; }
  .story-layout{ grid-template-columns:180px 1fr; gap:3rem; }
  .team-profile{ min-height:480px; grid-template-columns:.75fr 1.25fr; }
  .professional-photo{ min-height:480px; }
  .visit-inner{ grid-template-columns:1fr; }
  .visit-map,.visit-map iframe{ min-height:420px; }
}

@media (max-width:760px){
  .header-inner{ min-height:66px; }
  .main-nav{ position:fixed; inset:66px 0 auto; padding:2rem 1.4rem 2.4rem; display:flex; flex-direction:column; align-items:flex-start; gap:1.4rem; background:rgba(8,8,9,.98); border-bottom:1px solid var(--line); opacity:0; visibility:hidden; transform:translateY(-14px); transition:opacity .25s,transform .25s,visibility .25s; }
  .main-nav.is-open{ opacity:1; visibility:visible; transform:none; }
  .main-nav a{ font-family:var(--display); font-size:2rem; }
  .header-cta{ display:none; }
  .nav-toggle{ display:flex; }
  .hero{ min-height:100svh; padding-top:7.5rem; }
  .hero-title{ font-size:clamp(4rem,18vw,7rem); }
  .hero-text{ max-width:35ch; }
  .hero-object{ width:66vw; right:-22%; bottom:1%; opacity:.44; }
  .object-label{ display:none; }
  .scroll-cue{ left:1.4rem; right:auto; }
  .story{ padding-top:6rem; }
  .story-heading{ margin-bottom:2rem; }
  .story-layout{ display:block; }
  .story-sticky{ position:sticky; top:66px; z-index:10; min-height:0; margin:0 -1.4rem; padding:.7rem 1.4rem; display:flex; align-items:center; gap:1rem; background:rgba(8,8,9,.91); backdrop-filter:blur(10px); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .story-number{ min-width:42px; font-size:2.8rem; -webkit-text-stroke:0; color:var(--gold); }
  .story-track{ flex:1; margin:0; }
  .story-sticky p{ min-width:78px; text-align:right; font-size:.54rem; }
  .story-step{ min-height:68svh; transform:translateY(24px); }
  .story-step h3{ font-size:clamp(2.8rem,12vw,4.6rem); }
  .section-head{ align-items:flex-start; }
  .carousel-controls{ display:none; }
  .service-slide{ flex-basis:78vw; max-width:300px; }
  .team-profile{ min-height:0; display:block; }
  .professional-photo{ min-height:0; aspect-ratio:4/5; border-right:0; border-bottom:1px solid var(--line); }
  .team-profile-content{ padding:2rem 1.2rem 1.5rem; }
  .team-profile-content > h3{ margin-bottom:2rem; }
  .work-gallery{ gap:.4rem; }
  .team-cta{ align-items:flex-start; flex-direction:column; }
  .team-cta-actions{ align-items:flex-start; }
  .visit-grid{ grid-template-columns:1fr; }
  .visit-grid > div:first-child{ grid-column:auto; }
  .footer-inner{ grid-template-columns:1fr 1fr; }
  .footer-brand{ grid-column:1/-1; }
}

@media (max-width:480px){
  .hero-actions{ align-items:flex-start; flex-direction:column; }
  .hero-actions .btn{ width:100%; }
  .section-title{ font-size:clamp(3rem,15vw,4.8rem); }
  .services,.team,.visit{ padding-top:6rem; padding-bottom:6rem; }
  .team-tab{ padding:.8rem 1rem; font-size:1.1rem; }
  .team-cta .btn{ width:100%; }
  .team-cta-actions{ width:100%; }
  .footer-inner{ grid-template-columns:1fr; }
  .footer-brand{ grid-column:auto; }
  .footer-copy{ grid-column:auto; }
}

@media (hover:none){
  .service-slide:hover,.btn:hover,.whats-float:hover{ transform:none; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal,.reveal-up{ opacity:1; transform:none; }
  .kinetic-line > span{ transform:none; }
  .story-step{ opacity:1; transform:none; }
}
