/* ==============================================
   PRZ.uy — Ingeniería Nocturna design system
   Dark, technical, copper + indigo accents.
   Loaded after the legacy vendor/theme stylesheets — overrides them
   for all new markup (nav.top, .hero-*, .svc-*, .pf-*, footer.site, etc).
   =============================================== */

:root{
  --bg:#0a0d12;
  --bg-deep:#070910;
  --surface:#12161d;
  --surface-2:#171c26;
  --text:#eceff4;
  --muted:#8992a6;
  --muted-2:#5c6478;
  --line:#232838;
  --line-soft:#1a1f2b;
  --accent:#ff7a29;
  --accent-dim:#4d2c14;
  --accent2:#4a63ff;
  --positive:#37c98f;
  --sans: -apple-system, "Helvetica Neue", "Segoe UI", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "Roboto Mono", Menlo, monospace;
}

*, *::before, *::after{box-sizing:border-box;}

html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  background:var(--bg) !important;
  color:var(--text);
  font-family:var(--sans);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
.nx-container{max-width:1180px; margin:0 auto; padding:0 40px;}
@media (max-width:760px){.nx-container{padding:0 20px;}}
.nx-hide{display:none !important;}

/* ---------- NAV ---------- */
nav.top{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 40px; border-bottom:1px solid var(--line-soft);
  max-width:1180px; margin:0 auto;
}
@media (max-width:760px){nav.top{padding:18px 20px;}}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.brand .mark{width:30px; height:30px; display:block; flex-shrink:0;}
.brand .word{font-size:16px; font-weight:900; letter-spacing:-0.03em; color:var(--text); line-height:1.15;}
.brand .word small{display:block; font-family:var(--mono); font-size:9px; font-weight:400; letter-spacing:.14em; color:var(--muted-2); margin-top:2px;}
.brand .word .suf{color:var(--accent); font-family:var(--mono); font-size:11px; font-weight:600;}

ul.nx-nav-links{list-style:none; display:flex; gap:30px; margin:0; padding:0; align-items:center;}
ul.nx-nav-links > li{position:relative;}
ul.nx-nav-links > li > a{
  position:relative; font-size:13.5px; color:var(--muted); padding:6px 0; transition:color .2s ease;
  text-decoration:none; display:inline-block;
}
ul.nx-nav-links > li > a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
ul.nx-nav-links > li > a:hover{color:var(--text);}
ul.nx-nav-links > li > a:hover::after{transform:scaleX(1);}
@media (max-width:900px){ul.nx-nav-links{display:none;}}

.nx-dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(4px);
  background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:8px;
  min-width:220px; display:grid; gap:2px; opacity:0; visibility:hidden; transition:opacity .18s ease, transform .18s ease;
  z-index:60;
}
ul.nx-nav-links > li:hover .nx-dropdown{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.nx-dropdown a{display:block; padding:8px 12px; font-size:13px; color:var(--muted); border-radius:6px; text-decoration:none;}
.nx-dropdown a:hover{background:var(--surface-2); color:var(--text);}

.nx-nav-right{display:flex; align-items:center; gap:18px;}
.nx-lang{font-family:var(--mono); font-size:11px; color:var(--muted); letter-spacing:.06em; display:flex; gap:6px;}
.nx-lang .on{color:var(--accent);}
.nx-toggle{display:none; background:none; border:none; color:var(--text); font-size:22px; cursor:pointer; line-height:1;}
@media (max-width:900px){.nx-toggle{display:block;}}

/* mobile menu overlay */
#nx-mobile-menu{
  position:fixed; inset:0; background:var(--bg); z-index:200; display:none;
  flex-direction:column; padding:24px; overflow-y:auto;
}
#nx-mobile-menu.open{display:flex;}
#nx-mobile-menu .nx-mobile-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:36px;}
#nx-mobile-menu .nx-mobile-close{background:none; border:1px solid var(--line); color:var(--text); border-radius:8px; width:36px; height:36px; font-size:18px; cursor:pointer;}
#nx-mobile-menu ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px;}
#nx-mobile-menu ul a{display:block; padding:14px 4px; font-size:17px; color:var(--text); border-bottom:1px solid var(--line-soft); text-decoration:none;}
#nx-mobile-menu .nx-mobile-sub a{font-size:14.5px; color:var(--muted); padding:10px 4px 10px 16px;}

