/* ═══════════════════════════════════════════════════════════════
   Nexrise WordPress Theme — theme.css
   Complete CSS design system, 1:1 port of React src/index.css
   + component styles for header, footer, buttons, utilities.
   ═══════════════════════════════════════════════════════════════ */

/* ── Google Fonts ────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Playfair+Display:wght@600;700;800&display=swap');

/* ── CSS Variable Design Tokens ───────────────────────────────── */
:root {
  color-scheme: dark;
}

/* Light theme */
html.light {
  --bg-primary:        #f7f8f6;
  --bg-secondary:      #ffffff;
  --bg-card:           #ffffff;
  --bg-elevated:       #f0f4f0;
  --text-primary:      #0d1a0e;
  --text-secondary:    #3d5c40;
  --text-muted:        #7a9c7d;
  --border:            rgba(30, 94, 42, 0.12);
  --border-strong:     rgba(30, 94, 42, 0.28);
  --accent-green:      #1b5e20;
  --accent-green-mid:  #2e7d32;
  --accent-green-light:#43a047;
  --accent-blue:       #1565c0;
  --accent-blue-light: #42a5f5;
  --nav-bg:            rgba(247, 248, 246, 0.96);
  --card-shadow:       0 2px 16px rgba(27, 94, 32, 0.08);
  --card-shadow-hover: 0 8px 32px rgba(27, 94, 32, 0.16);
  --footer-bg:         #0d1a0e;
  --footer-text:       #c8d8c9;
  color-scheme: light;
}

/* Dark theme (default) */
html,
html.dark {
  --bg-primary:        #0a110b;
  --bg-secondary:      #111a12;
  --bg-card:           #162018;
  --bg-elevated:       #1c2a1e;
  --text-primary:      #e8f0e9;
  --text-secondary:    #9dbfa0;
  --text-muted:        #5e8062;
  --border:            rgba(67, 160, 71, 0.12);
  --border-strong:     rgba(67, 160, 71, 0.28);
  --accent-green:      #66bb6a;
  --accent-green-mid:  #43a047;
  --accent-green-light:#81c784;
  --accent-blue:       #42a5f5;
  --accent-blue-light: #90caf9;
  --nav-bg:            rgba(10, 17, 11, 0.97);
  --card-shadow:       0 2px 16px rgba(0, 0, 0, 0.4);
  --card-shadow-hover: 0 8px 32px rgba(0, 0, 0, 0.6);
  --footer-bg:         #060d07;
  --footer-text:       #7a9c7d;
  color-scheme: dark;
}

/* ── Base Reset ──────────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Reset any WordPress-injected spacing */
html, body, #page, #content, #main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body {
  margin: 0;
  padding: 0;
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: 'DM Sans', ui-sans-serif, system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  transition: background 0.3s ease, color 0.3s ease;
}

img, video {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

/* ── Custom Scrollbar ────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--bg-primary); }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent-green-mid); }

/* ── Selection ───────────────────────────────────────────────── */
::selection {
  background: var(--accent-green);
  color: #fff;
}

/* ══════════════════════════════════════════════════════════════
   LAYOUT UTILITIES
   ══════════════════════════════════════════════════════════════ */

.container-lg {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (min-width: 640px) {
  .container-lg { padding-left: 1.5rem; padding-right: 1.5rem; }
}
@media (min-width: 1024px) {
  .container-lg { padding-left: 2rem; padding-right: 2rem; }
}

.section-pad {
  padding-top: 5rem;
  padding-bottom: 5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 640px) {
  .section-pad { padding-left: 1.5rem; padding-right: 1.5rem; }
}
@media (min-width: 1024px) {
  .section-pad {
    padding-top: 7rem;
    padding-bottom: 7rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.section-pad-sm {
  padding-top: 3rem;
  padding-bottom: 3rem;
  padding-left: 1rem;
  padding-right: 1rem;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 640px) {
  .section-pad-sm { padding-left: 1.5rem; padding-right: 1.5rem; }
}
@media (min-width: 1024px) {
  .section-pad-sm {
    padding-top: 4rem;
    padding-bottom: 4rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

/* ── Typography ──────────────────────────────────────────────── */
.heading-1 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  line-height: 1.15;
  font-size: clamp(32px, 4vw, 60px);
}

.heading-2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  line-height: 1.2;
  font-size: clamp(26px, 3.2vw, 48px);
}

/* ══════════════════════════════════════════════════════════════
   ANIMATIONS & KEYFRAMES
   ══════════════════════════════════════════════════════════════ */

@keyframes nx-spin {
  to { transform: rotate(360deg); }
}

@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.animate-marquee {
  animation: marquee 30s linear infinite;
}
.animate-marquee:hover {
  animation-play-state: paused;
}
.animate-fade-up {
  animation: fadeUp 0.7s ease both;
}
.animate-fade-in {
  animation: fadeIn 0.5s ease both;
}

/* ── Scroll Reveal ───────────────────────────────────────────── */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
[data-reveal].revealed {
  opacity: 1;
  transform: translateY(0);
}

/* ══════════════════════════════════════════════════════════════
   HEADER
   ══════════════════════════════════════════════════════════════ */

#nx-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  transition: background 0.5s ease, border-color 0.5s ease, box-shadow 0.5s ease, backdrop-filter 0.5s ease;
  background: transparent;
  border-bottom: 1px solid transparent;
}

#nx-header.nx-scrolled {
  background: var(--nav-bg);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border-bottom-color: var(--border);
  box-shadow: 0 1px 16px rgba(0, 0, 0, 0.1);
}

.nx-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
}
@media (min-width: 1024px) {
  .nx-header__inner { height: 80px; }
}

/* Logo */
.nx-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
}
.nx-logo img {
  height: 55px;
  width: auto;
  object-fit: contain;
  display: block;
  user-select: none;
  -webkit-user-drag: none;
}

/* Desktop nav */
.nx-nav {
  display: none;
}
@media (min-width: 1024px) {
  .nx-nav {
    display: flex;
    align-items: center;
    gap: 0.25rem;
  }
}

.nx-nav ul,
.nx-nav ul.menu {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nx-nav ul li a,
.nx-nav a {
  display: block;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 500;
  font-family: 'DM Sans', sans-serif;
  text-decoration: none;
  transition: color 0.15s ease, background 0.15s ease;
  color: var(--text-secondary);
}

.nx-nav ul li a:hover,
.nx-nav a:hover {
  color: var(--text-primary);
  background: var(--bg-elevated);
}

.nx-nav ul li.current-menu-item > a,
.nx-nav ul li.current_page_item > a,
.nx-nav a.nx-active {
  color: var(--accent-green);
  background: var(--bg-elevated);
}

/* Hero state — nav over dark hero image */
#nx-header.nx-on-hero .nx-nav ul li a,
#nx-header.nx-on-hero .nx-nav a {
  color: rgba(255, 255, 255, 0.75);
}
#nx-header.nx-on-hero .nx-nav ul li a:hover,
#nx-header.nx-on-hero .nx-nav a:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}
#nx-header.nx-on-hero .nx-nav ul li.current-menu-item > a,
#nx-header.nx-on-hero .nx-nav ul li.current_page_item > a,
#nx-header.nx-on-hero .nx-nav a.nx-active {
  color: #81c784; /* green-300 */
  background: rgba(255, 255, 255, 0.1);
}

