/* ==========================================
   CSS Variables / Palette & Theme
   ========================================== */
:root {
  --font-family-base: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  
  /* Brand & Core Colors */
  --color-text-main: #334155;        /* Primary headers/links */
  --color-text-muted: #475569;       /* Secondary text/dropdowns */
  --color-brand-primary: #0284c7;    /* Primary brand blue & hovers */
  --color-bg-hover: #f1f5f9;         /* Light hover states */
  --color-white: #ffffff;
  
  /* Footer Specific Dark Palette */
  --color-footer-bg: #334155;        /* Slate dark background */
  --color-footer-heading: #f8fafc;   /* Footer column headers */
  --color-footer-text: #94a3b8;      /* Footer descriptions/copyright */
  --color-footer-link: #cbd5e1;      /* Footer menu items */
  --color-footer-social-bg: #1e293b; /* Social button background */
}

/* Base Typography */
body {
  font-family: var(--font-family-base);
  color: var(--color-text-main);
}

/* Container 1400px Max-Width Override */
.container-1400 {
  width: 100%;
  max-width: 1400px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}

/* ==========================================
   Header & Navigation
   ========================================== */
.site-header {
  transition: box-shadow 0.3s ease;
  font-family: var(--font-family-base);
}

.site-logo {
  height: 40px;
  width: auto;
  display: block;
}

.navbar-nav .nav-link {
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.03em;
  color: var(--color-text-main);
  padding: 0.5rem 0.75rem;
  text-transform: uppercase;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
  color: var(--color-brand-primary);
}

/* Dropdown Customization */
.dropdown-menu {
  border-radius: 0.5rem;
  padding: 0.5rem;
  margin-top: 0.5rem;
}

.dropdown-item {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-text-muted);
  border-radius: 0.375rem;
  padding: 0.5rem 0.85rem;
  transition: all 0.2s ease;
}

.dropdown-item:hover {
  background-color: var(--color-bg-hover);
  color: var(--color-brand-primary);
}

/* CTA Button Styling */
.cta-btn {
  font-weight: 600;
  font-size: 0.875rem;
  letter-spacing: 0.01em;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  white-space: nowrap;
}

/* Desktop Hover Trigger for Dropdowns */
@media (min-width: 992px) {
  .navbar-nav .nav-item.dropdown:hover .dropdown-menu {
    display: block;
  }
}

/* ==========================================
   Footer Section
   ========================================== */
.site-footer {
  background-color: var(--color-footer-bg);
  color: var(--color-footer-text);
  font-family: var(--font-family-base);
  padding-top: 4rem;
}

.footer-logo {
  filter: brightness(0) invert(1); /* Ensures dark-mode logo compatibility */
}

.footer-desc {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--color-footer-text);
}

.footer-heading {
  color: var(--color-footer-heading);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 1.25rem;
  text-transform: uppercase;
}

.footer-links li {
  margin-bottom: 0.65rem;
}

.footer-links a {
  color: var(--color-footer-link);
  text-decoration: none;
  font-size: 0.875rem;
  transition: color 0.2s ease;
}

.footer-links a:hover {
  color: var(--color-brand-primary);
}

/* Social Buttons */
.social-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: var(--color-footer-social-bg);
  color: var(--color-footer-link);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: all 0.2s ease;
}

.social-btn:hover {
  background-color: var(--color-brand-primary);
  color: var(--color-white);
}

/* Bottom Legal Bar */
.copyright-text {
  font-size: 0.8125rem;
  color: var(--color-footer-text);
}

.legal-links a {
  color: var(--color-footer-text);
  font-size: 0.8125rem;
  text-decoration: none;
  transition: color 0.2s ease;
}

.legal-links a:hover {
  color: var(--color-footer-link);
}

.legal-links .list-inline-item {
  color: var(--color-footer-text);
}
/* Mobile: keep logo + hamburger on screen (logo is 303x45 natural) */
@media (max-width: 575px) {
  .site-header .navbar { padding-top: 0.75rem; padding-bottom: 0.75rem; }
  .site-header .navbar-brand { margin-right: 0.5rem; }
  .site-logo { height: 32px; }
}
@media (max-width: 380px) {
  .site-logo { height: 28px; }
}

/* Tighten nav at lg range (992-1199px) so 5 items + CTA fit */
@media (min-width: 992px) and (max-width: 1199px) {
  .navbar-nav .nav-link { padding-left: 0.45rem; padding-right: 0.45rem; font-size: 0.82rem; }
  .navbar .navbar-brand { margin-right: 0.75rem; }
  .cta-btn { padding-left: 0.85rem; padding-right: 0.85rem; font-size: 0.8rem; }
}

