/* ============================================================
   Neeva Radiant Widgets v2 — Master CSS
   ============================================================ */

/* ── Design Tokens ───────────────────────────────────────── */
:root {
    --nr-primary:            #000000;
    --nr-primary-container:  #061748;
    --nr-secondary:          #725c00;
    --nr-secondary-container:#fed019;
    --nr-on-primary:         #ffffff;
    --nr-on-secondary-container: #6f5900;
    --nr-surface:            #faf8ff;
    --nr-surface-container:  #eaedff;
    --nr-surface-container-low: #f2f3ff;
    --nr-surface-container-high:#e1e7ff;
    --nr-surface-container-lowest:#ffffff;
    --nr-on-background:      #131b2e;
    --nr-on-surface-variant: #444651;
    --nr-outline:            #767680;
    --nr-outline-variant:    #c6c6d0;
    --nr-glass-navy:         rgba(0,17,66,0.8);
    --nr-error:              #ba1a1a;
    --nr-secondary-fixed-dim:#eec200;
    --nr-font-display:       'Montserrat', sans-serif;
    --nr-font-body:          'Inter', sans-serif;
}

/* ── Reset helpers ───────────────────────────────────────── */
.nr-section { box-sizing: border-box; width: 100%; }
.nr-container { max-width: var(--nr-max-w, 1440px); margin: 0 auto; box-sizing: border-box; }
*, *::before, *::after { box-sizing: inherit; }

/* ── Typography scale ────────────────────────────────────── */
.nr-display-lg  { font-family:var(--nr-font-display); font-size:48px; line-height:56px; letter-spacing:-0.02em; font-weight:700; }
.nr-headline-lg { font-family:var(--nr-font-display); font-size:32px; line-height:40px; letter-spacing:-0.01em; font-weight:600; }
.nr-title-md    { font-family:var(--nr-font-display); font-size:20px; line-height:28px; font-weight:600; }
.nr-body-lg     { font-family:var(--nr-font-body);    font-size:18px; line-height:28px; font-weight:400; }
.nr-body-md     { font-family:var(--nr-font-body);    font-size:16px; line-height:24px; font-weight:400; }
.nr-label-sm    { font-family:var(--nr-font-body);    font-size:12px; line-height:16px; letter-spacing:.05em; font-weight:600; }

.material-symbols-outlined { font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 48; vertical-align:middle; }

/* ── Buttons ─────────────────────────────────────────────── */
.nr-btn-primary  { background:var(--nr-secondary-container); color:var(--nr-on-secondary-container); padding:16px 32px; font-family:var(--nr-font-display); font-size:20px; font-weight:700; border:none; border-radius:4px; cursor:pointer; transition:opacity .25s; display:inline-block; text-decoration:none; }
.nr-btn-primary:hover { opacity:.85; }
.nr-btn-dark     { background:var(--nr-primary-container); color:var(--nr-on-primary); padding:16px 32px; font-family:var(--nr-font-display); font-size:20px; font-weight:700; border:none; border-radius:4px; cursor:pointer; transition:opacity .25s; display:inline-block; text-decoration:none; }
.nr-btn-dark:hover { opacity:.85; }
.nr-btn-outline  { background:transparent; border:2px solid var(--nr-on-primary); color:var(--nr-on-primary); padding:16px 32px; font-family:var(--nr-font-display); font-size:20px; font-weight:700; border-radius:4px; cursor:pointer; transition:background .25s,color .25s; display:inline-block; text-decoration:none; }
.nr-btn-outline:hover { background:var(--nr-on-primary); color:var(--nr-primary-container); }
.nr-glass-card   { background:rgba(255,255,255,.7); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.3); }
.nr-hover-lift   { transition:transform .3s ease,box-shadow .3s ease; }
.nr-hover-lift:hover { transform:translateY(-8px); box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1); }
.nr-link-gold    { color:var(--nr-secondary); font-weight:700; display:inline-flex; align-items:center; gap:4px; text-decoration:none; }
.nr-link-gold:hover { text-decoration:underline; }

