/* v5.5 final contrast hardening and Policy & Transparency Centre design. */
:root{
  --dsn-v55-ink:#101828;
  --dsn-v55-body:#475467;
  --dsn-v55-muted:#667085;
  --dsn-v55-line:#dfe5ec;
  --dsn-v55-light:#ffffff;
  --dsn-v55-soft:#f7f9fc;
  --dsn-v55-dark:#101828;
  --dsn-v55-accent:#c8102e;
}

body.dsn-pro-plugin .dsn-main,
body.dsn-pro-plugin .dsn-section,
body.dsn-pro-plugin .dsn-special-wrap,
body.dsn-pro-plugin .dsn-page-hero,
body.dsn-pro-plugin .dsn-home-premium-hero,
body.dsn-pro-plugin .dsn-home-pulse,
body.dsn-pro-plugin .dsn-home-trust-metrics{
  color:var(--dsn-v55-ink)!important;
  -webkit-text-fill-color:initial!important;
}
body.dsn-pro-plugin .dsn-section:not(.dsn-section-alt),
body.dsn-pro-plugin .dsn-special-wrap{background:#fff!important}
body.dsn-pro-plugin .dsn-section-alt{background:#f5f7fa!important;color:var(--dsn-v55-ink)!important}

/* Stable page headings and ordinary content. */
body.dsn-pro-plugin .dsn-main :where(.dsn-page-title,.dsn-section-title,.dsn-single-title,.dsn-list-title,.dsn-card-title){
  color:var(--dsn-v55-ink)!important;
  -webkit-text-fill-color:var(--dsn-v55-ink)!important;
  text-shadow:none!important;
}
body.dsn-pro-plugin .dsn-main :where(.dsn-page-intro,.dsn-section-desc,.dsn-card-excerpt,.dsn-list-excerpt,.dsn-single-deck,.dsn-meta,.dsn-breadcrumbs){
  color:var(--dsn-v55-body)!important;
  -webkit-text-fill-color:var(--dsn-v55-body)!important;
}

/* Homepage split hero: each surface is explicit. */
body.dsn-pro-plugin .dsn-home-premium-lead,
body.dsn-pro-plugin .dsn-home-premium-copy,
body.dsn-pro-plugin .dsn-home-premium-rail,
body.dsn-pro-plugin .dsn-home-trust-metrics-grid,
body.dsn-pro-plugin .dsn-home-trust-metrics-grid>div{
  background:#fff!important;
  color:var(--dsn-v55-ink)!important;
  color-scheme:light!important;
}
body.dsn-pro-plugin .dsn-home-premium-copy :where(h1,h2,h3,h4,h5,h6,strong,b,a:not(.dsn-btn)),
body.dsn-pro-plugin .dsn-home-premium-rail :where(h1,h2,h3,h4,h5,h6,strong,b,.dsn-home-premium-rail-title),
body.dsn-pro-plugin .dsn-home-trust-metrics-grid strong{
  color:var(--dsn-v55-ink)!important;
  -webkit-text-fill-color:var(--dsn-v55-ink)!important;
}
body.dsn-pro-plugin .dsn-home-premium-copy :where(p,small,.dsn-home-meta,.dsn-home-meta span),
body.dsn-pro-plugin .dsn-home-premium-rail :where(p,small,.dsn-home-rail-category),
body.dsn-pro-plugin .dsn-home-trust-metrics-grid span{
  color:var(--dsn-v55-body)!important;
  -webkit-text-fill-color:var(--dsn-v55-body)!important;
}
body.dsn-pro-plugin .dsn-home-category,
body.dsn-pro-plugin .dsn-home-rail-number,
body.dsn-pro-plugin .dsn-home-rail-head a{
  color:var(--dsn-v55-accent)!important;
  -webkit-text-fill-color:var(--dsn-v55-accent)!important;
}

/* Homepage dark surfaces. */
body.dsn-pro-plugin .dsn-home-fact-column,
body.dsn-pro-plugin .dsn-home-action-primary,
body.dsn-pro-plugin .dsn-newsletter-box,
body.dsn-pro-plugin .dsn-home-empty-premium{
  color:#f8fafc!important;
  color-scheme:dark!important;
}
body.dsn-pro-plugin .dsn-home-action-primary{
  background:linear-gradient(135deg,#0f172a 0%,#1d2433 52%,#7e1027 100%)!important;
}
body.dsn-pro-plugin .dsn-newsletter-box{background:linear-gradient(135deg,#10131a,#2c1018)!important}
body.dsn-pro-plugin :where(.dsn-home-fact-column,.dsn-home-action-primary,.dsn-newsletter-box,.dsn-home-empty-premium) :where(h1,h2,h3,h4,h5,h6,p,li,strong,b,label,small,a:not(.dsn-btn),span:not(.dsn-kicker):not([aria-hidden="true"])){
  color:#f8fafc!important;
  -webkit-text-fill-color:#f8fafc!important;
  text-shadow:none!important;
}
body.dsn-pro-plugin :where(.dsn-home-fact-column,.dsn-home-action-primary,.dsn-newsletter-box,.dsn-home-empty-premium) .dsn-kicker,
body.dsn-pro-plugin .dsn-home-fact-column .dsn-home-fact-stack article span{
  color:#fde68a!important;
  -webkit-text-fill-color:#fde68a!important;
}
body.dsn-pro-plugin .dsn-home-fact-column .dsn-empty{
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.25)!important;
  color:#fff!important;
}
body.dsn-pro-plugin .dsn-home-fact-column .dsn-empty *{color:#fff!important;-webkit-text-fill-color:#fff!important}

/* Homepage ordinary action card. */
body.dsn-pro-plugin .dsn-home-action-card:not(.dsn-home-action-primary){
  background:#fff!important;
  color:var(--dsn-v55-ink)!important;
  color-scheme:light!important;
}
body.dsn-pro-plugin .dsn-home-action-card:not(.dsn-home-action-primary) :where(h1,h2,h3,strong,b){
  color:var(--dsn-v55-ink)!important;
  -webkit-text-fill-color:var(--dsn-v55-ink)!important;
}
body.dsn-pro-plugin .dsn-home-action-card:not(.dsn-home-action-primary) p{
  color:var(--dsn-v55-body)!important;
  -webkit-text-fill-color:var(--dsn-v55-body)!important;
}
body.dsn-pro-plugin .dsn-home-action-card:not(.dsn-home-action-primary) a:not(.dsn-btn){
  color:var(--dsn-v55-accent)!important;
  -webkit-text-fill-color:var(--dsn-v55-accent)!important;
}

/* Every common light card/panel. */
body.dsn-pro-plugin :where(
  .dsn-card,.dsn-list-card,.dsn-info-card,.dsn-action-card,.dsn-form-card,.dsn-contact-panel,
  .dsn-contact-channel,.dsn-contact-department,.dsn-contact-faq,.dsn-policy-section,
  .dsn-policy-official-contact,.dsn-portal-panel,.dsn-portal-group,.dsn-directory-card,
  .dsn-location-card,.dsn-team-card,.dsn-team-profile,.dsn-frontdesk-panel,.dsn-assignment-card,
  .dsn-widget,.dsn-auth-card,.dsn-track-result,.dsn-page-fallback,.dsn-epaper-card,
  .dsn-epaper-featured-copy,.dsn-epaper-reader-meta,.dsn-v47-trust-intro,
  .dsn-v47-stat-grid>div,.dsn-v47-method-grid article,.dsn-v47-fact-card,
  .dsn-v47-policy-toc,.dsn-v47-policy-facts article,.dsn-v47-policy-sections article,
  .dsn-v47-policy-contact>div,.dsn-v47-related a,.dsn-v47-video-card,
  .dsn-v47-video-standards article,.dsn-v55-disclosure,.dsn-v55-principle-grid article,
  .dsn-v55-policy-card,.dsn-v55-route-grid a
){
  background-color:#fff!important;
  color:var(--dsn-v55-ink)!important;
  color-scheme:light!important;
}
body.dsn-pro-plugin :where(
  .dsn-card,.dsn-list-card,.dsn-info-card,.dsn-action-card,.dsn-form-card,.dsn-contact-panel,
  .dsn-contact-channel,.dsn-contact-department,.dsn-contact-faq,.dsn-policy-section,
  .dsn-policy-official-contact,.dsn-portal-panel,.dsn-portal-group,.dsn-directory-card,
  .dsn-location-card,.dsn-team-card,.dsn-team-profile,.dsn-frontdesk-panel,.dsn-assignment-card,
  .dsn-widget,.dsn-auth-card,.dsn-track-result,.dsn-page-fallback,.dsn-epaper-card,
  .dsn-epaper-featured-copy,.dsn-epaper-reader-meta,.dsn-v47-trust-intro,
  .dsn-v47-stat-grid>div,.dsn-v47-method-grid article,.dsn-v47-fact-card,
  .dsn-v47-policy-toc,.dsn-v47-policy-facts article,.dsn-v47-policy-sections article,
  .dsn-v47-policy-contact>div,.dsn-v47-related a,.dsn-v47-video-card,
  .dsn-v47-video-standards article,.dsn-v55-disclosure,.dsn-v55-principle-grid article,
  .dsn-v55-policy-card,.dsn-v55-route-grid a
) :where(h1,h2,h3,h4,h5,h6,strong,b,dt){
  color:var(--dsn-v55-ink)!important;
  -webkit-text-fill-color:var(--dsn-v55-ink)!important;
  text-shadow:none!important;
}
body.dsn-pro-plugin :where(
  .dsn-card,.dsn-list-card,.dsn-info-card,.dsn-action-card,.dsn-form-card,.dsn-contact-panel,
  .dsn-contact-channel,.dsn-contact-department,.dsn-contact-faq,.dsn-policy-section,
  .dsn-policy-official-contact,.dsn-portal-panel,.dsn-portal-group,.dsn-directory-card,
  .dsn-location-card,.dsn-team-card,.dsn-team-profile,.dsn-frontdesk-panel,.dsn-assignment-card,
  .dsn-widget,.dsn-auth-card,.dsn-track-result,.dsn-page-fallback,.dsn-epaper-card,
  .dsn-epaper-featured-copy,.dsn-epaper-reader-meta,.dsn-v47-trust-intro,
  .dsn-v47-stat-grid>div,.dsn-v47-method-grid article,.dsn-v47-fact-card,
  .dsn-v47-policy-toc,.dsn-v47-policy-facts article,.dsn-v47-policy-sections article,
  .dsn-v47-policy-contact>div,.dsn-v47-related a,.dsn-v47-video-card,
  .dsn-v47-video-standards article,.dsn-v55-disclosure,.dsn-v55-principle-grid article,
  .dsn-v55-policy-card,.dsn-v55-route-grid a
) :where(p,li,dd,label,small,figcaption,span:not(.dsn-kicker):not(.dsn-policy-number):not(.dsn-editorial-badge)){
  color:var(--dsn-v55-body)!important;
  -webkit-text-fill-color:var(--dsn-v55-body)!important;
}

/* Known dark panels across all public pages. */
body.dsn-pro-plugin :where(
  .dsn-topic-band,.dsn-sidebar-panel,.dsn-video-card,.dsn-contact-command,.dsn-team-hero,
  .dsn-portal-hero,.dsn-frontdesk-hero,.dsn-rti-command,.dsn-rti-timeline,
  .dsn-rti-newsroom-help,.dsn-v47-policy-summary,.dsn-v47-rating-guide,
  .dsn-v47-video-cta,.dsn-epaper-reader-toolbar,.dsn-v55-transparency-hero,
  .dsn-v55-accountability-routes
){color:#f8fafc!important;color-scheme:dark!important}
body.dsn-pro-plugin :where(
  .dsn-topic-band,.dsn-sidebar-panel,.dsn-video-card,.dsn-contact-command,.dsn-team-hero,
  .dsn-portal-hero,.dsn-frontdesk-hero,.dsn-rti-command,.dsn-rti-timeline,
  .dsn-rti-newsroom-help,.dsn-v47-policy-summary,.dsn-v47-rating-guide,
  .dsn-v47-video-cta,.dsn-epaper-reader-toolbar,.dsn-v55-transparency-hero,
  .dsn-v55-accountability-routes
) :where(h1,h2,h3,h4,h5,h6,p,li,strong,b,dt,dd,label,small,a:not(.dsn-btn),span:not(.dsn-kicker):not([aria-hidden="true"])){
  color:#f8fafc!important;
  -webkit-text-fill-color:#f8fafc!important;
  text-shadow:none!important;
}
body.dsn-pro-plugin :where(
  .dsn-topic-band,.dsn-sidebar-panel,.dsn-video-card,.dsn-contact-command,.dsn-team-hero,
  .dsn-portal-hero,.dsn-frontdesk-hero,.dsn-rti-command,.dsn-rti-timeline,
  .dsn-rti-newsroom-help,.dsn-v47-policy-summary,.dsn-v47-rating-guide,
  .dsn-v47-video-cta,.dsn-epaper-reader-toolbar,.dsn-v55-transparency-hero,
  .dsn-v55-accountability-routes
) .dsn-kicker{color:#fde68a!important;-webkit-text-fill-color:#fde68a!important}

/* Forms and interactive text. */
body.dsn-pro-plugin .dsn-main :where(input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),textarea,select){
  background:#fff!important;
  color:#111827!important;
  -webkit-text-fill-color:#111827!important;
  border-color:#b8c3d1!important;
  color-scheme:light!important;
}
body.dsn-pro-plugin .dsn-main :where(input,textarea)::placeholder{color:#667085!important;-webkit-text-fill-color:#667085!important;opacity:1!important}
body.dsn-pro-plugin .dsn-main :where(input,textarea,select):focus{border-color:var(--dsn-v55-accent)!important;outline:3px solid rgba(200,16,46,.16)!important}

/* Deep Policy & Transparency Centre. */
.dsn-v55-transparency{padding:44px 0 76px;background:linear-gradient(180deg,#f7f9fc 0,#fff 28%)}
.dsn-v55-transparency-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:34px;align-items:center;padding:clamp(30px,5vw,60px);border-radius:28px;background:linear-gradient(135deg,#0f172a 0%,#1b2435 55%,#7e1027 100%);box-shadow:0 24px 60px rgba(15,23,42,.18)}
.dsn-v55-transparency-hero h2{margin:6px 0 14px;font-family:var(--dsn-font-display);font-size:clamp(2.5rem,5vw,4.8rem);line-height:1.02;letter-spacing:-.055em}
.dsn-v55-transparency-hero p{max-width:800px;margin:0;color:#dbe3ef!important;font-size:1rem}
.dsn-v55-transparency-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dsn-v55-transparency-metrics>div{padding:20px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.08)}
.dsn-v55-transparency-metrics strong{display:block;color:#fde68a!important;font-size:1.8rem;line-height:1}
.dsn-v55-transparency-metrics span{display:block;margin-top:8px;color:#f8fafc!important;font-size:.76rem;line-height:1.45}
.dsn-v55-disclosure{margin-top:28px;padding:30px;border:1px solid var(--dsn-v55-line);border-radius:22px;box-shadow:0 14px 34px rgba(15,23,42,.06)}
.dsn-v55-disclosure-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dsn-v55-disclosure-grid>div{padding:16px;border:1px solid #e5e9f0;border-radius:14px;background:#f8fafc}
.dsn-v55-disclosure-grid span{display:block;color:#667085!important;font-size:.72rem;font-weight:800}
.dsn-v55-disclosure-grid strong{display:block;margin-top:6px;color:#101828!important;font-size:.9rem;line-height:1.4}
.dsn-v55-disclosure-address{margin:18px 0 0;padding-top:16px;border-top:1px solid #e5e9f0;color:#475467!important}
.dsn-v55-principles,.dsn-v55-policy-directory{margin-top:48px}
.dsn-v55-principle-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.dsn-v55-principle-grid article{padding:24px;border:1px solid var(--dsn-v55-line);border-radius:18px;box-shadow:0 10px 28px rgba(15,23,42,.05)}
.dsn-v55-principle-grid article>b{display:grid;place-items:center;width:36px;height:36px;margin-bottom:16px;border-radius:11px;background:#fff0f3;color:var(--dsn-v55-accent)!important}
.dsn-v55-principle-grid h3{margin:0 0 9px;font-size:1.04rem}
.dsn-v55-principle-grid p{margin:0;font-size:.86rem;line-height:1.65}
.dsn-v55-policy-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.dsn-v55-policy-card{position:relative;display:flex;flex-direction:column;min-height:210px;padding:22px;border:1px solid var(--dsn-v55-line);border-radius:18px;text-decoration:none;box-shadow:0 10px 26px rgba(15,23,42,.05);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.dsn-v55-policy-card:hover{transform:translateY(-4px);border-color:#d29aa5;box-shadow:0 18px 38px rgba(15,23,42,.09)}
.dsn-v55-policy-card h3{margin:14px 0 8px;font-size:1.08rem}
.dsn-v55-policy-card p{margin:0;font-size:.82rem;line-height:1.55}
.dsn-v55-policy-card>b{margin-top:auto;padding-top:16px;color:var(--dsn-v55-accent)!important;font-size:1.2rem}
.dsn-v55-policy-status{align-self:flex-start;padding:5px 9px;border-radius:999px;background:#e9f7ef;color:#087443!important;font-size:.68rem;font-weight:900}
.dsn-v55-accountability-routes{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:30px;align-items:center;margin-top:48px;padding:34px;border-radius:22px;background:linear-gradient(135deg,#111827,#28121a);box-shadow:0 18px 42px rgba(15,23,42,.15)}
.dsn-v55-accountability-routes h2{margin:0 0 10px;font-size:clamp(1.7rem,3vw,2.5rem)}
.dsn-v55-accountability-routes>div>p{margin:0;color:#d3dae5!important}
.dsn-v55-route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dsn-v55-route-grid a{display:block;padding:15px;border:1px solid #e5e7eb;border-radius:13px;text-decoration:none}
.dsn-v55-route-grid a span{display:block;color:#667085!important;font-size:.7rem;font-weight:800}
.dsn-v55-route-grid a strong{display:block;margin-top:5px;color:#101828!important;font-size:.84rem;overflow-wrap:anywhere}

/* Policy pages: guaranteed visible content and navigation. */
body.dsn-pro-plugin .dsn-v47-policy-centre{background:#fff!important;color:var(--dsn-v55-ink)!important}
body.dsn-pro-plugin .dsn-v47-policy-status{background:#eef2f6!important;color:#344054!important;border-color:#d8dee8!important}
body.dsn-pro-plugin .dsn-v47-policy-status span{color:#344054!important;-webkit-text-fill-color:#344054!important}
body.dsn-pro-plugin .dsn-v47-policy-toc a{color:#344054!important;-webkit-text-fill-color:#344054!important}
body.dsn-pro-plugin .dsn-v47-policy-toc a:hover{color:var(--dsn-v55-accent)!important;-webkit-text-fill-color:var(--dsn-v55-accent)!important}
body.dsn-pro-plugin .dsn-v47-policy-sections article>span{color:#fff!important;-webkit-text-fill-color:#fff!important}
body.dsn-pro-plugin .dsn-v47-related a b{color:var(--dsn-v55-accent)!important;-webkit-text-fill-color:var(--dsn-v55-accent)!important}

@media(max-width:1180px){
  .dsn-v55-disclosure-grid,.dsn-v55-policy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dsn-v55-principle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .dsn-v55-transparency-hero,.dsn-v55-accountability-routes{grid-template-columns:1fr}
}
@media(max-width:700px){
  .dsn-v55-transparency{padding-top:18px}
  .dsn-v55-transparency-hero{padding:26px 20px;border-radius:20px}
  .dsn-v55-transparency-metrics,.dsn-v55-disclosure-grid,.dsn-v55-principle-grid,.dsn-v55-policy-grid,.dsn-v55-route-grid{grid-template-columns:1fr}
  .dsn-v55-disclosure,.dsn-v55-accountability-routes{padding:22px 18px}
}

/* Additional public-page surfaces audited in v5.5. */
body.dsn-pro-plugin :where(
  .dsn-rti-process article,.dsn-rti-builder-form,.dsn-rti-draft-panel,.dsn-rti-links>a,
  .dsn-rti-checklist li,.dsn-rti-trust-note,.dsn-contact-response,.dsn-contact-hours,
  .dsn-contact-map,.dsn-profile-facts>div,.dsn-publisher-disclosure,.dsn-founder-panel,
  .dsn-founder-message,.dsn-transparency-box,.dsn-evidence-box,.dsn-evidence-file,
  .dsn-story-status,.dsn-comments,.dsn-state-filter-bar,.dsn-location-summary,
  .dsn-epaper-empty-state,.dsn-consent-card,.dsn-team-principle-grid article,
  .dsn-team-workflow-grid article,.dsn-v47-featured-video>div:last-child
){background:#fff!important;color:var(--dsn-v55-ink)!important;color-scheme:light!important}
body.dsn-pro-plugin :where(
  .dsn-rti-process article,.dsn-rti-builder-form,.dsn-rti-draft-panel,.dsn-rti-links>a,
  .dsn-rti-checklist li,.dsn-rti-trust-note,.dsn-contact-response,.dsn-contact-hours,
  .dsn-contact-map,.dsn-profile-facts>div,.dsn-publisher-disclosure,.dsn-founder-panel,
  .dsn-founder-message,.dsn-transparency-box,.dsn-evidence-box,.dsn-evidence-file,
  .dsn-story-status,.dsn-comments,.dsn-state-filter-bar,.dsn-location-summary,
  .dsn-epaper-empty-state,.dsn-consent-card,.dsn-team-principle-grid article,
  .dsn-team-workflow-grid article,.dsn-v47-featured-video>div:last-child
) :where(h1,h2,h3,h4,h5,h6,strong,b,dt){color:var(--dsn-v55-ink)!important;-webkit-text-fill-color:var(--dsn-v55-ink)!important;text-shadow:none!important}
body.dsn-pro-plugin :where(
  .dsn-rti-process article,.dsn-rti-builder-form,.dsn-rti-draft-panel,.dsn-rti-links>a,
  .dsn-rti-checklist li,.dsn-rti-trust-note,.dsn-contact-response,.dsn-contact-hours,
  .dsn-contact-map,.dsn-profile-facts>div,.dsn-publisher-disclosure,.dsn-founder-panel,
  .dsn-founder-message,.dsn-transparency-box,.dsn-evidence-box,.dsn-evidence-file,
  .dsn-story-status,.dsn-comments,.dsn-state-filter-bar,.dsn-location-summary,
  .dsn-epaper-empty-state,.dsn-consent-card,.dsn-team-principle-grid article,
  .dsn-team-workflow-grid article,.dsn-v47-featured-video>div:last-child
) :where(p,li,dd,label,small,figcaption,span:not(.dsn-kicker):not([aria-hidden="true"])){color:var(--dsn-v55-body)!important;-webkit-text-fill-color:var(--dsn-v55-body)!important}

/* Buttons keep their intended foreground instead of inheriting card text colours. */
body.dsn-pro-plugin .dsn-main .dsn-btn{color:#fff!important;-webkit-text-fill-color:#fff!important}
body.dsn-pro-plugin .dsn-main .dsn-btn-light{color:#111827!important;-webkit-text-fill-color:#111827!important}
body.dsn-pro-plugin .dsn-main .dsn-btn-outline{color:inherit!important;-webkit-text-fill-color:currentColor!important}
body.dsn-pro-plugin .dsn-home-action-primary .dsn-btn-outline,
body.dsn-pro-plugin .dsn-newsletter-box .dsn-btn-outline,
body.dsn-pro-plugin .dsn-v55-transparency-hero .dsn-btn-outline{color:#fff!important;-webkit-text-fill-color:#fff!important}
