/* JJN Neto Transportes — Website UI kit styles (uses ../../colors_and_type.css tokens) */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--fg-1);background:var(--bg-surface);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
section{position:relative}
a{color:inherit;text-decoration:none}

/* ---- reveal (safe: visible by default, animates in when observed) ---- */
.reveal{opacity:1}
body.reveal-ready .reveal:not(.in){opacity:0;transform:translateY(22px)}
body.reveal-ready .reveal.in{opacity:1;transform:none;transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
body.reveal-ready .reveal.in.snap{transition:none}
@media (prefers-reduced-motion:reduce){body.reveal-ready .reveal:not(.in){opacity:1;transform:none}}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;font-family:var(--font-body);font-weight:700;font-size:16px;cursor:pointer;border:none;border-radius:var(--r-md);padding:15px 26px;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}
.btn svg{width:19px;height:19px}
.btn-primary{background:var(--jjn-amber);color:var(--jjn-navy)}
.btn-primary:hover{background:var(--jjn-amber-bright);transform:translateY(-2px);box-shadow:var(--shadow-amber)}
.btn-primary:active{transform:scale(.97);background:var(--jjn-amber-deep)}
.btn-ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.28)}
.btn-ghost:hover{background:rgba(255,255,255,.08);transform:translateY(-2px)}
.btn-dark{background:var(--jjn-navy);color:#fff}
.btn-dark:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-wa{background:var(--jjn-eco);color:#fff}
.btn-wa:hover{background:var(--jjn-eco-bright);transform:translateY(-2px);box-shadow:var(--shadow-md)}

.eyebrow{font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--jjn-amber-deep)}
.eyebrow.on-dark{color:var(--jjn-amber)}

/* ---- header ---- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;transition:background var(--dur) var(--ease-out),box-shadow var(--dur),padding var(--dur)}
.hdr-inner{display:flex;align-items:center;justify-content:space-between;height:74px}
.hdr-logo{height:42px}
.hdr.scrolled{background:rgba(12,24,37,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--jjn-navy-600)}
.hdr.top{background:transparent}
.nav{display:flex;align-items:center;gap:30px}
.nav a{font-size:15px;font-weight:600;color:rgba(255,255,255,.82);transition:color var(--dur)}
.nav a:hover{color:var(--jjn-amber)}
.hdr .menu-btn{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:6px;margin:-6px}
.hdr .menu-btn svg{width:28px;height:28px}
/* mobile dropdown menu */
.mobile-menu{display:none;flex-direction:column;gap:4px;padding:0 32px;max-height:0;overflow:hidden;transition:max-height var(--dur) var(--ease-out),padding var(--dur) var(--ease-out)}
.mobile-menu.open{max-height:420px;padding:8px 32px 22px}
.mobile-menu a{font-size:16px;font-weight:600;color:rgba(255,255,255,.9);padding:13px 0;border-bottom:1px solid var(--jjn-navy-600)}
.mobile-menu a.btn{border-bottom:none;color:var(--jjn-navy)}
.mobile-menu a:hover{color:var(--jjn-amber)}

/* ---- hero ---- */
.hero{background:var(--jjn-navy);color:#fff;padding:138px 0 90px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center}
.hero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.6rem,1.5rem+3.4vw,4.2rem);line-height:1.03;letter-spacing:-.02em}
.hero h1 em{font-style:normal;color:var(--jjn-amber)}
.hero p{font-size:19px;line-height:1.55;color:var(--fg-on-dark-muted);margin:24px 0 32px;max-width:33ch}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-photo{position:relative;height:430px;border-radius:var(--r-xl);overflow:hidden;background:var(--jjn-navy-700);border:1px solid var(--jjn-navy-600)}
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--fg-on-dark-muted);width:100%;height:100%;text-align:center}
.ph svg{width:46px;height:46px;opacity:.5}
.ph span{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.hero-badge{position:absolute;left:20px;bottom:20px;display:flex;gap:10px}
.badge-pill{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:7px 13px;border-radius:var(--r-pill);background:rgba(12,24,37,.78);color:#fff;backdrop-filter:blur(6px)}
.badge-pill svg{width:14px;height:14px;color:var(--jjn-amber)}
.statstrip{display:flex;gap:0;margin-top:64px;border-top:1px solid var(--jjn-navy-600);padding-top:28px}
.statstrip .s{flex:1;border-left:1px solid var(--jjn-navy-600);padding-left:22px}
.statstrip .s:first-child{border-left:none;padding-left:0}
.statstrip .num{font-family:var(--font-display);font-weight:800;font-size:40px;color:var(--jjn-amber);line-height:1}
.statstrip .cap{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-on-dark-muted);margin-top:8px}

/* topo line motif (no gradient) */
.hero-lines{position:absolute;inset:0;opacity:.06;background-image:repeating-linear-gradient(115deg,transparent 0 38px,var(--jjn-amber) 38px 39px);pointer-events:none}

/* ---- trust bar ---- */
.trust{background:var(--steel-50);border-bottom:1px solid var(--border-1);padding:28px 0}
.trust-inner{display:flex;align-items:center;gap:38px;flex-wrap:wrap;justify-content:center}
.trust .lab{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-4)}
.trust .cli{font-family:var(--font-display);font-weight:700;font-size:19px;color:var(--steel-400);letter-spacing:.02em}