/* ── Section centre header ───────────────────────────────── */
.nr-section-header { text-align:center; }

/* ============================================================
   1 · HEADER
   ============================================================ */
.nr-header-wrap { position:fixed; top:0; width:100%; z-index:9999; background:var(--nr-glass-navy); backdrop-filter:blur(20px); border-bottom:1px solid rgba(255,255,255,.1); transition:all .3s ease; }
.nr-header-inner { display:flex; justify-content:space-between; align-items:center; margin:0 auto; }
.nr-header-logo  { display:flex; align-items:center; gap:16px; }
.nr-header-logo img { height:48px; width:auto; object-fit:contain; }
.nr-header-logo span { color:var(--nr-on-primary); font-family:var(--nr-font-display); font-size:36px; font-weight:700; }
.nr-header-nav { display:flex; align-items:center; gap:32px; }
.nr-header-nav a { font-family:var(--nr-font-display); font-size:18px; font-weight:600; color:var(--nr-on-primary); text-decoration:none; transition:color .2s; }
.nr-header-nav a:hover,.nr-header-nav a.active { color:var(--nr-secondary-fixed-dim); }
.nr-header-nav a.active { border-bottom:2px solid var(--nr-secondary); }
.nr-header-scrolled { background:var(--nr-primary-container) !important; }
/* Mobile hamburger */
.nr-hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:8px; }
.nr-hamburger span { display:block; width:24px; height:2px; background:#fff; transition:all .3s; }
.nr-mobile-nav { display:none; flex-direction:column; gap:0; background:var(--nr-primary-container); padding:0 24px; overflow:hidden; max-height:0; transition:max-height .4s ease; }
.nr-mobile-nav.open { max-height:400px; }
.nr-mobile-nav a { display:block; padding:14px 0; color:var(--nr-on-primary); font-family:var(--nr-font-display); font-size:18px; font-weight:600; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.1); }
@media(max-width:768px) { .nr-header-nav { display:none; } .nr-hamburger { display:flex; } .nr-mobile-nav { display:flex; } }

/* ============================================================
   2 · HERO
   ============================================================ */
.nr-hero-wrap   { position:relative; display:flex; align-items:center; overflow:hidden; }
.nr-hero-bg     { position:absolute; inset:0; z-index:0; }
.nr-hero-bg img { width:100%; height:100%; object-fit:cover; }
.nr-hero-overlay { position:absolute; inset:0; z-index:1; }
.nr-hero-content { position:relative; z-index:2; width:100%; }
.nr-hero-badge  { display:inline-block; padding:4px 16px; font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; border-radius:2px; margin-bottom:24px; }
.nr-hero-btns   { display:flex; flex-wrap:wrap; gap:16px; }
@media(max-width:768px) { .nr-display-lg { font-size:32px; line-height:40px; } .nr-hero-btns { flex-direction:column; } .nr-hero-btns a { text-align:center; } }

/* ============================================================
   3 · TRUSTED BY
   ============================================================ */
