:root {
  --navy:  #07091A;
  --navy2: #0d1526;
  --gold:  #C4913A;
  --glt:   rgba(196,145,58,.1);
  --white: #fff;
  --bg:    #F8F7F4;
  --bd:    #E2E1DC;
  --text:  #1A1A2A;
  --muted: #6E7191;
  --wpp:   #25D366;
  --ease:  cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box }
html { scroll-behavior:smooth; overflow-x:hidden }
body { font-family:'Ubuntu',sans-serif; color:var(--text); background:var(--bg); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; line-height:1.72; font-size:15px; overflow-x:hidden; max-width:100vw; position:relative }
img,svg,video { max-width:100%; height:auto; display:block }
table { max-width:100%; word-wrap:break-word }
input,textarea,button,select { max-width:100%; font-family:inherit }
a { color:inherit; text-decoration:none }
ul { list-style:none }
.container { width:90%; max-width:1160px; margin:0 auto }
section { padding:88px 0 }
@media(max-width:768px){ section { padding:60px 0 } }

h1,h2,h3,h4 { font-family:'Ubuntu',sans-serif; line-height:1.15; color:var(--navy); letter-spacing:-.01em; overflow-wrap:break-word; word-wrap:break-word; hyphens:manual; text-wrap:pretty }
h2 { font-size:clamp(1.9rem,3.8vw,2.75rem); font-weight:700; letter-spacing:-.015em }
h3 { font-size:1rem; font-weight:500; letter-spacing:-.01em }
p,li,span,label,input,textarea,a { font-family:'Ubuntu',sans-serif }

.ey { display:flex; align-items:center; gap:.6rem; font-size:.65rem; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); margin-bottom:.9rem }
.ey::before { content:''; width:22px; height:1.5px; background:var(--gold); flex-shrink:0 }

/* Scroll reveal com suporte a stagger via --d */
.rv { opacity:0; transform:translateY(18px); transition:opacity .65s var(--ease),transform .65s var(--ease); transition-delay:var(--d,0s) }
.rv.on { opacity:1; transform:none }
@media(prefers-reduced-motion:reduce){ .rv,.hi,.hero-right,.hero-chip { opacity:1!important; transform:none!important; animation:none!important } .hero-bg { animation:none!important; transform:none!important } }