/* ---------- BUTTONS ---------- */
.nx-btn{
  display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600;
  padding:13px 24px; border-radius:8px; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
  text-decoration:none; border:none; cursor:pointer; font-family:var(--sans);
}
.nx-btn-primary{background:var(--accent); color:#0a0d12;}
.nx-btn-primary:hover{transform:translateY(-2px); box-shadow:0 12px 24px -10px rgba(255,122,41,.55); color:#0a0d12;}
.nx-btn-ghost{border:1px solid var(--line); color:var(--text); background:transparent;}
.nx-btn-ghost:hover{border-color:var(--muted-2); transform:translateY(-2px); color:var(--text);}
.nx-btn-sm{padding:9px 18px; font-size:12.5px;}

/* ---------- SECTIONS / TYPE ---------- */
.nx-section{padding:88px 0;}
.nx-section.tight{padding:56px 0;}
@media (max-width:760px){.nx-section{padding:56px 0;}}
.nx-eyebrow{
  display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:11.5px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0 0 18px;
}
.nx-eyebrow::before{content:""; width:20px; height:1px; background:var(--accent); display:inline-block;}
.nx-crumb{font-family:var(--mono); font-size:11.5px; color:var(--muted-2); margin:0 0 20px;}
.nx-crumb a{color:var(--muted); text-decoration:none;}
.nx-crumb a:hover{color:var(--text);}
.nx-sec-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:40px; gap:24px; flex-wrap:wrap;}
.nx-sec-head h2{font-size:28px; font-weight:800; letter-spacing:-0.02em; margin:0; color:var(--text);}
.nx-sec-head p{color:var(--muted); font-size:14.5px; max-width:360px; margin:0;}

/* ---------- HOME HERO ---------- */
.nx-hero{display:grid; grid-template-columns:1.15fr 1fr; border-bottom:1px solid var(--line-soft);}
@media (max-width:900px){.nx-hero{grid-template-columns:1fr;}}
.nx-hero-copy{padding:88px 40px 76px; display:flex; flex-direction:column; justify-content:center;}
.nx-hero-copy h1{font-size:clamp(38px,4.6vw,58px); font-weight:800; letter-spacing:-0.025em; line-height:1.03; margin:0 0 26px; color:var(--text);}
.nx-hero-copy h1 em{font-style:normal; color:var(--accent);}
.nx-hero-copy .nx-lead{max-width:480px; color:var(--muted); font-size:16px; line-height:1.65; margin:0 0 34px;}
.nx-hero-ctas{display:flex; gap:14px; align-items:center; flex-wrap:wrap;}

.nx-hero-slide{display:none;}
.nx-hero-slide.active{display:block; animation:nxHeroFade .45s ease;}
@keyframes nxHeroFade{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}
@media (prefers-reduced-motion:reduce){.nx-hero-slide.active{animation:none;}}
.nx-hero-dots{display:flex; gap:10px; margin-top:36px;}
.nx-hero-dot{width:8px; height:8px; border-radius:50%; background:var(--line); border:none; padding:0; cursor:pointer; transition:background .2s ease, transform .2s ease;}
.nx-hero-dot.active{background:var(--accent); transform:scale(1.3);}
.nx-hero-dot:hover{background:var(--muted-2);}
.nx-hero-visual{position:relative; background:var(--bg-deep); overflow:hidden; border-left:1px solid var(--line-soft); min-height:600px;}
@media (max-width:900px){.nx-hero-visual{min-height:380px; border-left:none; border-top:1px solid var(--line-soft);}}
.nx-hero-visual canvas{position:absolute; inset:0; width:100%; height:100%;}
.nx-stat-overlay{position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end; gap:16px; padding:32px;}
.nx-stat-chip{background:rgba(18,22,29,.72); backdrop-filter:blur(6px); border:1px solid var(--line); border-radius:10px; padding:14px 16px; display:flex; justify-content:space-between; align-items:baseline;}
.nx-stat-chip .n{font-family:var(--mono); font-size:20px; color:var(--accent); font-weight:600;}
.nx-stat-chip .l{font-size:11.5px; color:var(--muted); max-width:150px; text-align:right;}

/* ---------- MARQUEE ---------- */
.nx-marquee-wrap{position:relative; z-index:1; clear:both; margin-top:32px; border-bottom:1px solid var(--line-soft); overflow:hidden; padding:18px 0; background:var(--surface);}
.nx-marquee-label{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); text-align:center; margin-bottom:14px;}
.nx-marquee-track{display:flex; gap:56px; width:max-content; animation:nx-scroll-x 26s linear infinite;}
.nx-marquee-track span{font-size:15px; color:var(--muted); white-space:nowrap; letter-spacing:.02em;}
.nx-marquee-wrap:hover .nx-marquee-track{animation-play-state:paused;}
@keyframes nx-scroll-x{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.nx-marquee-track{animation:none;}}

