/* =========================================================
   PAZINI ELEVADORES — design tokens
   Paleta pensada para o setor de máquinas/elevação (CNAE 28.22-4-01
   e correlatos): tons de aço e grafite de sala de máquinas, com
   laranja de sinalização industrial como cor de ação/alerta e
   verde de status operacional para indicar "Ativa".
   ========================================================= */
:root{
  --graphite:#14181c;
  --graphite-2:#1c2228;
  --steel:#454c53;
  --steel-line:#2b3238;
  --mist:#aeb6bc;
  --paper:#eeeee9;
  --paper-2:#e4e4dc;
  --paper-line:#d4d5cd;
  --ink:#1a1d18;
  --signal:#f2660f;
  --signal-dark:#c94f09;
  --status:#2e9e6c;
  --white:#ffffff;

  --font-display:'Oswald', sans-serif;
  --font-body:'Work Sans', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;

  --rail-w:88px;
  --edge:clamp(20px, 6vw, 72px);
  --radius:3px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
address{ font-style:normal; }

a{ color:inherit; }

.skip-link{
  position:absolute; left:-999px; top:0;
  background:var(--signal); color:var(--white);
  padding:10px 16px; z-index:999; font-family:var(--font-mono);
}
.skip-link:focus{ left:8px; top:8px; }

:focus-visible{
  outline:2.5px solid var(--signal);
  outline-offset:3px;
}

/* =========================================================
   TIPOGRAFIA
   ========================================================= */
.eyebrow{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--signal);
  margin:0 0 14px;
}
.eyebrow--dark{ color:var(--signal-dark); }

h1,h2,h3{
  font-family:var(--font-display);
  text-transform:uppercase;
  letter-spacing:.01em;
  margin:0;
}

h2{
  font-size:clamp(1.9rem, 4vw, 2.7rem);
  font-weight:600;
  line-height:1.08;
  max-width:16ch;
}
.floor--light h2{ color:var(--ink); }
.floor--dark h2{ color:var(--paper); }

.floor__intro{
  font-size:1.02rem;
  color:var(--steel);
  max-width:52ch;
  margin:16px 0 0;
}
.floor--dark .floor__intro{ color:var(--mist); }
.floor__intro--dark{ color:var(--steel); }

/* =========================================================
   ESTRUTURA DE ANDARES (seções)
   ========================================================= */
.floor{
  padding:96px var(--edge) 104px;
  margin-left:var(--rail-w);
  position:relative;
}
.floor--dark{ background:var(--graphite); }
.floor--light{ background:var(--paper); }
.floor__head{ margin-bottom:56px; }

@media (max-width: 880px){
  .floor{ margin-left:0; padding:72px 22px 80px; }
}

/* =========================================================
   BOTÕES ESTILO "BOTOEIRA DE ELEVADOR"
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-mono); font-weight:600; font-size:.92rem;
  letter-spacing:.02em;
  padding:14px 24px;
  border-radius:999px;
  text-decoration:none;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.btn--call{
  background:var(--signal); color:var(--white);
  box-shadow:0 3px 0 var(--signal-dark);
}
.btn--call:hover{ background:var(--signal-dark); }
.btn--call:active{ transform:translateY(3px); box-shadow:0 0 0 var(--signal-dark); }

.btn--ghost{
  background:transparent; color:var(--paper);
  border-color:rgba(238,238,233,.35);
}
.floor--light .btn--ghost{ color:var(--ink); border-color:rgba(26,29,24,.25); }
.btn--ghost:hover{ border-color:var(--signal); color:var(--signal); }
.btn--ghost:active{ transform:translateY(2px); }

.status-chip{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:34px;
  font-family:var(--font-mono); font-size:.85rem;
  color:var(--mist);
}
.status-dot{
  width:9px; height:9px; border-radius:50%;
  background:var(--status);
  box-shadow:0 0 0 4px rgba(46,158,108,.18);
  animation:pulse 2.4s ease-in-out infinite;
}
.status-dot--sm{ display:inline-block; margin-right:8px; }
@keyframes pulse{
  0%,100%{ box-shadow:0 0 0 4px rgba(46,158,108,.18); }
  50%{ box-shadow:0 0 0 8px rgba(46,158,108,.08); }
}

/* =========================================================
   RAIL LATERAL (indicador de andar / assinatura visual)
   ========================================================= */
.shaft-rail{
  position:fixed; left:0; top:0; bottom:0; width:var(--rail-w);
  background:var(--graphite-2);
  border-right:1px solid var(--steel-line);
  display:flex; flex-direction:column; align-items:center;
  padding:28px 0 24px;
  z-index:100;
}
@media (max-width: 880px){ .shaft-rail{ display:none; } }