/* ═══════════════════
   NAV
═══════════════════ */
.nav { position:fixed; top:0; left:0; right:0; z-index:100; padding:1rem 0; background:var(--navy); box-shadow:0 1px 0 rgba(255,255,255,.06),0 4px 24px rgba(0,0,0,.35); animation:navIn .6s var(--ease) both }
@keyframes navIn { from{opacity:0;transform:translateY(-14px)} to{opacity:1;transform:none} }
.nav-in { display:flex; align-items:center; justify-content:space-between; gap:1.5rem }
.nav-logo img { height:54px; width:auto }
.nav-links { display:flex; gap:2rem }
.nav-links a { font-size:.88rem; font-weight:500; color:rgba(255,255,255,.78); transition:color .2s; position:relative; letter-spacing:.35px }
.nav-links a::after { content:''; position:absolute; bottom:-3px; left:0; width:0; height:1.5px; background:var(--gold); transition:width .25s }
.nav-links a:hover { color:#fff }
.nav-links a:hover::after { width:100% }
.nav-links a.active { color:var(--gold)!important }
.nav-links a.active::after { width:100%!important }
/* DROPDOWN — Anchored editorial */
.nav-has-drop { position:relative; list-style:none; display:flex; align-items:center }
.nav-drop-toggle { background:none; border:none; cursor:pointer; display:flex; align-items:center; gap:.45rem; font-family:inherit; font-size:.88rem; font-weight:500; color:rgba(255,255,255,.78); padding:0; letter-spacing:.35px; transition:color .2s; white-space:nowrap; position:relative }
.nav-drop-toggle:hover,.nav-has-drop.open .nav-drop-toggle { color:#fff }
.nav-has-drop.active .nav-drop-toggle { color:var(--gold) }
.nav-chev { font-size:.5rem; opacity:.55; transition:transform .35s var(--ease),opacity .25s,color .25s }
.nav-has-drop.open .nav-chev { transform:rotate(180deg); opacity:1; color:var(--gold) }

/* Painel — ancorado à esquerda da palavra, retângulo afiado */
.nav-drop { position:absolute; top:calc(100% + 1.1rem); left:0; background:#0a0d22; border:none; border-radius:0; min-width:240px; list-style:none; padding:1.05rem 0 .95rem; opacity:0; pointer-events:none; transform:translateY(-10px) scale(.96); transform-origin:top left; transition:opacity .32s var(--ease),transform .38s var(--ease); box-shadow:0 28px 60px -10px rgba(0,0,0,.7); z-index:200 }
/* Bridge invisível — preserva hover ao mover mouse da palavra ao painel */
.nav-drop::before { content:''; position:absolute; top:-1.1rem; left:0; right:0; height:1.1rem }
.nav-has-drop.open .nav-drop { opacity:1; pointer-events:auto; transform:translateY(0) scale(1) }

/* Stagger reveal dos itens */
.nav-drop li { position:relative; opacity:0; transform:translateX(-5px); transition:opacity .28s var(--ease),transform .28s var(--ease) }
.nav-has-drop.open .nav-drop li { opacity:1; transform:none }
.nav-has-drop.open .nav-drop li:nth-child(1){ transition-delay:.04s }
.nav-has-drop.open .nav-drop li:nth-child(2){ transition-delay:.09s }
.nav-has-drop.open .nav-drop li:nth-child(3){ transition-delay:.14s }
.nav-has-drop.open .nav-drop li:nth-child(4){ transition-delay:.19s }
.nav-has-drop.open .nav-drop li:nth-child(5){ transition-delay:.24s }
.nav-has-drop.open .nav-drop li:nth-child(6){ transition-delay:.28s }
.nav-has-drop.open .nav-drop li:nth-child(7){ transition-delay:.32s }
.nav-has-drop.open .nav-drop li:nth-child(8){ transition-delay:.36s }

/* Primeiro item — destaque editorial com seta */
.nav-drop li:first-child { margin-bottom:.3rem }
.nav-drop li:first-child a { color:#fff; font-weight:700; font-size:.83rem; letter-spacing:.45px; padding-bottom:.55rem }

/* Itens — push lateral suave no hover */
.nav-drop a { display:flex; align-items:center; white-space:nowrap; padding:.5rem 1.5rem .5rem 1.35rem; color:rgba(255,255,255,.6); font-size:.815rem; text-decoration:none; letter-spacing:.25px; transition:color .22s,padding-left .28s var(--ease); position:relative }
.nav-drop a:hover { color:#fff; padding-left:1.7rem }
.nav-drop a.active { color:var(--gold); background:rgba(196,145,58,.06) }
.nav-drop a.active::before { content:'•'; color:var(--gold); margin-right:.5rem; font-size:1.1rem; line-height:0; flex-shrink:0 }
/* Mobile dropdown */
/* Trigger principal (categoria) — visual de header */
.mob-drop-toggle { background:none; border:none; cursor:pointer; width:100%; text-align:left; font-family:inherit; font-size:1.02rem; font-weight:600; color:rgba(255,255,255,.85); padding:1rem 1.6rem; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.06); transition:color .2s,background .2s; letter-spacing:.2px }
.mob-drop-toggle:hover { color:var(--gold) }
.mob-drop.open .mob-drop-toggle { color:var(--gold); background:rgba(255,255,255,.04) }
.mob-chev { font-size:.55rem; opacity:.6; transition:transform .25s,opacity .2s }
.mob-drop.open .mob-chev { transform:rotate(180deg); opacity:1; color:var(--gold) }

/* Container dos subitens — recuado, sem trilhas douradas */
.mob-drop-items { max-height:0; overflow:hidden; transition:max-height .35s ease; background:rgba(0,0,0,.18) }
.mob-drop.open .mob-drop-items { max-height:600px }
.mob-drop-items > div { padding:.2rem 0 .3rem; margin-left:1.6rem }

/* Subitens — tamanho uniforme médio */
.mob-drop-items a { display:flex; align-items:center; justify-content:space-between; padding:.35rem 1.6rem .35rem 1rem; color:rgba(255,255,255,.55); font-size:.72rem; font-weight:500; letter-spacing:.3px; transition:color .2s,background .2s,padding-left .2s; text-decoration:none; border-bottom:none }

/* "Ver todos" — mesmo tamanho dos outros, só com cor mais clara */
.mob-drop-items a:first-child { color:rgba(255,255,255,.92); font-weight:600 }

/* Hover/active dos subitens */
.mob-drop-items a:hover { color:var(--gold); background:rgba(196,145,58,.05); padding-left:1.25rem }
.mob-drop-items a.active { color:var(--gold); background:rgba(196,145,58,.08); font-weight:600 }
.mob-drop-items a.active::before { content:''; width:4px; height:4px; background:var(--gold); border-radius:50%; margin-right:.55rem; flex-shrink:0 }
.nav-r { display:flex; align-items:center; gap:.75rem }
.nav-tel { font-size:.88rem; font-weight:500; color:rgba(255,255,255,.7); display:flex; align-items:center; font-variant-numeric:tabular-nums lining-nums; letter-spacing:.3px }
.nav-wpp { display:flex; align-items:center; gap:.4rem; background:var(--wpp); color:#fff; font-size:.88rem; font-weight:700; padding:.52rem 1.15rem; border-radius:999px; letter-spacing:.2px; transition:filter .2s,transform .2s }
.nav-wpp:hover { filter:brightness(.92); transform:translateY(-1px) }
.ham { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px }
.ham span { display:block; width:22px; height:1.5px; background:#fff; border-radius:2px; transition:.3s }
.mob-bd { position:fixed; inset:0; z-index:198; background:rgba(0,0,0,.45); opacity:0; pointer-events:none; transition:opacity .35s }
.mob-bd.open { opacity:1; pointer-events:all }
.mob { position:fixed; top:0; right:0; bottom:0; z-index:199; width:min(300px,82vw); background:var(--navy); display:flex; flex-direction:column; transform:translateX(100%); transition:transform .38s cubic-bezier(.16,1,.3,1); pointer-events:none; box-shadow:-12px 0 48px rgba(0,0,0,.35) }
.mob.open { transform:none; pointer-events:all }
.mob-head { display:flex; align-items:center; justify-content:space-between; padding:1.2rem 1.4rem; border-bottom:1px solid rgba(255,255,255,.08); flex-shrink:0 }
.mob-head img { height:34px; width:auto }
.mob-x { background:rgba(255,255,255,.08); border:none; color:#fff; width:34px; height:34px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1rem; transition:background .2s; flex-shrink:0 }
.mob-x:hover { background:rgba(255,255,255,.16) }
.mob-nav { display:flex; flex-direction:column; padding:1rem 0; flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch }
.mob-nav a { font-size:1.02rem; font-weight:600; color:rgba(255,255,255,.85); padding:1rem 1.6rem; border-bottom:1px solid rgba(255,255,255,.06); display:flex; align-items:center; justify-content:space-between; transition:color .2s,background .2s,padding-left .2s; letter-spacing:.2px }
.mob-nav a:last-child { border-bottom:none }
.mob-nav a:hover,.mob-nav a.active { color:var(--gold); background:rgba(255,255,255,.04) }
.mob-nav a:hover { padding-left:2rem }
.mob-nav a::after { content:'→'; font-size:.7rem; opacity:.4; transition:opacity .2s,transform .2s }
.mob-nav a:hover::after { opacity:1; transform:translateX(4px) }
.mob-foot { padding:1.4rem; border-top:1px solid rgba(255,255,255,.08); flex-shrink:0 }
.mob-wpp { display:flex; align-items:center; justify-content:center; gap:.5rem; background:var(--wpp); color:#fff; font-size:.9rem; font-weight:700; padding:.85rem; border-radius:6px; transition:filter .2s }
.mob-wpp:hover { filter:brightness(.92) }
.nav-bd { position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:88%; height:2.5px; background:linear-gradient(to right,transparent,var(--gold) 12%,var(--gold) 88%,transparent); pointer-events:none; border-radius:999px }
@media(max-width:900px){
  .nav-links,.nav-tel { display:none }
  .ham { display:flex }
  .nav-bd { height:1px; transform:translateX(-50%) scaleY(0.35); opacity:.5; background:linear-gradient(to right,transparent,rgba(196,145,58,.4) 25%,var(--gold) 45%,var(--gold) 55%,rgba(196,145,58,.4) 75%,transparent) }
  .nav { padding:.9rem 0 }
  .nav-logo img { height:42px }
}
@media(max-width:520px){ .nav-wpp { display:none } }

/* ═══════════════════
   HERO
═══════════════════ */
.hero { min-height:100vh; position:relative; display:flex; align-items:center; overflow:hidden; color:#fff }
.hero-bg { position:absolute; inset:0; background:url('img/hero-bg-2x.webp') center/cover no-repeat; will-change:transform; animation:heroBgIn 1.8s cubic-bezier(.22,1,.36,1) forwards }
@keyframes heroBgIn { from{transform:scale(1.08)} to{transform:scale(1)} }
.hero-ov { position:absolute; inset:0; background:linear-gradient(108deg,rgba(0,0,0,.75) 0%,rgba(0,0,0,.55) 44%,rgba(0,0,0,.3) 100%) }
.hero-fade { position:absolute; bottom:0; left:0; right:0; height:220px; background:linear-gradient(to bottom,transparent,rgba(0,0,0,.55)); z-index:1; pointer-events:none }
.hero-body { position:relative; z-index:2; display:grid; grid-template-columns:1.15fr .85fr; gap:5rem; align-items:center; width:100%; padding:168px 0 140px }
.hero-chip { display:inline-flex; align-items:center; gap:.5rem; font-size:.6rem; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); margin-bottom:1.6rem; opacity:0; animation:fu .6s var(--ease) .2s forwards }
.hero-dot { width:5px; height:5px; border-radius:50%; background:var(--gold); flex-shrink:0; display:inline-block }
.hero-h1 { font-size:clamp(2.8rem,5.2vw,4.6rem); font-weight:700; line-height:1.04; letter-spacing:-.028em; color:#fff }
.hl { display:block; overflow:hidden; padding-bottom:.18em; margin-bottom:-.18em }
.hi { display:block; opacity:0; transform:translateY(108%); animation:lineUp .9s var(--ease) forwards }
.hl:nth-child(1) .hi { animation-delay:.28s }
.hl:nth-child(2) .hi { animation-delay:.44s }
.hl:nth-child(3) .hi { animation-delay:.6s }
.hl:nth-child(4) .hi { animation-delay:.76s }
.hl:nth-child(5) .hi { animation-delay:.92s }
.hi.it { font-style:italic; color:var(--gold) }
@keyframes lineUp { to{opacity:1;transform:none} }
@keyframes fu { to{opacity:1} }
.hero-right { opacity:0; transform:translateX(36px); animation:hSlide .95s var(--ease) .9s forwards }
@keyframes hSlide { to{opacity:1;transform:none} }
.hero-bar { width:36px; height:2px; background:var(--gold); margin-bottom:1.5rem; transform-origin:left center; animation:barGrow .65s var(--ease) .88s both }
@keyframes barGrow { from{transform:scaleX(0);opacity:0} to{transform:scaleX(1);opacity:1} }
.hero-p { font-size:.93rem; font-weight:300; color:rgba(255,255,255,.62); line-height:1.95; max-width:360px; margin-bottom:2.2rem }
.hero-ctas { display:flex; flex-direction:column; gap:.75rem; max-width:280px }
.btn-hol { display:inline-flex; align-items:center; justify-content:center; gap:.48rem; font-weight:500; font-size:.82rem; letter-spacing:.25px; color:#fff; padding:.8rem 1.5rem; border-radius:3px; border:1px solid rgba(255,255,255,.42); transition:border-color .22s,background .22s,color .22s,transform .2s }
.btn-hol:hover { border-color:var(--gold); color:var(--gold); background:rgba(196,145,58,.08); transform:translateY(-2px) }
.btn-htxt { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; font-weight:500; font-size:.82rem; color:rgba(255,255,255,.48); padding:.8rem 1.5rem; border:1px solid rgba(255,255,255,.11); border-radius:3px; transition:color .2s,border-color .2s,transform .2s }
.btn-htxt:hover { color:#fff; border-color:rgba(255,255,255,.28); transform:translateY(-1px) }
.s-ind { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:.4rem; opacity:0; animation:fu .8s var(--ease) 1.8s forwards }
.s-ind span { font-size:.54rem; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.25) }
.s-m { width:18px; height:29px; border:1.5px solid rgba(255,255,255,.22); border-radius:999px; display:flex; justify-content:center; padding-top:4px }
.s-d { width:2.5px; height:5px; background:rgba(255,255,255,.52); border-radius:999px; animation:sb 2.4s ease-in-out infinite }
@keyframes sb { 0%,100%{transform:translateY(0);opacity:1} 70%{transform:translateY(9px);opacity:0} }
@media(max-width:900px){
  .hero-body { grid-template-columns:1fr; gap:2.4rem; padding:130px 0 100px }
  .hero-right { transform:translateY(22px) }
  .hero-p { max-width:100% }
  .hero-ctas { max-width:100%; flex-direction:row; flex-wrap:wrap }
  .btn-hol,.btn-htxt { flex:1; min-width:155px }
}
@media(max-width:480px){
  .hero-body { padding:110px 0 80px }
  .hero-h1 { font-size:1.65rem; word-break:keep-all }
  .hero-ctas { flex-direction:column }
  .btn-hol,.btn-htxt { min-width:auto; width:100%; padding:.9rem 1rem; font-size:.74rem; white-space:normal; text-align:center; justify-content:center }
  .container { width:92% }
}
@media(max-width:380px){
  .hero-h1 { font-size:1.6rem; letter-spacing:-.02em }
  .hero-p { font-size:.86rem }
}
/* Mobile: desabilita animações pesadas pra evitar travamento de conteúdo invisível */
@media(max-width:768px){
  .hi { animation:none; opacity:1; transform:none }
  .hero-bg { animation:none; transform:none!important }
  .hero-right { animation:none; opacity:1; transform:none }
  .hero-chip { animation:none; opacity:1 }
  .hero-bar { animation:none }
  /* Mobile: animação mais leve (deslocamento menor + duração curta) */
  .rv { transform:translateY(12px); transition-duration:.45s }
}

/* ═══════════════════
   TRUST BAR
═══════════════════ */
.trust-bar { background:var(--navy2); border-bottom:1px solid rgba(196,145,58,.12) }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr) }
.trust-it { display:flex; align-items:center; gap:.85rem; padding:1.35rem 1.6rem; border-right:1px solid rgba(255,255,255,.07) }
.trust-it:last-child { border-right:none }
.trust-ico { width:38px; height:38px; border-radius:50%; background:rgba(196,145,58,.1); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--gold) }
.trust-it strong { display:block; font-size:.82rem; font-weight:700; color:#fff; margin-bottom:.15rem }
.trust-it span { font-size:.72rem; color:rgba(255,255,255,.42) }
@media(max-width:840px){
  .trust-grid { grid-template-columns:repeat(2,1fr) }
  .trust-it:nth-child(2) { border-right:none }
  .trust-it:nth-child(1),.trust-it:nth-child(2) { border-bottom:1px solid rgba(255,255,255,.07) }
}
@media(max-width:480px){
  .trust-grid { grid-template-columns:1fr }
  .trust-it { border-right:none; border-bottom:1px solid rgba(255,255,255,.07) }
  .trust-it:last-child { border-bottom:none }
}

/* ═══════════════════
   SERVIÇOS
═══════════════════ */
.servicos { background:var(--white); border-top:1px solid var(--bd) }
.sv-head { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:end; margin-bottom:3.5rem }
.sv-head h2 { max-width:560px; hyphens:none; text-wrap:balance }
.sv-head p { color:var(--muted); font-size:.92rem; line-height:1.85; font-weight:400 }
.sv-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--bd) }
.sv-grid-5 { grid-template-columns:repeat(5,1fr) }
@media(max-width:1100px){ .sv-grid-5 { grid-template-columns:repeat(3,1fr) } }
.card-sv { padding:2rem 1.5rem; border-right:1px solid var(--bd); transition:background .25s; position:relative; overflow:hidden }
.card-sv:last-child { border-right:none }
.card-sv::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--gold); transform:scaleY(0); transform-origin:bottom; transition:transform .4s var(--ease) }
.card-sv:hover::before { transform:scaleY(1) }
.card-sv:hover { background:var(--bg) }
.sv-n { font-size:2.2rem; font-weight:700; color:var(--gold); line-height:1; margin-bottom:1rem; font-variant-numeric:tabular-nums }
.card-sv h3 { font-weight:600; margin-bottom:.5rem }
.card-sv p { font-size:.84rem; color:var(--muted); line-height:1.7; margin-bottom:1.1rem }
.sv-lk { font-size:.76rem; font-weight:700; color:var(--gold); display:inline-flex; align-items:center; gap:.35rem; transition:gap .2s }
.sv-lk:hover { gap:.6rem }

/* ===== CARDS COM FOTO — Soluções transporte vertical ===== */
.svc-cards-sec { background:var(--white); border-top:1px solid var(--bd); padding:60px 0 }
.svc-cards-sec--alt { background:var(--bg) }
.svc-cards-head { max-width:580px; margin-bottom:2.2rem }
.svc-cards-head h2 { font-size:1.6rem; letter-spacing:-.01em; margin-bottom:.6rem; text-wrap:balance }
.svc-cards-head p { color:var(--muted); font-size:.88rem; line-height:1.75 }
.svc-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; max-width:1040px }
.svc-card { display:flex; flex-direction:column; background:var(--white); border:1px solid var(--bd); border-radius:6px; overflow:hidden; transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease) }
.svc-card:hover { transform:translateY(-5px); box-shadow:0 18px 42px -20px rgba(7,9,26,.4); border-color:transparent }
.svc-card-media { position:relative; aspect-ratio:1/1; overflow:hidden; background:linear-gradient(135deg,var(--navy),var(--navy2)) }
.svc-card-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:1; transition:transform .6s var(--ease) }
.svc-card:hover .svc-card-media img { transform:scale(1.05) }
.svc-card-media:has(img) .svc-card-ph { display:none }
.svc-card-ph { position:absolute; inset:0; z-index:0; display:flex; align-items:center; justify-content:center; font-size:2.1rem; color:rgba(196,145,58,.45) }
.svc-card-num { position:absolute; left:0; bottom:0; z-index:2; background:var(--gold); color:var(--navy); font-weight:700; font-size:.78rem; line-height:1; padding:.35rem .65rem; font-variant-numeric:tabular-nums; letter-spacing:.5px }
.svc-card-body { display:flex; flex-direction:column; flex:1; padding:1.15rem 1.25rem 1.3rem }
.svc-card-body h3 { font-size:1.18rem; font-weight:600; margin-bottom:.5rem }
.svc-card-body p { font-size:.9rem; color:var(--muted); line-height:1.65; margin-bottom:1rem; flex:1 }
.svc-card .sv-lk { font-size:.82rem }
/* Card largo (panorâmico) — só Modernização */
.svc-card--wide { grid-column:span 2 }
.svc-card--wide .svc-card-media { aspect-ratio:1076/461 }
/* Seção aeroportuária: 4 cards em uma única fileira */
.svc-cards-sec--alt .svc-cards { grid-template-columns:repeat(4,1fr); max-width:1120px }
@media(max-width:900px){
  .svc-cards { grid-template-columns:repeat(2,1fr) }
  .svc-cards-sec--alt .svc-cards { grid-template-columns:repeat(2,1fr) }
  .svc-cards-sec { padding:60px 0 }
  .svc-card--wide { grid-column:span 2 }
}
@media(max-width:560px){
  .svc-cards { grid-template-columns:repeat(2,1fr); gap:.7rem }
  .svc-cards-sec--alt .svc-cards { grid-template-columns:repeat(2,1fr) }
  .svc-card--wide { grid-column:span 2 }
  .svc-cards-sec { padding:40px 0 }
  .svc-cards-head { margin-bottom:1.5rem }
  .svc-cards-head h2 { font-size:1.35rem }
  .svc-cards-head p { font-size:.82rem }
  .svc-card-body { padding:.8rem .9rem .95rem }
  .svc-card-body h3 { font-size:.95rem; margin-bottom:.35rem }
  .svc-card-body p { font-size:.82rem; line-height:1.55; margin-bottom:.7rem }
  .svc-card .sv-lk { font-size:.76rem }
  .svc-card-num { font-size:.72rem; padding:.3rem .55rem }
}
@media(max-width:840px){
  .sv-head { grid-template-columns:1fr; gap:1rem }
  .sv-grid { grid-template-columns:repeat(2,1fr) }
  .card-sv:nth-child(2) { border-right:none }
  .card-sv:nth-child(1),.card-sv:nth-child(2) { border-bottom:1px solid var(--bd) }
}
@media(max-width:480px){
  .sv-grid { grid-template-columns:1fr }
  .card-sv { border-right:none; border-bottom:1px solid var(--bd) }
  .card-sv:last-child { border-bottom:none }
}

/* --- layout foto lateral + seções de serviços --- */
.sv-photo-layout { display:grid; grid-template-columns:1fr; border-top:1px solid var(--bd) }
.sv-sections-side .servicos:first-child { border-top:none }
.sv-acc-icon { display:none }
.sv-acc-icon i { transition:transform .35s var(--ease); color:var(--gold); font-size:.9rem }
@media(max-width:768px){
  .sv-sections-side .sv-head { cursor:pointer; position:relative; padding-right:1.8rem }
  .sv-acc-icon { display:block; position:absolute; right:0; top:2px }
  .sv-acc-icon i { transition:transform .45s cubic-bezier(.16,1,.3,1) }
  .sv-sections-side .servicos.open .sv-acc-icon i { transform:rotate(180deg) }
  .sv-sections-side .sv-grid { height:0; overflow:hidden; border-top:none; transition:height .45s cubic-bezier(.16,1,.3,1) }
  .sv-sections-side .servicos.open .sv-grid { border-top:1px solid var(--bd) }
}
.sv-sections-side section { padding:22px 0 }
.sv-sections-side .sv-head { margin-bottom:1rem; gap:2rem }
.sv-sections-side .sv-head h2 { font-size:1.5rem; letter-spacing:-.01em }
.sv-sections-side .sv-head p { font-size:.84rem; line-height:1.55 }
.sv-sections-side .card-sv { padding:.85rem 1rem }
.sv-sections-side .sv-n { font-size:1.45rem; margin-bottom:.35rem }
.sv-sections-side .card-sv h3 { font-size:.9rem; margin-bottom:.28rem }
.sv-sections-side .card-sv p { font-size:.8rem; line-height:1.5; margin-bottom:.55rem }
.sv-sections-side .sv-grid { border-top:none }
@media(max-width:900px){
  .sv-photo-layout { grid-template-columns:1fr; border-top:none }
  .sv-sections-side .servicos:first-child { border-top:1px solid var(--bd) }
  .sv-sections-side section { padding:60px 0 }
  .sv-sections-side .card-sv { padding:1.5rem }
  .sv-sections-side .sv-n { font-size:2.2rem; margin-bottom:1rem }
  .sv-sections-side .card-sv h3 { margin-bottom:.5rem }
  .sv-sections-side .card-sv p { font-size:.84rem; line-height:1.7; margin-bottom:1.1rem }
}

/* ═══════════════════
   PRODUTOS
═══════════════════ */
.produtos { background:var(--bg) }
.sec-h { margin-bottom:3rem }
.sec-h h2 { margin-bottom:.6rem }
.sec-h p { color:var(--muted); font-size:.93rem; line-height:1.75; max-width:500px }
.pr-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--bd) }
.card-pr { background:var(--white); overflow:hidden; display:flex; flex-direction:column }
.card-pr-img { height:240px; overflow:hidden }
.card-pr-img img { width:100%; height:100%; object-fit:cover; transition:transform .65s var(--ease) }
.card-pr:hover .card-pr-img img { transform:scale(1.06) }
.card-pr-body { padding:1.5rem; border-top:1px solid var(--bd); flex:1; display:flex; flex-direction:column }
.pr-tag { font-size:.6rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:.45rem }
.card-pr-body h3 { font-weight:600; margin-bottom:.35rem }
.card-pr-body p { font-size:.83rem; color:var(--muted); line-height:1.65; flex:1 }
.pr-lk { font-size:.76rem; font-weight:700; color:var(--gold); display:inline-flex; align-items:center; gap:.35rem; margin-top:.9rem; transition:gap .2s }
.pr-lk:hover { gap:.6rem }
@media(max-width:760px){ .pr-grid { grid-template-columns:1fr 1fr } }
@media(max-width:480px){ .pr-grid { grid-template-columns:1fr } }

