/* =============================================================================
   PoCForge contrast polish — sitewide additive override.
   Load after: pocforge-theme styles.css, blog.css, deep-research.css,
   inline #pocforge-responsive and #pocforge-contrast.
   Brand kept: page #050607, accent #ff6a2a. No new palette.
   Reversible: deactivate/delete this plugin. No !important.
   ============================================================================= */

:root {
  --pf-card: #171f29;          /* was #0b0e12 / #101419 */
  --pf-card-sink: #121922;     /* inset fields, one step under the card */
  --pf-card-raise: #1c2632;    /* chips sitting on a card */
  --pf-band: #0c1219;          /* alternate section, still under the card */
  --pf-line: rgba(255,255,255,.16);
  --pf-line-strong: rgba(255,255,255,.24);
  --pf-hairline: rgba(255,106,42,.55); /* brand orange, hairline only */
  --pf-body: #aeb6c0;          /* was #9ba5af / #969fa9 / article #c8ccd2 */
  --pf-meta: #a8b2bc;          /* was #686d75–#7f8a95 on small labels */
}

/* --- Cards: separate from page #050607 (surface contrast was ~1.05) --- */
body .bento-card,
body .service-card,
body .service,
body .attack-console,
body .method-wrap,
body .method-panel,
body .pricing-builder,
body .similar-wrap,
body .contact-form,
body .solution-card,
body .seo-section,
body .seo-card,
body .faq details,
body .proof-banner,
body .btn.ghost {
  background: var(--pf-card);
  border-color: var(--pf-line);
}

