/* =========================================================
   Serralheria 3F — folha de estilo principal
   Tema: industrial escuro, aço + faísca de solda
   ========================================================= */

/* ---------- 1. Tokens ---------- */
:root{
  /* cores */
  --bg:            #0e0e10;
  --bg-2:          #141418;
  --bg-3:          #1b1b21;
  --surface:       #17171c;
  --surface-hi:    #21212a;
  --line:          #2a2a33;
  --line-hi:       #3a3a46;

  --text:          #edeef1;
  --text-soft:     #a9adb6;
  --text-mute:     #767b85;

  --accent:        #e3252b;   /* vermelho da marca */
  --accent-rgb:    227,37,43;
  --accent-hi:     #ff3f45;
  --accent-dim:    rgba(var(--accent-rgb),.14);
  --steel:         #7f8794;

  /* tipografia */
  --font-display: "Oswald", "Arial Narrow", sans-serif;
  --font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* medidas */
  --container: 1180px;
  --radius:    4px;
  --radius-lg: 8px;
  --gutter:    clamp(1.25rem, 4vw, 2.5rem);
  --sec-y:     clamp(4.5rem, 9vw, 8rem);

  --shadow:    0 18px 40px -18px rgba(0,0,0,.7);
  --ease:      cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; padding:0; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.85em; background:var(--bg-3);
  padding:.15em .4em; border-radius:3px; color:var(--accent-hi);
}
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
::selection{ background:var(--accent); color:#fff; }

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-.01em;
  text-transform:uppercase;
}

/* ---------- 3. Layout ---------- */
.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.section{ padding-block:var(--sec-y); position:relative; }
.section--alt{ background:var(--bg-2); border-block:1px solid var(--line); }
.section--cta{
  background:
    radial-gradient(900px 420px at 15% 0%, rgba(var(--accent-rgb),.1), transparent 70%),
    var(--bg-2);
  border-top:1px solid var(--line);
}

.section__head{ max-width:62ch; margin-bottom:clamp(2.5rem,5vw,4rem); }
.section__title{
  font-size:clamp(1.9rem,4.4vw,3.1rem);
  margin-block:.6rem .9rem;
}
.section__lead{ color:var(--text-soft); font-size:1.05rem; }

.tag{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--font-display);
  font-size:.78rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent);
}
.tag::before{
  content:""; width:28px; height:2px; background:var(--accent);
}

.grid{ display:grid; gap:1.25rem; }
.grid--services{ grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); }
.grid--3{ grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }

/* ---------- 4. Botões ---------- */
.btn{
  --btn-bg:var(--surface-hi);
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:.85rem 1.5rem;
  background:var(--btn-bg);
  border:1px solid var(--line-hi);
  border-radius:var(--radius);
  font-family:var(--font-display);
  font-size:.92rem; letter-spacing:.07em; text-transform:uppercase;
  white-space:nowrap;
  transition:transform .18s var(--ease), background .18s, border-color .18s, box-shadow .18s;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }

.btn--primary{
  --btn-bg:var(--accent);
  border-color:var(--accent);
  color:#fff;
  font-weight:600;
}
.btn--primary:hover{ --btn-bg:var(--accent-hi); box-shadow:0 10px 26px -10px rgba(var(--accent-rgb),.6); }

.btn--ghost{ --btn-bg:transparent; color:var(--text); }
.btn--ghost:hover{ --btn-bg:var(--surface-hi); border-color:var(--steel); }

.btn--lg{ padding:1.05rem 1.9rem; font-size:1rem; }
.btn--block{ width:100%; }

/* ---------- 5. Header ---------- */
.header{
  position:fixed; inset:0 0 auto 0; z-index:60;
  background:rgba(14,14,16,.6);
  backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:background .25s, border-color .25s;
}
.header.is-stuck{
  background:rgba(14,14,16,.94);
  border-bottom-color:var(--line);
}
.header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem; min-height:76px;
}

