
/* PSD Systems - text visibility enhancement */
body{color:#1f2937}
h1,h2,h3,h4,h5,h6{color:#111827!important;opacity:1!important;visibility:visible!important;text-shadow:none!important}
p,li,span,label,small{opacity:1!important;visibility:visible!important}
p,li{color:#4b5563}
a{opacity:1!important;visibility:visible!important}
.hero h1,.hero h2,.hero h3,.banner h1,.banner h2,.banner h3,
[class*="hero"] h1,[class*="hero"] h2,[class*="hero"] h3,
[class*="banner"] h1,[class*="banner"] h2,[class*="banner"] h3{color:#fff!important;text-shadow:0 2px 18px rgba(0,0,0,.35)!important}
[class*="hero"] p,[class*="banner"] p{color:rgba(255,255,255,.92)!important;text-shadow:0 1px 10px rgba(0,0,0,.25)}
.psd-viz-copy h2{color:#111827!important}
.psd-viz-copy p,.psd-viz-copy li{color:#4b5563!important}
.psd-viz-banner-content h2,.psd-viz-banner-content p{color:#fff!important}
.psd-blog-hero-copy h1,.psd-blog-hero-copy p{color:#fff!important}
.psd-article h1,.psd-article-content h2{color:#111827!important}
.psd-article-content p{color:#364152!important}
nav a,.navbar a,.menu a,.header a{opacity:1!important;visibility:visible!important}

/* =========================================================
   PSD SYSTEMS - ALWAYS VISIBLE TEXT
   Text remains readable before and during hover.
   ========================================================= */
.reveal,.reveal.show{opacity:1!important;visibility:visible!important;transform:none!important}
.card,.card:hover,.box,.box:hover,.psd-viz-copy,.psd-viz-copy:hover,.psd-blog-card,.psd-blog-card:hover{color:inherit}
.card h3,.card:hover h3,.box h3,.box:hover h3,.psd-viz-copy h2,.psd-viz-copy:hover h2,.psd-viz-copy p,.psd-viz-copy:hover p,.psd-blog-card h3,.psd-blog-card:hover h3,.psd-blog-card p,.psd-blog-card:hover p{opacity:1!important;visibility:visible!important}
.card h3,.card:hover h3,.box h3,.box:hover h3{color:#f5f9ff!important}
.card p,.card:hover p,.box p,.box:hover p,.card li,.card:hover li,.box li,.box:hover li{color:#cbd7e6!important}
.menu a,.menu a:hover,nav a,nav a:hover{opacity:1!important;visibility:visible!important}
footer,footer a,footer a:hover,footer p,footer li,footer span{opacity:1!important;visibility:visible!important}
*:hover{visibility:visible}

/* =========================================================
   FINAL CONTRAST FIX — PSD SYSTEMS
   All normal site text stays readable before AND during hover.
   ========================================================= */

/* Main dark-site typography */
body,
body p,
body li,
body span,
body small,
body label {
  color: #d8e4f2 !important;
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
.hero h1,
.hero h2,
.pagehero h1,
.pagehero h2,
.head h2,
.cta h2,
.card h3,
.box h3,
.card:hover h3,
.box:hover h3 {
  color: #f5f9ff !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.hero p,
.pagehero p,
.head p,
.card p,
.box p,
.card li,
.box li,
.cta p,
.card:hover p,
.box:hover p,
.card:hover li,
.box:hover li {
  color: #b9c9da !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.num,
.ey,
.green,
.psd-viz-tag {
  opacity: 1 !important;
  visibility: visible !important;
}

/* Product visual sections are on the same dark page background */
.psd-viz-heading h2,
.psd-viz-heading p,
.psd-viz-copy h2,
.psd-viz-copy p,
.psd-viz-copy ul,
.psd-viz-copy li,
.psd-viz-copy:hover h2,
.psd-viz-copy:hover p,
.psd-viz-copy:hover li {
  opacity: 1 !important;
  visibility: visible !important;
}

.psd-viz-heading h2,
.psd-viz-copy h2,
.psd-viz-copy:hover h2 {
  color: #f5f9ff !important;
}

.psd-viz-heading p,
.psd-viz-copy p,
.psd-viz-copy ul,
.psd-viz-copy li,
.psd-viz-copy:hover p,
.psd-viz-copy:hover li {
  color: #b9c9da !important;
}

.psd-viz-banner-content h2,
.psd-viz-banner-content p,
.psd-viz-banner-content:hover h2,
.psd-viz-banner-content:hover p,
.psd-blog-hero-copy h1,
.psd-blog-hero-copy p {
  color: #ffffff !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Blog cards intentionally have white backgrounds, so keep their text dark */
.psd-blog-card,
.psd-blog-card:hover {
  color: #172033 !important;
}
.psd-blog-card h2,
.psd-blog-card:hover h2,
.psd-blog-card h3,
.psd-blog-card:hover h3,
.psd-blog-card p,
.psd-blog-card:hover p,
.psd-blog-card .date,
.psd-blog-card:hover .date {
  opacity: 1 !important;
  visibility: visible !important;
}
.psd-blog-card h2,
.psd-blog-card h3,
.psd-blog-card:hover h2,
.psd-blog-card:hover h3 {
  color: #172033 !important;
}
.psd-blog-card p,
.psd-blog-card .date,
.psd-blog-card:hover p,
.psd-blog-card:hover .date {
  color: #596579 !important;
}

/* Article pages use the dark site background */
.psd-article h1,
.psd-article h2,
.psd-article-content h2,
.psd-article:hover h1,
.psd-article:hover h2 {
  color: #f5f9ff !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.psd-article .meta,
.psd-article-content,
.psd-article-content p,
.psd-article-content li {
  color: #b9c9da !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* CTA and footer */
.cta h2,
.cta p,
.cta:hover h2,
.cta:hover p,
footer,
footer p,
footer li,
footer span,
footer a,
footer a:hover {
  opacity: 1 !important;
  visibility: visible !important;
}
.cta h2,
.cta:hover h2 { color: #f5f9ff !important; }
.cta p,
.cta:hover p { color: #b9c9da !important; }
footer { color: #9eafc4 !important; }
footer h4 { color: #eef4fb !important; }

/* Navigation text stays visible in both states */
.menu a,
.menu a:hover,
.nav a,
.nav a:hover,
.nav-btn,
.nav-btn:hover {
  opacity: 1 !important;
  visibility: visible !important;
}

/* Do not allow hover rules to make text transparent */
.card:hover,
.box:hover,
.psd-viz-copy:hover,
.psd-blog-card:hover,
.cta:hover {
  opacity: 1 !important;
}

/* Keep reveal content visible even if JS animation has not run */
.reveal,
.reveal.show {
  opacity: 1 !important;
  visibility: visible !important;
}

/* Modal keeps its original light form styling */
.modalbox,
.modalbox h2,
.modalbox p,
.modalbox label,
.modalbox input,
.modalbox select,
.modalbox textarea,
.modalbox .success {
  opacity: 1 !important;
  visibility: visible !important;
}
.modalbox h2,
.modalbox p,
.modalbox label { color: #152136 !important; }
.modalbox .success { color: #126348 !important; }

/* Product/section pill labels: always readable on their light pill background */
.psd-viz-tag,
.psd-viz-tag:hover {
  color: #3157d5 !important;
  background: #eef3ff !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* The blog hero pill intentionally uses its white inline styling */
.psd-blog-hero-copy .psd-viz-tag {
  color: #ffffff !important;
  background: rgba(255,255,255,.14) !important;
}