/* ---- section heads ---- */
.sec{padding:96px 0}
.sec-head{max-width:620px;margin-bottom:54px}
.sec-head h2{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,1.4rem+1.8vw,2.9rem);line-height:1.1;letter-spacing:-.015em;margin:14px 0 0}
.sec-head p{font-size:18px;color:var(--fg-2);margin-top:16px;line-height:1.55}

/* ---- services grid ---- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.svc{background:#fff;border:1px solid var(--border-1);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur)}
.svc:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.svc .ico{width:52px;height:52px;border-radius:14px;background:var(--jjn-amber);color:var(--jjn-navy);display:flex;align-items:center;justify-content:center}
.svc .ico svg{width:26px;height:26px}
.svc h3{font-size:20px;margin:20px 0 10px}
.svc p{font-size:15px;color:var(--fg-2);line-height:1.55}
.svc .more{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-weight:700;font-size:14px;color:var(--jjn-amber-deep)}
.svc .more svg{width:16px;height:16px;transition:transform var(--dur)}
.svc:hover .more svg{transform:translateX(4px)}

/* ---- differential ---- */
.diff{background:var(--jjn-navy);color:#fff;padding:104px 0;overflow:hidden}
.diff-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}
.diff h2{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,1.4rem+1.8vw,2.9rem);line-height:1.08;letter-spacing:-.015em;margin:14px 0 18px}
.diff p{color:var(--fg-on-dark-muted);font-size:18px;line-height:1.6;margin-bottom:14px}
.diff .feats{margin-top:26px;display:flex;flex-direction:column;gap:16px}
.diff .feat{display:flex;gap:14px;align-items:flex-start}
.diff .feat .fi{flex:none;width:38px;height:38px;border-radius:10px;background:var(--jjn-navy-700);color:var(--jjn-amber);display:flex;align-items:center;justify-content:center}
.diff .feat .fi svg{width:20px;height:20px}
.diff .feat b{display:block;font-size:16px;margin-bottom:3px}
.diff .feat span{font-size:14px;color:var(--fg-on-dark-muted)}
/* flow diagram */
.flow{background:var(--jjn-navy-700);border:1px solid var(--jjn-navy-600);border-radius:var(--r-xl);padding:38px;position:relative}
.flow-track{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative}
.flow-node{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;z-index:2}
.flow-node .fn{width:64px;height:64px;border-radius:16px;background:var(--jjn-navy);border:1px solid var(--jjn-navy-500);display:flex;align-items:center;justify-content:center;color:var(--jjn-amber)}
.flow-node .fn svg{width:28px;height:28px}
.flow-node small{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-on-dark-muted);max-width:80px}
.flow-line{position:absolute;top:32px;left:40px;right:40px;height:3px;background:var(--jjn-navy-500);border-radius:2px;overflow:hidden;z-index:1}
.flow-line .pulse{position:absolute;top:0;left:-30%;width:30%;height:100%;background:var(--jjn-amber);border-radius:2px;animation:flow 2.6s var(--ease-in-out) infinite}
@keyframes flow{0%{left:-30%}100%{left:100%}}
@media (prefers-reduced-motion:reduce){.flow-line .pulse{animation:none;left:0;width:100%;opacity:.5}}
.flow .tag{position:absolute;top:-14px;left:38px;background:var(--jjn-amber);color:var(--jjn-navy);font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:var(--r-pill)}