/* Desktop right controls */
.nx-header__controls {
  display: none;
  align-items: center;
  gap: 0.5rem;
}
@media (min-width: 1024px) {
  .nx-header__controls { display: flex; }
}

/* Language switcher */
.nx-lang-switcher {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  font-family: 'DM Sans', sans-serif;
  letter-spacing: 0.05em;
}
.nx-lang-switcher span {
  color: var(--text-muted);
  opacity: 0.4;
}
.nx-lang-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.25rem 0.375rem;
  border-radius: 9999px;
  color: var(--text-muted);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: color 0.15s ease, background 0.15s ease;
}
.nx-lang-btn:hover {
  color: var(--text-primary);
  background: var(--bg-elevated);
}
.nx-lang-btn.nx-active {
  color: var(--accent-green);
}

#nx-header.nx-on-hero .nx-lang-btn {
  color: rgba(255, 255, 255, 0.6);
}
#nx-header.nx-on-hero .nx-lang-btn:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}
#nx-header.nx-on-hero .nx-lang-btn.nx-active {
  color: #81c784;
}

/* Theme toggle */
.nx-theme-toggle {
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-muted);
  transition: color 0.15s ease, background 0.15s ease;
  padding: 0;
}
.nx-theme-toggle:hover {
  color: var(--text-primary);
  background: var(--bg-elevated);
}
#nx-header.nx-on-hero .nx-theme-toggle {
  color: rgba(255, 255, 255, 0.7);
}
#nx-header.nx-on-hero .nx-theme-toggle:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}
.nx-theme-toggle svg {
  width: 16px;
  height: 16px;
}
/* Show/hide sun vs moon based on theme */
html.dark .nx-icon-moon  { display: none; }
html.dark .nx-icon-sun   { display: block; }
html.light .nx-icon-sun  { display: none; }
html.light .nx-icon-moon { display: block; }
/* Default (dark) */
.nx-icon-moon { display: none; }
.nx-icon-sun  { display: block; }

/* Mobile hamburger */
.nx-mobile-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 9999px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-secondary);
  transition: color 0.15s ease, background 0.15s ease;
  padding: 0;
}
.nx-mobile-toggle:hover {
  background: var(--bg-elevated);
}
#nx-header.nx-on-hero .nx-mobile-toggle {
  color: rgba(255, 255, 255, 0.8);
}
#nx-header.nx-on-hero .nx-mobile-toggle:hover {
  background: rgba(255, 255, 255, 0.1);
}
.nx-mobile-toggle svg { width: 20px; height: 20px; }
@media (min-width: 1024px) {
  .nx-mobile-toggle { display: none; }
}

/* ── Mobile Drawer ───────────────────────────────────────────── */
#nx-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 40;
}
#nx-drawer.nx-open {
  display: block;
}

.nx-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.nx-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 288px;
  background: var(--bg-secondary);
  box-shadow: -4px 0 32px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  padding-top: 5rem;
}

.nx-drawer__nav {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.nx-drawer__nav ul,
.nx-drawer__nav ul.menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.nx-drawer__nav ul li a,
.nx-drawer__nav a {
  display: block;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  font-family: 'DM Sans', sans-serif;
  text-decoration: none;
  color: var(--text-secondary);
  transition: color 0.15s ease, background 0.15s ease;
}
.nx-drawer__nav ul li a:hover,
.nx-drawer__nav a:hover {
  color: var(--text-primary);
  background: var(--bg-elevated);
}
.nx-drawer__nav ul li.current-menu-item > a,
.nx-drawer__nav ul li.current_page_item > a,
.nx-drawer__nav a.nx-active {
  color: var(--accent-green);
  background: var(--bg-elevated);
}

.nx-drawer__footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}

/* Force dark theme on drawer when header is in nx-on-hero mode (light theme + homepage hero) */
#nx-drawer.nx-drawer--on-hero .nx-drawer__panel {
  background: #111d15;
}
#nx-drawer.nx-drawer--on-hero .nx-drawer__nav ul li a,
#nx-drawer.nx-drawer--on-hero .nx-drawer__nav a {
  color: #b5c9b9;
}
#nx-drawer.nx-drawer--on-hero .nx-drawer__nav ul li a:hover,
#nx-drawer.nx-drawer--on-hero .nx-drawer__nav a:hover {
  color: #f0f4f1;
  background: #1a2e1e;
}
#nx-drawer.nx-drawer--on-hero .nx-drawer__nav ul li.current-menu-item > a,
#nx-drawer.nx-drawer--on-hero .nx-drawer__nav ul li.current_page_item > a,
#nx-drawer.nx-drawer--on-hero .nx-drawer__nav a.nx-active {
  color: #4caf50;
  background: #1a2e1e;
}
#nx-drawer.nx-drawer--on-hero .nx-drawer__footer {
  border-top-color: rgba(255,255,255,.08);
}
#nx-drawer.nx-drawer--on-hero .nx-lang-btn {
  color: rgba(255,255,255,.7);
  border-color: rgba(255,255,255,.2);
}
#nx-drawer.nx-drawer--on-hero .nx-lang-btn:hover,
#nx-drawer.nx-drawer--on-hero .nx-lang-btn.nx-active {
  color: #fff;
  border-color: rgba(255,255,255,.5);
}
#nx-drawer.nx-drawer--on-hero .nx-theme-toggle {
  color: rgba(255,255,255,.7);
  border-color: rgba(255,255,255,.2);
}
#nx-drawer.nx-drawer--on-hero .nx-theme-toggle:hover {
  color: #fff;
  border-color: rgba(255,255,255,.5);
}

/* ══════════════════════════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════════════════════════ */

.nx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 9999px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  border: none;
}

/* Size variants */
.nx-btn--sm  { padding: 0.5rem 1.25rem;  font-size: 0.8125rem; }
.nx-btn--md  { padding: 0.75rem 1.75rem; font-size: 0.9375rem; }
.nx-btn--lg  { padding: 1rem 2.5rem;     font-size: 1rem; }

/* Primary */
.nx-btn--primary {
  background: var(--accent-green-mid);
  color: #fff;
}
.nx-btn--primary:hover {
  background: var(--accent-green);
  color: #fff;
}

/* Outline */
.nx-btn--outline {
  background: transparent;
  border: 1.5px solid var(--accent-green);
  color: var(--accent-green);
}
.nx-btn--outline:hover {
  background: var(--accent-green);
  color: #fff;
}

/* Ghost */
.nx-btn--ghost {
  background: transparent;
  color: var(--text-secondary);
}
.nx-btn--ghost:hover {
  background: var(--bg-elevated);
  color: var(--text-primary);
}