.logo{ display:flex; align-items:center; gap:.7rem; }
.logo__mark{
  flex:0 0 auto;
  width:26px; height:46px;
  color:var(--accent);
  filter:drop-shadow(0 0 14px rgba(var(--accent-rgb),.45));
  transition:filter .25s;
}
.logo:hover .logo__mark{ filter:drop-shadow(0 0 20px rgba(var(--accent-rgb),.8)); }
.logo__mark svg{ width:100%; height:100%; }
.logo__text{ display:flex; flex-direction:column; line-height:1.1; }
.logo__text strong{
  display:inline-block;
  font-family:var(--font-display); font-size:1.12rem; font-weight:700;
  letter-spacing:.02em; text-transform:uppercase;
  transform:skewX(-9deg);
  transform-origin:left center;
}
.logo__text small{
  font-size:.62rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--text-mute);
  margin-top:.15rem;
}

.nav{ display:flex; align-items:center; gap:2rem; }
.nav__list{ display:flex; align-items:center; gap:1.6rem; }
.nav__list a{
  position:relative;
  font-size:.92rem; color:var(--text-soft);
  transition:color .18s;
}
.nav__list a::after{
  content:""; position:absolute; left:0; bottom:-6px;
  width:0; height:2px; background:var(--accent);
  transition:width .22s var(--ease);
}
.nav__list a:hover,.nav__list a.is-active{ color:var(--text); }
.nav__list a:hover::after,.nav__list a.is-active::after{ width:100%; }

.burger{ display:none; width:44px; height:44px; position:relative; }
.burger span{
  position:absolute; left:11px; width:22px; height:2px;
  background:var(--text); border-radius:2px;
  transition:transform .25s var(--ease), opacity .2s;
}
.burger span:nth-child(1){ top:15px; }
.burger span:nth-child(2){ top:21px; }
.burger span:nth-child(3){ top:27px; }
.burger.is-open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ---------- 6. Hero ---------- */
.hero{
  position:relative;
  min-height:min(100svh,860px);
  display:grid; align-items:center;
  padding-block:9rem 5rem;
  overflow:hidden;
}
.hero__bg{
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(1100px 520px at 78% 18%, rgba(var(--accent-rgb),.16), transparent 68%),
    radial-gradient(700px 500px at 8% 92%, rgba(127,135,148,.12), transparent 70%),
    linear-gradient(180deg,#121216 0%,#0e0e10 60%,#0e0e10 100%);
}
.hero__bg::after{
  /* malha de chapa perfurada */
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(rgba(255,255,255,.055) 1px, transparent 1px);
  background-size:22px 22px;
  mask-image:linear-gradient(180deg,#000 0%,transparent 78%);
}
/* fundo em vídeo */
.hero__video{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity 1.6s var(--ease);
  pointer-events:none;
}
.hero__video.is-ready{ opacity:.42; }

/* escurece o vídeo pra não disputar com o texto */
.hero__scrim{
  position:absolute; inset:0; z-index:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(14,14,16,.94) 0%, rgba(14,14,16,.74) 42%, rgba(14,14,16,.38) 100%),
    linear-gradient(180deg, rgba(14,14,16,.9) 0%, transparent 32%, rgba(14,14,16,.92) 100%);
}

/* no celular o texto ocupa a largura toda: escurece de cima a baixo */
@media (max-width:759px){
  .hero__video.is-ready{ opacity:.34; }
  .hero__scrim{
    background:
      linear-gradient(180deg, rgba(14,14,16,.95) 0%, rgba(14,14,16,.72) 38%, rgba(14,14,16,.82) 70%, rgba(14,14,16,.96) 100%);
  }
}

.hero__inner{ position:relative; z-index:1; max-width:860px; }

.hero__eyebrow{
  font-family:var(--font-display);
  font-size:.82rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--accent);
  margin-bottom:1.2rem;
}
.hero__title{
  font-size:clamp(2.6rem,8vw,5.4rem);
  font-weight:700;
  letter-spacing:-.02em;
}
.hero__title .accent{
  color:var(--accent);
  -webkit-text-stroke:0;
}
.hero__lead{
  margin-top:1.4rem;
  max-width:58ch;
  font-size:clamp(1rem,1.5vw,1.14rem);
  color:var(--text-soft);
}
.hero__actions{
  display:flex; flex-wrap:wrap; gap:.9rem;
  margin-top:2.2rem;
}
.hero__stats{
  display:flex; flex-wrap:wrap; gap:clamp(1.5rem,5vw,3.5rem);
  margin-top:3.2rem; padding-top:2rem;
  border-top:1px solid var(--line);
}
.hero__stats li{ display:flex; flex-direction:column; }
.hero__stats strong{
  font-family:var(--font-display);
  font-size:clamp(2rem,4vw,2.8rem);
  line-height:1; color:var(--text);
}
.hero__stats span{
  font-size:.82rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-mute); margin-top:.4rem;
}