/* ---- process ---- */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:step}
.step{position:relative;padding-top:20px}
.step .n{font-family:var(--font-display);font-weight:800;font-size:46px;color:var(--steel-200);line-height:1}
.step h4{font-size:18px;margin:8px 0 8px}
.step p{font-size:14px;color:var(--fg-2);line-height:1.5}
.step::before{content:"";position:absolute;top:0;left:0;width:46px;height:4px;background:var(--jjn-amber);border-radius:2px}

/* ---- stats band ---- */
.band{background:var(--jjn-amber);color:var(--jjn-navy)}
.band-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:64px 0}
.band .num{font-family:var(--font-display);font-weight:900;font-size:54px;line-height:1}
.band .cap{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-top:10px;color:var(--jjn-navy);opacity:.7}

/* ---- compliance ---- */
.comp-grid{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.comp-photo{height:380px;border-radius:var(--r-xl);background:var(--steel-100);border:1px solid var(--border-1);position:relative;overflow:hidden}
.comp-photo .ph{color:var(--fg-4)}
.comp-list{display:flex;flex-direction:column;gap:18px;margin-top:26px}
.comp-item{display:flex;gap:14px;align-items:flex-start}
.comp-item .ci{flex:none;width:34px;height:34px;border-radius:9px;background:var(--jjn-eco-tint);color:var(--jjn-eco);display:flex;align-items:center;justify-content:center}
.comp-item .ci svg{width:18px;height:18px}
.comp-item b{display:block;font-size:16px;margin-bottom:2px}
.comp-item span{font-size:14px;color:var(--fg-2)}

/* ---- contact ---- */
.cta{background:var(--jjn-navy);color:#fff;padding:96px 0}
.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.cta h2{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,1.4rem+1.8vw,2.9rem);line-height:1.08;letter-spacing:-.015em}
.cta p{color:var(--fg-on-dark-muted);font-size:18px;margin:16px 0 26px;line-height:1.55}
.cta .quick{display:flex;flex-direction:column;gap:14px}
.cta .quick a{display:flex;align-items:center;gap:12px;color:#fff;font-size:16px}
.cta .quick .qi{width:42px;height:42px;border-radius:11px;background:var(--jjn-navy-700);display:flex;align-items:center;justify-content:center;color:var(--jjn-amber)}
.cta .quick .qi svg{width:20px;height:20px}
.form{background:#fff;border-radius:var(--r-xl);padding:34px;box-shadow:var(--shadow-lg)}
.form h3{color:var(--jjn-navy);font-size:22px;margin-bottom:6px}
.form .sub{color:var(--fg-3);font-size:14px;margin-bottom:22px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field.full{grid-column:1/-1}
.field label{font-size:13px;font-weight:600;color:var(--fg-1)}
.field input,.field select,.field textarea{font-family:var(--font-body);font-size:15px;padding:12px 14px;border-radius:var(--r-sm);border:1.5px solid var(--border-2);background:#fff;color:var(--fg-1);transition:border-color var(--dur),box-shadow var(--dur)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--jjn-amber);box-shadow:0 0 0 3px rgba(237,171,40,.18)}
.form .btn{width:100%;justify-content:center;margin-top:6px}
.sent{text-align:center;padding:30px 10px;color:var(--jjn-navy)}
.sent .ok{width:64px;height:64px;border-radius:50%;background:var(--jjn-eco-tint);color:var(--jjn-eco);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.sent .ok svg{width:32px;height:32px}

/* ---- footer ---- */
.foot{background:#08111c;color:var(--fg-on-dark-muted);padding:58px 0 30px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:36px;border-bottom:1px solid var(--jjn-navy-600)}
.foot img{height:40px;margin-bottom:18px}
.foot p{font-size:14px;line-height:1.6;max-width:34ch}
.foot h5{color:#fff;font-family:var(--font-display);font-size:15px;letter-spacing:.02em;margin-bottom:16px}
.foot ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.foot ul a{font-size:14px;transition:color var(--dur)}
.foot ul a:hover{color:var(--jjn-amber)}
.foot-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:22px;font-size:13px;font-family:var(--font-mono);letter-spacing:.04em}

/* ---- about / sobre ---- */
.about-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:60px;align-items:center}
.about-photo{position:relative;height:560px;border-radius:var(--r-xl);overflow:hidden;background:var(--steel-100);border:1px solid var(--border-1);box-shadow:var(--shadow-md)}
.about-since{position:absolute;left:20px;bottom:20px;display:flex;align-items:center;gap:12px;background:var(--jjn-amber);color:var(--jjn-navy);padding:14px 20px;border-radius:var(--r-md);box-shadow:var(--shadow-md)}
.about-since .as-num{font-family:var(--font-display);font-weight:900;font-size:34px;line-height:1}
.about-since .as-cap{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;line-height:1.25}
.about-body .eyebrow{display:block;margin-bottom:12px}
.about-body h2{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,1.4rem+1.8vw,2.9rem);line-height:1.06;letter-spacing:-.015em;margin-bottom:18px}
.about-body p{font-size:16.5px;color:var(--fg-2);line-height:1.62;margin-bottom:14px}
.about-body p b{color:var(--fg-1);font-weight:700}
.about-sub{font-family:var(--font-display);font-weight:800;font-size:22px;color:var(--jjn-navy);margin:30px 0 20px}
.vm-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.vm{display:flex;gap:16px;align-items:flex-start}
.vm-ico{flex:none;width:50px;height:50px;border-radius:50%;background:var(--jjn-amber);color:var(--jjn-navy);display:flex;align-items:center;justify-content:center}
.vm-ico svg{width:24px;height:24px}
.vm h4{font-family:var(--font-display);font-weight:800;font-size:21px;margin-bottom:6px}
.vm p{font-size:14.5px;color:var(--fg-2);line-height:1.55;margin:0}
@media (max-width:900px){
  .about-grid{grid-template-columns:1fr;gap:34px}
  .about-photo{height:420px}
}
@media (max-width:560px){ .vm-grid{grid-template-columns:1fr;gap:20px} }

/* ---- WhatsApp FAB ---- */
.fab{position:fixed;right:26px;bottom:26px;z-index:60;width:60px;height:60px;border-radius:50%;background:var(--jjn-eco);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-lg);transition:transform var(--dur) var(--ease-out)}
.fab svg{width:28px;height:28px}
.fab:hover{transform:scale(1.08);background:var(--jjn-eco-bright)}
.fab::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--jjn-eco);animation:ring 2.4s var(--ease-out) infinite}
@keyframes ring{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.7);opacity:0}}
@media (prefers-reduced-motion:reduce){.fab::after{animation:none;display:none}}