/* ---------- ABOUT / METRICS ---------- */
.nx-about-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center;}
@media (max-width:860px){.nx-about-grid{grid-template-columns:1fr;}}
.nx-about-copy p{color:var(--muted); font-size:15.5px; line-height:1.75; max-width:480px;}
.nx-about-copy p strong{color:var(--text);}
.nx-metrics{display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--line-soft); border:1px solid var(--line-soft); border-radius:12px; overflow:hidden;}
.nx-metric{background:var(--surface); padding:26px 24px;}
.nx-metric b{display:block; font-family:var(--mono); font-size:30px; color:var(--accent); font-weight:600;}
.nx-metric span{font-size:12.5px; color:var(--muted);}

/* ---------- SERVICES GRID (home) ---------- */
.nx-svc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
@media (max-width:960px){.nx-svc-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.nx-svc-grid{grid-template-columns:1fr;}}
.nx-svc-card{
  background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:22px 20px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; text-decoration:none; display:block;
}
.nx-svc-card:hover{transform:translateY(-5px); border-color:var(--accent-dim); box-shadow:0 20px 34px -22px rgba(255,122,41,.45);}
.nx-svc-card .idx{font-family:var(--mono); font-size:11px; color:var(--accent2); display:block; margin-bottom:16px;}
.nx-svc-card h5{margin:0 0 8px; font-size:15px; font-weight:700; color:var(--text);}
.nx-svc-card p{margin:0; font-size:13px; color:var(--muted); line-height:1.55;}

/* ---------- SERVICE DETAIL PAGE ---------- */
.nx-svc-hero{display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:start; border-bottom:1px solid var(--line-soft); padding-bottom:56px;}
@media (max-width:860px){.nx-svc-hero{grid-template-columns:1fr;}}
.nx-svc-hero h1{font-size:clamp(32px,4vw,46px); font-weight:800; letter-spacing:-0.025em; line-height:1.08; margin:0 0 20px; color:var(--text);}
.nx-svc-hero .nx-lead{color:var(--muted); font-size:16px; line-height:1.65; max-width:520px; margin:0 0 30px;}
.nx-stat-card{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:24px;}
.nx-stat-card h5{margin:0 0 10px; font-size:12px; font-family:var(--mono); text-transform:uppercase; letter-spacing:.08em; color:var(--muted-2);}
.nx-stat-card p{margin:0; font-size:14px; color:var(--muted); line-height:1.6;}

.nx-includes-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
@media (max-width:700px){.nx-includes-grid{grid-template-columns:1fr;}}
.nx-includes-card{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:24px; transition:transform .2s ease, border-color .2s ease;}
.nx-includes-card:hover{transform:translateY(-4px); border-color:var(--accent-dim);}
.nx-includes-card h5{margin:0 0 8px; font-size:15.5px; color:var(--text);}
.nx-includes-card p{margin:0; font-size:13.5px; color:var(--muted); line-height:1.55;}

.nx-process-row{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line-soft); border:1px solid var(--line-soft); border-radius:12px; overflow:hidden;}
@media (max-width:760px){.nx-process-row{grid-template-columns:1fr;}}
.nx-process-step{background:var(--surface); padding:26px 22px;}
.nx-process-step .n{font-family:var(--mono); color:var(--accent2); font-size:12px; display:block; margin-bottom:12px;}
.nx-process-step h5{margin:0 0 8px; font-size:15px; color:var(--text);}
.nx-process-step p{margin:0; font-size:13px; color:var(--muted); line-height:1.55;}

.nx-case-feature{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:32px; display:grid; grid-template-columns:auto 1fr; gap:28px; align-items:center;}
@media (max-width:700px){.nx-case-feature{grid-template-columns:1fr;}}
.nx-case-feature .thumb{width:120px; height:120px; border-radius:10px; flex-shrink:0;}
.nx-case-feature h5{margin:0 0 8px; font-size:19px; color:var(--text);}
.nx-case-feature p{margin:0 0 14px; color:var(--muted); font-size:14.5px; line-height:1.6;}

.nx-cross-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;}
@media (max-width:760px){.nx-cross-grid{grid-template-columns:1fr;}}
.nx-cross-card{border:1px solid var(--line); border-radius:10px; padding:18px; font-size:13.5px; transition:border-color .2s ease, transform .2s ease; text-decoration:none; display:block;}
.nx-cross-card:hover{border-color:var(--muted-2); transform:translateY(-3px);}
.nx-cross-card b{display:block; margin-bottom:4px; font-weight:700; color:var(--text);}
.nx-cross-card span{color:var(--muted); font-size:12.5px;}