/* ═══════════════════
   CLIENTES SELECT
═══════════════════ */
.clients-sec { background:var(--white); padding:72px 0 80px; border-top:1px solid rgba(0,0,0,.06) }
.clients-sec .sec-h { text-align:center }
.clients-sec .ey { justify-content:center }
.lc-wrap { overflow:hidden; -webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent); mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent); margin-top:2.8rem }
.lc-track { display:flex; width:max-content; animation:lcScroll 40s linear infinite }
.lc-set { display:flex; align-items:center; gap:56px; padding:0 28px }
.lc-logo { width:130px; height:52px; object-fit:contain; object-position:center; opacity:.85; transition:opacity .3s; flex-shrink:0 }
.lc-logo:hover { opacity:1 }
.lc-logo-sq { width:70px; height:70px }
.lc-logo-mb { width:auto; height:72px }
.lc-fallback { font-family:var(--display); font-size:.85rem; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:rgba(7,9,26,.45); white-space:nowrap; transition:color .25s }
.lc-fallback:hover { color:var(--navy) }
@keyframes lcScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ═══════════════════
   CTA STRIP
═══════════════════ */
.cta-strip { background:var(--navy); border-top:2px solid rgba(196,145,58,.2); padding:60px 0 }
.cta-strip-in { display:flex; align-items:center; justify-content:space-between; gap:2.5rem }
.cta-strip-txt h2 { color:#fff; margin-bottom:.4rem }
.cta-strip-txt p { color:rgba(255,255,255,.5); font-size:.9rem }
.cta-strip-btn { display:inline-flex; align-items:center; gap:.5rem; background:var(--gold); color:var(--navy); font-weight:700; font-size:.88rem; letter-spacing:.2px; padding:1rem 2.2rem; border-radius:3px; white-space:nowrap; flex-shrink:0; transition:filter .22s,transform .22s,box-shadow .22s }
.cta-strip-btn:hover { filter:brightness(1.06); transform:translateY(-2px); box-shadow:0 8px 28px rgba(196,145,58,.3) }
@media(max-width:660px){
  .cta-strip-in { flex-direction:column; text-align:center }
  .cta-strip-btn { width:100%; justify-content:center }
}

/* ═══════════════════
   FAQ
═══════════════════ */
.faq { background:var(--bg); border-top:1px solid var(--bd) }
.faq-head { margin-bottom:2.5rem }
.faq-list { display:flex; flex-direction:column; gap:1px; background:var(--bd) }
.faq-it { background:var(--white) }
.faq-q { width:100%; background:none; border:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:1.2rem; padding:1.35rem 1.6rem; text-align:left; transition:color .2s }
.faq-q span { font-size:.97rem; font-weight:500; color:var(--navy); line-height:1.4; transition:color .2s }
.faq-q:hover span { color:var(--gold) }
.faq-arr { color:var(--gold); flex-shrink:0; transition:transform .35s var(--ease) }
.faq-it.open .faq-arr { transform:rotate(180deg) }
.faq-ans { max-height:0; overflow:hidden; transition:max-height .4s var(--ease) }
.faq-ans p { padding:.1rem 1.6rem 1.4rem; font-size:.88rem; color:var(--muted); line-height:1.82; border-top:1px solid var(--bd) }

/* ═══════════════════
   CONTATO
═══════════════════ */
.contato { background:var(--bg); border-top:1px solid var(--bd) }
.ct-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start }
.ct-dados { display:flex; flex-direction:column }
.ct-dado { display:flex; align-items:flex-start; gap:.8rem; padding:.9rem 0; border-bottom:1px solid var(--bd) }
.ct-dado:last-child { border-bottom:none }
.ct-ico { width:30px; height:30px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:.9rem }
.ct-dado strong { display:block; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); margin-bottom:.2rem }
.ct-dado a,.ct-dado span { font-size:.86rem; color:var(--text); display:block; line-height:1.55; overflow-wrap:anywhere; word-break:break-word }
.ct-dado a:hover { color:var(--gold) }
.ct-form { background:var(--white); border:1px solid var(--bd); border-radius:6px; padding:2.2rem }
.ct-form h3 { font-size:1.5rem; font-weight:700; color:var(--navy); margin-bottom:.25rem }
.ct-form > p { color:var(--muted); font-size:.83rem; margin-bottom:1.65rem }
.fg { margin-bottom:.85rem }
.fr { display:grid; grid-template-columns:1fr 1fr; gap:.85rem }
label { display:block; font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--muted); margin-bottom:.28rem }
label em { color:var(--gold); font-style:normal }
input,textarea { width:100%; padding:.68rem .88rem; border:1px solid var(--bd); border-radius:3px; font-size:.9rem; color:var(--text); background:var(--bg); outline:none; transition:border-color .2s,box-shadow .2s; font-family:'Ubuntu',sans-serif }
input:focus,textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(196,145,58,.1); background:var(--white) }
textarea { resize:vertical; min-height:88px }
.btn-sub { width:100%; padding:.82rem; background:var(--navy); color:#fff; font-weight:700; font-size:.84rem; letter-spacing:.2px; border:none; border-radius:3px; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:.45rem; margin-top:.4rem; transition:background .2s,transform .2s; font-family:'Ubuntu',sans-serif }
.btn-sub:hover { background:#1a2540; transform:translateY(-1px) }
@media(max-width:840px){ .ct-grid { grid-template-columns:1fr; gap:3rem } .fr { grid-template-columns:1fr } }

/* ═══════════════════
   FOOTER
═══════════════════ */
.footer { background:var(--navy); color:#fff; padding:56px 0 0 }
.ft-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:3rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,.08) }
.ft-brand img { height:38px; width:auto; margin-bottom:1rem }
.ft-brand p { font-weight:300; color:rgba(255,255,255,.42); font-size:.83rem; line-height:1.75; max-width:240px }
.ft-soc { display:flex; gap:.5rem; margin-top:1.4rem }
.ft-soc a { width:34px; height:34px; border:1px solid rgba(255,255,255,.12); border-radius:3px; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.5); transition:background .2s,color .2s,border-color .2s }
.ft-soc a:hover { background:var(--gold); color:var(--navy); border-color:var(--gold) }
.ft-col h4 { font-size:.64rem; font-weight:700; text-transform:uppercase; letter-spacing:2.5px; color:rgba(255,255,255,.28); margin-bottom:1.1rem }
.ft-col a { display:block; color:rgba(255,255,255,.55); font-size:.83rem; margin-bottom:.52rem; transition:color .2s; overflow-wrap:anywhere; word-break:break-word }
.ft-col a:hover { color:var(--gold) }
.ft-tag { display:block; color:var(--gold)!important; font-size:.64rem!important; font-weight:700!important; text-transform:uppercase; letter-spacing:1.2px; margin-bottom:.18rem!important }
.ft-btm { padding:1.1rem 0; text-align:center; font-size:.76rem; color:rgba(255,255,255,.27) }
@media(max-width:840px){ .ft-grid { grid-template-columns:1fr 1fr; gap:2rem } }
@media(max-width:600px){ .ft-grid { grid-template-columns:1fr; gap:1.8rem } .ft-brand p { max-width:100% } .ft-col h4 { margin-top:0 } }