/* White (for use on dark backgrounds) */
.nx-btn--white {
  background: #fff;
  color: #0d1a0e;
}
.nx-btn--white:hover {
  background: #e8f0e9;
}

/* ══════════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════════ */

#nx-footer {
  background: var(--footer-bg);
  color: var(--footer-text);
}

.nx-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 4rem 1rem;
}
@media (min-width: 640px) {
  .nx-footer__inner { padding-left: 1.5rem; padding-right: 1.5rem; }
}
@media (min-width: 1024px) {
  .nx-footer__inner { padding-left: 2rem; padding-right: 2rem; }
}

.nx-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  margin-bottom: 3rem;
}
@media (min-width: 768px) {
  .nx-footer__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .nx-footer__grid { grid-template-columns: 2fr 1fr 1fr 1fr; }
}

/* Brand column */
.nx-footer__brand .nx-logo {
  margin-bottom: 2rem;
  display: inline-flex;
}
.nx-footer__brand .nx-logo img {
  height: 55px;
}

.nx-footer__desc {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.875rem;
  line-height: 1.7;
  margin-bottom: 1.5rem;
  max-width: 20rem;
  opacity: 0.7;
  margin-top: 0;
}

.nx-footer__contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.nx-footer__contact-item {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  opacity: 0.7;
  font-size: 0.75rem;
  font-family: 'DM Sans', sans-serif;
}

.nx-footer__contact-icon {
  flex-shrink: 0;
  margin-top: 0.125rem;
  color: #66bb6a; /* green-400 */
  width: 13px;
  height: 13px;
}

/* Link columns */
.nx-footer__col-title {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 1rem;
  margin-top: 0;
  color: #66bb6a; /* green-400 */
}

.nx-footer__link-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.nx-footer__link-list a {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.875rem;
  opacity: 0.6;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.15s ease;
}
.nx-footer__link-list a:hover {
  opacity: 1;
}

/* Bottom bar */
.nx-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
@media (min-width: 640px) {
  .nx-footer__bottom { flex-direction: row; }
}

.nx-footer__copyright,
.nx-footer__firm {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.75rem;
  margin: 0;
}
.nx-footer__copyright { opacity: 0.4; }
.nx-footer__firm { opacity: 0.3; }

/* ══════════════════════════════════════════════════════════════
   SECTION TAG (pill above headings)
   ══════════════════════════════════════════════════════════════ */

.nx-section-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.875rem;
  border-radius: 9999px;
  border: 1px solid var(--border-strong);
  background: var(--bg-elevated);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-green);
  margin-bottom: 1.25rem;
}

/* ══════════════════════════════════════════════════════════════
   ARTICLE PROSE
   ══════════════════════════════════════════════════════════════ */

.prose-nexrise h2 {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}
.prose-nexrise p {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.8;
  margin-bottom: 1rem;
}
.prose-nexrise strong {
  font-weight: 600;
  color: var(--text-primary);
}
.prose-nexrise li {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 0.25rem;
  margin-left: 1.25rem;
}
.prose-nexrise table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.875rem;
}
.prose-nexrise td,
.prose-nexrise th {
  border: 1px solid var(--border);
  padding: 0.5rem 0.75rem;
  color: var(--text-secondary);
}
.prose-nexrise tr:first-child td {
  font-weight: 600;
  color: var(--text-primary);
  background: var(--bg-elevated);
}

/* ══════════════════════════════════════════════════════════════
   WORDPRESS ADMIN BAR OFFSET
   ══════════════════════════════════════════════════════════════ */

.admin-bar #nx-header {
  top: 32px;
}
@media screen and (max-width: 782px) {
  .admin-bar #nx-header { top: 46px; }
}

/* ══════════════════════════════════════════════════════════════
   MAIN CONTENT OFFSET (for fixed header)
   ══════════════════════════════════════════════════════════════ */

/* Pages that DON'T have a full-bleed hero need top padding */
.nx-page-offset {
  padding-top: 80px;
}

/* ══════════════════════════════════════════════════════════════
   PHASE 2 — HOMEPAGE SECTIONS
   ══════════════════════════════════════════════════════════════ */

/* ── HERO ────────────────────────────────────────────────────── */
.nx-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.nx-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.nx-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.nx-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.nx-hero__overlay--scrim {
  background: linear-gradient(to top, rgba(0,0,0,.90), rgba(0,0,0,.50), rgba(0,0,0,.15));
}
.nx-hero__overlay--panel {
  background: linear-gradient(to right,
    rgba(0,0,0,.92) 0%,
    rgba(0,0,0,.72) 30%,
    rgba(0,0,0,.38) 55%,
    transparent 100%);
}
.nx-hero__overlay--brand {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 160px;
  z-index: -1;
  background: linear-gradient(to top, rgba(6,13,7,.70), transparent);
}
.nx-hero__content {
  padding-top: 7rem;
  padding-bottom: 5rem;
  width: 100%;
}
.nx-hero__inner { max-width: 48rem; }

.nx-hero__tag {
  display: flex;
  align-items: center;
  gap: .625rem;
  margin-bottom: 1.5rem;
}
.nx-hero__tag-line {
  width: 1.5rem;
  height: 1px;
  background: #81c784;
  flex-shrink: 0;
}
.nx-hero__tag-text {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #81c784;
}
.nx-hero__h1 {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  line-height: 1.05;
  margin-bottom: 1.5rem;
  margin-top: 0;
  font-size: clamp(48px, 7vw, 96px);
}
.nx-hero__h1-accent { color: #66bb6a; }
.nx-hero__h1-white  { color: #ffffff; }
.nx-hero__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: rgba(255,255,255,.75);
  line-height: 1.65;
  max-width: 36rem;
  margin-bottom: 2.5rem;
  margin-top: 0;
}
.nx-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}
.nx-hero__scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  animation: bounceY 1.5s ease-in-out infinite;
}
.nx-hero__scroll-icon { color: rgba(255,255,255,.40); }

@keyframes bounceY {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(6px); }
}

