/* ===================================================
   MOLDAMETAL.PT — style.css v4.0
   Xquads · Jhonatan Cieslak
   Mobile-first · UI melhorada · Logo 800x800
=================================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --black:       #000;
  --anth:        #111;
  --anth2:       #1a1a1a;
  --steel:       #4a4a4a;
  --steel-m:     #2e2e2e;
  --steel-l:     #8a8a8a;
  --brushed:     #c8c8c8;
  --white:       #f0efef;
  --spark:       #FF6B1A;
  --spark-d:     rgba(255,107,26,.12);
  --spark-g:     rgba(255,107,26,.4);
  --wa:          #25D366;

  --ff-disp: 'Space Grotesk','Barlow Condensed','Arial Narrow',sans-serif;
  --ff-body: 'Plus Jakarta Sans','DM Sans','Helvetica Neue',sans-serif;

  --fs-hero:   clamp(2.8rem,8vw,7rem);
  --fs-h2:     clamp(2rem,4.5vw,4.2rem);
  --fs-h3:     clamp(1.2rem,1.8vw,1.7rem);
  --fs-body:   clamp(.9rem,1.1vw,1rem);
  --fs-sm:     .78rem;
  --fs-ey:     .68rem;

  --nav-h:  96px;
  --max-w:  1200px;
  --ease:   cubic-bezier(.25,.46,.45,.94);
  --tr:     .3s var(--ease);
  --tr-s:   .15s var(--ease);
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  background: var(--black);
  color: var(--brushed);
  font-family: var(--ff-body);
  font-size: var(--fs-body);
  font-weight: 300;
  line-height: 1.65;
  overflow-x: hidden;
  cursor: none;
}

@media (hover:none) { body { cursor:auto; } .cursor,.cursor-follower { display:none; } }
img, video { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { cursor:none; background:none; border:none; font:inherit; color:inherit; }

/* ── CURSOR ── */
.cursor { width:8px; height:8px; background:var(--spark); border-radius:50%; position:fixed; top:0; left:0; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); }
.cursor-follower { width:32px; height:32px; border:1px solid rgba(255,107,26,.45); border-radius:50%; position:fixed; top:0; left:0; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .3s,height .3s,border-color .3s; }
body:has(a:hover) .cursor-follower, body:has(button:hover) .cursor-follower { width:48px; height:48px; border-color:var(--spark); }

/* ── UTILITIES ── */
.container { width:100%; max-width:var(--max-w); margin:0 auto; padding:0 24px; }
[data-animate] { opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
[data-animate].is-visible { opacity:1; transform:translateY(0); }
.glass { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); backdrop-filter:blur(20px) saturate(1.2); -webkit-backdrop-filter:blur(20px) saturate(1.2); }

/* ── EYEBROW ── */
.eyebrow { display:flex; align-items:center; gap:10px; font-size:var(--fs-ey); letter-spacing:.22em; text-transform:uppercase; color:var(--spark); margin-bottom:20px; }
.eyebrow-num { opacity:.5; }

/* ── BUTTONS ── */
.btn { display:inline-flex; align-items:center; gap:8px; padding:13px 26px; font-family:var(--ff-body); font-size:var(--fs-sm); font-weight:500; letter-spacing:.1em; text-transform:uppercase; border-radius:3px; transition:all var(--tr); white-space:nowrap; cursor:none; }
.btn-spark { background:var(--spark); color:var(--black); border:1px solid var(--spark); }
.btn-spark:hover { background:transparent; color:var(--spark); box-shadow:0 0 28px var(--spark-g); }
.btn-wa { background:transparent; color:var(--wa); border:1px solid rgba(37,211,102,.35); }
.btn-wa:hover { border-color:var(--wa); background:rgba(37,211,102,.08); }
.btn-dark { background:var(--black); color:var(--white); border:1px solid rgba(255,255,255,.2); }
.btn-dark:hover { background:var(--anth2); border-color:rgba(255,255,255,.4); }
.btn-outline-white { background:transparent; color:rgba(0,0,0,.75); border:1px solid rgba(0,0,0,.35); }
.btn-outline-white:hover { background:rgba(0,0,0,.08); border-color:rgba(0,0,0,.6); }
.btn-full { width:100%; justify-content:center; }