/* variante sem números: faixa de informação */
.hero__stats--info strong{
  font-size:clamp(1.15rem,2.2vw,1.5rem);
  letter-spacing:.02em;
  color:var(--accent);
}
.hero__stats--info span{ color:var(--text-soft); text-transform:none; letter-spacing:.02em; }

.hero__scroll{
  position:absolute; left:50%; bottom:1.75rem; z-index:2;
  translate:-50% 0;
  width:26px; height:42px;
  border:1px solid var(--line-hi); border-radius:14px;
  display:grid; place-items:start center; padding-top:7px;
}
.hero__scroll span{
  width:3px; height:8px; border-radius:2px; background:var(--accent);
  animation:scrollDot 1.7s var(--ease) infinite;
}
@keyframes scrollDot{
  0%,100%{ transform:translateY(0); opacity:1; }
  50%{ transform:translateY(14px); opacity:.2; }
}

/* ---------- 7. Faixa rolante ---------- */
.marquee{
  background:var(--accent);
  color:#fff;
  padding-block:.8rem;
  overflow:hidden;
  border-block:1px solid rgba(0,0,0,.25);
}
.marquee__track{
  display:flex; align-items:center; gap:1.5rem;
  width:max-content;
  animation:marquee 42s linear infinite;
  font-family:var(--font-display);
  font-size:.88rem; letter-spacing:.14em; text-transform:uppercase;
}
.marquee i{ opacity:.45; font-style:normal; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ---------- 8. Cards ---------- */
.card{
  position:relative;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:1.9rem 1.7rem;
  transition:transform .25s var(--ease), border-color .25s, background .25s;
}
.card::before{
  content:""; position:absolute; inset:0 auto auto 0;
  width:0; height:3px; background:var(--accent);
  border-radius:var(--radius-lg) 0 0 0;
  transition:width .3s var(--ease);
}
.card:hover{
  transform:translateY(-4px);
  border-color:var(--line-hi);
  background:var(--surface-hi);
}
.card:hover::before{ width:58px; }

.card--service h3{ font-size:1.3rem; margin-bottom:.6rem; }

/* card do diferencial */
.card--destaque{
  border-color:rgba(var(--accent-rgb),.45);
  background:linear-gradient(160deg, rgba(var(--accent-rgb),.09), var(--surface) 55%);
}
.card--destaque::before{ width:58px; }
.card--destaque:hover{ border-color:var(--accent); }
.card__selo{
  position:absolute; top:-10px; right:1.2rem;
  padding:.28rem .7rem;
  background:var(--accent); color:#fff;
  border-radius:100px;
  font-family:var(--font-display);
  font-size:.66rem; letter-spacing:.16em; text-transform:uppercase;
}
.card--service p{ color:var(--text-soft); font-size:.96rem; }
.card__icon{
  display:grid; place-items:center;
  width:50px; height:50px; margin-bottom:1.2rem;
  background:var(--accent-dim);
  border:1px solid rgba(var(--accent-rgb),.28);
  border-radius:var(--radius);
  color:var(--accent);
}
.card__icon svg{ width:26px; height:26px; }
.card__list{
  margin-top:1.1rem; padding-top:1.1rem;
  border-top:1px solid var(--line);
  display:grid; gap:.45rem;
}
.card__list li{
  position:relative; padding-left:1.1rem;
  font-size:.88rem; color:var(--text-mute);
}
.card__list li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:5px; height:5px; background:var(--accent); rotate:45deg;
}