.nr-trusted-wrap    { overflow:hidden; }
.nr-trusted-label   { text-align:center; text-transform:uppercase; letter-spacing:.2em; }
.nr-carousel-track  { display:flex; white-space:nowrap; }
.nr-carousel-inner  { display:flex; align-items:center; animation:nr-scroll 40s linear infinite; }
.nr-carousel-inner:hover { animation-play-state:paused; }
@keyframes nr-scroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
.nr-logo-item       { flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.nr-logo-item img   { object-fit:contain; display:block; }
.nr-logo-text-item  { font-family:var(--nr-font-display); font-size:24px; font-weight:700; white-space:nowrap; }

/* ============================================================
   4 · ABOUT
   ============================================================ */
.nr-about-wrap  { }
.nr-about-grid  { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
.nr-about-img-wrap { position:relative; }
.nr-about-img-wrap img { border-radius:8px; width:100%; object-fit:cover; display:block; }
.nr-about-badge { position:absolute; }
.nr-about-badge-num { font-family:var(--nr-font-display); font-size:48px; font-weight:700; }
.nr-about-checklist { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.nr-check-item  { display:flex; align-items:flex-start; gap:12px; }
/* SVG icon in check */
.nr-check-item .nr-svg-icon { width:24px; height:24px; flex-shrink:0; }
@media(max-width:1024px) { .nr-about-grid { grid-template-columns:1fr; } }

/* ============================================================
   5 · BUSINESS VERTICALS
   ============================================================ */
.nr-verticals-grid { display:grid; }
.nr-vertical-card  { border-radius:8px; overflow:hidden; border:1px solid rgba(198,198,208,.3); transition:transform .3s ease,box-shadow .3s ease; }
.nr-vertical-card-img { overflow:hidden; }
.nr-vertical-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; display:block; }
.nr-vertical-card:hover .nr-vertical-card-img img { transform:scale(1.05); }

/* ============================================================
   6 · POWER COST CHALLENGE (screenshot section)
   ============================================================ */
.nr-power-wrap   { }
.nr-power-grid   { display:grid; align-items:center; }
.nr-power-challenge-items { list-style:none; padding:0; margin:0; }

/* ── Challenge list item hover ── */
.nr-power-challenge-items li {
    display:flex; align-items:center; gap:16px;
    border:1px solid rgba(255,255,255,.1); border-radius:8px;
    transition: background .3s ease, border-color .3s ease, transform .25s ease, box-shadow .3s ease;
    cursor: default;
}
.nr-power-challenge-items li:hover {
    background: rgba(254,208,25,.12) !important;
    border-color: rgba(254,208,25,.45) !important;
    transform: translateX(6px);
    box-shadow: 0 4px 20px rgba(254,208,25,.15);
}
.nr-power-challenge-items li:hover .material-symbols-outlined {
    color: #fed019 !important;
    transition: color .3s ease;
}

.nr-power-challenge-items li .nr-svg-icon,
.nr-power-challenge-items li .material-symbols-outlined { flex-shrink:0; }

.nr-power-card  { border-radius:12px; backdrop-filter:blur(16px); border:1px solid rgba(255,255,255,.15); }

/* ── Stat 1 hover (dark bg → slightly lighter) ── */
.nr-power-stat  { border-radius:8px; display:flex; justify-content:space-between; align-items:center; }
.nr-power-stat1 {
    transition: background .3s ease, border-color .3s ease, transform .25s ease, box-shadow .3s ease;
    cursor: default;
}
.nr-power-stat1:hover {
    background: rgba(255,255,255,.12) !important;
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,.25);
}

/* ── Stat 2 hover (yellow → brighter yellow glow) ── */
.nr-power-stat2 {
    transition: background .3s ease, transform .25s ease, box-shadow .3s ease, filter .3s ease;
    cursor: default;
}
.nr-power-stat2:hover {
    filter: brightness(1.08);
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(254,208,25,.4);
}

.nr-power-stat-num { font-family:var(--nr-font-display); font-size:40px; font-weight:700; display:flex; align-items:center; gap:8px; }
.nr-power-quote-icon { font-family:var(--nr-font-display); font-size:48px; font-weight:900; line-height:1; }
.nr-power-quote p   { font-style:italic; line-height:1.7; }
@media(max-width:1024px) { .nr-power-grid { grid-template-columns:1fr !important; } }

/* ============================================================
   7 · WHY CHOOSE US — SVG icon support
   ============================================================ */
.nr-why-wrap    { }
.nr-why-grid    { display:grid; }
.nr-why-card    { border:1px solid rgba(198,198,208,.3); border-radius:8px; transition:border-color .25s; }
.nr-why-card:hover { border-color:var(--nr-secondary); }
.nr-why-icon    { display:flex; align-items:center; justify-content:center; border-radius:50%; }
.nr-why-icon .material-symbols-outlined { font-size:36px; }
/* SVG icon option */
.nr-why-icon img.nr-svg-img { width:36px; height:36px; object-fit:contain; }
.nr-why-icon svg { width:36px; height:36px; }

/* ============================================================
   8 · INDUSTRIES SLIDER
   ============================================================ */
.nr-industries-wrap  { overflow:hidden; }
.nr-industries-slider-outer { position:relative; overflow:hidden; }
.nr-industries-slider-track { display:flex; transition:transform .5s cubic-bezier(.25,.46,.45,.94); will-change:transform; }
.nr-industry-slide  { flex-shrink:0; position:relative; overflow:hidden; cursor:pointer; }
.nr-industry-slide img { width:100%; height:100%; object-fit:cover; transition:transform .7s; display:block; }
.nr-industry-slide:hover img { transform:scale(1.08); }
.nr-industry-card-overlay { position:absolute; inset:0; }
.nr-industry-card-label { position:absolute; bottom:0; color:var(--nr-on-primary); font-family:var(--nr-font-display); font-weight:600; }
/* Slider controls */
.nr-slider-controls { display:flex; gap:16px; align-items:center; }
.nr-nav-btn { width:48px; height:48px; border-radius:50%; border:1px solid var(--nr-outline); background:transparent; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .25s,color .25s; }
.nr-nav-btn:hover { background:var(--nr-secondary); color:#fff; }
/* Dots */
.nr-slider-dots { display:flex; gap:8px; align-items:center; }
.nr-slider-dot  { width:8px; height:8px; border-radius:50%; background:var(--nr-outline-variant); border:none; cursor:pointer; padding:0; transition:background .25s,transform .25s; }
.nr-slider-dot.active { background:var(--nr-secondary); transform:scale(1.4); }
@media(max-width:768px) { .nr-industry-slide { min-width:100% !important; } }

/* ============================================================
   9 · OPEN ACCESS
   ============================================================ */
.nr-open-access-wrap { }
.nr-open-access-grid { display:grid; align-items:center; }
.nr-open-list   { list-style:none; padding:0; margin:0; }
.nr-open-list li { display:flex; align-items:center; gap:16px; }
.nr-open-list-icon { width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.nr-open-img-wrap { position:relative; }
.nr-open-img-wrap img { border-radius:16px; width:100%; display:block; }
.nr-open-float-badge { position:absolute; border-radius:8px; }
@media(max-width:1024px) { .nr-open-access-grid { grid-template-columns:1fr !important; } .nr-open-float-badge { display:none; } }

/* ============================================================
   10 · PROJECTS
   ============================================================ */
.nr-projects-grid   { display:grid; }
.nr-project-card    { position:relative; border-radius:8px; overflow:hidden; background:#fff; transition:box-shadow .3s; }
.nr-project-card:hover { box-shadow:0 20px 40px rgba(0,0,0,.2); }
.nr-project-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s; display:block; }
.nr-project-card:hover img { transform:scale(1.05); }
.nr-project-overlay { position:absolute; inset:0; }
.nr-project-info    { position:absolute; bottom:0; width:100%; }
.nr-project-tag     { display:block; font-weight:700; font-size:12px; letter-spacing:.05em; text-transform:uppercase; }

/* ============================================================
   11 · DOWNLOADS
   ============================================================ */
.nr-downloads-card  { position:relative; overflow:hidden; }
.nr-downloads-card::before { content:''; position:absolute; top:0; right:0; width:33%; height:100%; background:rgba(114,92,0,.05); transform:rotate(-12deg) translateX(50%); }
.nr-downloads-inner { position:relative; z-index:1; }
.nr-downloads-grid  { display:grid; }
.nr-download-item   { display:flex; align-items:center; justify-content:space-between; background:#fff; border-radius:8px; border:1px solid rgba(198,198,208,.3); text-decoration:none; color:inherit; transition:border-color .25s,box-shadow .25s; }
.nr-download-item:hover { box-shadow:0 4px 12px rgba(0,0,0,.1); }
.nr-download-left   { display:flex; align-items:center; gap:16px; }
.nr-download-item .arrow { transition:transform .25s; }
.nr-download-item:hover .arrow { transform:translateX(4px); }

/* ============================================================
   12 · FINAL CTA
   ============================================================ */
.nr-cta-wrap    { text-align:center; }
.nr-cta-btns    { display:flex; flex-wrap:wrap; justify-content:center; gap:24px; }
@media(max-width:640px) { .nr-cta-btns { flex-direction:column; align-items:center; } }

/* ============================================================
   13 · FOOTER
   ============================================================ */
.nr-footer-grid  { display:grid; }
.nr-footer-logo  { display:flex; align-items:center; gap:16px; }
.nr-footer-logo img { height:40px; width:auto; }
.nr-footer-logo span { font-family:var(--nr-font-display); font-size:28px; font-weight:600; color:var(--nr-on-primary); }
.nr-footer-tagline { color:rgba(218,226,252,.7); }
.nr-footer-col h4  { font-family:var(--nr-font-display); font-size:20px; font-weight:600; color:var(--nr-secondary); }
.nr-footer-col ul  { list-style:none; padding:0; margin:0; }
.nr-footer-col ul li a { color:rgba(218,226,252,.8); text-decoration:none; font-size:16px; transition:color .2s,transform .2s; display:inline-block; }
.nr-footer-col ul li a:hover { color:var(--nr-on-primary); transform:translateX(4px); }
.nr-footer-address { color:rgba(218,226,252,.7); font-size:16px; line-height:24px; }
.nr-social-links   { display:flex; gap:16px; }
.nr-social-link    { width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; color:#fff; text-decoration:none; transition:background .25s; }
.nr-social-link:hover { background:var(--nr-secondary); }
.nr-footer-bottom  { border-top:1px solid rgba(255,255,255,.1); text-align:center; color:rgba(218,226,252,.5); font-size:16px; }
@media(max-width:1024px) { .nr-footer-grid { grid-template-columns:1fr 1fr !important; } }
@media(max-width:640px)  { .nr-footer-grid { grid-template-columns:1fr !important; } }

/* ============================================================
   RESPONSIVE GLOBAL
   ============================================================ */
@media(max-width:1024px) {
    .nr-verticals-grid   { grid-template-columns:repeat(2,1fr) !important; }
    .nr-why-grid         { grid-template-columns:repeat(2,1fr) !important; }
    .nr-projects-grid    { grid-template-columns:repeat(2,1fr) !important; }
    .nr-about-checklist  { grid-template-columns:1fr !important; }
}
@media(max-width:640px) {
    .nr-verticals-grid   { grid-template-columns:1fr !important; }
    .nr-why-grid         { grid-template-columns:1fr !important; }
    .nr-projects-grid    { grid-template-columns:1fr !important; }
    .nr-downloads-grid   { grid-template-columns:1fr !important; }
    .nr-industries-grid  { grid-template-columns:1fr !important; }
    .nr-display-lg       { font-size:28px !important; line-height:36px !important; }
    .nr-headline-lg      { font-size:24px !important; line-height:32px !important; }
    .nr-title-md         { font-size:18px !important; }
}

/* ============================================================
   ANIMATIONS
   ============================================================ */
.nr-anim-fadein   { animation:nr-fadein   .8s ease both; }
.nr-anim-slide-up { animation:nr-slide-up .7s ease both; }
.nr-anim-slide-left { animation:nr-slide-left .7s ease both; }
.nr-anim-delay-1  { animation-delay:.1s; }
.nr-anim-delay-2  { animation-delay:.2s; }
.nr-anim-delay-3  { animation-delay:.3s; }
.nr-anim-delay-4  { animation-delay:.4s; }
@keyframes nr-fadein     { from{opacity:0}             to{opacity:1} }
@keyframes nr-slide-up   { from{opacity:0;transform:translateY(40px)} to{opacity:1;transform:translateY(0)} }
@keyframes nr-slide-left { from{opacity:0;transform:translateX(40px)} to{opacity:1;transform:translateX(0)} }