/* ════════════════════════
   NAV — Logo 800x800 SVG
════════════════════════ */
.nav { position:fixed; top:0; left:0; right:0; height:var(--nav-h); display:flex; align-items:center; justify-content:space-between; padding:0 28px; z-index:1000; transition:background .4s var(--ease),backdrop-filter .4s,border-color .4s; background:linear-gradient(to bottom, rgba(0,0,0,.72) 0%, rgba(0,0,0,.0) 100%); border-bottom:1px solid transparent; }
.nav.scrolled { background:rgba(0,0,0,.94); backdrop-filter:blur(24px) saturate(1.5); -webkit-backdrop-filter:blur(24px) saturate(1.5); border-bottom:1px solid rgba(255,255,255,.07); }

/* Logo usa a imagem SVG fornecida */
.nav-logo { display:flex; align-items:center; gap:12px; transition:opacity var(--tr-s); text-decoration:none; }
.nav-logo:hover { opacity:.85; }

.nav-logo-img {
  width: 108px;
  height: 86px;
  object-fit: contain;
  object-position: center;
  flex-shrink: 0;
  filter: drop-shadow(0 0 12px rgba(255,107,26,.35));
}


.nav-links { display:flex; align-items:center; gap:8px; }
.nav-link { font-size:var(--fs-sm); letter-spacing:.08em; text-transform:uppercase; color:var(--brushed); transition:color var(--tr-s); position:relative; padding:6px 12px; border-radius:3px; text-shadow:0 1px 6px rgba(0,0,0,.5); }
.nav-link::after { content:''; position:absolute; bottom:0px; left:12px; right:12px; height:1px; background:var(--spark); transform:scaleX(0); transform-origin:left; transition:transform var(--tr); }
.nav-link:hover { color:var(--white); }
.nav-link:hover::after { transform:scaleX(1); }
.nav-link.nav-cta { border:1px solid var(--spark); color:var(--spark); padding:7px 18px; border-radius:3px; }
.nav-link.nav-cta::after { display:none; }
.nav-link.nav-cta:hover { background:var(--spark); color:var(--black); }

.nav-hamburger { display:none; flex-direction:column; gap:5px; width:36px; height:36px; padding:6px; align-items:center; justify-content:center; border-radius:4px; transition:background var(--tr-s); }
.nav-hamburger:hover { background:rgba(255,255,255,.06); }
.nav-hamburger span { display:block; height:1.5px; width:22px; background:var(--white); transition:transform .3s,opacity .3s; }
.nav-hamburger[aria-expanded="true"] span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.nav-hamburger[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.nav-hamburger[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* ════════════════════════
   HERO
════════════════════════ */
.hero { position:relative; min-height:100svh; display:flex; align-items:flex-start; justify-content:center; overflow:hidden; padding-top:calc(var(--nav-h) + 32px); padding-bottom:80px; }

.hero-video-wrap { position:absolute; inset:0; z-index:0; }
.hero-video { width:100%; height:100%; object-fit:cover; filter:brightness(.5) grayscale(20%); }
.hero-overlay {
  position:absolute; inset:0;
  background: linear-gradient(to bottom,
    rgba(0,0,0,.55) 0%,
    rgba(0,0,0,.08) 35%,
    rgba(0,0,0,.15) 65%,
    rgba(0,0,0,.97) 100%
  );
}

/* Grade metálica decorativa */
.hero-grid {
  position:absolute; inset:0; z-index:1;
  background-image:
    linear-gradient(rgba(255,107,26,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,107,26,.04) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 30%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 30%, transparent 100%);
}

.hero-particles { position:absolute; inset:0; z-index:2; pointer-events:none; }

.hero-content { position:relative; z-index:3; text-align:center; max-width:900px; padding:0 20px; }

.hero-badge {
  display:inline-flex; align-items:center; gap:10px;
  font-size:var(--fs-ey); letter-spacing:.2em; text-transform:uppercase; color:var(--spark);
  margin-bottom:16px;
  opacity:0; transform:translateY(14px);
  animation:fadeUp .8s var(--ease) .15s forwards;
  background:rgba(255,107,26,.1); border:1px solid rgba(255,107,26,.25); padding:6px 14px; border-radius:20px;
}
.hero-badge-dot { width:6px; height:6px; border-radius:50%; background:var(--spark); animation:pulse 2s ease infinite; flex-shrink:0; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.4)} }

.hero-title { font-family:var(--ff-disp); font-size:var(--fs-hero); font-weight:900; line-height:.98; letter-spacing:-.02em; color:var(--white); text-transform:uppercase; margin-bottom:18px; }
.hero-title-line { display:block; opacity:0; transform:translateY(28px) skewY(1.5deg); animation:heroIn .9s var(--ease) forwards; }
.hero-title-line:nth-child(1) { animation-delay:.25s; }
.hero-title-line:nth-child(2) { animation-delay:.4s; }
.hero-title-line:nth-child(3) { animation-delay:.55s; }
.hero-title-line:nth-child(4) { animation-delay:.7s; }
.hero-line-accent { color:var(--spark); font-style:italic; text-shadow:0 0 80px rgba(255,107,26,.35); }
.hero-line-thin { font-weight:300; color:var(--brushed); }