/* Mobile navbar: fix collapse panel overflow (Oppo/Android) */
@media (max-width: 991.98px) {
  .site-header .navbar .container-1400 { flex-wrap: wrap; }
  .site-header .navbar-collapse {
    flex-basis: 100%;
    flex-grow: 1;
    margin-top: 0.75rem;
    padding: 0.75rem 0;
    border-top: 1px solid #eef2f7;
  }
  .site-header .navbar-nav { width: 100%; }
  .site-header .navbar-nav .nav-link { padding: 0.65rem 0; font-size: 0.95rem; }
  .site-header .navbar-collapse .d-flex { width: 100%; margin-top: 0.5rem !important; }
  .site-header .navbar-collapse .cta-btn { width: 100%; justify-content: center; }
}
/* Video Modal (Aug 3, 2026) */
.nct-video-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}
.nct-video-modal.is-open{display:flex}
.nct-video-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,0.88)}
.nct-video-modal-box{position:relative;width:min(960px,100%);background:#000;border-radius:12px;overflow:hidden;box-shadow:0 25px 60px rgba(0,0,0,0.5)}
.nct-video-modal-close{position:absolute;top:-44px;right:0;background:transparent;border:0;color:#fff;font-size:30px;line-height:1;cursor:pointer;padding:4px 8px;z-index:2}
.nct-video-modal-close:hover{opacity:0.8}
.nct-video-modal-frame{position:relative;width:100%;aspect-ratio:16/9}
.nct-video-modal-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width: 575.98px){
  .nct-video-modal{padding:12px}
  .nct-video-modal-close{top:-40px;font-size:26px}
}
/* ============================================================
   RFP / Strategy Session Modal (added 2026-08-04)
   Scoped to .nct-rfp-* - no generic container classes.
   ============================================================ */
.nct-rfp-modal{position:fixed;inset:0;z-index:10001;display:none;align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto}
.nct-rfp-modal.is-open{display:flex}
.nct-rfp-backdrop{position:fixed;inset:0;background:rgba(15,23,42,0.88)}
.nct-rfp-box{position:relative;width:min(680px,100%);margin:auto 0;background:#ffffff;border-radius:14px;box-shadow:0 25px 60px rgba(0,0,0,0.45);padding:34px 36px 30px}
.nct-rfp-close{position:absolute;top:14px;right:16px;background:transparent;border:0;color:#94a3b8;font-size:28px;line-height:1;cursor:pointer;padding:4px 8px;z-index:2}
.nct-rfp-close:hover{color:#334155}
.nct-rfp-head{padding-right:28px}
.nct-rfp-eyebrow{display:inline-block;font-family:Inter,sans-serif;font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#2563eb;margin-bottom:8px}
.nct-rfp-title{font-family:Inter,sans-serif;font-size:26px;font-weight:700;color:#0f172a;margin:0 0 8px;line-height:1.25}
.nct-rfp-sub{font-family:Inter,sans-serif;font-size:14px;line-height:1.6;color:#475569;margin:0 0 14px}
.nct-rfp-chips{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.nct-rfp-chips li{font-family:Inter,sans-serif;font-size:12px;font-weight:600;color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:50px;padding:5px 12px}
.nct-rfp-trust{border-top:1px solid #eef2f7;border-bottom:1px solid #eef2f7;padding:14px 0 16px;margin-bottom:20px}
.nct-rfp-trust-logos{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:10px}
.nct-rfp-logo{height:22px;width:auto;opacity:0.75;filter:grayscale(1)}
.nct-rfp-trust-quote{font-family:Inter,sans-serif;font-size:13px;line-height:1.55;color:#475569;margin:0;font-style:italic}
.nct-rfp-trust-who{display:block;font-style:normal;font-weight:600;color:#334155;margin-top:4px;font-size:12px}
.nct-rfp-form{display:block}
.nct-rfp-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.nct-rfp-full-row{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:14px}
.nct-rfp-field{display:flex;flex-direction:column}
.nct-rfp-field label{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:#334155;margin-bottom:6px}
.nct-rfp-opt{font-weight:400;color:#94a3b8}
.nct-rfp-field input[type="text"],.nct-rfp-field input[type="email"],.nct-rfp-field input[type="tel"],.nct-rfp-field select,.nct-rfp-field textarea{font-family:Inter,sans-serif;font-size:14px;color:#0f172a;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;width:100%;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}
.nct-rfp-field input:focus,.nct-rfp-field select:focus,.nct-rfp-field textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,0.15);background:#ffffff}
.nct-rfp-field textarea{resize:vertical;min-height:88px}
.nct-rfp-phone-wrap{display:grid;grid-template-columns:128px 1fr;gap:10px}
.nct-rfp-check{display:flex;align-items:center;gap:8px;font-family:Inter,sans-serif;font-size:13px;color:#334155;cursor:pointer}
.nct-rfp-check input{width:16px;height:16px;accent-color:#2563eb;cursor:pointer}
.nct-rfp-check--small{margin-top:8px;font-size:12.5px;color:#475569}
.nct-rfp-extra{margin:6px 0 12px}
.nct-rfp-privacy{font-family:Inter,sans-serif;font-size:12px;color:#94a3b8;margin:8px 0 0;line-height:1.5}
.nct-rfp-privacy a{color:#2563eb;text-decoration:underline}
.nct-rfp-hp{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}
.nct-rfp-error{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:#dc2626;min-height:18px;margin:0 0 10px}
.nct-rfp-invalid{border-color:#dc2626 !important;background:#fef2f2 !important}
.nct-rfp-submit{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:13px 24px;background:#2563eb;color:#ffffff;font-family:Inter,sans-serif;font-size:15px;font-weight:600;border:none;border-radius:50px;cursor:pointer;transition:background .15s ease}
.nct-rfp-submit:hover{background:#1d4ed8}
.nct-rfp-submit:disabled{opacity:0.65;cursor:wait}
.nct-rfp-success{text-align:center;padding:28px 10px}
.nct-rfp-success-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:28px;font-weight:700;margin-bottom:14px}
.nct-rfp-success-title{font-family:Inter,sans-serif;font-size:20px;font-weight:700;color:#0f172a;margin:0 0 8px}
.nct-rfp-success-text{font-family:Inter,sans-serif;font-size:14px;line-height:1.6;color:#475569;margin:0}
@media (max-width: 640px){
  .nct-rfp-modal{padding:12px 10px}
  .nct-rfp-box{padding:26px 20px 24px}
  .nct-rfp-title{font-size:22px}
  .nct-rfp-row{grid-template-columns:1fr;gap:12px;margin-bottom:12px}
  .nct-rfp-full-row{grid-template-columns:1fr;gap:12px;margin-bottom:12px}
  .nct-rfp-phone-wrap{grid-template-columns:108px 1fr}
  .nct-rfp-logo{height:18px}
}