/* ---- responsive ---- */
@media (max-width:900px){
  .hero-grid,.diff-grid,.comp-grid,.cta-grid{grid-template-columns:1fr;gap:36px}
  .hero-photo{height:300px}
  .svc-grid{grid-template-columns:1fr 1fr}
  .proc{grid-template-columns:1fr 1fr}
  .band-grid{grid-template-columns:1fr 1fr;gap:36px 20px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px}
  .foot-grid > div:first-child{grid-column:1/-1}
  .nav,.hdr-cta{display:none}
  .hdr .menu-btn{display:inline-flex}
  .mobile-menu{display:flex}
  .hdr.top{background:rgba(12,24,37,.92);backdrop-filter:blur(10px)}
  .fgrid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .svc-grid,.proc,.band-grid,.foot-grid{grid-template-columns:1fr}
  .statstrip{flex-wrap:nowrap;gap:14px}
  .statstrip .s{flex:1 1 0;min-width:0;border-left:none;padding-left:0}
  .statstrip .num{font-size:clamp(22px,6.8vw,34px)}
  .statstrip .cap{font-size:10px;letter-spacing:.06em;margin-top:6px}
  .wrap{padding:0 22px}
  .sec,.diff{padding:64px 0}
  .foot-bot{flex-direction:column;gap:8px}
  .band{display:none}
  .comp-photo{margin-left:-22px;margin-right:-22px;border-radius:0;border-left:none;border-right:none}
}