/* ═══════════════════
   WPP FLOAT
═══════════════════ */
.wpp { position:fixed; bottom:24px; right:24px; z-index:98; width:54px; height:54px; border-radius:50%; background:var(--wpp); display:flex; align-items:center; justify-content:center; font-size:1.55rem; color:#fff; box-shadow:0 6px 22px rgba(37,211,102,.4); animation:wpP 2.4s ease-in-out infinite; transition:transform .2s }
.wpp:hover { transform:scale(1.1) }
@keyframes wpP { 0%,100%{box-shadow:0 6px 22px rgba(37,211,102,.4),0 0 0 0 rgba(37,211,102,.4)} 50%{box-shadow:0 6px 22px rgba(37,211,102,.4),0 0 0 13px rgba(37,211,102,0)} }
@media(prefers-reduced-motion:reduce){ .wpp { animation:none } .rv { opacity:1; transform:none } }

/* ═══════════════════
   BOTÕES COMPARTILHADOS
═══════════════════ */
.btn-g { display:inline-flex; align-items:center; gap:.45rem; background:var(--gold); color:var(--navy); font-weight:700; font-size:.84rem; letter-spacing:.2px; padding:.82rem 1.8rem; border-radius:3px; border:none; cursor:pointer; transition:filter .2s,transform .2s,box-shadow .2s }
.btn-g:hover { filter:brightness(1.07); transform:translateY(-2px); box-shadow:0 8px 24px rgba(196,145,58,.35) }
.btn-ol { display:inline-flex; align-items:center; gap:.45rem; background:rgba(255,255,255,.05); color:rgba(255,255,255,.82); font-weight:500; font-size:.84rem; letter-spacing:.2px; padding:.82rem 1.8rem; border-radius:3px; border:1px solid rgba(255,255,255,.18); transition:border-color .2s,color .2s,background .2s,transform .2s }
.btn-ol:hover { border-color:rgba(255,255,255,.5); color:#fff; background:rgba(255,255,255,.08); transform:translateY(-2px) }
.btn-dk { display:inline-flex; align-items:center; gap:.45rem; background:var(--navy); color:#fff; font-weight:700; font-size:.84rem; letter-spacing:.2px; padding:.9rem 2rem; border-radius:3px; transition:background .2s,transform .2s }
.btn-dk:hover { background:var(--navy2); transform:translateY(-2px) }

/* ═══════════════════════════════════════
   PAGE BANNER — páginas internas
═══════════════════════════════════════ */
.page-banner { background:var(--navy); padding:148px 0 64px; position:relative; overflow:hidden; color:#fff }
.page-banner-line { position:absolute; bottom:0; left:0; right:0; height:2px; background:linear-gradient(to right,transparent,var(--gold) 20%,var(--gold) 80%,transparent) }
.page-banner .ey { margin-bottom:.6rem }
.page-banner h1 { font-size:clamp(2rem,4.5vw,3rem); font-weight:700; color:#fff; letter-spacing:-.015em; line-height:1.1; margin-bottom:.6rem }
.page-banner p { color:rgba(255,255,255,.58); font-size:.93rem; line-height:1.8; max-width:520px }
@media(max-width:768px){ .page-banner { padding:120px 0 52px } }

/* ═══════════════════════════════════════
   QUEM SOMOS
═══════════════════════════════════════ */
.qs-about { background:var(--white); padding:0; overflow:hidden }
.qs-about-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:start }
.qs-about-img { overflow:hidden; position:relative }
.qs-about-img::after { content:''; position:absolute; top:0; right:0; bottom:0; width:2px; background:var(--gold); z-index:1 }
.qs-about-img img { width:100%; height:auto; display:block }
.qs-about-txt { padding:5rem 6% 5rem 5%; display:flex; flex-direction:column; justify-content:center }
.qs-about-txt p { color:var(--muted); font-size:.93rem; line-height:1.85; margin-bottom:1.2rem }
.qs-about-txt p:last-child { margin-bottom:0 }
@media(max-width:840px){
  .qs-about-grid { grid-template-columns:1fr; min-height:auto }
  .qs-about-img img { height:300px; object-fit:cover; object-position:center top }
  .qs-about-img::after { top:auto; right:0; left:0; bottom:0; width:auto; height:3px; background:linear-gradient(to right,transparent,var(--gold),transparent) }
  .qs-about-txt { padding:2.5rem 5% }
}

.qs-mv { background:var(--bg); border-top:1px solid var(--bd) }
.qs-mv-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem }
.qs-mv-card { padding:2.2rem; background:var(--white); border:1px solid var(--bd); border-radius:4px }
.qs-mv-card .ey { margin-bottom:.5rem }
.qs-mv-card h3 { font-size:1.25rem; font-weight:700; margin-bottom:.75rem; color:var(--navy) }
.qs-mv-card p { color:var(--muted); font-size:.9rem; line-height:1.8 }
@media(max-width:640px){ .qs-mv-grid { grid-template-columns:1fr } }

.qs-vals { background:var(--white); border-top:1px solid var(--bd) }
.qs-vals-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem }
.qs-val-card { padding:2rem; border:1px solid var(--bd); border-radius:4px; transition:box-shadow .22s,transform .22s }
.qs-val-card:hover { box-shadow:0 8px 32px rgba(0,0,0,.08); transform:translateY(-4px) }
.qs-val-ico { width:44px; height:44px; background:var(--glt); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom:1rem }
.qs-val-card h3 { font-weight:700; margin-bottom:.5rem }
.qs-val-card p { color:var(--muted); font-size:.86rem; line-height:1.75 }
@media(max-width:900px){ .qs-vals-grid { grid-template-columns:repeat(2,1fr) } }
@media(max-width:480px){ .qs-vals-grid { grid-template-columns:1fr } }

.qs-stats { background:var(--navy); color:#fff }
.qs-stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; text-align:center }
.qs-stat-n { font-size:2.8rem; font-weight:700; color:var(--gold); line-height:1; margin-bottom:.4rem }
.qs-stat-l { font-size:.72rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,.5) }
@media(max-width:640px){ .qs-stats-grid { grid-template-columns:repeat(2,1fr); gap:2.5rem } }

/* ═══════════════════════════════════════
   PRODUTOS PAGE
═══════════════════════════════════════ */
.cat-sec { padding:0; border-top:1px solid var(--bd) }
.cat-sec:nth-child(odd) { background:var(--white) }
.cat-sec:nth-child(even) { background:var(--bg) }
.cat-head { margin-bottom:2.4rem }
.cat-head h2 { margin-bottom:.5rem }
.cat-slogan { font-size:.95rem; color:var(--muted); line-height:1.8; max-width:660px; margin-bottom:.9rem }
.cat-desc { font-size:.9rem; color:var(--muted); line-height:1.85; max-width:680px; margin-bottom:2rem }
.cat-vant { display:grid; grid-template-columns:repeat(2,1fr); gap:.45rem 2.5rem; margin-bottom:3rem; max-width:600px }
.cat-vant li { display:flex; align-items:flex-start; gap:.6rem; font-size:.86rem; color:var(--text); line-height:1.55 }
.cat-vant li::before { content:''; width:6px; height:6px; background:var(--gold); border-radius:50%; flex-shrink:0; margin-top:.42em }
.models-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.4rem }
.model-card { border:1px solid var(--bd); border-radius:4px; overflow:hidden; background:var(--white) }
.model-card-head { background:var(--navy); padding:1.5rem }
.model-card-head .pr-tag { display:block; margin-bottom:.45rem }
.model-card-head h3 { font-size:1.05rem; font-weight:700; color:#fff; letter-spacing:-.01em; margin-bottom:.22rem }
.model-sub { font-size:.72rem; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; color:rgba(255,255,255,.45) }
.model-card-body { padding:1.4rem 1.5rem }
.model-card-body > p { font-size:.86rem; color:var(--muted); line-height:1.75; margin-bottom:1.2rem }
.specs-grid { display:grid; grid-template-columns:1fr 1fr; gap:3px }
.spec-it { display:flex; flex-direction:column; gap:.12rem; padding:.55rem .7rem; background:var(--bg); border-radius:2px }
.spec-l { font-size:.58rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--muted) }
.spec-v { font-size:.82rem; font-weight:500; color:var(--text) }
@media(max-width:640px){ .cat-vant { grid-template-columns:1fr } .models-grid { grid-template-columns:1fr } .specs-grid { grid-template-columns:1fr } }