.rail-display{
  font-family:var(--font-mono);
  text-align:center;
  background:#0d1013;
  border:1px solid var(--steel-line);
  border-radius:6px;
  padding:8px 6px 10px;
  width:56px;
  margin-bottom:30px;
}
.rail-display__label{
  display:block; font-size:.52rem; letter-spacing:.14em;
  color:var(--steel); margin-bottom:4px;
}
.rail-display__value{
  display:block; font-size:1.5rem; font-weight:600;
  color:var(--signal);
  text-shadow:0 0 10px rgba(242,102,15,.65);
}

.rail-track{
  list-style:none; margin:0; padding:0;
  position:relative;
  flex:1;
  display:flex; flex-direction:column; justify-content:space-between;
  width:100%;
}
.rail-track::before{
  content:"";
  position:absolute; left:50%; top:4px; bottom:4px; width:2px;
  background:var(--steel-line);
  transform:translateX(-50%);
}
.rail-track li{ position:relative; display:flex; justify-content:center; }
.rail-dot{
  position:relative; z-index:2;
  width:14px; height:14px; border-radius:50%;
  background:var(--graphite-2);
  border:2px solid var(--steel);
  text-decoration:none;
  transition:border-color .15s ease, background .15s ease, transform .15s ease;
}
.rail-dot:hover{ border-color:var(--signal); transform:scale(1.15); }
.rail-dot.is-active{ background:var(--signal); border-color:var(--signal); }
.rail-dot span{
  position:absolute; left:26px; top:50%; transform:translateY(-50%);
  white-space:nowrap;
  font-family:var(--font-mono); font-size:.72rem;
  color:var(--mist);
  background:var(--graphite-2);
  padding:4px 10px;
  border:1px solid var(--steel-line);
  border-radius:4px;
  opacity:0; pointer-events:none;
  transition:opacity .15s ease, transform .15s ease;
  transform:translateY(-50%) translateX(-6px);
}
.rail-dot:hover span, .rail-dot:focus-visible span{
  opacity:1; transform:translateY(-50%) translateX(0);
}

.rail-car{
  position:absolute; left:50%;
  width:20px; height:20px;
  transform:translate(-50%, -50%);
  pointer-events:none;
  transition:top .1s linear;
}
.rail-car::before{
  content:"";
  position:absolute; inset:0;
  border:2px solid var(--signal);
  border-radius:3px;
  background:rgba(242,102,15,.12);
}

/* =========================================================
   BARRA MOBILE
   ========================================================= */
.mobile-bar{ display:none; }
@media (max-width: 880px){
  .mobile-bar{
    display:block; position:sticky; top:0; z-index:100;
    background:var(--graphite-2);
    border-bottom:1px solid var(--steel-line);
  }
  .mobile-bar__toggle{
    width:100%; display:flex; align-items:center; gap:12px;
    background:none; border:0; padding:14px 18px;
    color:var(--paper); font-family:var(--font-mono);
    cursor:pointer;
  }
  .mobile-bar__floor{
    background:#0d1013; border:1px solid var(--steel-line); border-radius:5px;
    color:var(--signal); font-weight:600; font-size:1.05rem;
    padding:4px 9px; text-shadow:0 0 8px rgba(242,102,15,.6);
  }
  .mobile-bar__label{ flex:1; text-align:left; font-size:.82rem; letter-spacing:.03em; text-transform:uppercase; }
  .mobile-bar__toggle svg{ transition:transform .15s ease; }
  .mobile-bar__toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }

  .mobile-bar__progress{ height:3px; background:var(--steel-line); }
  .mobile-bar__progress span{ display:block; height:100%; width:0%; background:var(--signal); transition:width .1s linear; }

  .mobile-menu{
    display:flex; flex-direction:column;
    background:var(--graphite-2);
    border-bottom:1px solid var(--steel-line);
  }
  .mobile-menu a{
    padding:13px 20px; text-decoration:none; color:var(--mist);
    font-family:var(--font-mono); font-size:.86rem;
    border-top:1px solid var(--steel-line);
  }
  .mobile-menu a:hover{ color:var(--signal); }
}

/* =========================================================
   HERO — TÉRREO
   ========================================================= */
.hero{ padding-top:64px; padding-bottom:60px; min-height:88vh; display:flex; flex-direction:column; justify-content:center; }
.hero__grid{
  display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center;
}
@media (max-width: 880px){ .hero__grid{ grid-template-columns:1fr; } }