.hero-sub { font-size:clamp(.88rem,1.4vw,1.08rem); font-weight:300; color:var(--steel-l); margin-bottom:24px; line-height:1.7; opacity:0; animation:fadeUp .8s var(--ease) .95s forwards; }
.hero-ctas { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; opacity:0; animation:fadeUp .8s var(--ease) 1.15s forwards; }

/* Faixa de serviços na base do hero */
.hero-services-strip {
  display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap;
  margin-top:28px; padding-top:20px; border-top:1px solid rgba(255,255,255,.08);
  opacity:0; animation:fadeUp .8s var(--ease) 1.4s forwards;
}
.strip-item { display:flex; flex-direction:column; align-items:center; gap:4px; }
.strip-item span { font-size:.58rem; color:var(--spark); letter-spacing:.15em; }
.strip-item { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--steel-l); }
.strip-sep { color:var(--steel); font-size:.8rem; }

.hero-scroll { position:absolute; bottom:20px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; z-index:4; opacity:0; animation:fadeIn 1s ease 1.8s forwards; text-decoration:none; }
.hero-scroll span { font-size:var(--fs-ey); letter-spacing:.2em; text-transform:uppercase; color:var(--steel); }
.hero-scroll-line { width:1px; height:40px; background:linear-gradient(to bottom,var(--spark),transparent); animation:scrollAnim 2s ease infinite; }

/* ════════════════════════
   STATS — melhorado
════════════════════════ */
.stats { padding:48px 0; border-top:1px solid rgba(255,255,255,.05); border-bottom:1px solid rgba(255,255,255,.05); background:var(--anth); }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); text-align:center; }
.stat { padding:24px 16px; border-right:1px solid rgba(255,255,255,.05); transition:background var(--tr); }
.stat:hover { background:rgba(255,107,26,.04); }
.stat:last-child { border-right:none; }
.stat-n { display:inline; font-family:var(--ff-disp); font-size:clamp(2.2rem,5vw,4.5rem); font-weight:700; color:var(--white); letter-spacing:-.02em; }
.stat sup { font-family:var(--ff-disp); font-size:clamp(.9rem,2vw,1.8rem); font-weight:300; color:var(--spark); vertical-align:super; margin-left:2px; }
.stat p { margin-top:6px; font-size:var(--fs-sm); color:var(--steel-l); letter-spacing:.05em; }

/* ════════════════════════
   SERVICE SECTIONS
════════════════════════ */
.service-section { position:relative; padding:100px 0; overflow:hidden; }
.service-section-alt { background:var(--anth); }

.ss-bg { position:absolute; inset:0; z-index:0; }
.ss-bg img { width:100%; height:100%; object-fit:cover; opacity:.06; filter:grayscale(60%); }
.ss-bg-overlay { position:absolute; inset:0; }
.ss-bg-laser .ss-bg-overlay { background:linear-gradient(to right, rgba(0,0,0,.98) 45%, rgba(0,0,0,.7) 100%); }
.ss-bg-bend .ss-bg-overlay { background:linear-gradient(to left, rgba(17,17,17,.98) 45%, rgba(17,17,17,.7) 100%); }

.ss-inner { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.ss-inner-rev .ss-text { order:2; }
.ss-inner-rev .ss-visual { order:1; }

.ss-title { font-family:var(--ff-disp); font-size:var(--fs-h2); font-weight:700; line-height:1.05; letter-spacing:-.01em; color:var(--white); text-transform:uppercase; margin-bottom:22px; }
.ss-title em { font-style:italic; color:var(--spark); font-weight:300; }

.ss-body { font-size:.9rem; color:var(--brushed); line-height:1.8; margin-bottom:16px; }
.ss-body strong { color:var(--white); font-weight:500; }

.ss-specs { margin:24px 0 28px; border-top:1px solid rgba(255,255,255,.07); }
.ss-specs li { display:grid; grid-template-columns:130px 1fr; gap:12px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.05); font-size:.82rem; }
.spec-k { color:var(--spark); font-weight:500; letter-spacing:.04em; flex-shrink:0; }
.spec-v { color:var(--brushed); }

/* ── DIAGRAMA LASER ── */
.laser-diagram { background:var(--anth2); border:1px solid rgba(255,255,255,.07); border-radius:12px; overflow:hidden; }
.laser-svg { width:100%; display:block; padding:24px; }