/* ---------- PORTFOLIO ---------- */
.nx-filter-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;}
.nx-filter-pill{font-family:var(--mono); font-size:12px; padding:8px 16px; border-radius:100px; border:1px solid var(--line); background:var(--surface); color:var(--muted); cursor:pointer; transition:all .18s ease;}
.nx-filter-pill[aria-pressed="true"]{background:var(--accent); border-color:var(--accent); color:#0a0d12; font-weight:600;}
.nx-pf-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
@media (max-width:900px){.nx-pf-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.nx-pf-grid{grid-template-columns:1fr;}}
.nx-pf-card{background:var(--surface); border:1px solid var(--line); border-radius:12px; overflow:hidden; transition:transform .2s ease, border-color .2s ease;}
.nx-pf-card:hover{transform:translateY(-4px); border-color:var(--muted-2);}
.nx-pf-card.nx-hidden{display:none;}
.nx-pf-thumb{height:140px; padding:16px; display:flex; align-items:flex-end;}
.nx-pf-thumb span.tag{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; background:rgba(10,13,18,.55); border:1px solid var(--line); padding:4px 9px; border-radius:100px; color:var(--text);}
.nx-pf-body{padding:20px;}
.nx-pf-body h5{margin:0 0 6px; font-size:16px; color:var(--text);}
.nx-pf-body p{margin:0 0 14px; font-size:13.5px; color:var(--muted); line-height:1.55;}
.nx-pf-stat{font-family:var(--mono); font-size:12.5px; color:var(--accent);}

/* ---------- TESTIMONIAL ---------- */
.nx-testimonial{text-align:center;}
.nx-testimonial blockquote{font-size:24px; font-weight:400; line-height:1.5; max-width:680px; margin:0 auto 22px; color:var(--text);}
.nx-testimonial cite{font-style:normal; font-family:var(--mono); font-size:12px; color:var(--muted); letter-spacing:.04em;}

/* ---------- CTA BAND ---------- */
.nx-cta-band{background:var(--surface-2); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); text-align:center; padding:96px 40px;}
.nx-cta-band h2{font-size:38px; font-weight:800; letter-spacing:-0.02em; margin:0 0 18px; color:var(--text);}
.nx-cta-band p{color:var(--muted); margin:0 0 32px;}

/* ---------- CONTACT ---------- */
.nx-contact-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:48px;}
@media (max-width:860px){.nx-contact-grid{grid-template-columns:1fr;}}
.nx-field{margin-bottom:18px;}
.nx-field label{display:block; font-size:12.5px; color:var(--muted); margin-bottom:7px; font-family:var(--mono); letter-spacing:.02em;}
.nx-field input, .nx-field select, .nx-field textarea{
  width:100%; background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:12px 14px;
  color:var(--text); font-family:var(--sans); font-size:14px; transition:border-color .18s ease;
}
.nx-field input:focus, .nx-field select:focus, .nx-field textarea:focus{outline:none; border-color:var(--accent2);}
.nx-field textarea{resize:vertical; min-height:110px;}
.nx-contact-info{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:32px;}
.nx-contact-info h5{margin:0 0 18px; font-size:12px; font-family:var(--mono); text-transform:uppercase; letter-spacing:.08em; color:var(--muted-2);}
.nx-contact-row{display:flex; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--line-soft); font-size:14px; text-decoration:none; color:var(--text);}
.nx-contact-row:last-of-type{border-bottom:none;}
.nx-contact-row .lbl{color:var(--muted); font-size:12px; font-family:var(--mono); min-width:74px;}

/* ---------- FOOTER ---------- */
footer.site{padding:52px 0 40px; border-top:1px solid var(--line-soft); background:var(--bg);}
footer.site .nx-foot-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:32px; margin-bottom:36px; max-width:1180px; margin-left:auto; margin-right:auto; padding:0 40px;}
@media (max-width:760px){footer.site .nx-foot-grid{padding:0 20px;}}
footer.site .nx-foot-col h6{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted-2); margin:0 0 14px;}
footer.site .nx-foot-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px;}
footer.site .nx-foot-col ul a{font-size:13.5px; color:var(--muted); text-decoration:none;}
footer.site .nx-foot-col ul a:hover{color:var(--text);}
footer.site .nx-foot-bottom{border-top:1px solid var(--line-soft); padding-top:22px; display:flex; justify-content:space-between; font-family:var(--mono); font-size:11.5px; color:var(--muted-2); flex-wrap:wrap; gap:10px; max-width:1180px; margin:0 auto; padding-left:40px; padding-right:40px;}
@media (max-width:760px){footer.site .nx-foot-bottom{padding-left:20px; padding-right:20px;}}
#copyright{display:none;} /* legacy copyright section replaced by nx-foot-bottom */

/* ---------- legacy scroll-to-top / whatsapp float, restyled ---------- */
#scroll-to-top a{background:var(--surface); border:1px solid var(--line);}