/* ═══════════════════════════════════════
   SERVIÇOS — FOTOS EM CAMPO
═══════════════════════════════════════ */
.sv-field { padding:88px 0; background:var(--navy) }
.sv-field .sec-h { margin-bottom:2.8rem }
.sv-field .sec-h h2 { color:#fff }
.sv-field-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.75rem;
}
.sv-field-item {
  position:relative;
  border-radius:4px;
  overflow:hidden;
}
.sv-field-item img {
  width:100%;
  height:auto;
  display:block;
}

.sv-field-item::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(7,9,26,.78) 0%,rgba(7,9,26,.08) 55%,transparent 100%);
  pointer-events:none;
}
.sv-field-cap {
  position:absolute;
  bottom:1.4rem;
  left:1.5rem;
  z-index:1;
  display:flex;
  align-items:center;
  gap:.55rem;
}
.sv-field-cap span {
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:2px;
  color:#fff;
}
@media(max-width:768px) {
  .sv-field-grid { grid-template-columns:repeat(2,1fr); gap:.6rem; }
  .sv-field-cap { bottom:1rem; left:1rem; }
  .sv-field { padding:60px 0; }
}
@media(max-width:480px) {
  .sv-field-grid { gap:.5rem; }
  .sv-field-cap { bottom:.7rem; left:.7rem; }
  .sv-field-cap span { font-size:.6rem; letter-spacing:1.5px; }
  .sv-field { padding:48px 0; }
}