.sparks { animation:sparkFlicker 1.2s ease infinite; }
@keyframes sparkFlicker { 0%,100%{opacity:.8;transform:scale(1)} 50%{opacity:.4;transform:scale(.85)} }

.diagram-caps { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.06); }
.cap { padding:14px 12px; border-right:1px solid rgba(255,255,255,.06); text-align:center; }
.cap:last-child { border-right:none; }
.cap strong { display:block; font-size:.68rem; color:var(--white); letter-spacing:.06em; text-transform:uppercase; margin-bottom:4px; }
.cap span { font-size:.76rem; color:var(--spark); font-family:var(--ff-disp); font-weight:700; }

/* ── DIAGRAMA QUINAGEM ── */
.bend-diagram { background:var(--black); border:1px solid rgba(255,255,255,.07); border-radius:12px; overflow:hidden; }
.bend-svg { width:100%; display:block; padding:24px; }

/* ════════════════════════
   OUTROS SERVIÇOS
════════════════════════ */
.outros { padding:100px 0; background:var(--black); }

.section-header { margin-bottom:52px; }
.outros-title { font-family:var(--ff-disp); font-size:clamp(1.8rem,3.5vw,3.2rem); font-weight:700; color:var(--white); text-transform:uppercase; line-height:1.15; }
.outros-title em { font-style:italic; color:var(--brushed); font-weight:300; }

.outros-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--steel-m); border:1px solid var(--steel-m); border-radius:12px; overflow:hidden; }

.outro-card { position:relative; background:var(--anth); padding:36px; overflow:hidden; transition:background var(--tr); }
.outro-card:hover { background:var(--anth2); }
.outro-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--spark); transform:scaleX(0); transform-origin:left; transition:transform var(--tr); }
.outro-card:hover::before { transform:scaleX(1); }

.outro-card-header { display:flex; align-items:flex-end; gap:14px; margin-bottom:20px; }
.outro-num { font-family:var(--ff-disp); font-size:2.8rem; font-weight:900; color:var(--spark); opacity:.2; line-height:1; }
.outro-card-header h3 { font-family:var(--ff-disp); font-size:var(--fs-h3); font-weight:700; color:var(--white); text-transform:uppercase; letter-spacing:.05em; }

.outro-card-body p { font-size:.88rem; color:var(--steel-l); line-height:1.7; margin-bottom:18px; }
.outro-card-body ul { margin-bottom:22px; }
.outro-card-body li { font-size:.82rem; color:var(--brushed); padding:5px 0 5px 18px; position:relative; }
.outro-card-body li::before { content:'—'; position:absolute; left:0; color:var(--spark); font-size:.65em; top:8px; }

.outro-link { font-size:var(--fs-sm); font-weight:500; color:var(--spark); letter-spacing:.06em; transition:letter-spacing var(--tr); }
.outro-link:hover { letter-spacing:.14em; }

.outro-card-deco { position:absolute; bottom:24px; right:24px; width:72px; opacity:.55; pointer-events:none; }
.outro-card-deco svg { width:100%; height:auto; }

/* ════════════════════════
   ENGINEERING
════════════════════════ */
.engineering { position:relative; padding:120px 0; background:var(--anth); overflow:hidden; }

.eng-bg {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,107,26,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,107,26,.03) 1px, transparent 1px);
  background-size:80px 80px;
  opacity:.8;
}

.eng-inner { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }

.eng-title { font-family:var(--ff-disp); font-size:var(--fs-h2); font-weight:700; color:var(--white); text-transform:uppercase; line-height:1.1; margin-bottom:22px; }
.eng-title em { font-style:italic; color:var(--spark); font-weight:300; }

.eng-body { font-size:.9rem; color:var(--brushed); line-height:1.8; margin-bottom:16px; }

.eng-pillars { margin-top:36px; display:flex; flex-direction:column; gap:0; border:1px solid rgba(255,255,255,.06); border-radius:8px; overflow:hidden; }
.eng-pillar { display:flex; align-items:flex-start; gap:20px; padding:22px; border-bottom:1px solid rgba(255,255,255,.05); transition:background var(--tr); }
.eng-pillar:last-child { border-bottom:none; }
.eng-pillar:hover { background:rgba(255,107,26,.04); }
.eng-pillar-num { font-family:var(--ff-disp); font-size:1rem; font-weight:700; color:var(--spark); opacity:.5; flex-shrink:0; width:24px; margin-top:2px; }
.eng-pillar strong { display:block; color:var(--white); font-size:.88rem; font-weight:500; margin-bottom:5px; }
.eng-pillar p { font-size:.82rem; color:var(--steel-l); line-height:1.65; }