/* ── STATS BAR ───────────────────────────────────────────────── */
.nx-stats {
  background: var(--bg-elevated);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.nx-stats__inner {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.nx-stats__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (min-width: 1024px) {
  .nx-stats__grid { grid-template-columns: repeat(4, 1fr); }
}
.nx-stats__item { text-align: center; }
.nx-stats__value {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  color: var(--accent-green);
  font-size: clamp(28px, 4vw, 48px);
  margin-bottom: .25rem;
}
.nx-stats__label {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* ── SERVICES GRID ───────────────────────────────────────────── */
.nx-services { background: var(--bg-primary); }

.nx-section-header {
  margin-bottom: 3rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (min-width: 640px) {
  .nx-section-header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.nx-tag {
  display: inline-flex;
  align-items: center;
  gap: .625rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: .75rem;
}
.nx-tag::before {
  content: '✦';
  color: var(--accent-green);
  font-size: 1.125rem;
  line-height: 1;
  flex-shrink: 0;
}
.nx-text-primary { color: var(--text-primary); }

.nx-services__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 640px)  { .nx-services__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .nx-services__grid { grid-template-columns: repeat(3, 1fr); } }

.nx-service-card {
  display: block;
  padding: 1.5rem;
  border-radius: 1rem;
  border: 1px solid var(--border);
  background: var(--bg-card);
  text-decoration: none;
  height: 100%;
  transition: border-color .3s, transform .3s, box-shadow .3s;
  box-shadow: var(--card-shadow);
}
.nx-service-card:hover {
  border-color: var(--accent-green);
  transform: translateY(-8px);
  box-shadow: var(--card-shadow-hover);
}
.nx-service-card__icon {
  width: 3rem;
  height: 3rem;
  border-radius: .75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}
.nx-service-card__icon svg { width: 22px; height: 22px; }
.nx-service-card__title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: .5rem;
  font-size: .9375rem;
  margin-top: 0;
}
.nx-service-card__desc {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}
.nx-service-card__cta {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  gap: .375rem;
  font-size: .75rem;
  font-weight: 600;
  color: var(--accent-green);
  opacity: 0;
  transition: opacity .2s;
}
.nx-service-card:hover .nx-service-card__cta { opacity: 1; }

/* ── LOGO MARQUEE ────────────────────────────────────────────── */
.nx-marquee-section {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--bg-elevated);
  overflow: hidden;
}
.nx-marquee-label {
  display: flex;
  align-items: center;
  gap: 1rem;
  justify-content: center;
  padding: 2rem 1rem 1.5rem;
}
.nx-marquee-label__line {
  height: 1px;
  width: 2rem;
  background: var(--border-strong);
  flex-shrink: 0;
}
.nx-marquee-label__text {
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--text-muted);
  white-space: nowrap;
}
.nx-marquee-wrapper {
  position: relative;
  padding-bottom: 2rem;
}
.nx-marquee-fade {
  pointer-events: none;
  position: absolute;
  top: 0; bottom: 0;
  z-index: 10;
  width: 7rem;
}
.nx-marquee-fade--left {
  left: 0;
  background: linear-gradient(to right, var(--bg-elevated), transparent);
}
.nx-marquee-fade--right {
  right: 0;
  background: linear-gradient(to left, var(--bg-elevated), transparent);
}
.nx-marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: marquee 30s linear infinite;
}
.nx-marquee-wrapper:hover .nx-marquee-track {
  animation-play-state: paused;
}
.nx-marquee-item {
  flex-shrink: 0;
  padding: 0 3rem;
  display: flex;
  align-items: center;
}
.nx-marquee-item img {
  height: 2.5rem;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  filter: grayscale(1) opacity(.5);
  transition: filter .3s ease;
}
html.light .nx-marquee-item img {
  filter: grayscale(1) opacity(.5) invert(1);
}
.nx-marquee-item img:hover {
  filter: none;
}

/* ── WHY SECTION ─────────────────────────────────────────────── */
.nx-why { background: var(--bg-secondary); }
.nx-why__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
  align-items: center;
}
@media (min-width: 1024px) {
  .nx-why__grid { grid-template-columns: 1fr 1fr; }
}
.nx-why__left { }
.nx-why__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-top: 1rem;
  margin-bottom: 0;
}
.nx-why__points {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 640px) {
  .nx-why__points { grid-template-columns: 1fr 1fr; }
}
.nx-why__point {
  padding: 1.25rem;
  border-radius: 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  height: 100%;
}
.nx-why__point-header {
  display: flex;
  align-items: center;
  gap: .625rem;
  margin-bottom: .5rem;
}
.nx-why__point-title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .875rem;
  color: var(--text-primary);
  margin: 0;
}
.nx-why__point-desc {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}

/* ── CASE STUDIES ────────────────────────────────────────────── */
.nx-cases { background: var(--bg-primary); }
.nx-cases__header { margin-bottom: 3rem; }
.nx-cases__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--text-secondary);
  margin-top: .75rem;
  margin-bottom: 0;
  max-width: 36rem;
}
.nx-cases__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 768px) {
  .nx-cases__grid { grid-template-columns: repeat(3, 1fr); }
}
.nx-case-card {
  padding: 1.75rem;
  border-radius: 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  height: 100%;
}
.nx-case-card__tag {
  display: inline-block;
  margin-bottom: 1rem;
  padding: .25rem .75rem;
  border-radius: 99px;
  background: var(--bg-elevated);
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.nx-case-card__title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: .75rem;
  margin-top: 0;
  flex: 1;
}
.nx-case-card__result {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 1.25rem;
  margin-top: 0;
}
.nx-case-card__metric {
  border-top: 1px solid var(--border);
  padding-top: 1rem;
  display: flex;
  align-items: baseline;
  gap: .5rem;
}
.nx-case-card__metric-value {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 1.5rem;
  color: var(--accent-green);
}
.nx-case-card__metric-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: var(--text-muted);
}

/* ── TEAM SECTION ────────────────────────────────────────────── */
.nx-team-section { background: var(--bg-secondary); }
.nx-team-section__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--text-secondary);
  margin-top: .5rem;
  margin-bottom: 0;
  max-width: 28rem;
}
.nx-team-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 640px) {
  .nx-team-cards { grid-template-columns: repeat(3, 1fr); }
}
.nx-team-card {
  display: block;
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--border);
  aspect-ratio: 3 / 4;
  text-decoration: none;
  transition: border-color .5s, box-shadow .5s;
  box-shadow: var(--card-shadow);
}
.nx-team-card:hover {
  border-color: var(--accent-green);
  box-shadow: var(--card-shadow-hover);
}
.nx-team-card__photo {
  position: absolute;
  inset: 0;
}
.nx-team-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  transition: transform .7s;
}
.nx-team-card:hover .nx-team-card__photo img {
  transform: scale(1.06);
}
.nx-team-card__avatar {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nx-team-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.90), rgba(0,0,0,.30), transparent);
}
.nx-team-card__content {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 1.5rem;
}
.nx-team-card__bar {
  height: 2px;
  border-radius: 99px;
  width: 1.75rem;
  margin-bottom: 1rem;
  transition: width .5s;
}
.nx-team-card:hover .nx-team-card__bar { width: 3rem; }
.nx-team-card__name {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  color: #fff;
  font-size: 1.125rem;
  line-height: 1.3;
  margin: 0 0 .25rem;
}
.nx-team-card__title {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  font-weight: 500;
  margin: 0;
}
.nx-team-card__spec {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: rgba(255,255,255,.45);
  margin: .25rem 0 0;
}
.nx-team-card__cta {
  display: flex;
  align-items: center;
  gap: .375rem;
  margin-top: 1rem;
  font-size: .75rem;
  font-weight: 600;
  color: #81c784;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .3s, transform .3s;
}
.nx-team-card:hover .nx-team-card__cta {
  opacity: 1;
  transform: translateY(0);
}