/* CTA section (páginas internas) */
.cta-sec { background:var(--gold); color:var(--navy); text-align:center; padding:72px 0 }
.cta-sec h2 { color:var(--navy); margin-bottom:.75rem }
.cta-sec p { color:rgba(7,9,26,.65); font-size:.93rem; margin-bottom:2rem; max-width:480px; margin-left:auto; margin-right:auto }
@media(max-width:480px){
  .cta-sec { padding:52px 0 }
  .cta-sec h2 { font-size:1.5rem }
  .btn-dk,.btn-g { width:100%; justify-content:center; padding:.9rem 1.2rem }
}

/* ═══════════════════════════════════════
   NOSSA FÁBRICA (index)
═══════════════════════════════════════ */
.nossa-fab-sec {
  background:var(--white);
  border-top:1px solid var(--bd);
  border-bottom:1px solid var(--bd);
  padding:2.5rem 0 3rem;
}
.nossa-fab-sec h2 { margin-bottom:1.75rem }
.nossa-fab-wrap {
  display:block;
  line-height:0;
  overflow:hidden;
  text-decoration:none;
  border-radius:12px;
  box-shadow:0 8px 40px rgba(7,9,26,.13);
  border:1px solid var(--bd);
}
.nossa-fab-wrap img {
  width:100%;
  height:75vh;
  max-height:820px;
  object-fit:cover;
  object-position:center 60%;
  display:block;
  border-radius:12px;
}
@media(max-width:768px){
  .nossa-fab-wrap img { height:50vh }
  .nossa-fab-sec { padding:2rem 0 2.5rem }
}