.card--quote p{
  font-size:1.03rem; color:var(--text);
  font-style:italic;
}
.card--quote footer{
  margin-top:1.3rem; padding-top:1.1rem;
  border-top:1px solid var(--line);
  display:flex; flex-direction:column;
}
.card--quote strong{ font-family:var(--font-display); letter-spacing:.04em; }
.card--quote span{ font-size:.82rem; color:var(--text-mute); }

/* ---------- 9. Split (texto + painel) ---------- */
.split{
  display:grid; gap:clamp(2.5rem,5vw,4.5rem);
  grid-template-columns:1fr;
  align-items:start;
}
@media (min-width:900px){
  .split{ grid-template-columns:1.05fr .95fr; }
  .split--form{ grid-template-columns:.9fr 1.1fr; }
}
.split__text .section__title{ margin-top:.7rem; }
.split__text .btn{ margin-top:2rem; }

.checklist{ display:grid; gap:1rem; margin-top:2rem; }
.checklist li{
  position:relative; padding-left:2.1rem;
  color:var(--text-soft); font-size:.97rem;
}
.checklist li strong{ color:var(--text); display:block; }
.checklist li::before{
  content:""; position:absolute; left:0; top:.2em;
  width:20px; height:20px; border-radius:50%;
  background:var(--accent-dim);
  border:1px solid rgba(var(--accent-rgb),.4);
}
.checklist li::after{
  content:""; position:absolute; left:6px; top:.52em;
  width:8px; height:4px;
  border-left:2px solid var(--accent);
  border-bottom:2px solid var(--accent);
  rotate:-45deg;
}

.panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3vw,2.2rem);
  box-shadow:var(--shadow);
}
.panel__title{
  font-size:.82rem; letter-spacing:.2em;
  color:var(--text-mute);
  margin-bottom:.9rem;
}
.panel__title:not(:first-child){ margin-top:1.8rem; }

.chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.chips span{
  padding:.42rem .85rem;
  background:var(--accent-dim);
  border:1px solid rgba(var(--accent-rgb),.26);
  border-radius:100px;
  font-size:.84rem; color:var(--accent-hi);
}
.chips--muted span{
  background:var(--bg-3);
  border-color:var(--line-hi);
  color:var(--text-soft);
}

/* cobertura em dois níveis */
.area{ display:grid; gap:1.1rem; }
.area__nivel strong{
  display:block;
  font-family:var(--font-display);
  font-size:.9rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--text);
  margin-bottom:.6rem;
}
.area__nivel p{
  font-size:.88rem; color:var(--text-soft);
  padding-left:.9rem;
  border-left:2px solid var(--line-hi);
}

.panel__obs{
  margin-top:.9rem;
  padding-left:.9rem;
  border-left:2px solid rgba(var(--accent-rgb),.5);
  font-size:.84rem; color:var(--text-mute);
}

.panel__note{
  margin-top:1.9rem; padding:1.1rem 1.2rem;
  background:var(--bg-3);
  border-left:3px solid var(--accent);
  border-radius:0 var(--radius) var(--radius) 0;
}
.panel__note strong{
  font-family:var(--font-display); letter-spacing:.06em;
  text-transform:uppercase; font-size:.92rem;
}
.panel__note p{ font-size:.9rem; color:var(--text-soft); margin-top:.3rem; }

/* ---------- 10. Galeria ---------- */
.gallery{
  display:grid; gap:1rem;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  grid-auto-rows:240px;
}
/* fotos das obras sao verticais: celulas mais altas no mobile */
@media (max-width:760px){
  .gallery{ grid-auto-rows:330px; }
}
.gallery__item{
  position:relative; overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:var(--surface);
}
@media (min-width:760px){
  .gallery__item--tall{ grid-row:span 2; }
  .gallery__item--wide{ grid-column:span 2; }
}
.gallery__item img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .6s var(--ease), filter .4s;
  filter:saturate(.92);
}
.gallery__item:hover img{ transform:scale(1.06); filter:saturate(1.05); }