/* ── INSIGHTS ────────────────────────────────────────────────── */
.nx-insights { background: var(--bg-primary); }
.nx-insights__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--text-secondary);
  margin-top: .5rem;
  margin-bottom: 0;
  max-width: 36rem;
}
.nx-insights__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 768px) {
  .nx-insights__grid { grid-template-columns: repeat(3, 1fr); }
}
.nx-article-card {
  display: block;
  border-radius: 1rem;
  overflow: hidden;
  background: var(--bg-card);
  border: 1px solid var(--border);
  text-decoration: none;
  height: 100%;
  transition: border-color .3s, transform .3s;
}
.nx-article-card:hover {
  border-color: var(--accent-green);
  transform: translateY(-8px);
}
.nx-article-card__image {
  position: relative;
  height: 12rem;
  overflow: hidden;
  background: var(--bg-elevated);
}
.nx-article-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s;
}
.nx-article-card:hover .nx-article-card__image img {
  transform: scale(1.05);
}
.nx-article-card__image-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.5), transparent);
}
.nx-article-card__cat {
  position: absolute;
  bottom: .75rem;
  left: 1rem;
  padding: .125rem .625rem;
  border-radius: 99px;
  background: rgba(0,0,0,.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  font-family: 'DM Sans', sans-serif;
  font-size: .625rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.9);
}
.nx-article-card__no-img {
  height: 12rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: var(--text-muted);
  background: var(--bg-elevated);
}
.nx-article-card__body { padding: 1.25rem; }
.nx-article-card__date {
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  color: var(--text-muted);
  display: block;
  margin-bottom: .75rem;
}
.nx-article-card__title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .875rem;
  color: var(--text-primary);
  line-height: 1.4;
  margin: 0 0 .5rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nx-article-card__excerpt {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0 0 .75rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nx-article-card__read {
  display: flex;
  align-items: center;
  gap: .25rem;
  font-size: .75rem;
  font-weight: 600;
  color: var(--accent-green);
}
.nx-article-card__read svg { transition: transform .2s; }
.nx-article-card:hover .nx-article-card__read svg { transform: translateX(2px); }

/* ── FAQ ─────────────────────────────────────────────────────── */
.nx-faq { background: var(--bg-secondary); }
.nx-faq__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 1024px) {
  .nx-faq__grid { grid-template-columns: 2fr 3fr; }
}
.nx-faq__left { }
.nx-faq__item {
  border-bottom: 1px solid var(--border);
}
.nx-faq__item summary {
  list-style: none;
  cursor: pointer;
  padding: 1.25rem 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  font-weight: 500;
  color: var(--text-primary);
  transition: color .2s;
}
.nx-faq__item summary::-webkit-details-marker { display: none; }
.nx-faq__item summary:hover { color: var(--accent-green); }
.nx-faq__item summary svg {
  flex-shrink: 0;
  color: var(--accent-green-mid);
  transition: transform .3s;
  width: 16px;
  height: 16px;
}
.nx-faq__item[open] summary svg { transform: rotate(180deg); }
.nx-faq__item[open] summary { color: var(--accent-green); }
.nx-faq__answer {
  padding-bottom: 1.25rem;
  padding-right: 2rem;
}
.nx-faq__answer p {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin: 0;
}

/* ── CONTACT SECTION ─────────────────────────────────────────── */
.nx-contact-section { background: var(--bg-primary); }
.nx-contact__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: start;
}
@media (min-width: 1024px) {
  .nx-contact__grid { grid-template-columns: 1fr 1fr; }
}
.nx-contact__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 2rem;
  margin-top: 0;
}
.nx-contact__details {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.nx-contact__details li {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
}
.nx-icon-wrap {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--bg-elevated);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--accent-green);
}
.nx-contact__details span {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  padding-top: .375rem;
}
.nx-contact__form-card {
  padding: 1.5rem 2rem;
  border-radius: 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
}
.nx-contact-success {
  text-align: center;
  padding: 3rem 0;
}
.nx-contact-success__title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 .25rem;
}
.nx-contact-success__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  margin: 0 0 1.5rem;
}
.nx-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 480px) { .nx-form-row { grid-template-columns: 1fr; } }
.nx-form-field { margin-bottom: 1rem; }
.nx-form-field label {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: .375rem;
}
.nx-form-field input,
.nx-form-field textarea,
.nx-contact-form input,
.nx-contact-form textarea {
  width: 100%;
  padding: .75rem 1rem;
  border-radius: .75rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-primary);
  transition: border-color .2s;
  outline: none;
  box-sizing: border-box;
}
.nx-form-field input::placeholder,
.nx-form-field textarea::placeholder,
.nx-contact-form input::placeholder,
.nx-contact-form textarea::placeholder { color: var(--text-muted); }
.nx-form-field input:focus,
.nx-form-field textarea:focus,
.nx-contact-form input:focus,
.nx-contact-form textarea:focus { border-color: var(--accent-green); }
.nx-form-field textarea { resize: none; }
.nx-contact-submit {
  width: 100%;
  justify-content: center;
  margin-top: .5rem;
}