body .bento-card.large {
  background: linear-gradient(145deg, #1c1814, var(--pf-card));
}
body .service-main {
  background: linear-gradient(140deg, #1a1612, var(--pf-card));
}
body .service-ai {
  background: linear-gradient(145deg, #1c1612, var(--pf-card));
}

body .method-tabs,
body .method-tab {
  background: #121820;
  border-color: var(--pf-line);
}
body .method-visual,
body .estimate-panel,
body .method-tags span {
  background: var(--pf-card-raise);
  border-color: var(--pf-line);
}

/* Chips and inputs: one step off the card so they don't flatten into it */
body .choice,
body .segmented button,
body .region-choice,
body .similar-card,
body .industry-cloud span,
body .contact-form input,
body .contact-form select,
body .contact-form textarea,
body .choice-hint {
  background: var(--pf-card-raise);
  border-color: var(--pf-line);
}
body .contact-form input,
body .contact-form select,
body .contact-form textarea {
  background: var(--pf-card-sink);
}

body .seo-table th {
  background: var(--pf-card-raise);
}

/* --- Section breaks: alternate band + hairline, page stays #050607 --- */
body .section.services-section,
body .section.who-we-help,
body .section.industries,
body .stats-strip,
body .security-domains {
  background: var(--pf-band);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -1px 0 rgba(255,255,255,.12);
}

body .approach-strip {
  background: #101820;
  box-shadow:
    inset 0 2px 0 var(--pf-hairline),
    inset 0 -1px 0 rgba(255,255,255,.10);
}

body .section.pricing-section {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}

body footer.footer {
  border-top: 1px solid var(--pf-line-strong);
}

/* Stacked SEO blocks read as separate slabs, not one muddy column */
body .seo-section,
body .seo-card {
  box-shadow: 0 0 0 1px rgba(255,255,255,.04), 0 16px 40px rgba(0,0,0,.28);
}

/* --- Type: only the pairs that were muddy or failed AA --- */
body .bento-card p,
body .service-card p,
body .service p,
body .seo-section p,
body .seo-section li,
body .seo-card p,
body .faq details p,
body .solution-content p,
body .similar-card p,
body .solutions-cta-box p,
body .method-content p,
body .approach-item p {
  color: var(--pf-body);
}

body .card-num,
body .service-top,
body .copyright,
body .breadcrumbs,
body .contact-form small,
body .region-note,
body .choice-hint,
body .domains-inner,
body .visual-caption,
body .metric-new span,
body .signal-label,
body .article-meta,
body .featured-meta,
body .card-bottom,
body .research-card-new .card-num,
body .article-toc a {
  color: var(--pf-meta);
}

/* Research surfaces.
   blog-page / single-research / post-type-archive-research are classes ON
   body. "body .blog-page" never matched, so 0.1.0 left hub cards on the
   blog.css near-black gradient (#111 → #090909) and left article widgets
   on #080808 / #0b0a09. These selectors are body.blog-page (and the CPT
   classes) so they apply on the hub and every research single.
   Later inline #pocforge-responsive rules (.pf-figure, .pf-stages, .pf-ix)
   are 0,1,0 and lose to these. No !important. */

body.blog-page .research-card-new,
body.post-type-archive-research .research-card-new,
body.single-research .research-card-new {
  background: linear-gradient(145deg, #1a1e24, #12161c);
  border-color: var(--pf-line);
}
body.blog-page .research-card-new:hover,
body.post-type-archive-research .research-card-new:hover {
  border-color: rgba(255,106,42,.40);
}

body.blog-page .research-signal,
body.blog-page .article-toc,
body.blog-page .metric-new,
body.blog-page .research-note,
body.blog-page .featured-art,
body.blog-page .article-visual,
body.single-research .article-toc,
body.single-research .metric-new,
body.single-research .research-note,
body.single-research .article-visual,
body.single-research .interactive-result,
body.single-research .article-main pre {
  background: #14181e;
  border-color: var(--pf-line);
}

body.blog-page .research-note {
  color: var(--pf-body);
}

body.blog-page .featured-research,
body.post-type-archive-research .featured-research {
  background:
    linear-gradient(135deg, rgba(255,106,42,.10), rgba(255,255,255,.03)),
    #171f29;
  border-color: rgba(255,106,42,.40);
}

/* Inactive filter chips were #0d0d0d. Active/hover stay the orange wash. */
body.blog-page .research-filters button,
body.post-type-archive-research .research-filters button {
  background: var(--pf-card-raise);
  border-color: var(--pf-line);
  color: var(--pf-meta);
}
body.blog-page .research-filters button.active,
body.blog-page .research-filters button:hover,
body.post-type-archive-research .research-filters button.active,
body.post-type-archive-research .research-filters button:hover {
  border-color: rgba(255,106,42,.55);
  color: #fff;
  background: rgba(255,106,42,.09);
}

/* Hub band: toolbar + card grid are not .section elements, so the slab
   is the band (#0c1219) and the cards sit on it. */
body.post-type-archive-research .research-toolbar {
  background: var(--pf-band);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  margin: 30px 0 0;
  padding: 18px 22px 12px;
  border-radius: 22px 22px 0 0;
}
body.post-type-archive-research .research-grid-new {
  background: var(--pf-band);
  box-shadow: inset 0 -1px 0 rgba(255,255,255,.12);
  margin-top: 0;
  padding: 8px 22px 22px;
  border-radius: 0 0 22px 22px;
}

/* Single-post band under the nav: full-bleed strip behind the meta row. */
body.single-research .article-meta {
  position: relative;
  z-index: 0;
  padding: 12px 16px;
  border-radius: 14px;
}
body.single-research .article-meta::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  top: -28px;
  bottom: -20px;
  background: var(--pf-band);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -1px 0 rgba(255,255,255,.12);
}

/* Article widgets. Inline post CSS and #pocforge-responsive paint these
   #050607 / #0b0a09 / #080808 — same as the page. */
body.single-research .interactive-box,
body.single-research .pf-figure,
body.single-research .pf-stages,
body.single-research .pf-ix,
body.single-research .pf-killchain {
  background: var(--pf-card);
  border-color: var(--pf-line);
}
body.single-research .article-main th,
body.single-research .pf-ix__bar,
body.single-research .pf-stages__bar,
body.single-research .pf-killchain__bar,
body.single-research .pf-ix__rail label,
body.single-research .pf-stages__chip,
body.single-research .pf-stages__btn,
body.single-research .pf-killchain__btn {
  background: var(--pf-card-raise);
  border-color: var(--pf-line);
}
body.single-research .pf-ix__panel,
body.single-research .pf-stages__panel,
body.single-research .pf-killchain__panel {
  background: var(--pf-card-sink);
}
body.single-research .pf-figure figcaption,
body.single-research .pf-stages__hint,
body.single-research .pf-ix__hint,
body.single-research .pf-killchain__hint {
  color: var(--pf-meta);
}
body.single-research .pf-ix__rail input:checked + label,
body.single-research .pf-stages__chip[aria-current="true"],
body.single-research .pf-killchain__btn[aria-pressed="true"] {
  background: rgba(255,106,42,.16);
  border-color: #ff6a2a;
  color: #ffb08a;
}

/* Article type.
   Live markup (api-bola and the deep-dive sample) is
   .article-main > h1.article-title + p.article-dek + .article-content.
   There is no .article-hero, and no rule for .article-title, so the h1
   inherits .article-main color #c8ccd2 — same as the body. h2/h3 are #fff.
   Body moves to #aeb6c0 (~2.05:1 vs white, 8:1 vs #050505). */
body .article-shell .article-main {
  color: var(--pf-body);
}
body .article-shell .article-main h1,
body .article-shell .article-main .article-title,
body .article-shell .article-main h2,
body .article-shell .article-main h3,
body.single-research .article-main h1,
body.single-research .article-title,
body.single-research .research-hero h1,
body.post-type-archive-research .research-hero h1,
body.post-type-archive-research .research-toolbar h2,
body.post-type-archive-research .featured-copy h2,
body.blog-page .research-card-new h3 {
  color: #ffffff;
}
body .article-shell .article-main .article-dek {
  color: #c5ced6; /* between white h1 and #aeb6c0 body; .article-hero .dek never matched */
}
body .deep-article .article-main p:first-child {
  color: #c5ced6; /* was #e1e3e6 where that class is present */
}

/* Orange accent and page ground are intentionally not reset */