/* tile de vídeo na galeria */
.gallery__item--video{ background:#000; }
.gallery__video{
  width:100%; height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .8s var(--ease);
}
.gallery__video.is-ready{ opacity:1; }
.gallery__badge{
  position:absolute; top:.85rem; left:.85rem; z-index:2;
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.3rem .7rem;
  background:var(--accent); color:#fff;
  border-radius:100px;
  font-family:var(--font-display);
  font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
}
.gallery__badge::before{
  content:""; width:0; height:0;
  border-left:7px solid currentColor;
  border-top:4.5px solid transparent;
  border-bottom:4.5px solid transparent;
}

.gallery__ph{
  position:absolute; inset:0;
  background:
    linear-gradient(135deg, rgba(var(--accent-rgb),.1), transparent 55%),
    repeating-linear-gradient(45deg,#1c1c22 0 14px,#191920 14px 28px);
  display:grid; place-items:center;
  transition:transform .5s var(--ease);
}
.gallery__ph::after{
  content:attr(data-label);
  font-family:var(--font-display);
  font-size:.8rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--text-mute);
}
.gallery__item:hover .gallery__ph{ transform:scale(1.05); }
.gallery__item figcaption{
  position:absolute; inset:auto 0 0 0;
  padding:1.6rem 1.3rem .95rem;
  background:linear-gradient(180deg,transparent,rgba(10,10,12,.93) 55%);
  display:flex; flex-direction:column; gap:.1rem;
}
.gallery__item figcaption strong{
  font-family:var(--font-display);
  letter-spacing:.05em; text-transform:uppercase; font-size:1rem;
}
.gallery__item figcaption span{ font-size:.82rem; color:var(--text-mute); }

/* ---------- 11. Passos ---------- */
.steps{
  display:grid; gap:1.1rem;
  grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  counter-reset:step;
}
.steps li{
  position:relative;
  padding:1.6rem 1.4rem;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  transition:border-color .25s, transform .25s var(--ease);
}
.steps li:hover{ border-color:var(--accent); transform:translateY(-3px); }
.steps__num{
  font-family:var(--font-display);
  font-size:2.2rem; line-height:1;
  color:var(--line-hi);
  display:block; margin-bottom:.7rem;
  transition:color .25s;
}
.steps li:hover .steps__num{ color:var(--accent); }
.steps li h3{ font-size:1.08rem; margin-bottom:.4rem; }
.steps li p{ font-size:.9rem; color:var(--text-soft); }

/* ---------- 12. Contato + formulário ---------- */
.contact-list{ display:grid; gap:1.3rem; margin-top:2.2rem; }
.contact-list li{ display:flex; gap:.95rem; align-items:flex-start; }
.contact-list svg{
  flex:0 0 auto; width:22px; height:22px; margin-top:.25rem;
  color:var(--accent);
}
.contact-list span{ display:flex; flex-direction:column; }
.contact-list small{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--text-mute);
}
.contact-list a{ font-size:1rem; transition:color .18s; }
.contact-list a:hover{ color:var(--accent); }

.form{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3.5vw,2.4rem);
  box-shadow:var(--shadow);
  display:grid; gap:1.1rem;
}
.form__row{ display:grid; gap:1.1rem; }
@media (min-width:620px){ .form__row{ grid-template-columns:1fr 1fr; } }

.field{ display:flex; flex-direction:column; gap:.45rem; }
.field > span{
  font-size:.78rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-mute);
}
.field input,.field select,.field textarea{
  width:100%;
  padding:.85rem 1rem;
  background:var(--bg-3);
  border:1px solid var(--line-hi);
  border-radius:var(--radius);
  font-size:.97rem;
  transition:border-color .18s, background .18s, box-shadow .18s;
}
.field textarea{ resize:vertical; min-height:110px; }
.field input::placeholder,.field textarea::placeholder{ color:var(--text-mute); }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;
  border-color:var(--accent);
  background:var(--bg-2);
  box-shadow:0 0 0 3px var(--accent-dim);
}
.field input.is-invalid,.field textarea.is-invalid{ border-color:#e5484d; }
.field select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23767b85' d='M6 8 0 2l1.4-1.4L6 5.2 10.6.6 12 2z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  background-size:11px;
  padding-right:2.4rem;
}
.field select option{ background:var(--bg-2); color:var(--text); }