.eng-flow { background:var(--black); border:1px solid rgba(255,255,255,.07); border-radius:12px; padding:32px; position:sticky; top:90px; }
.eng-flow-title { font-size:var(--fs-ey); letter-spacing:.2em; text-transform:uppercase; color:var(--spark); margin-bottom:24px; }
.eng-flow-steps { display:flex; flex-direction:column; }

.ef-step { display:flex; align-items:flex-start; gap:16px; padding:14px 0; }
.ef-step-hl { background:var(--spark-d); border-radius:8px; padding:14px; margin:0 -14px; }

.ef-icon { width:40px; height:40px; border-radius:8px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--brushed); }
.ef-icon-hl { background:var(--spark-d); border-color:rgba(255,107,26,.3); color:var(--spark); }

.ef-text strong { display:block; color:var(--white); font-size:.88rem; font-weight:500; margin-bottom:3px; }
.ef-text span { font-size:.76rem; color:var(--steel-l); }

.ef-arrow { font-size:1.2rem; color:var(--steel); padding:4px 0 4px 18px; opacity:.5; }

/* ════════════════════════
   GALLERY / CARROSSEL
════════════════════════ */
.gallery { padding:100px 0; background:var(--black); }
.gallery-title { font-family:var(--ff-disp); font-size:var(--fs-h2); font-weight:700; color:var(--white); text-transform:uppercase; line-height:1.1; }
.gallery-title em { font-style:italic; color:var(--brushed); font-weight:300; }

.carousel-outer { position:relative; margin-top:24px; overflow:hidden; }
.carousel { display:flex; transition:transform .5s var(--ease); will-change:transform; }
.carousel-item { min-width:calc(33.333%); flex-shrink:0; overflow:hidden; }
.ci-img { aspect-ratio:4/3; overflow:hidden; background:var(--anth2); }
.ci-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease),filter .4s; filter:brightness(.82) grayscale(15%); }
.carousel-item:hover .ci-img img { transform:scale(1.05); filter:brightness(1) grayscale(0%); }
.ci-info { padding:16px 20px; background:var(--anth); border-top:1px solid rgba(255,255,255,.05); }
.ci-tag { display:inline-block; font-size:.6rem; letter-spacing:.15em; text-transform:uppercase; color:var(--spark); border:1px solid rgba(255,107,26,.25); padding:3px 8px; border-radius:2px; margin-bottom:7px; }
.ci-info p { font-size:.8rem; color:var(--steel-l); line-height:1.5; }

.car-btn { position:absolute; top:calc(50% - 30px); transform:translateY(-50%); width:46px; height:46px; border-radius:50%; background:rgba(0,0,0,.75); border:1px solid rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; color:var(--white); cursor:none; transition:background var(--tr),border-color var(--tr),transform var(--tr); z-index:10; backdrop-filter:blur(8px); }
.car-btn:hover { background:var(--spark); border-color:var(--spark); transform:translateY(-50%) scale(1.1); }
.car-prev { left:14px; }
.car-next { right:14px; }

.car-dots { display:flex; justify-content:center; gap:8px; margin-top:20px; padding:0 24px; }
.car-dot { width:6px; height:6px; border-radius:50%; background:var(--steel); border:none; cursor:none; transition:background var(--tr),transform var(--tr); }
.car-dot.active { background:var(--spark); transform:scale(1.5); }

