/* Landing-only design system. Shared application pages keep their existing styles. */
.nx-landing {
    --nx-primary: #123f65;
    --nx-primary-hover: #0b2e4c;
    --nx-accent: #347742;
    --nx-bg: #f5f7f7;
    --nx-surface: #ffffff;
    --nx-surface-raised: #edf2f3;
    --nx-text: #122f47;
    --nx-muted: #536773;
    --nx-border: #d9e2e6;
    --nx-focus: #a65e00;
    --nx-space-section: clamp(4rem, 7vw, 7rem);
    margin: 0;
    background: var(--nx-surface);
    color: var(--nx-text);
    font-family: Inter, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}
.nx-landing .main-content { background: var(--nx-surface); }
.nx-landing .container { width: 100%; max-width: 1240px; padding-inline: 36px; }
.nx-landing h1, .nx-landing h2, .nx-landing h3 { color: var(--nx-text); font-family: Manrope, Arial, sans-serif; font-weight: 600; }
.nx-landing h2, .nx-landing .section-title { font-size: clamp(1.9rem, 3.1vw, 2.8rem); line-height: 1.2; letter-spacing: -.04em; }
.nx-landing p { line-height: 1.7; }
.nx-landing .nx-eyebrow { margin-bottom: 20px; color: var(--nx-accent); font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.nx-landing .nx-section, .nx-landing .section { padding-block: var(--nx-space-section); }
.nx-landing .nx-section-heading { max-width: 700px; margin-bottom: 48px; }
.nx-landing .nx-section-heading > p:last-child, .nx-landing .section-subtitle { color: var(--nx-muted); font-size: 1rem; max-width: 58ch; }
.nx-landing .section-title::after { display: none; }
.nx-landing section[id], .nx-landing #diferenciais { scroll-margin-top: 90px; }
.nx-landing .nx-navbar { min-height: 86px; padding: 10px 0; background: var(--nx-surface); border-color: var(--nx-border); backdrop-filter: none; box-shadow: none; }
.nx-landing .nx-nav-links .nav-link { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.nx-landing .nx-nav-links .nav-link { color: var(--nx-muted) !important; font-size: .77rem; padding-inline: .5rem !important; }
.nx-landing .nx-nav-links .nav-link:hover, .nx-landing .nx-nav-links .nav-link.active { color: var(--nx-primary) !important; }
.nx-landing .nx-nav-links .nav-link.active, :root[data-theme="dark"] .nx-landing .nx-nav-links .nav-link.active { background: transparent !important; box-shadow: none !important; }
.nx-landing .nx-theme-button, .nx-landing .nx-menu-toggle { border-radius: 6px; }
.nx-landing .btn { text-transform: none; letter-spacing: 0; border-radius: 6px; font-family: inherit; font-weight: 600; box-shadow: none; }
.nx-landing .nx-btn-primary, .nx-landing .bg-gradient-primary {
    display: inline-flex; align-items: center; justify-content: center; gap: 24px;
    min-height: 48px; padding: 14px 22px; border: 1px solid var(--nx-primary);
    background: var(--nx-primary); background-image: none; color: #fff !important;
    font-size: .84rem; box-shadow: none; transition: background .2s ease, transform .2s ease;
}
.nx-landing .nx-btn-primary:hover, .nx-landing .bg-gradient-primary:hover { background: var(--nx-primary-hover); border-color: var(--nx-primary-hover); transform: translateY(-2px); }
.nx-landing .nx-nav-cta { min-height: 44px; padding: 10px 16px; font-size: .75rem; white-space: nowrap; }
.nx-landing .nx-link-arrow { font-size: .85rem; color: var(--nx-primary); }
.nx-landing .btn-outline-primary { color: var(--nx-primary); border-color: var(--nx-border); min-height: 46px; padding: 12px 18px; }
.nx-landing .btn-outline-primary:hover { color: #fff; background: var(--nx-primary); border-color: var(--nx-primary); }
.nx-landing .nx-hero { min-height: auto; padding: 72px 0 64px; color: var(--nx-text); background: var(--nx-bg); border-bottom: 1px solid var(--nx-border); }
.nx-landing .nx-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; align-items: center; }
.nx-landing .nx-hero h1 { max-width: 30ch; margin-bottom: 24px; color: var(--nx-text); font-size: clamp(2.7rem, 4.35vw, 4rem); line-height: 1.1; letter-spacing: -.055em; font-weight: 600; }
.nx-landing .nx-hero h1 span { color: var(--nx-primary); }
.nx-landing .nx-hero-lead { max-width: 65ch; color: var(--nx-muted); font-size: 1rem; line-height: 1.8; }
.nx-landing .nx-actions { gap: 24px; margin-top: 30px; }
.nx-landing .nx-risk-note { margin-top: 18px; color: var(--nx-muted); font-size: .75rem; }
.nx-landing .nx-hero-copy { animation: nx-figure-enter .6s ease both; }
@keyframes nx-figure-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.nx-landing .nx-problems { background: var(--nx-surface); }
.nx-landing .nx-problem-list { gap: 0 48px; }
.nx-landing .nx-problem-list article, .nx-landing .nx-problem-list article:nth-child(even) { grid-template-columns: 24px 1fr; padding: 28px 0; gap: 16px; border-right: none; }
.nx-landing .nx-problem-list article > span { font-size: 1.3rem; color: var(--nx-accent); font-weight: 500; }
.nx-landing .nx-problem-list h3 { margin-bottom: 8px; font-size: 1rem; font-weight: 700; }
.nx-landing .nx-problem-list p { font-size: .88rem; }
.nx-landing .services-section { background: var(--nx-bg); }
.nx-landing .nx-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 48px; }
.nx-landing .nx-service { padding: 32px 0; border-top: 1px solid var(--nx-border); }
.nx-landing .nx-service-icon { display: block; height: 48px; margin-bottom: 18px; color: var(--nx-primary); font-size: 1.7rem; font-weight: 500; }
.nx-landing .nx-service h3 { margin-bottom: 12px; font-size: 1.1rem; font-weight: 700; }
.nx-landing .nx-service p { max-width: 34ch; margin-bottom: 0; color: var(--nx-muted); font-size: .9rem; }
.nx-landing .nx-trust { padding-block: 38px; background: var(--nx-surface); }
.nx-landing .nx-trust-grid { grid-template-columns: 1fr 1.3fr; gap: 80px; }
.nx-landing .nx-trust h2 { font-size: 1.5rem; }
.nx-landing .nx-trust p { max-width: 62ch; font-size: .9rem; }
.nx-landing .nx-case { background: #12354e; color: #fff; }
.nx-landing .nx-case h2 { color: #fff; }
.nx-landing .nx-case .nx-section-heading > p:last-child { color: #d0dce4; }
.nx-landing .nx-case-project { padding-top: 36px; border-top: 1px solid rgba(255,255,255,.2); }
.nx-landing .nx-case-project + .nx-case-project { margin-top: 48px; }
.nx-landing .nx-case-project h3 { color: #fff; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.3; margin-bottom: 20px; }
.nx-landing .nx-case .nx-eyebrow { color: #a3d7b0; }
.nx-landing .nx-case-intro > p:not(.nx-eyebrow) { color: #d0dce4; font-size: .94rem; }
.nx-landing .nx-nda { color: #a3d7b0; font-size: .76rem; }
.nx-landing .nx-case-detail dl > div { grid-template-columns: 120px 1fr; gap: 20px; padding-block: 21px; }
.nx-landing .nx-case-detail dt { color: #a3d7b0; font-size: .8rem; }
.nx-landing .nx-case-detail dd { color: #e1e9ee; font-size: .9rem; }
.nx-landing .nx-case .nx-link-arrow { color: #fff; }
.nx-landing .nx-process-list li { padding: 28px 20px; }
.nx-landing .nx-process-list li > span { margin-bottom: 24px; color: var(--nx-accent); font-size: .8rem; }
.nx-landing .nx-process-list h3 { font-weight: 700; line-height: 1.5; }
.nx-landing .nx-process-list p { font-size: .84rem; }
.nx-landing .nx-engineering { background: var(--nx-bg); }
.nx-landing .nx-capability-grid { gap: 28px; }
.nx-landing .nx-capability-grid article { padding: 24px 0 0; background: transparent; border: none; border-top: 1px solid var(--nx-border); border-radius: 0; }
.nx-landing .nx-capability-grid h3 { font-weight: 700; }
.nx-landing #conteudo { background: var(--nx-surface) !important; }
.nx-landing .card, .nx-landing .nexum-card { border: 1px solid var(--nx-border); border-radius: 6px; background: var(--nx-surface); box-shadow: none !important; }
.nx-landing #conteudo .card-body { padding: 28px; }
.nx-landing #conteudo .badge { min-height: auto; padding: 6px 10px; font-size: .65rem; border: none; border-radius: 3px; }
.nx-landing #conteudo .section-subtitle { margin-top: 16px; }
.nx-landing #faq { border-top: 1px solid var(--nx-border); background: var(--nx-surface) !important; }
.nx-landing .faq-accordion { max-width: 960px; }
.nx-landing .faq-accordion .accordion-item { border: 0; border-bottom: 1px solid var(--nx-border); border-radius: 0; background: var(--nx-surface); }
.nx-landing .faq-accordion .accordion-button { padding: 24px 0; color: var(--nx-text); background: var(--nx-surface); font-size: .98rem; font-weight: 600; box-shadow: none; }
.nx-landing .faq-accordion .accordion-body { padding: 0 32px 24px 0; background: var(--nx-surface); font-size: .9rem; }
.nx-landing #contato { background: var(--nx-bg) !important; }
.nx-landing #contato .section-subtitle { margin-top: 20px; }
.nx-landing.nx-contact-in-view .floating-cta,
.nx-landing.nx-contact-in-view .floating-whatsapp,
.nx-landing.nx-contact-in-view .back-to-top { visibility: hidden; opacity: 0; pointer-events: none; }
.nx-landing .nx-diagnostic-scope h3 { font-size: 1rem; margin: 28px 0 16px; }
.nx-landing .nx-diagnostic-scope ul { padding-left: 20px; margin: 0; color: var(--nx-muted); font-size: .9rem; line-height: 1.7; }
.nx-landing .nx-diagnostic-scope li + li { margin-top: 10px; }
.nx-landing .nx-diagnostic-next { margin-top: 24px; color: var(--nx-muted); font-size: .85rem; }
.nx-landing #contato .nx-field-help { margin: 6px 0 0; color: var(--nx-muted); font-size: .75rem; }
.nx-landing #contato .contact-card .card-body { padding: 36px; }
.nx-landing #contato .form-intro { padding-bottom: 24px; margin-bottom: 8px; border-bottom: 1px solid var(--nx-border); }
.nx-landing #contato .form-intro h6 { line-height: 1.6; }
.nx-landing #contato .form-label { position: static; display: block; margin: 18px 0 8px !important; color: var(--nx-text); font-size: .8rem; font-weight: 600; }
.nx-landing .nx-field { margin-bottom: 6px; }
.nx-landing #contato [data-valmsg-for] { display: block; min-height: 1.6em; font-size: .75rem; line-height: 1.5; }
.nx-landing #contato .form-control, .nx-landing #contato .form-select { width: 100%; min-height: 48px; padding: 12px; color: var(--nx-text); border: 1px solid var(--nx-border) !important; border-radius: 5px !important; background-color: var(--nx-surface); background-image: none; font-size: .9rem; }
.nx-landing #contato .form-select { appearance: auto; }
.nx-landing #contato .form-control:focus, .nx-landing #contato .form-select:focus { border-color: var(--nx-primary) !important; box-shadow: 0 0 0 3px var(--nx-surface-raised); }
.nx-landing #contato textarea { resize: vertical; }
.nx-landing #contato .input-validation-error { border-color: #b42318 !important; }
.nx-landing #contato .form-check-input { border: 1px solid var(--nx-muted); border-radius: 3px; }
.nx-landing #contato .form-check-input:checked { background-color: var(--nx-primary); }
.nx-landing #contato .form-check-label { color: var(--nx-muted); font-size: .8rem; }
.nx-landing .text-primary { color: var(--nx-primary) !important; }
.nx-landing .text-muted { color: var(--nx-muted) !important; }
.nx-landing .text-danger { color: #b42318 !important; }
.nx-landing .contact-benefits, .nx-landing .contact-trust { gap: 14px; }
.nx-landing .contact-trust { border-radius: 6px; background: var(--nx-surface); border-color: var(--nx-border); }
.nx-landing .benefit-item, .nx-landing .trust-item { color: var(--nx-muted); font-size: .85rem; }
.nx-landing .contact-info { margin-top: 28px; border-color: var(--nx-border); }
.nx-landing .contact-label { color: var(--nx-muted); }
.nx-landing .contact-value { color: var(--nx-text); font-size: .9rem; overflow-wrap: anywhere; }
.nx-landing .footer { position: static; white-space: normal; line-height: 1.7; border-top: 1px solid var(--nx-border); background: var(--nx-surface); padding-top: 48px !important; }
.nx-landing .footer p, .nx-landing .footer li { font-size: .85rem; }
.nx-landing .footer h6 { color: var(--nx-text); font-size: .75rem; letter-spacing: .08em; }
.nx-landing .floating-whatsapp { border: 1px solid var(--nx-border); border-radius: 6px; color: var(--nx-text); background: var(--nx-surface); box-shadow: 0 4px 20px #122f4710; }
.nx-landing .floating-whatsapp i { color: var(--nx-accent); }
.nx-landing .floating-cta, .nx-landing .back-to-top { background: var(--nx-primary); color: #fff; border-radius: 6px; }
.nx-landing .floating-cta { width: max-content; max-width: calc(100% - 48px); white-space: nowrap; font-size: .85rem; }
.nx-landing .nexum-swal-popup { background: var(--nx-surface); color: var(--nx-text); border-radius: 6px; border-color: var(--nx-border); }
.nx-landing .nexum-swal-title { font-family: Manrope, Arial, sans-serif; color: var(--nx-text); }
.nx-landing .nexum-swal-text { color: var(--nx-muted); }
.nx-landing .reveal { opacity: 1; transform: none; }
.nx-landing .reveal.reveal-ready:not(.revealed) { opacity: 0; transform: translateY(16px); }
.nx-landing .reveal.reveal-ready { transition: opacity .45s ease, transform .45s ease; }
:root[data-theme="dark"] .nx-landing {
    --nx-primary: #9dc9ec; --nx-primary-hover: #b9dcf6; --nx-accent: #9bcdaa;
    --nx-bg: #142632; --nx-surface: #10212d; --nx-surface-raised: #1c3444;
    --nx-text: #edf3f6; --nx-muted: #b4c5cf; --nx-border: #304754; --nx-focus: #e9be76;
}
:root[data-theme="dark"] .nx-landing .nx-btn-primary, :root[data-theme="dark"] .nx-landing .bg-gradient-primary { color: #10212d !important; }
:root[data-theme="dark"] .nx-landing .floating-cta, :root[data-theme="dark"] .nx-landing .back-to-top { color: #10212d; }
:root[data-theme="dark"] .nx-landing .text-danger { color: #ffb4ab !important; }
:root[data-theme="dark"] .nx-landing .nx-navbar, :root[data-theme="dark"] .nx-landing .main-content, :root[data-theme="dark"] .nx-landing .footer { background: var(--nx-surface) !important; }
:root[data-theme="dark"] .nx-landing .nx-case { background: #12354e; }
:root[data-theme="dark"] .nx-landing .nx-problems, :root[data-theme="dark"] .nx-landing .nx-process { background: var(--nx-surface); }
:root[data-theme="dark"] .nx-landing .nx-hero, :root[data-theme="dark"] .nx-landing .nx-engineering, :root[data-theme="dark"] .nx-landing .services-section { background: var(--nx-bg) !important; }
@media (max-width: 1199.98px) {
    .nx-landing .nx-navbar .navbar-collapse { top: 86px; border-radius: 6px; }
    .nx-landing .nx-nav-links .nav-link { font-size: .9rem; }
    .nx-landing .nx-process-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
    .nx-landing .nx-hero-grid { grid-template-columns: minmax(0, 1fr); }
    .nx-landing .nx-hero { min-height: auto; padding-block: 64px; }
    .nx-landing .nx-hero h1 { font-size: 2.7rem; }
    .nx-landing .nx-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
    .nx-landing .nx-trust-grid { gap: 32px; }
    .nx-landing .nx-capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .nx-landing .container { padding-inline: 24px; }
    .nx-landing .nx-hero { padding-block: 44px; }
    .nx-landing .nx-hero-grid { grid-template-columns: 1fr; gap: 32px; }
    .nx-landing .nx-hero h1 { font-size: clamp(2rem, 6.8vw, 3rem); max-width: 24ch; }
    .nx-landing .nx-hero .nx-eyebrow { font-size: .63rem; letter-spacing: .09em; }
    .nx-landing .nx-hero-lead { font-size: .93rem; }
    .nx-landing .nx-actions { gap: 18px; }
    .nx-landing .nx-trust-grid, .nx-landing .nx-problem-list { grid-template-columns: 1fr; }
    .nx-landing .nx-process-list { grid-template-columns: 1fr; }
    .nx-landing .nx-process-list li, .nx-landing .nx-process-list li:first-child { display: grid; grid-template-columns: 30px 1fr; gap: 16px; padding: 24px 0; border-right: none; }
    .nx-landing .nx-process-list li > span { margin-top: 4px; }
    .nx-landing #contato .contact-card .card-body { padding: 24px; }
    .nx-landing .footer { padding-bottom: 90px !important; }
}
@media (max-width: 575.98px) {
    .nx-landing .nx-services-grid { grid-template-columns: 1fr; }
    .nx-landing .nx-service { display: grid; grid-template-columns: 32px 1fr; gap: 0 16px; padding-block: 24px; }
    .nx-landing .nx-service-icon { grid-row: span 2; margin: 0; font-size: 1.3rem; }
    .nx-landing .nx-service p { max-width: none; }
    .nx-landing .nx-section-heading { margin-bottom: 32px; }
    .nx-landing .nx-capability-grid { grid-template-columns: 1fr; }
    .nx-landing .nx-case-detail dl > div { grid-template-columns: 1fr; gap: 8px; }
    .nx-landing .nx-actions > .btn { width: auto; }
    .nx-landing .nx-actions .nx-link-arrow { justify-content: flex-start; width: auto; }
}
@media (prefers-reduced-motion: reduce) {
    html:has(.nx-landing) { scroll-behavior: auto; }
    .nx-landing *, .nx-landing *::before, .nx-landing *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .nx-landing .reveal.reveal-ready:not(.revealed) { opacity: 1; transform: none; }
}