/* ═══════════════════════════════════════
   MOBILE GLOBAL — ≤390px
═══════════════════════════════════════ */
@media(max-width:390px){
  body { font-size:14px }
  .container { width:92% }
  h2 { font-size:1.6rem }
  .page-banner h1 { font-size:1.8rem }
  .sec-h { margin-bottom:2rem }
  .qs-stat-n { font-size:2.2rem }
  .ft-grid { gap:1.5rem }
  .wpp { width:48px; height:48px; bottom:16px; right:16px }
  .ct-form { padding:1.5rem }
  .fr { grid-template-columns:1fr }
}

/* ═══════════════════
   LOCALIZAÇÃO + REDES SOCIAIS
═══════════════════ */
.loc { background:var(--bg); padding:5rem 0 6rem; position:relative }
.loc-head { max-width:640px; margin:0 auto 3rem; text-align:center }
.loc-ey { justify-content:center }
.loc-ey::before { width:34px }
.loc-ey::after { content:''; width:34px; height:1.5px; background:var(--gold) }
.loc-head h2 { margin-bottom:.7rem }
.loc-head p { color:var(--muted); font-size:.95rem; max-width:520px; margin:0 auto }

.loc-grid { display:grid; grid-template-columns:1fr 460px; gap:2rem; align-items:stretch }