/* ════════════════════════
   CTA BAND — melhorado
════════════════════════ */
.cta-band { 
  background: linear-gradient(135deg, var(--spark) 0%, #d45200 100%);
  padding:72px 0; 
  position: relative;
  overflow: hidden;
}
.cta-band::before {
  content:'';
  position:absolute; inset:0;
  background-image: linear-gradient(rgba(0,0,0,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,.08) 1px, transparent 1px);
  background-size: 40px 40px;
}
.cta-inner { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.cta-title { font-family:var(--ff-disp); font-size:clamp(1.8rem,3.5vw,3rem); font-weight:900; color:var(--black); text-transform:uppercase; line-height:1.1; margin-bottom:8px; }
.cta-sub { font-size:.9rem; color:rgba(0,0,0,.65); }
.cta-actions { display:flex; gap:12px; flex-wrap:wrap; }

/* ════════════════════════
   CONTACTO — melhorado
════════════════════════ */
.contact { padding:120px 0; background:var(--anth); }
.contact-title { font-family:var(--ff-disp); font-size:var(--fs-h2); font-weight:700; color:var(--white); text-transform:uppercase; line-height:1.1; }
.contact-title em { font-style:italic; color:var(--spark); font-weight:300; }

.contact-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:52px; margin-top:48px; align-items:start; }

.contact-form { border-radius:14px; padding:36px; min-width:0; }
.fg { margin-bottom:16px; }
.fg label { display:block; font-size:var(--fs-ey); letter-spacing:.14em; text-transform:uppercase; color:var(--steel-l); margin-bottom:8px; }
.fg input,.fg select,.fg textarea {
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:6px;
  padding:13px 15px;
  color:var(--white);
  font-family:var(--ff-body);
  font-size:.88rem;
  outline:none;
  transition:border-color var(--tr-s),box-shadow var(--tr-s),background var(--tr-s);
  -webkit-appearance:none;
}
.fg input:focus,.fg select:focus,.fg textarea:focus { border-color:var(--spark); box-shadow:0 0 0 3px var(--spark-d); background:rgba(255,255,255,.07); }
.fg select { cursor:none; color:var(--steel-l); }
.fg select option { background:var(--anth2); color:var(--white); }
.fg textarea { resize:vertical; min-height:110px; }
.fg input::placeholder,.fg textarea::placeholder { color:var(--steel); }
.form-note { font-size:var(--fs-ey); color:var(--steel); text-align:center; margin-top:12px; letter-spacing:.05em; }

.contact-side { display:flex; flex-direction:column; gap:14px; }
.cs-flag { display:flex; align-items:center; gap:16px; border-radius:10px; padding:18px; }
.cs-flag strong { display:block; color:var(--white); font-weight:500; margin-bottom:3px; }
.cs-flag p { font-size:.8rem; color:var(--steel-l); }
.cs-item { display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.05); }
.cs-item:last-of-type { border-bottom:none; }
.cs-icon { width:34px; height:34px; border-radius:6px; background:var(--spark-d); border:1px solid rgba(255,107,26,.2); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cs-item strong { display:block; color:var(--white); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:4px; }
.cs-item p,.cs-item a { color:var(--steel-l); font-size:.86rem; transition:color var(--tr-s); }
.cs-item a:hover { color:var(--spark); }

.wa-big { display:flex; align-items:center; gap:16px; border-radius:10px; padding:18px; color:var(--wa); cursor:none; transition:all var(--tr); margin-top:6px; }
.wa-big:hover { background:rgba(37,211,102,.08) !important; transform:translateY(-2px); }
.wa-big-label { display:block; font-weight:500; font-size:.95rem; }
.wa-big-sub { display:block; font-size:.72rem; color:var(--steel-l); margin-top:2px; }

/* ════════════════════════
   FOOTER — melhorado
════════════════════════ */
.footer { background:var(--black); border-top:1px solid rgba(255,255,255,.05); padding:64px 0 32px; }
.footer-top { display:grid; grid-template-columns:1fr auto; gap:48px; align-items:start; margin-bottom:40px; }
.footer-brand { display:flex; gap:18px; align-items:flex-start; }
.footer-logo-wrap { width:68px; height:68px; flex-shrink:0; }
.footer-logo-wrap img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 0 6px rgba(255,107,26,.2)); }
.footer-name { font-family:var(--ff-disp); font-size:1.5rem; font-weight:700; color:var(--white); margin-bottom:6px; }
.footer-tagline { font-size:.8rem; color:var(--steel-l); font-style:italic; margin-bottom:6px; }
.footer-regions { font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; color:var(--white); }

.footer-nav { display:flex; gap:44px; }
.fnc { display:flex; flex-direction:column; gap:10px; }
.fnc strong { font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color:var(--white); margin-bottom:4px; }
.fnc a { font-size:.8rem; color:var(--steel-l); transition:color var(--tr-s); }
.fnc a:hover { color:var(--spark); }

.footer-bottom { display:flex; align-items:center; justify-content:space-between; padding-top:24px; border-top:1px solid rgba(255,255,255,.05); flex-wrap:wrap; gap:8px; font-size:var(--fs-ey); color:var(--steel); letter-spacing:.04em; }
.footer-dev { color:var(--spark); transition:opacity var(--tr-s); }
.footer-dev:hover { opacity:.8; }