/* ── FLOATING CONTACT ────────────────────────────────────────── */
@keyframes floatPillIn {
  from { opacity: 0; transform: translateY(14px) scale(.95); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes floatPillOut {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to   { opacity: 0; transform: translateY(14px) scale(.95); }
}
@keyframes floatPopupIn {
  from { opacity: 0; transform: translateY(12px) scale(.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes floatPopupOut {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to   { opacity: 0; transform: translateY(12px) scale(.96); }
}

.nx-float {
  position: fixed;
  bottom: 1.25rem;
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .75rem;
}
@media (min-width: 640px) {
  .nx-float { right: 1.5rem; }
}

/* Pill strip */
.nx-float__sub-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .625rem;
  padding: .75rem .625rem;
  border-radius: 32px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background: rgba(20,30,20,.72);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 8px 40px rgba(0,0,0,.22), 0 2px 8px rgba(0,0,0,.12);
}
.nx-float__sub-list.is-entering { animation: floatPillIn .28s cubic-bezier(.34,1.56,.64,1) forwards; }
.nx-float__sub-list.is-leaving  { animation: floatPillOut .22s ease forwards; }
html.light .nx-float__sub-list {
  background: rgba(255,255,255,.92);
  border-color: rgba(0,0,0,.08);
  box-shadow: 0 8px 32px rgba(0,0,0,.14);
}

.nx-float__sub {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  background: #ffffff !important;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
  transition: transform .2s;
  position: relative;
  color: #fff;
  flex-shrink: 0;
}
.nx-float__sub:hover { transform: scale(1.1) translateX(-3px); }
.nx-float__sub img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: .45rem;
  box-sizing: border-box;
}
.nx-float__sub--consult {
  background: var(--accent-green) !important;
  box-shadow: 0 2px 12px rgba(46,125,50,.5);
}

/* Tooltip */
.nx-float__tooltip {
  position: absolute;
  right: calc(100% + .75rem);
  top: 50%;
  transform: translateY(-50%);
  padding: .375rem .75rem;
  border-radius: .5rem;
  background: rgba(17,17,17,.9);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  font-weight: 500;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity .2s;
}
.nx-float__sub:hover .nx-float__tooltip { opacity: 1; }

.nx-float__fab-wrap { position: relative; }
.nx-float__pulse {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--accent-green);
  animation: floatPulse 2.1s ease-out infinite;
  animation-delay: .9s;
}
@keyframes floatPulse {
  0%   { transform: scale(1);    opacity: .5; }
  100% { transform: scale(1.72); opacity: 0; }
}
.nx-float__main {
  position: relative;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--accent-green);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
  color: #fff;
  box-shadow: 0 4px 20px rgba(46,125,50,.5);
  transition: transform .2s, background .3s;
}
.nx-float__main:hover { transform: scale(1.1); }
.nx-float__main.is-x { background: var(--text-muted); }

/* Popup card */
.nx-float-popup {
  width: min(calc(100vw - 2rem), 320px);
  border-radius: 1rem;
  overflow: hidden;
  background: var(--bg-card);
  border: 1px solid var(--border);
  box-shadow: 0 8px 40px rgba(0,0,0,.2);
  flex-direction: column;
  transform-origin: bottom center;
}
.nx-float-popup.is-entering { animation: floatPopupIn .28s cubic-bezier(.34,1.56,.64,1) forwards; }
.nx-float-popup.is-leaving  { animation: floatPopupOut .2s ease forwards; }
.nx-float-popup__header {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1rem 1.25rem;
  background: var(--accent-green);
}
.nx-float-popup__avatar {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
}
.nx-float-popup__header-text { flex: 1; min-width: 0; }
.nx-float-popup__name {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  color: #fff;
  font-size: .875rem;
  letter-spacing: .05em;
  margin: 0;
}
.nx-float-popup__greet {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: rgba(255,255,255,.8);
  margin: .125rem 0 0;
}
.nx-float-popup__close {
  background: none;
  border: none;
  cursor: pointer;
  color: rgba(255,255,255,.7);
  padding: .375rem;
  border-radius: 50%;
  transition: background .15s, color .15s;
  flex-shrink: 0;
}
.nx-float-popup__close:hover {
  background: rgba(255,255,255,.15);
  color: #fff;
}
.nx-float-popup__body { padding: 1.25rem; }
.nx-float-popup__icon-wrap {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent-green) 14%, transparent);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  color: var(--accent-green);
}
.nx-float-field { margin-bottom: .75rem; }
.nx-float-field label {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: .375rem;
}
.nx-float-field input {
  width: 100%;
  padding: .625rem 1rem;
  border-radius: .75rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-primary);
  transition: border-color .2s;
  outline: none;
  box-sizing: border-box;
}
.nx-float-field input::placeholder { color: var(--text-muted); }
.nx-float-field input:focus { border-color: var(--accent-green); }
.nx-float-submit {
  width: 100%;
  padding: .75rem;
  border-radius: .75rem;
  margin-top: .25rem;
  background: var(--accent-green);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: .875rem;
  border: none;
  cursor: pointer;
  transition: opacity .2s;
}
.nx-float-submit:disabled { opacity: .6; }
.nx-float-submit:hover:not(:disabled) { opacity: .9; }

/* ── stagger delay helpers ───────────────────────────────────── */
[data-delay="1"] { transition-delay: .1s; }
[data-delay="2"] { transition-delay: .2s; }
[data-delay="3"] { transition-delay: .3s; }
[data-delay="4"] { transition-delay: .4s; }
[data-delay="5"] { transition-delay: .5s; }
[data-delay="6"] { transition-delay: .6s; }

/* ═══════════════════════════════════════════════════════════════
   PHASE 3 — INNER PAGE TEMPLATES
   ═══════════════════════════════════════════════════════════════ */

/* ── Inner hero band (services / team / contact / article pages) ─ */
.nx-inner-hero {
  background: var(--bg-secondary);
  border-bottom: 1px solid var(--border);
  padding: 3rem 0 2.5rem;
}
.nx-inner-hero__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--text-secondary);
  max-width: 42rem;
  margin-top: .75rem;
  line-height: 1.65;
}

/* ── Services archive page ─────────────────────────────────────── */
.nx-services-page__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 992px) { .nx-services-page__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 576px)  { .nx-services-page__grid { grid-template-columns: 1fr; } }

.nx-service-page-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  padding: 1.75rem;
  border-radius: 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.nx-service-page-card:hover {
  border-color: color-mix(in srgb, var(--accent-green) 50%, var(--border));
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
  transform: translateY(-2px);
}
.nx-service-page-card__icon {
  width: 3rem;
  height: 3rem;
  border-radius: .75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
}
.nx-service-page-card__title {
  font-family: 'Playfair Display', serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 .75rem;
}
.nx-service-page-card__desc {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0 0 1.25rem;
  flex: 1;
}
.nx-service-page-card__cta {
  display: flex;
  align-items: center;
  gap: .375rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .8125rem;
  font-weight: 600;
  color: var(--accent-green);
  margin-top: auto;
}
.nx-service-page-card__arrow { display: flex; transition: transform .2s; }
.nx-service-page-card:hover .nx-service-page-card__arrow { transform: translateX(3px); }

/* ── Service detail page ───────────────────────────────────────── */
.nx-service-detail__back {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  text-decoration: none;
  margin-bottom: 1.5rem;
  transition: color .2s;
}
.nx-service-detail__back:hover { color: var(--accent-green); }

.nx-service-detail__grid {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 992px) { .nx-service-detail__grid { grid-template-columns: 1fr; } }

.nx-service-detail__sidebar { position: sticky; top: 6rem; }

.nx-service-detail__hero {
  width: 100%;
  aspect-ratio: 21 / 7;
  overflow: hidden;
  border-radius: 1rem;
  margin-bottom: 2rem;
}
.nx-service-detail__hero img { width: 100%; height: 100%; object-fit: cover; }

.nx-service-detail__icon-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.nx-service-detail__icon {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: .875rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.nx-service-detail__title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}
.nx-service-detail__desc {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.75;
  margin-bottom: 2.5rem;
}
.nx-service-detail__section-h {
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 1.25rem;
}