.form__hint{ font-size:.82rem; color:var(--text-mute); text-align:center; }
.form__error{
  font-size:.88rem; color:#ff8a8d;
  background:rgba(229,72,77,.1);
  border:1px solid rgba(229,72,77,.35);
  border-radius:var(--radius);
  padding:.7rem .9rem;
}

/* ---------- 13. Footer ---------- */
.footer{
  background:var(--bg);
  border-top:1px solid var(--line);
  padding-top:clamp(3rem,6vw,4.5rem);
}
.footer__inner{
  display:grid; gap:2.5rem;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  padding-bottom:3rem;
}
.footer__brand{ grid-column:1 / -1; max-width:38ch; }
@media (min-width:900px){ .footer__brand{ grid-column:span 1; max-width:32ch; } }
.footer__brand p{
  margin-top:1.1rem; font-size:.92rem; color:var(--text-mute);
}
.footer h4{
  font-size:.8rem; letter-spacing:.2em; color:var(--text);
  margin-bottom:1rem;
}
.footer ul{ display:grid; gap:.6rem; }
.footer li,.footer a{ font-size:.92rem; color:var(--text-mute); }
.footer a:hover{ color:var(--accent); }

.footer__credito{
  margin-left:auto;
  display:inline-flex; align-items:center; gap:.45rem;
}
.footer__credito::before{
  content:""; width:5px; height:5px; rotate:45deg;
  background:var(--accent);
}
.footer__credito strong{
  color:var(--text); font-weight:600;
  transition:color .18s;
}
.footer__credito a:hover strong,
.footer__credito:hover strong{ color:var(--accent); }

@media (max-width:620px){
  .footer__credito{ margin-left:0; width:100%; }
}

.footer__bottom{
  display:flex; flex-wrap:wrap; gap:.6rem 1.5rem;
  justify-content:space-between;
  padding-block:1.4rem;
  border-top:1px solid var(--line);
  font-size:.84rem; color:var(--text-mute);
}

/* ---------- 14. WhatsApp flutuante ---------- */
.wpp-float{
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:70;
  display:grid; place-items:center;
  width:58px; height:58px;
  background:#1faa54; color:#fff;
  border-radius:50%;
  box-shadow:0 12px 30px -8px rgba(31,170,84,.65);
  transition:transform .2s var(--ease), background .2s;
}
.wpp-float:hover{ transform:scale(1.07); background:#25c461; }

/* ---------- 15. Reveal ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
[data-reveal].is-visible{ opacity:1; transform:none; }

/* ---------- 16. Mobile ---------- */
@media (max-width:980px){
  .burger{ display:block; }
  .nav{
    position:fixed; inset:76px 0 auto 0;
    flex-direction:column; align-items:stretch; gap:0;
    background:rgba(14,14,16,.98);
    backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line);
    padding:1.25rem var(--gutter) 1.75rem;
    clip-path:inset(0 0 100% 0);
    opacity:0; pointer-events:none;
    transition:clip-path .35s var(--ease), opacity .25s;
  }
  .nav.is-open{ clip-path:inset(0 0 0 0); opacity:1; pointer-events:auto; }
  .nav__list{ flex-direction:column; align-items:stretch; gap:0; }
  .nav__list li + li{ border-top:1px solid var(--line); }
  .nav__list a{
    display:block; padding:.95rem 0; font-size:1.05rem;
    font-family:var(--font-display); letter-spacing:.06em; text-transform:uppercase;
  }
  .nav__list a::after{ display:none; }
  .nav__cta{ margin-top:1.25rem; }
  body.nav-open{ overflow:hidden; }
}

@media (max-width:520px){
  .hero{ padding-block:7.5rem 4rem; }
  .hero__actions .btn{ width:100%; }
  .hero__stats{ gap:1.5rem 2rem; }
  .footer__bottom{ justify-content:flex-start; }
}

/* ---------- 17. Acessibilidade / impressão ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  [data-reveal]{ opacity:1; transform:none; }
}

@media print{
  .header,.wpp-float,.hero__scroll,.marquee,.form{ display:none !important; }
  body{ background:#fff; color:#000; }
}