/* ════════════════════════
   WA FLUTUANTE — melhorado
════════════════════════ */
.wa-float { 
  position:fixed; bottom:24px; right:24px; 
  display:flex; align-items:center; gap:10px;
  background:var(--wa); 
  border-radius:50px; 
  padding:14px 20px 14px 16px;
  z-index:999; cursor:none; 
  box-shadow:0 4px 24px rgba(37,211,102,.35); 
  transition:transform var(--tr),opacity .4s,box-shadow var(--tr),padding var(--tr); 
  opacity:0; pointer-events:none; transform:translateY(10px);
  color: #000;
  font-weight: 500;
  font-size: .82rem;
  letter-spacing: .03em;
  white-space: nowrap;
}
.wa-float.visible { opacity:1; pointer-events:auto; transform:translateY(0); }
.wa-float:hover { transform:translateY(-3px) scale(1.03); box-shadow:0 8px 32px rgba(37,211,102,.5); }
.wa-float-text { display:block; }
.wa-pulse { position:absolute; inset:-4px; border-radius:50px; border:2px solid var(--wa); opacity:0; animation:waPulse 2.5s ease infinite; }
@keyframes waPulse { 0%{transform:scale(1);opacity:.4} 100%{transform:scale(1.3);opacity:0} }

/* ════════════════════════
   KEYFRAMES
════════════════════════ */
@keyframes fadeUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes heroIn { from{opacity:0;transform:translateY(28px) skewY(1.5deg)} to{opacity:1;transform:translateY(0) skewY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes scrollAnim { 0%,100%{opacity:.4;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.3)} }

/* ════════════════════════════════════════════
   RESPONSIVE — Mobile-first melhorado
════════════════════════════════════════════ */

/* ── 1100px ── */
@media (max-width:1100px) {
  .ss-inner { grid-template-columns:1fr; gap:40px; }
  .ss-inner-rev .ss-text { order:1; }
  .ss-inner-rev .ss-visual { order:2; }
  .ss-bg img { display:none; }
  .eng-inner { grid-template-columns:1fr; gap:40px; }
  .eng-flow { position:static; }
  .carousel-item { min-width:50%; }
}

/* ── 900px ── */
@media (max-width:900px) {
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(2) { border-right:none; }
  .contact-grid { grid-template-columns:1fr; gap:32px; }
  .contact-form { padding:28px 24px; }
  .outros-grid { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; gap:32px; }
  .footer-nav { gap:28px; }
  .cta-inner { flex-direction:column; align-items:flex-start; }
  .cta-actions { width:100%; }
}

/* ── 768px — Telemóvel ── */
@media (max-width:768px) {
  :root {
    --nav-h: 80px;
    --fs-hero: clamp(2.8rem,12vw,5.5rem);
    --fs-h2: clamp(1.8rem,6vw,3rem);
  }

  .container { padding:0 16px; }

  /* Nav mobile */
  .nav { padding:0 14px; }
  .nav-logo-img { width:82px; height:65px; }

  /* Hero mobile */
  .hero { padding-top:calc(var(--nav-h) + 20px); padding-bottom:60px; }

  .nav-links {
    position:fixed; top:var(--nav-h); left:0; right:0;
    background:rgba(0,0,0,.97);
    flex-direction:column;
    padding:28px 20px 32px;
    gap:4px;
    transform:translateY(-110%);
    transition:transform .4s var(--ease);
    border-bottom:1px solid rgba(255,255,255,.06);
    backdrop-filter:blur(24px);
    -webkit-backdrop-filter:blur(24px);
    z-index:999;
  }
  .nav-links.is-open { transform:translateY(0); }
  .nav-link { font-size:.9rem; padding:14px 16px; width:100%; border-radius:6px; }
  .nav-link:hover { background:rgba(255,255,255,.04); }
  .nav-link.nav-cta { text-align:center; margin-top:8px; padding:14px; }
  .nav-hamburger { display:flex; }

  /* Hero mobile */
  .hero { min-height:100svh; }
  .hero-content { padding:0 16px; }
  .hero-badge { font-size:.6rem; padding:5px 12px; }
  .hero-title { margin-bottom:14px; }
  .hero-sub { font-size:.86rem; margin-bottom:20px; }
  .hero-ctas { flex-direction:column; align-items:center; width:100%; }
  .hero-ctas .btn { width:100%; max-width:320px; justify-content:center; }
  .hero-services-strip { gap:10px; margin-top:20px; padding-top:16px; }
  .strip-sep { display:none; }
  .hero-scroll { display:none; }

  /* Stats mobile */
  .stats { padding:40px 0; }

  /* Service sections mobile */
  .service-section { padding:70px 0; }
  .ss-specs li { grid-template-columns:1fr; gap:4px; }
  .spec-k { font-size:.72rem; }
  .diagram-caps { grid-template-columns:repeat(2,1fr); }
  .cap:nth-child(2) { border-right:none; }

  /* Gallery */
  .gallery { padding:70px 0; }
  .carousel-item { min-width:85%; }
  .car-prev { left:8px; }
  .car-next { right:8px; }

  /* Outros */
  .outros { padding:70px 0; }
  .outro-card { padding:28px; }

  /* Engineering */
  .engineering { padding:70px 0; }

  /* CTA Band */
  .cta-band { padding:56px 0; }
  .cta-actions .btn { width:100%; justify-content:center; }

  /* Contact */
  .contact { padding:80px 0; }
  .contact-form { padding:22px 18px; }
  .contact-grid { gap:24px; margin-top:32px; }

  /* Footer */
  .footer { padding:48px 0 28px; }
  .footer-nav { flex-direction:column; gap:20px; }
  .footer-bottom { flex-direction:column; gap:6px; text-align:center; }

  /* WA Float — mais simples em mobile */
  .wa-float { padding:14px 16px; border-radius:50%; bottom:20px; right:20px; }
  .wa-float-text { display:none; }

  /* Cursors off */
  .cursor,.cursor-follower { display:none; }
  button { cursor:auto; }
  .btn { cursor:auto; }
  .car-btn { cursor:auto; }
  .fa-select { cursor:auto; }
}

/* ── 480px — Pequenos telemóveis ── */
@media (max-width:480px) {
  :root { --fs-hero: clamp(2.4rem,13vw,4.5rem); }

  .stats-grid { grid-template-columns:1fr 1fr; }
  .stat { border-right:none; border-bottom:1px solid rgba(255,255,255,.05); padding:20px 12px; }
  .stat:nth-child(even) { border-left:1px solid rgba(255,255,255,.05); }

  .carousel-item { min-width:92%; }

  .hero-badge { font-size:.58rem; letter-spacing:.12em; }

  .contact-form { padding:22px 16px; }
  .contact-grid { gap:32px; }

  .cta-band { padding:48px 0; }

  .footer-brand { gap:14px; }
  .footer-logo-wrap { width:56px; height:56px; }

  .outro-card { padding:24px 20px; }

  /* Nav logo — compacto mas legível */
  .nav-logo-img { width:68px; height:54px; }

  .contact-form { padding:20px 14px; }
}

/* ── 360px — telemóveis muito pequenos ── */
@media (max-width:360px) {
  .container { padding:0 14px; }
  .hero-title { letter-spacing:-.03em; }
  .btn { padding:12px 18px; font-size:.72rem; }
}

/* ════════════════════════
   FAQ SECTION — Rich Snippets
════════════════════════ */
.faq-section { padding:100px 0; background:var(--anth2); }
.faq-title { font-family:var(--ff-disp); font-size:var(--fs-h2); font-weight:700; color:var(--white); text-transform:uppercase; line-height:1.1; }
.faq-title em { font-style:italic; color:var(--spark); font-weight:300; }

.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--steel-m); border:1px solid var(--steel-m); border-radius:12px; overflow:hidden; margin-top:0; }