/* INFO — texto solto, sem card */
.loc-info { display:flex; flex-direction:column; justify-content:center; gap:2.6rem; padding:1rem 1.5rem 1rem 0; color:var(--text) }

.loc-block { display:flex; flex-direction:column; gap:1.15rem }
.loc-tag { display:inline-flex; align-items:center; gap:.6rem; font-size:.78rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:var(--gold) }
.loc-tag svg { stroke:var(--gold); width:18px; height:18px }

.loc-addr { color:var(--text); font-size:1.45rem; line-height:1.4; font-weight:600; margin:0; letter-spacing:-.01em }
.loc-addr em { display:block; margin-top:.45rem; color:var(--muted); font-style:normal; font-size:1.05rem; font-weight:400; letter-spacing:.3px }
.loc-addr-sm { font-size:1.1rem; color:var(--muted); font-weight:400; line-height:1.55 }

.loc-link { display:inline-flex; align-items:center; gap:.5rem; align-self:flex-start; margin-top:.6rem; padding-bottom:4px; font-size:1rem; font-weight:600; color:var(--navy); text-decoration:none; border-bottom:2px solid var(--gold); transition:gap .25s var(--ease), color .25s }
.loc-link svg { stroke:var(--gold); width:16px; height:16px; transition:transform .3s var(--ease) }
.loc-link:hover { gap:.85rem; color:var(--gold) }
.loc-link:hover svg { transform:translate(3px,-3px) }

.loc-rule { height:1px; background:var(--bd); margin:.4rem 0; max-width:80% }

.loc-socials { display:flex; gap:.8rem; margin-top:.6rem }
.loc-soc { width:54px; height:54px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:var(--navy); border:1px solid var(--navy); color:var(--gold); font-size:1.25rem; text-decoration:none; transition:transform .35s var(--ease), background .25s, color .25s, border-color .25s, box-shadow .25s }
.loc-soc:hover { background:var(--gold); color:var(--navy); border-color:var(--gold); transform:translateY(-3px); box-shadow:0 14px 24px -8px rgba(196,145,58,.55) }
.loc-soc-wpp { background:var(--wpp); border-color:var(--wpp); color:#fff }
.loc-soc-wpp:hover { background:#1da653; border-color:#1da653; color:#fff; box-shadow:0 14px 24px -8px rgba(29,166,83,.55) }

/* MAPA — mais alto, menos largo, foco e elegância */
.loc-map { position:relative; width:100%; min-height:580px; border-radius:18px; overflow:hidden; border:1px solid var(--bd); box-shadow:0 30px 70px -32px rgba(7,9,26,.4); background:#eee }
.loc-map iframe { width:100%; height:100%; border:0; display:block; filter:saturate(.95) contrast(1.02) }
.loc-cta { position:absolute; bottom:18px; right:18px; display:inline-flex; align-items:center; gap:.55rem; background:var(--navy); color:#fff; padding:.75rem 1.2rem; border-radius:50px; font-size:.72rem; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; text-decoration:none; box-shadow:0 14px 30px -8px rgba(7,9,26,.55); transition:background .25s, color .25s, transform .25s var(--ease), box-shadow .25s; z-index:2 }
.loc-cta svg { stroke:var(--gold); transition:stroke .25s }
.loc-cta:hover { background:var(--gold); color:var(--navy); transform:translateY(-2px); box-shadow:0 18px 34px -8px rgba(196,145,58,.55) }
.loc-cta:hover svg { stroke:var(--navy) }

@media(max-width:920px){
  .loc-grid { grid-template-columns:1fr; gap:1.6rem }
  .loc-map { min-height:440px }
}
@media(max-width:768px){
  .loc { padding:3.5rem 0 4rem }
  .loc-head { margin-bottom:2rem }
  .loc-info { padding:0; gap:2rem }
  .loc-block { gap:.95rem }
  .loc-tag { font-size:.7rem; letter-spacing:2.4px }
  .loc-tag svg { width:15px; height:15px }
  .loc-addr { font-size:1.18rem }
  .loc-addr em { font-size:.92rem; margin-top:.35rem }
  .loc-addr-sm { font-size:.98rem }
  .loc-link { font-size:.9rem }
  .loc-rule { max-width:100% }
  .loc-socials { gap:.65rem; margin-top:.4rem }
  .loc-soc { width:46px; height:46px; font-size:1.08rem }
  .loc-map { min-height:380px; border-radius:14px }
  .loc-cta { bottom:12px; right:12px; padding:.62rem 1rem; font-size:.66rem }
}
@media(max-width:420px){
  .loc-addr { font-size:1.08rem }
  .loc-soc { width:44px; height:44px }
}
