/* ==========================================================================
   NPPCP Theme — Dark Mode (system preference)
   Activates via prefers-color-scheme: dark
   ========================================================================== */

@media (prefers-color-scheme: dark) {

  /* --- Variable overrides --- */
  :root {
    --text-near-black: #F0F0F0;
    --text-dark: #E8E8E8;
    --text-navy: #CBD5E1;
    --text-dark-navy: #D1DBE8;
    --text-body: #B0B8C4;
    --text-body-light: #A0A8B4;
    --text-muted: #8A94A4;
    --text-light: #7A8494;
    --text-placeholder: #606874;
    --text-faq: #9098A4;
    --text-charcoal: #E8E8E8;
    --text-label-gray: #8A94A4;

    --bg-white: #1A1D23;
    --bg-light-green: #1C2218;
    --bg-offwhite: #1E2128;
    --bg-gray: #23272E;
    --bg-slate50: #14171C;

    --border-light: #2E3340;
    --border-medium: #353A48;
    --border-soft: #3C4252;
    --border-dashed: #3C4252;
    --border-slate200: #2E3340;
    --border-card-divider: #2E3340;
    --border-table-header: #2A2F3A;

    --shadow-card: 0 4px 6px -1px rgba(0,0,0,0.3), 0 2px 4px -1px rgba(0,0,0,0.2);
    --shadow-card-hover: 0 12px 32px rgba(0,0,0,0.3);
    --shadow-news: 0 4px 20px rgba(0,0,0,0.2);
    --shadow-cert: 0 4px 24px rgba(0,0,0,0.2);
  }

  /* --- Body & base --- */
  body {
    background-color: var(--bg-slate50) !important;
    color: var(--text-body);
  }

  /* --- Preloader --- */
  .nppcp-preloader {
    background: #0D0F12;
  }

  /* --- Header / Nav --- */
  .nppcp-header {
    background: #1A1D23 !important;
    border-bottom-color: var(--border-light);
  }

  .nppcp-header__link {
    color: var(--text-body) !important;
  }

  .nppcp-header__link:hover,
  .nppcp-header__link.is-active {
    color: var(--primary) !important;
  }

  .nppcp-header__login {
    color: var(--primary) !important;
  }

  .nppcp-header__dropdown {
    background: #1E2128;
    border-color: var(--border-light);
  }

  .nppcp-header__dropdown a {
    color: var(--text-body) !important;
  }

  .nppcp-header__dropdown a:hover {
    color: var(--primary) !important;
    background: var(--bg-gray);
  }

  /* Mobile nav */
  .nppcp-mobile-nav {
    background: #1A1D23;
  }

  .nppcp-mobile-nav a {
    color: var(--text-body) !important;
  }

  .nppcp-mobile-nav a:hover {
    color: var(--primary) !important;
  }

  .nppcp-mobile-nav__panel {
    background: #1A1D23 !important;
  }

  .nppcp-mobile-nav__link {
    color: var(--text-body) !important;
  }

  .nppcp-mobile-nav__sub-link {
    color: var(--text-muted) !important;
  }

  .nppcp-mobile-nav__link.is-current {
    background: var(--bg-gray) !important;
  }

  .nppcp-mobile-nav__toggle svg line,
  .nppcp-mobile-nav__toggle svg path {
    stroke: var(--text-body);
  }

  /* --- Cards --- */
  .nppcp-card {
    background: var(--bg-white);
    box-shadow: var(--shadow-card);
  }

  .nppcp-card:hover {
    box-shadow: var(--shadow-card-hover);
  }

  .nppcp-card__title {
    color: var(--text-dark);
  }

  .nppcp-card__excerpt {
    color: var(--text-body);
  }

  /* --- Buttons (keep greens, fix outlined) --- */
  .nppcp-btn--secondary {
    color: var(--primary);
    border-color: var(--primary);
  }

  .nppcp-btn--outline {
    color: var(--text-body);
    border-color: var(--border-soft);
  }

  .nppcp-btn--outline:hover {
    color: var(--primary);
    border-color: var(--primary);
  }

  .nppcp-btn--outline-white {
    color: #FFFFFF;
    border-color: rgba(255, 255, 255, 0.6);
  }

  /* --- Forms / Inputs --- */
  .nppcp-input,
  .nppcp-textarea,
  .nppcp-select,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="password"],
  input[type="search"],
  input[type="url"],
  input[type="number"],
  textarea,
  select {
    background-color: var(--bg-gray) !important;
    border-color: var(--border-medium) !important;
    color: var(--text-dark) !important;
  }

  .nppcp-input:focus,
  .nppcp-textarea:focus,
  .nppcp-select:focus,
  input:focus,
  textarea:focus,
  select:focus {
    border-color: var(--primary) !important;
  }

  /* --- Dividers --- */
  hr {
    border-color: var(--border-light);
  }

  /* --- Sections --- */
  .nppcp-section,
  section {
    color: var(--text-body);
  }

  /* --- Footer (already dark, minor tweaks) --- */
  .nppcp-footer__top-bar {
    background-color: #1A2E14;
  }

  .nppcp-footer__main-wrap {
    background-color: #162610;
  }

  .nppcp-footer__bottom-bar {
    background-color: #1A2E14;
  }

  .nppcp-footer__support-card {
    background: rgba(255, 255, 255, 0.06);
  }

  .nppcp-footer__social a {
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.05);
  }

  .nppcp-footer__social a:hover {
    background: rgba(255, 255, 255, 0.15);
  }

  /* --- Homepage sections --- */
  .nppcp-about {
    background-color: var(--bg-light-green) !important;
  }

  .nppcp-certifications {
    background-color: var(--bg-offwhite) !important;
  }

  .nppcp-latest-news {
    background-color: var(--bg-white) !important;
  }

  /* --- Page Hero --- */
  .nppcp-page-hero,
  .nppcp-contact-hero {
    color: #FFFFFF;
  }

  /* --- Elementor overrides --- */
  .elementor-element .elementor-widget-container {
    color: var(--text-body);
  }

  /* Elementor containers */
  .e-con {
    color: var(--text-body);
  }

  /* --- Contact page --- */
  .nppcp-contact-card,
  .nppcp-contact-info-card,
  .nppcp-contact-map {
    background: var(--bg-white);
    border-color: var(--border-light);
  }

  .nppcp-contact-card__title,
  .nppcp-contact-info-card__title {
    color: var(--text-dark);
  }

  .nppcp-contact-card__subtitle {
    color: var(--text-muted);
  }

  .nppcp-contact-card__divider,
  .nppcp-contact-info-card__divider {
    border-color: var(--border-light);
  }

  .nppcp-contact-form__field label {
    color: var(--text-dark-navy);
  }

  .nppcp-contact-info-card__label {
    color: var(--text-dark-navy);
  }

  .nppcp-contact-info-card__value {
    color: var(--text-body);
  }

  .nppcp-contact-info-card__social-link {
    border-color: var(--cta-green);
    background: rgba(76, 175, 80, 0.15);
    color: var(--cta-green);
  }

  .nppcp-contact-info-card__social-link:hover {
    background: rgba(76, 175, 80, 0.25);
  }

  /* Contact form widget (Elementor) */
  [id^="nppcp-cf-"] {
    background: var(--bg-white) !important;
    border-color: var(--border-light) !important;
  }

  .nppcp-cf__title {
    color: var(--text-dark) !important;
  }

  .nppcp-cf__subtitle {
    color: var(--text-muted) !important;
  }

  .nppcp-cf__divider {
    border-color: var(--border-light) !important;
  }

  .nppcp-cf__label {
    color: var(--text-dark-navy) !important;
  }

  .nppcp-cf__input,
  .nppcp-cf__textarea {
    background: var(--bg-gray) !important;
    border-color: var(--border-medium) !important;
    color: var(--text-dark) !important;
  }

  .nppcp-cf__input::placeholder,
  .nppcp-cf__textarea::placeholder {
    color: var(--text-placeholder) !important;
  }

  /* Contact info widget (Elementor) */
  [id^="nppcp-ci-"] .nppcp-ci__card {
    background: var(--bg-white) !important;
    border-color: var(--border-light) !important;
  }

  .nppcp-ci__title {
    color: var(--text-dark) !important;
  }

  .nppcp-ci__divider {
    border-color: var(--border-light) !important;
  }

  .nppcp-ci__label {
    color: var(--text-dark-navy) !important;
  }

  .nppcp-ci__value {
    color: var(--text-body) !important;
  }

  [id^="nppcp-ci-"] .nppcp-ci__map-card {
    background: var(--bg-white) !important;
    border-color: var(--border-light) !important;
  }

  .nppcp-ci__social-link {
    border-color: var(--cta-green) !important;
    background: rgba(76, 175, 80, 0.15) !important;
  }

  .nppcp-ci__social-link:hover {
    background: rgba(76, 175, 80, 0.25) !important;
  }

  /* --- FAQ section --- */
  .nppcp-faq,
  [class*="faq"] {
    color: var(--text-body);
  }

  /* --- Auth pages --- */
  .nppcp-auth input {
    background: var(--bg-gray) !important;
    border-color: var(--border-medium) !important;
    color: var(--text-dark) !important;
  }

  .nppcp-auth-card,
  .nppcp-auth-centered__card {
    background: var(--bg-white) !important;
    border-color: var(--border-light) !important;
  }

  /* --- Page Hero widget (Elementor) --- */
  [id^="nppcp-page-hero"] {
    color: #FFFFFF;
  }

  /* --- Gallery / Grid --- */
  .nppcp-gallery,
  .nppcp-explore-grid {
    background: var(--bg-slate50);
  }

  /* --- Tables --- */
  table,
  th,
  td {
    border-color: var(--border-light);
    color: var(--text-body);
  }

  th {
    background: var(--bg-gray);
    color: var(--text-dark);
  }

  tr:nth-child(even) {
    background: var(--bg-gray);
  }

  /* --- Toast notification --- */
  .nppcp-toast {
    background-color: #2A2F3A;
    color: #E8E8E8;
  }

  /* --- Cookie consent --- */
  .nppcp-cookie {
    background: #1E2128 !important;
    border-top-color: var(--border-light) !important;
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.25);
  }

  .nppcp-cookie__heading {
    color: var(--text-dark) !important;
  }

  .nppcp-cookie__desc {
    color: var(--text-body) !important;
  }

  .nppcp-cookie__btn--decline {
    color: var(--text-body) !important;
    border-color: var(--border-soft) !important;
  }

  .nppcp-cookie__btn--decline:hover {
    color: var(--text-dark) !important;
    border-color: var(--text-muted) !important;
  }

  /* --- Scrollbar styling --- */
  ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  }

  ::-webkit-scrollbar-track {
    background: var(--bg-gray);
  }

  ::-webkit-scrollbar-thumb {
    background: #4A5060;
    border-radius: 5px;
  }

  ::-webkit-scrollbar-thumb:hover {
    background: #5A6070;
  }

  /* --- Images: slightly reduce brightness for comfort --- */
  img:not([src*=".svg"]) {
    filter: brightness(0.92);
  }

  img:not([src*=".svg"]):hover {
    filter: brightness(1);
  }

  /* --- Selection --- */
  ::selection {
    background: rgba(150, 196, 54, 0.3);
    color: #FFFFFF;
  }
}