.hero__title{
  font-size:clamp(2.6rem, 6.4vw, 4.6rem);
  color:var(--paper);
  line-height:.98;
  font-weight:700;
}
.hero__title span{ color:var(--signal); }

.hero__lede{
  margin:26px 0 0;
  color:var(--mist);
  font-size:1.08rem;
  max-width:46ch;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }

.hero__shaft{ display:flex; justify-content:center; }
.shaft-svg{ width:100%; max-width:260px; height:auto; }
.shaft-frame{ fill:none; stroke:var(--steel-line); stroke-width:2; }
.shaft-floorline{ stroke:var(--steel-line); stroke-width:1; stroke-dasharray:3 4; }
.shaft-num{ font-family:var(--font-mono); font-size:13px; fill:var(--steel); }
.shaft-cable{ stroke:var(--steel-line); stroke-width:1; }
.shaft-car{ fill:var(--graphite-2); stroke:var(--signal); stroke-width:2; }
.shaft-car-line{ stroke:var(--steel-line); stroke-width:1; }
.shaft-car-btn{ fill:var(--signal); }
#heroCar{ animation:ride 7s ease-in-out infinite; transform-origin:center; }
@keyframes ride{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-260px); }
}

.scroll-hint{
  display:flex; align-items:center; gap:10px;
  margin:56px auto 0; width:max-content;
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--steel); text-decoration:none;
}
.scroll-hint span{
  width:1px; height:26px; background:var(--steel);
  position:relative; overflow:hidden;
}
.scroll-hint span::after{
  content:""; position:absolute; left:0; top:-100%; width:100%; height:100%;
  background:var(--signal);
  animation:drip 1.8s ease-in-out infinite;
}
@keyframes drip{
  0%{ top:-100%; } 60%,100%{ top:100%; }
}
.scroll-hint:hover{ color:var(--signal); }

/* =========================================================
   SOBRE
   ========================================================= */
.about__grid{
  display:grid; grid-template-columns:1.2fr .8fr; gap:60px; align-items:start;
}
@media (max-width: 880px){ .about__grid{ grid-template-columns:1fr; gap:40px; } }
.about__text p{ font-size:1.05rem; color:#3a3d36; margin:0 0 18px; max-width:58ch; }
.about__text strong{ color:var(--ink); }

.about__facts{
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--paper-line);
  border:1px solid var(--paper-line);
}
.fact{
  background:var(--paper); padding:16px 18px;
  display:flex; flex-direction:column; gap:6px;
}
.fact__label{ font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:var(--steel); }
.fact__value{ font-family:var(--font-mono); font-size:.95rem; color:var(--ink); font-weight:600; }
.fact--status .fact__value{ display:flex; align-items:center; color:var(--status); }

/* =========================================================
   SERVIÇOS
   ========================================================= */
.services__grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
  background:var(--steel-line);
  border:1px solid var(--steel-line);
}
@media (max-width: 880px){ .services__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 560px){ .services__grid{ grid-template-columns:1fr; } }

.service{
  background:var(--graphite);
  padding:32px 26px 34px;
  transition:background .15s ease;
}
.service:hover{ background:var(--graphite-2); }
.service__icon{ width:38px; height:38px; color:var(--signal); margin-bottom:20px; }
.service h3{
  font-family:var(--font-body); text-transform:none; letter-spacing:0;
  font-size:1.08rem; font-weight:600; color:var(--paper); margin-bottom:10px;
}
.service p{ color:var(--mist); font-size:.92rem; margin:0; }

/* =========================================================
   PLACA DE DADOS (3º andar)
   ========================================================= */
.platebox{
  background:var(--graphite);
  border-radius:6px;
  padding:8px 0;
  max-width:760px;
  margin-bottom:64px;
}
.platebox__row{
  display:flex; justify-content:space-between; gap:20px;
  padding:13px 26px;
  border-bottom:1px solid var(--steel-line);
  font-family:var(--font-mono); font-size:.9rem;
}
.platebox__row:last-child{ border-bottom:none; }
.platebox__row span{ color:var(--mist); }
.platebox__row strong{ color:var(--paper); font-weight:600; text-align:right; }
.platebox__status{ display:flex; align-items:center; color:var(--status) !important; }