/* Process timeline */
.nx-process-timeline { margin-bottom: 2.5rem; }
.nx-process-step {
  display: flex;
  gap: 1rem;
  position: relative;
}
.nx-process-step:not(:last-child) { padding-bottom: 1.75rem; }
.nx-process-step__track {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}
.nx-process-step__badge {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.nx-process-step__line {
  flex: 1;
  width: 2px;
  background: var(--border);
  margin-top: .375rem;
}
.nx-process-step:last-child .nx-process-step__line { display: none; }
.nx-process-step__body { padding-top: .25rem; }
.nx-process-step__title {
  font-family: 'DM Sans', sans-serif;
  font-size: .9375rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 .25rem;
}
.nx-process-step__desc {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  margin: 0;
}

/* Required documents */
.nx-docs-list { list-style: none; padding: 0; margin: 0 0 2rem; }
.nx-docs-list li {
  display: flex;
  align-items: flex-start;
  gap: .625rem;
  padding: .625rem 0;
  border-bottom: 1px solid var(--border);
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  line-height: 1.55;
}
.nx-docs-list li:last-child { border-bottom: none; }
.nx-docs-list__icon { color: var(--accent-green); flex-shrink: 0; margin-top: 2px; display: flex; }

/* Sidebar CTA */
.nx-service-cta-card {
  padding: 1.5rem;
  border-radius: 1rem;
  background: var(--accent-green);
  color: #fff;
  margin-bottom: 1rem;
}
.nx-service-cta-card__h {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 .5rem;
}
.nx-service-cta-card__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: .8125rem;
  opacity: .85;
  margin: 0 0 1.25rem;
  line-height: 1.55;
}
.nx-service-cta-card__btn {
  display: block;
  text-align: center;
  padding: .625rem;
  border-radius: 2rem;
  background: #fff;
  color: #1b5e20;
  font-family: 'DM Sans', sans-serif;
  font-size: .8125rem;
  font-weight: 700;
  text-decoration: none;
  transition: opacity .2s;
}
.nx-service-cta-card__btn:hover { opacity: .9; }

/* Other services list */
.nx-other-services {
  padding: 1.25rem;
  border-radius: 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
}
.nx-other-services__h {
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 .875rem;
}
.nx-other-services__list { list-style: none; padding: 0; margin: 0; }
.nx-other-services__item a {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 0;
  border-bottom: 1px solid var(--border);
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  text-decoration: none;
  transition: color .2s;
}
.nx-other-services__item:last-child a { border-bottom: none; }
.nx-other-services__item a:hover { color: var(--accent-green); }

/* ── Team archive page ─────────────────────────────────────────── */
.nx-team-page__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 992px) { .nx-team-page__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 576px)  { .nx-team-page__grid { grid-template-columns: 1fr; } }

.nx-team-page-card {
  border-radius: 1rem;
  overflow: hidden;
  background: var(--bg-card);
  border: 1px solid var(--border);
  transition: box-shadow .25s, transform .25s;
}
.nx-team-page-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,.12); transform: translateY(-3px); }

.nx-team-page-card__photo-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.nx-team-page-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s;
}
.nx-team-page-card:hover .nx-team-page-card__img { transform: scale(1.04); }

.nx-team-page-card__avatar {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'DM Sans', sans-serif;
  font-size: 2.5rem;
  font-weight: 700;
}
.nx-team-page-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.5) 0%, transparent 60%);
  opacity: 0;
  transition: opacity .4s;
}
.nx-team-page-card:hover .nx-team-page-card__overlay { opacity: 1; }
.nx-team-page-card__bar {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
}
.nx-team-page-card__body { padding: 1.25rem; }
.nx-team-page-card__name {
  font-family: 'Playfair Display', serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 .25rem;
}
.nx-team-page-card__role {
  font-family: 'DM Sans', sans-serif;
  font-size: .8125rem;
  font-weight: 600;
  margin: 0 0 .75rem;
}
.nx-team-page-card__bio {
  font-family: 'DM Sans', sans-serif;
  font-size: .8125rem;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0 0 1rem;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nx-team-page-card__spec {
  display: inline-block;
  padding: .25rem .75rem;
  border-radius: 2rem;
  background: var(--bg-elevated);
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: var(--text-muted);
}

/* ── Knowledge listing page ────────────────────────────────────── */
.nx-knowledge-hero {
  position: relative;
  min-height: 340px;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.nx-knowledge-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.nx-knowledge-hero__overlay-t {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.75) 0%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.3) 100%);
}
.nx-knowledge-hero__overlay-r {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,.4), transparent);
}
.nx-knowledge-hero__content {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding: 4rem 1.5rem 3rem;
  width: 100%;
  box-sizing: border-box;
}
.nx-knowledge-hero__tag {
  display: inline-flex;
  align-items: center;
  gap: .625rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 1rem;
}
.nx-knowledge-hero__tag::before {
  content: '✦';
  color: var(--accent-green);
  font-size: 1.125rem;
  line-height: 1;
  flex-shrink: 0;
}
.nx-knowledge-hero__h1 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(32px, 4vw, 60px);
  font-weight: 700;
  line-height: 1.15;
  color: #fff;
  margin: 0 0 .75rem;
}
.nx-knowledge-hero__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: rgba(255,255,255,.8);
  max-width: 34rem;
  line-height: 1.65;
  margin-bottom: 1.75rem;
}

/* Search */
.nx-search-wrap { position: relative; max-width: 28rem; }
.nx-search-icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255,255,255,.5);
  pointer-events: none;
  display: flex;
}
.nx-search-input {
  width: 100%;
  padding: .75rem 1rem .75rem 2.75rem;
  border-radius: 2rem;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.1);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: .9375rem;
  outline: none;
  backdrop-filter: blur(4px);
  transition: border-color .2s, background .2s;
  box-sizing: border-box;
}
.nx-search-input::placeholder { color: rgba(255,255,255,.5); }
.nx-search-input:focus { border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.15); }

/* Category filter pills */
.nx-filter-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.nx-filter-pill {
  padding: .375rem 1.125rem;
  border-radius: 2rem;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  font-family: 'DM Sans', sans-serif;
  font-size: .8125rem;
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
}
.nx-filter-pill:hover { border-color: var(--accent-green); color: var(--accent-green); }
.nx-filter-pill.nx-active {
  background: var(--accent-green);
  border-color: var(--accent-green);
  color: #fff;
}

/* Knowledge card grid */
.nx-knowledge-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2rem;
}
@media (max-width: 992px) { .nx-knowledge-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 576px)  { .nx-knowledge-grid { grid-template-columns: 1fr; } }

.nx-knowledge-card {
  display: flex;
  flex-direction: column;
  border-radius: 1rem;
  overflow: hidden;
  background: var(--bg-card);
  border: 1px solid var(--border);
  text-decoration: none;
  transition: box-shadow .25s, transform .25s, border-color .25s;
}
.nx-knowledge-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.1);
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--accent-green) 40%, var(--border));
}
.nx-knowledge-card__img-wrap {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.nx-knowledge-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.nx-knowledge-card:hover .nx-knowledge-card__img { transform: scale(1.04); }
.nx-knowledge-card__cat-pill {
  position: absolute;
  top: .75rem;
  left: .75rem;
  padding: .2rem .625rem;
  border-radius: 2rem;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(4px);
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #fff;
}
.nx-knowledge-card__img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.3) 0%, transparent 50%);
}
.nx-knowledge-card__body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; }
.nx-knowledge-card__meta {
  display: flex;
  align-items: center;
  gap: .375rem;
  color: var(--text-muted);
  margin-bottom: .625rem;
}
.nx-knowledge-card__readtime {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: var(--text-muted);
}
.nx-knowledge-card__title {
  font-family: 'Playfair Display', serif;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.45;
  margin: 0 0 .625rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nx-knowledge-card__excerpt {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
  padding-bottom: .875rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}
.nx-knowledge-card__author {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: var(--text-muted);
  padding-top: .875rem;
  border-top: 1px solid var(--border);
  margin-top: auto;
}
.nx-knowledge-no-results {
  font-family: 'DM Sans', sans-serif;
  font-size: .9375rem;
  color: var(--text-muted);
  text-align: center;
  padding: 3rem 0;
}

/* ── Article detail page ───────────────────────────────────────── */
.nx-article-back {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-muted);
  text-decoration: none;
  margin: 2rem 0;
  transition: color .2s;
}
.nx-article-back:hover { color: var(--text-primary); }