.faq-item { background:var(--anth); transition:background var(--tr); }
.faq-item[open] { background:var(--anth2); }
.faq-item[open] .faq-q::after { transform:rotate(45deg); color:var(--spark); }

.faq-q {
  list-style:none;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:22px 26px;
  font-family:var(--ff-disp); font-size:clamp(1rem,1.4vw,1.2rem); font-weight:700;
  color:var(--white); letter-spacing:.02em; text-transform:uppercase;
  cursor:pointer; user-select:none;
  transition:color var(--tr-s);
}
.faq-q::-webkit-details-marker { display:none; }
.faq-q::after {
  content:'+'; font-size:1.4rem; font-weight:300; color:var(--spark);
  flex-shrink:0; transition:transform .3s var(--ease), color .2s;
  line-height:1;
}
.faq-q:hover { color:var(--spark); }

.faq-a { padding:0 26px 22px; border-top:1px solid rgba(255,255,255,.05); }
.faq-a p { font-size:.9rem; color:var(--brushed); line-height:1.75; }
.faq-a strong { color:var(--white); font-weight:500; }

@media (max-width:768px) {
  .faq-grid { grid-template-columns:1fr; }
  .faq-section { padding:70px 0; }
  .faq-q { padding:18px 20px; font-size:.95rem; }
  .faq-a { padding:0 20px 18px; }
}

/* ════════════════════════
   SKIP LINK acessibilidade
════════════════════════ */
.skip-link {
  position:absolute; top:-100%; left:16px;
  background:var(--spark); color:var(--black);
  padding:8px 16px; border-radius:0 0 4px 4px;
  font-size:.82rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  z-index:10000; transition:top .2s;
  text-decoration:none;
}
.skip-link:focus { top:0; }
