/* NEXORA ENERGY — identidad, ingeniería y flujos energéticos */
.nexora-page { --nx-forest:#123c31; --nx-lime:#d4f45b; --nx-paper:#edf0e7; --nx-ink:#182820; --nx-muted:#546359; color:var(--nx-ink); background:#f7f8f3; }
.nexora-page h1,.nexora-page h2,.nexora-page h3 { font-family:var(--font-main); }
.nexora-page h2 { font-size:clamp(32px,3.7vw,52px); line-height:1.12; letter-spacing:-1.8px; font-weight:600; }
.nexora-page h2 span { color:#63806b; }
.nexora-page p { line-height:1.8; }
.nexora-page figure { margin:0; }
.nexora-page svg { display:block; }
.nexora-page a:focus-visible { outline:3px solid #6c8a28; outline-offset:5px; }
.nexora-page [id] { scroll-margin-top:calc(var(--header-height) + 25px); }
.nx-section { padding:105px 0; }
.nx-kicker { font-size:10px; text-transform:uppercase; letter-spacing:1.8px; margin-bottom:25px; font-weight:600; }
.nx-hero { padding:calc(var(--header-height) + 28px) 0 0; background:var(--nx-paper); }
.nx-topline { display:flex; justify-content:space-between; gap:15px; font-size:9px; letter-spacing:1.4px; text-transform:uppercase; border-bottom:1px solid #123c3128; padding-bottom:22px; }
.nx-hero-grid { display:grid; grid-template-columns:1fr 1.12fr; align-items:center; gap:40px; padding:45px 0; }
.nx-hero-grid > *, .nx-concept-grid > *, .nx-section-heading > *, .nx-observe-grid > * { min-width:0; }
.nx-brand { display:flex; align-items:center; gap:9px; font-size:19px; font-weight:700; letter-spacing:1px; margin-bottom:32px; }
.nx-brand svg { width:29px; height:29px; fill:var(--nx-forest); }
.nx-brand > span { font-size:8px; font-weight:500; border-left:1px solid #123c3140; padding-left:9px; letter-spacing:1.6px; }
.nx-hero h1 { font-size:clamp(40px,4.7vw,66px); line-height:1.05; letter-spacing:-2.9px; font-weight:650; }
.nx-hero h1 span { color:#58764b; }
.nx-hero-copy > p:not(.nx-brand):not(.nx-hero-note) { font-size:15px; color:var(--nx-muted); max-width:430px; margin-top:25px; }
.nx-button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; background:var(--nx-forest); color:white; padding:17px 23px; font-size:12px; font-weight:600; margin-top:28px; }
.nx-button:hover { background:#245442; }
.nx-button > span { color:var(--nx-lime); font-size:18px; }
.nx-hero-note { margin-top:26px; font-size:9px; color:#687365; letter-spacing:.7px; }
.nx-hero-visual { background:var(--nx-forest); border-radius:3px 3px 45px 3px; overflow:hidden; }
.nx-hero-visual img { width:100%; height:auto; }
.nx-hero-visual figcaption { display:flex; align-items:center; gap:8px; color:#e0e8d9; padding:0 23px 22px; font-size:9px; }
.nx-hero-visual figcaption > span:last-child { margin-left:auto; font-size:8px; color:#a7c1ae; }
.nx-dot { width:6px; height:6px; border-radius:50%; background:var(--nx-lime); flex-shrink:0; }
.nx-hero-bottom { display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid #123c3128; padding:23px 0; font-size:11px; text-transform:uppercase; letter-spacing:1.5px; }
.nx-hero-bottom i { font-style:normal; color:#728566; }
.nx-concept-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:85px; }
.nx-concept-copy p { font-size:14px; color:var(--nx-muted); }
.nx-concept-copy p + p { margin-top:20px; }
.nx-concept-copy .nx-disclaimer { font-size:10px; padding-top:17px; border-top:1px solid #123c3128; }
.nx-system { color:#edf0e7; background:#102c24; }
.nx-section-heading { display:grid; grid-template-columns:1.15fr 1fr; gap:70px; align-items:end; margin-bottom:48px; }
.nx-section-heading > p { font-size:14px; color:var(--nx-muted); max-width:480px; }
.nx-system .nx-section-heading > p { color:#adc0b1; }
.nx-system .nx-kicker { color:var(--nx-lime); }
.nx-capabilities { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.nx-capability { position:relative; overflow:hidden; padding:25px 22px 125px; min-height:345px; background:linear-gradient(145deg,#244838,#15382c); border:1px solid #adc68c28; border-radius:3px 3px 28px 3px; }
.nx-capability-top { display:flex; justify-content:space-between; align-items:start; gap:8px; margin-bottom:32px; }
.nx-capability-top > span { font-size:8px; letter-spacing:.9px; line-height:1.8; }
.nx-capability-top svg { width:33px; height:33px; flex-shrink:0; stroke:var(--nx-lime); stroke-width:1.5; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.nx-capability h3 { font-size:20px; line-height:1.25; font-weight:500; margin-bottom:15px; }
.nx-capability p { font-size:12px; color:#b7c7bc; }
.nx-solar-art,.nx-battery-art,.nx-network-art,.nx-bars-art { position:absolute; bottom:22px; right:22px; left:22px; height:70px; opacity:.35; }
.nx-solar-art { background:repeating-linear-gradient(90deg,transparent 0 28px,#d4f45b60 29px 30px),repeating-linear-gradient(0deg,transparent 0 22px,#d4f45b60 23px 24px); border:1px solid #d4f45b60; transform:skewY(-8deg); }
.nx-battery-art { display:flex; gap:8px; padding:12px; border:1px solid #d4f45b80; border-radius:7px; }
.nx-battery-art i { flex:1; background:#d4f45b; border-radius:2px; }
.nx-battery-art i:last-child { opacity:.25; }
.nx-network-art { background:radial-gradient(circle at 50% 50%,#d4f45b 0 6px,transparent 7px),radial-gradient(circle at 10% 50%,#d4f45b 0 4px,transparent 5px),radial-gradient(circle at 90% 50%,#d4f45b 0 4px,transparent 5px),linear-gradient(0deg,transparent 49%,#d4f45b70 50% 51%,transparent 52%); }
.nx-network-art::before { content:''; position:absolute; width:48px; height:48px; border:1px solid #d4f45b80; left:calc(50% - 24px); top:11px; transform:rotate(45deg); }
.nx-bars-art { display:flex; align-items:end; gap:8px; }
.nx-bars-art i { flex:1; background:linear-gradient(0deg,#d4f45b10,#d4f45b); height:40%; }
.nx-bars-art i:nth-child(2) { height:55%; }.nx-bars-art i:nth-child(3) { height:45%; }.nx-bars-art i:nth-child(4) { height:75%; }.nx-bars-art i:nth-child(5) { height:62%; }.nx-bars-art i:nth-child(6) { height:100%; }
.nx-identity { background:#edf0e7; }
.nx-brand-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:22px; }
.nx-brand-board { position:relative; overflow:hidden; background:#123c31; color:#edf0e7; min-height:375px; padding:32px; display:flex; flex-direction:column; justify-content:space-between; }
.nx-brand-board::before { content:''; position:absolute; width:300px; height:300px; right:-110px; top:-125px; border:1px solid #d4f45b20; border-radius:50%; box-shadow:0 0 0 40px #d4f45b08,0 0 0 80px #d4f45b05; pointer-events:none; }
.nx-brand-board > span { font-size:9px; letter-spacing:1.5px; }
.nx-brand-lockup { display:flex; align-items:center; justify-content:center; gap:18px; position:relative; }
.nx-brand-lockup svg { width:60px; height:60px; fill:#d4f45b; }
.nx-brand-lockup strong { font-size:clamp(28px,3.5vw,47px); letter-spacing:-2px; line-height:1; }
.nx-brand-lockup small { display:block; font-size:9px; letter-spacing:7px; font-weight:400; margin-top:15px; }
.nx-brand-board-bottom { display:flex; justify-content:space-between; font-size:10px; color:#c3d3bf; }
.nx-brand-sheet { background:#e3e7d8; padding:30px; display:flex; flex-direction:column; justify-content:space-between; gap:30px; }
.nx-symbol { flex:1; display:grid; place-items:center; background:linear-gradient(90deg,transparent 49.7%,#123c3114 50%,transparent 50.3%),linear-gradient(0deg,transparent 49.7%,#123c3114 50%,transparent 50.3%); }
.nx-symbol svg { width:155px; height:155px; fill:#123c31; }
.nx-swatches { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.nx-swatches i { display:block; height:40px; background:var(--nx-swatch); border:1px solid #123c3115; }.nx-swatches span { display:block; font-size:9px; margin-top:8px; }
.nx-observe-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:75px; align-items:center; }
.nx-observe-grid > div > p:not(.nx-kicker) { font-size:14px; color:var(--nx-muted); margin-top:24px; }
.nx-demo-label { display:block; margin-top:25px; font-size:10px; color:#617454; }
.nx-energy-panel { padding:30px; border:1px solid #123c3128; border-radius:4px 4px 30px 4px; background:#edf0e7; }
.nx-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:30px; }.nx-panel-heading strong { font-size:13px; }.nx-panel-heading > span { font-size:7px; letter-spacing:1px; padding:6px 8px; border:1px solid #123c3128; }
.nx-flow-source { width:60%; margin:auto; text-align:center; padding:22px 10px; background:#123c31; color:#fff; }.nx-flow-source > span { display:block; font-size:11px; color:#d4f45b; }.nx-flow-source strong { font-size:38px; font-weight:500; }.nx-energy-panel small { font-size:12px; font-weight:400; }
.nx-flow-branches { height:45px; margin:0 16%; border:1px solid #839f65; border-bottom:0; border-top:0; background:linear-gradient(90deg,transparent calc(50% - 1px),#839f65 50%,transparent calc(50% + 1px)); position:relative; }.nx-flow-branches::before { content:''; position:absolute; top:22px; left:0; right:0; border-top:1px solid #839f65; }
.nx-flow-destinations { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }.nx-flow-destinations > div { padding:15px 5px; text-align:center; background:#fff9; border:1px solid #123c3114; }.nx-flow-destinations span { display:block; font-size:10px; }.nx-flow-destinations strong { font-size:26px; font-weight:500; }
.nx-balance-bar { display:flex; height:8px; margin-top:25px; gap:3px; }.nx-balance-bar i:nth-child(1) { width:65%; background:#123c31; }.nx-balance-bar i:nth-child(2) { width:25%; background:#86a858; }.nx-balance-bar i:nth-child(3) { width:10%; background:#bdce9a; }
.nx-energy-panel > p { font-size:10px; color:#61705b; margin-top:15px; }
.nx-applications { border-top:1px solid #123c3118; }
.nx-application-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }.nx-app h3 { font-size:19px; line-height:1.3; margin:24px 0 12px; }.nx-app > p { font-size:13px; color:var(--nx-muted); }
.nx-report-art,.nx-site-art,.nx-web-art { position:relative; overflow:hidden; height:300px; background:#e4e8da; display:grid; place-items:center; }
.nx-report { width:63%; height:250px; padding:22px; background:#123c31; color:#fff; transform:rotate(-9deg); box-shadow:10px 15px 20px #123c3122; display:flex; flex-direction:column; justify-content:space-between; }.nx-report > span { font-size:10px; font-weight:600; }.nx-report > strong { font-size:22px; line-height:1.15; font-weight:500; }.nx-report > div { height:50px; background:repeating-linear-gradient(135deg,transparent 0 10px,#d4f45b70 11px 12px); }.nx-report small { font-size:6px; letter-spacing:1px; }
.nx-site-art { background:linear-gradient(130deg,#bcc9b7,#edf0e7); }.nx-site-art::before { content:''; width:200%; height:70px; background:#123c3110; position:absolute; transform:rotate(-40deg); }.nx-site-sign { width:76%; padding:27px 24px; background:#d4f45b; color:#123c31; box-shadow:12px 14px 0 #123c3118; position:relative; }.nx-site-sign strong { font-size:27px; letter-spacing:-1px; }.nx-site-sign small { display:block; font-size:7px; margin-top:12px; letter-spacing:1px; }.nx-site-sign > span { display:block; text-align:right; margin-top:30px; font-size:32px; }
.nx-web-art { background:#193c2e; }.nx-web-mock { width:80%; padding:23px; background:#edf0e7; transform:translateY(20px); box-shadow:0 10px 40px #0003; }.nx-web-mock > span { font-size:10px; font-weight:700; }.nx-web-mock i { font-size:6px; font-weight:400; font-style:normal; }.nx-web-mock > strong { display:block; font-size:25px; line-height:1.05; margin:25px 0; letter-spacing:-1px; }.nx-web-mock em { font-style:normal; color:#708c49; }.nx-web-mock > div { height:65px; background:repeating-linear-gradient(45deg,transparent 0 14px,#d4f45b40 15px 16px),#123c31; }
.nx-closing { background:#d4f45b; position:relative; overflow:hidden; }.nx-closing .container { position:relative; }.nx-closing::before { content:''; position:absolute; width:600px; height:600px; border:1px solid #123c3114; border-radius:50%; right:-140px; top:-150px; box-shadow:0 0 0 80px #123c3106,0 0 0 160px #123c3104; pointer-events:none; }.nx-closing h2 span { color:#456233; }.nx-closing p:not(.nx-kicker):not(.nx-signature) { max-width:590px; margin-top:25px; font-size:14px; }.nx-signature { margin-top:40px; font-size:9px; text-transform:uppercase; letter-spacing:1.5px; }
@media(max-width:1100px) { .nx-capabilities { grid-template-columns:repeat(2,1fr); }.nx-capability { min-height:310px; }.nx-hero-grid { gap:25px; }.nx-observe-grid { gap:35px; }.nx-application-grid { gap:18px; }.nx-report { width:76%; padding:18px; } }
@media(max-width:850px) { .nx-hero-grid,.nx-concept-grid,.nx-observe-grid { grid-template-columns:1fr; gap:40px; }.nx-hero-copy { max-width:650px; }.nx-hero h1 { font-size:clamp(40px,7vw,60px); }.nx-hero-visual { max-width:640px; width:100%; margin:auto; }.nx-section-heading { gap:30px; }.nx-application-grid { grid-template-columns:1fr; gap:40px; }.nx-report-art,.nx-site-art,.nx-web-art { height:340px; }.nx-report { max-width:230px; }.nx-site-sign { max-width:340px; }.nx-web-mock { max-width:340px; }.nx-brand-lockup { gap:10px; }.nx-brand-lockup svg { width:40px; height:40px; }.nx-brand-board { padding:25px; } }
@media(max-width:600px) { .nx-section { padding:65px 0; }.nx-topline { flex-wrap:wrap; gap:8px; font-size:8px; }.nx-hero-grid { padding:32px 0; }.nx-brand { margin-bottom:27px; }.nx-hero h1 { letter-spacing:-1.7px; }.nx-hero-bottom { display:grid; grid-template-columns:1fr auto 1fr; font-size:9px; gap:14px; }.nx-hero-bottom i:nth-of-type(2) { display:none; }.nx-capabilities,.nx-brand-grid,.nx-section-heading { grid-template-columns:1fr; }.nx-capability { min-height:280px; }.nx-section-heading { gap:25px; margin-bottom:32px; }.nexora-page h2 { letter-spacing:-1px; }.nx-brand-board { min-height:310px; }.nx-brand-sheet { min-height:330px; }.nx-energy-panel { padding:20px 15px; }.nx-flow-destinations strong { font-size:23px; }.nx-flow-source { width:70%; }.nx-panel-heading { gap:8px; }.nx-panel-heading strong { font-size:12px; }.nx-panel-heading > span { font-size:6px; }.nx-hero-visual figcaption { padding:0 16px 20px; font-size:8px; flex-wrap:wrap; }.nx-hero-visual figcaption > span:last-child { font-size:7px; } }
@media(prefers-reduced-motion:reduce) { .nexora-page *, .nexora-page *::before,.nexora-page *::after { transition:none; animation:none; } }