.cnae__title{
  font-family:var(--font-body); text-transform:none; letter-spacing:0;
  font-size:1.2rem; font-weight:700; color:var(--ink);
  margin-bottom:20px;
}
.cnae__item{
  display:grid; grid-template-columns:110px 130px 1fr;
  gap:16px; align-items:baseline;
  padding:14px 0;
  border-bottom:1px solid var(--paper-line);
}
.cnae__item--main{ border-top:2px solid var(--signal); }
@media (max-width: 700px){
  .cnae__item{ grid-template-columns:1fr; gap:4px; padding:16px 0; }
}
.cnae__tag{
  font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em;
  color:var(--steel);
}
.cnae__item--main .cnae__tag{ color:var(--signal-dark); font-weight:700; }
.cnae__code{ font-family:var(--font-mono); font-weight:600; color:var(--ink); }
.cnae__desc{ color:#3a3d36; font-size:.94rem; }

/* =========================================================
   GALERIA
   ========================================================= */
.gallery{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  grid-auto-rows:220px;
  gap:14px;
}
.gallery__item--tall{ grid-row:span 2; }
.gallery__item--wide{ grid-column:span 2; }
@media (max-width: 880px){
  .gallery{ grid-template-columns:1fr 1fr; grid-auto-rows:170px; }
  .gallery__item--tall{ grid-row:span 1; }
  .gallery__item--wide{ grid-column:span 2; }
}
@media (max-width: 540px){
  .gallery{ grid-template-columns:1fr; }
  .gallery__item--wide, .gallery__item--tall{ grid-column:span 1; grid-row:span 1; }
}
.gallery__item{
  position:relative; margin:0; overflow:hidden; border-radius:4px;
  background:var(--graphite-2);
}
.gallery__item img{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(.15) contrast(1.05);
  transition:transform .5s ease, filter .3s ease;
}
.gallery__item:hover img{ transform:scale(1.06); filter:grayscale(0) contrast(1.05); }
.gallery__item figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:14px 16px 12px;
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.03em;
  color:var(--paper);
  background:linear-gradient(to top, rgba(10,12,14,.88), transparent);
}
.gallery__credit{
  margin:26px 0 0; font-family:var(--font-mono); font-size:.72rem; color:var(--steel);
}

/* =========================================================
   LOCALIZAÇÃO
   ========================================================= */
.location__grid{
  display:grid; grid-template-columns:.85fr 1.15fr; gap:44px; align-items:stretch;
}
@media (max-width: 880px){ .location__grid{ grid-template-columns:1fr; } }

.location__card h3{
  font-family:var(--font-body); text-transform:none; letter-spacing:0;
  font-size:1.15rem; font-weight:700; margin-bottom:16px;
}
.location__card address{ font-size:1.02rem; color:#3a3d36; line-height:1.7; }
.location__note{ margin:18px 0 26px; font-size:.9rem; color:var(--steel); }

.location__map{
  min-height:340px; border-radius:4px; overflow:hidden;
  border:1px solid var(--paper-line);
  filter:grayscale(.25) contrast(1.05);
}
.location__map iframe{ width:100%; height:100%; min-height:340px; border:0; }

/* =========================================================
   COBERTURA / CONTATO
   ========================================================= */
.floor--roof{ text-align:center; }
.floor--roof .floor__head{ display:flex; flex-direction:column; align-items:center; }
.contact__grid{
  display:flex; flex-wrap:wrap; justify-content:center; gap:20px;
  max-width:640px; margin:0 auto;
}
.contact__card{
  flex:1 1 240px;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:34px 24px;
  border:1.5px solid var(--steel-line);
  border-radius:6px;
  text-decoration:none;
  color:var(--paper);
  transition:border-color .15s ease, transform .15s ease, background .15s ease;
}
.contact__card svg{ color:var(--signal); }
.contact__card:hover{ border-color:var(--signal); background:var(--graphite-2); transform:translateY(-3px); }
.contact__label{ font-family:var(--font-mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; color:var(--steel); }
.contact__value{ font-family:var(--font-mono); font-size:1.05rem; font-weight:600; }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{
  margin-left:var(--rail-w);
  background:#0d1013;
  color:var(--mist);
  padding:34px var(--edge);
  display:flex; flex-wrap:wrap; gap:20px;
  justify-content:space-between; align-items:center;
  font-size:.82rem;
}
@media (max-width: 880px){ .site-footer{ margin-left:0; } }
.site-footer__top{
  font-family:var(--font-mono); text-decoration:none; color:var(--signal);
  font-size:.8rem; letter-spacing:.04em; white-space:nowrap;
}
.site-footer__top:hover{ text-decoration:underline; }

/* =========================================================
   REVEAL ON SCROLL
   ========================================================= */
.reveal{
  opacity:0; transform:translateY(18px);
  transition:opacity .6s ease, transform .6s ease;
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; }
}