.nx-article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1rem;
}
.nx-article-cat {
  padding: .25rem .75rem;
  border-radius: 2rem;
  background: var(--bg-elevated);
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.nx-article-readtime,
.nx-article-date {
  display: flex;
  align-items: center;
  gap: .375rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: var(--text-muted);
}
.nx-article-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.625rem, 4vw, 2.25rem);
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.3;
  margin: 0 0 1rem;
}
.nx-article-excerpt {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.7;
  border-left: 2px solid var(--accent-green);
  padding-left: 1rem;
  margin-bottom: 1.5rem;
}
.nx-article-cover {
  width: 100%;
  aspect-ratio: 21 / 9;
  overflow: hidden;
  border-radius: 1rem;
  margin-bottom: 1.75rem;
}
.nx-article-cover img { width: 100%; height: 100%; object-fit: cover; }

.nx-article-author-row {
  display: flex;
  align-items: center;
  gap: .875rem;
  padding: 1rem 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin-bottom: 2rem;
}
.nx-article-author-avatar {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--accent-green);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
}
.nx-article-author-name {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 .125rem;
}
.nx-article-author-title {
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  color: var(--text-muted);
  margin: 0;
}

/* Article detail 2-col layout */
.nx-article-detail__grid {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 2.5rem;
  align-items: start;
}
@media (max-width: 992px) { .nx-article-detail__grid { grid-template-columns: 1fr; } }
.nx-article-detail__sidebar { position: sticky; top: 6rem; }

/* TOC card */
.nx-toc-card {
  padding: 1.25rem;
  border-radius: 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  margin-bottom: 1rem;
}
.nx-toc-card__h {
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 .75rem;
}
.nx-toc-list { list-style: none; padding: 0; margin: 0; }
.nx-toc-list li a {
  display: block;
  padding: .375rem 0;
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
  transition: color .2s;
}
.nx-toc-list li:last-child a { border-bottom: none; }
.nx-toc-list li a:hover { color: var(--accent-green); }

/* Article sidebar CTA */
.nx-article-cta {
  padding: 1.25rem;
  border-radius: 1rem;
  background: var(--accent-green);
  color: #fff;
}
.nx-article-cta__h {
  font-family: 'DM Sans', sans-serif;
  font-size: .9375rem;
  font-weight: 600;
  margin: 0 0 .375rem;
}
.nx-article-cta__sub {
  font-family: 'DM Sans', sans-serif;
  font-size: .8125rem;
  opacity: .85;
  margin: 0 0 1rem;
  line-height: 1.55;
}
.nx-article-cta__btn {
  display: block;
  text-align: center;
  padding: .625rem;
  border-radius: 2rem;
  background: #fff;
  color: #1b5e20;
  font-family: 'DM Sans', sans-serif;
  font-size: .8125rem;
  font-weight: 700;
  text-decoration: none;
  transition: opacity .2s;
}
.nx-article-cta__btn:hover { opacity: .9; }

/* Prose styles for article body */
.prose-nexrise { line-height: 1.8; color: var(--text-secondary); }
.prose-nexrise h2 {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 2.5rem 0 1rem;
  scroll-margin-top: 5rem;
}
.prose-nexrise p {
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  color: var(--text-secondary);
  margin: 0 0 1rem;
}
.prose-nexrise strong { font-weight: 600; color: var(--text-primary); }
.prose-nexrise ul,
.prose-nexrise ol { padding-left: 1.5rem; margin-bottom: 1rem; }
.prose-nexrise li {
  font-family: 'DM Sans', sans-serif;
  font-size: .9375rem;
  color: var(--text-secondary);
  margin-bottom: .375rem;
  line-height: 1.65;
}
.prose-nexrise table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; }
.prose-nexrise td {
  border: 1px solid var(--border);
  padding: .625rem .875rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
}
.prose-nexrise tr:first-child td { font-weight: 600; color: var(--text-primary); background: var(--bg-elevated); }

/* ── Contact page ──────────────────────────────────────────────── */
.nx-contact-page__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 992px) { .nx-contact-page__grid { grid-template-columns: 1fr; } }

.nx-contact-form-card {
  padding: 2rem;
  border-radius: 1.25rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
}
.nx-contact-field { margin-bottom: 1rem; }
.nx-contact-field label {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: .375rem;
}
.nx-contact-field input,
.nx-contact-field textarea {
  width: 100%;
  padding: .75rem 1rem;
  border-radius: .75rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-primary);
  outline: none;
  transition: border-color .2s;
  box-sizing: border-box;
}
.nx-contact-field input::placeholder,
.nx-contact-field textarea::placeholder { color: var(--text-muted); }
.nx-contact-field input:focus,
.nx-contact-field textarea:focus { border-color: var(--accent-green); }
.nx-contact-field textarea { resize: none; }
.nx-contact-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 480px) { .nx-contact-grid-2 { grid-template-columns: 1fr; } }
.nx-contact-submit {
  width: 100%;
  padding: .875rem;
  border-radius: .75rem;
  border: none;
  background: var(--accent-green);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: .9375rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  transition: opacity .2s;
  margin-top: .5rem;
}
.nx-contact-submit:hover { opacity: .9; }
.nx-contact-submit:disabled { opacity: .6; cursor: not-allowed; }

.nx-contact-info-card {
  padding: 1.5rem;
  border-radius: 1.25rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  margin-bottom: 1.5rem;
}
.nx-contact-info-list { list-style: none; padding: 0; margin: 0; }
.nx-contact-info-list li {
  display: flex;
  align-items: flex-start;
  gap: .875rem;
  padding: .875rem 0;
  border-bottom: 1px solid var(--border);
}
.nx-contact-info-list li:last-child { border-bottom: none; }
.nx-contact-info-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--bg-elevated);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-green);
  flex-shrink: 0;
}
.nx-contact-info-text {
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  color: var(--text-secondary);
  padding-top: .375rem;
  line-height: 1.55;
}

.nx-contact-map {
  border-radius: 1.25rem;
  overflow: hidden;
  border: 1px solid var(--border);
}
.nx-contact-map__title {
  font-family: 'DM Sans', sans-serif;
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: .875rem 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--bg-card);
  margin: 0;
}
