/*
 * PDI Product → Services visual adapter
 *
 * This file intentionally reuses the values and interaction language from
 * assets/pdi-services/pdi-services.css. It is an adapter for existing product
 * markup, not a second product design system. Product diagrams, ledgers,
 * dashboards, and status indicators retain their namespaced internals.
 */

.pdi-product-page {
  /* Compatibility aliases for legacy Product-specific rules below. */
  --product-navy: var(--pdi-marketing-navy);
  --product-ink: var(--pdi-marketing-ink);
  --product-blue: var(--pdi-marketing-blue);
  --product-blue-dark: var(--pdi-marketing-blue-dark);
  --product-green: var(--pdi-marketing-green);
  --product-green-light: var(--pdi-marketing-green-light);
  --product-amber: var(--pdi-marketing-amber);
  --product-amber-light: var(--pdi-marketing-amber-light);
  --product-red: var(--pdi-marketing-red);
  --product-slate: var(--pdi-marketing-slate);
  --product-cloud: var(--pdi-marketing-cloud);
  --product-cloud2: var(--pdi-marketing-cloud2);
  --product-line: var(--pdi-marketing-line);
  --product-white: var(--pdi-marketing-white);
  --product-max-width: var(--pdi-marketing-max-width);
  --product-sans: var(--pdi-marketing-sans);
  --product-mono: var(--pdi-marketing-mono);
}

/* ForecastGuard remains legacy internally, but its public shell follows the
   Services hierarchy. The dashboard and Salesforce states are untouched. */
.pdi-product-page.pdi-forecastguard-page {
  font-family: var(--product-sans);
}

.pdi-product-page.pdi-forecastguard-page :where(section) {
  padding: 72px 0;
}

.pdi-product-page.pdi-forecastguard-page :where(.wrap) {
  max-width: var(--product-max-width);
  padding-right: 24px;
  padding-left: 24px;
}

.pdi-product-page.pdi-forecastguard-page :where(.hero) {
  padding: 64px 0 40px;
  border-bottom: 1px solid var(--product-line);
  background: linear-gradient(180deg, var(--product-white) 0%, var(--product-cloud) 100%);
}

.pdi-product-page.pdi-forecastguard-page .hero h1 {
  font-family: var(--product-sans);
  font-size: clamp(36px, 4.3vw, 46px);
}

.pdi-product-page.pdi-forecastguard-page :where(.card, .stat, .pt, .scard, .archbox) {
  border-color: var(--product-line);
  border-radius: 12px;
}

.pdi-product-page.pdi-forecastguard-page :where(.card, .stat) {
  background: var(--product-white);
}

.pdi-product-page.pdi-forecastguard-page :where(.dark) {
  background: var(--product-navy);
}

.pdi-product-page.pdi-forecastguard-page :where(.cta) {
  border-radius: 18px;
  background: linear-gradient(120deg, var(--product-navy), #15406A);
}

/* Kestryl, CloudModernize, and Peregryn retain their technical/editorial
   content structures while their outer page language matches Services. */
.pdi-product-page.kstl-page,
.pdi-product-page.pcm-page,
.pdi-product-page.pgrn-page {
  font-family: var(--product-sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--product-ink);
  background: var(--product-white);
}

.pdi-product-page.kstl-page :where(.kstl-page h1, .kstl-page h2, .kstl-page h3),
.pdi-product-page.pcm-page :where(h1, h2, h3),
.pdi-product-page.pgrn-page :where(h1, h2, h3) {
  font-family: var(--product-sans);
  color: var(--product-navy);
}

.pdi-product-page.kstl-page :where(.kstl-page h1, .pcm-page h1, h1),
.pdi-product-page.pcm-page :where(h1),
.pdi-product-page.pgrn-page :where(h1) {
  font-size: clamp(36px, 4.3vw, 46px);
  font-weight: 800;
  line-height: 1.15;
}

.pdi-product-page.kstl-page :where(.kstl-page h2, h2),
.pdi-product-page.pcm-page :where(h2),
.pdi-product-page.pgrn-page :where(h2) {
  font-size: clamp(28px, 3.1vw, 32px);
  font-weight: 800;
  line-height: 1.18;
}

.pdi-product-page.kstl-page :where(.kstl-page h3, h3),
.pdi-product-page.pcm-page :where(h3),
.pdi-product-page.pgrn-page :where(h3) {
  font-family: var(--product-sans);
  font-size: 20px;
  font-weight: 700;
}

.pdi-product-page.kstl-page :where(.kstl-hero),
.pdi-product-page.pcm-page :where(.pcm-hero),
.pdi-product-page.pgrn-page :where(.pgrn-hero) {
  padding: 64px 0 40px;
  border-bottom: 1px solid var(--product-line);
  background: linear-gradient(180deg, var(--product-white) 0%, var(--product-cloud) 100%);
}

.pdi-product-page.kstl-page :where(.kstl-sec),
.pdi-product-page.pcm-page :where(.pcm-section),
.pdi-product-page.pgrn-page :where(.pgrn-sec) {
  padding: 72px 0;
  border-bottom: 1px solid var(--product-line);
}

.pdi-product-page.kstl-page :where(.kstl-sec--flush) {
  border-bottom: 0;
}

.pdi-product-page.kstl-page :where(.kstl-faq__list) {
  margin-top: 28px;
  border-top: 1px solid var(--product-line);
}

.pdi-product-page.kstl-page :where(.kstl-faq__list details) {
  border-bottom: 1px solid var(--product-line);
}

.pdi-product-page.kstl-page :where(.kstl-faq__list summary) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  list-style: none;
}

.pdi-product-page.kstl-page :where(.kstl-faq__list p) {
  max-width: 76ch;
  margin: 0;
  padding: 0 0 16px;
  color: var(--product-slate);
  font-size: 15px;
}

.pdi-product-page.kstl-page :where(.kstl-grid),
.pdi-product-page.pcm-page :where(.pcm-agent-grid, .pcm-capability-grid),
.pdi-product-page.pgrn-page :where(.pgrn-grid) {
  gap: 20px;
  border: 0;
  background: transparent;
}

.pdi-product-page.kstl-page :where(.kstl-grid .c),
.pdi-product-page.pcm-page :where(.pcm-agent-card, .pcm-capability-grid article, .pcm-path-grid article),
.pdi-product-page.pgrn-page :where(.pgrn-card) {
  border: 1px solid var(--product-line);
  border-radius: 12px;
  background: var(--product-white);
}

.pdi-product-page.kstl-page :where(.kstl-page .kstl-btn),
.pdi-product-page.pcm-page :where(.pcm-btn),
.pdi-product-page.pgrn-page :where(.pgrn-btn) {
  font-family: var(--product-sans);
  font-size: 15px;
  letter-spacing: 0;
  text-transform: none;
}

.pdi-product-page.pcm-page :where(.pcm-page) {
  background: var(--product-white);
}

.pdi-product-page.pcm-page :where(.pcm-section--wash) {
  background: var(--product-cloud);
}

.pdi-product-page.pcm-page :where(.pcm-section--ink) {
  background: var(--product-navy);
}

/* Metadata Scanner public shell; .mock-* and status colors remain product UI. */
.pdi-product-page.pdi-msm-page {
  --accent: var(--pdi-marketing-blue);
  --accent-dark: var(--pdi-marketing-blue-dark);
  --bg: #FFFFFF;
  --surface: var(--pdi-marketing-cloud);
  --text: var(--pdi-marketing-ink);
  --text-secondary: #334155;
  --border: var(--pdi-marketing-line);
  font-family: var(--product-sans);
  color: var(--product-ink);
}

.pdi-product-page.pdi-msm-page :where(section) {
  padding: 72px 24px;
}

.pdi-product-page.pdi-msm-page :where(.container) {
  max-width: var(--product-max-width);
}

.pdi-product-page.pdi-msm-page :where(h1, h2, h3) {
  font-family: var(--product-sans);
  color: var(--product-navy);
}

.pdi-product-page.pdi-msm-page :where(h1) {
  font-size: clamp(36px, 4.3vw, 46px);
  font-weight: 800;
  line-height: 1.15;
}

.pdi-product-page.pdi-msm-page :where(h2) {
  font-size: clamp(28px, 3.1vw, 32px);
  font-weight: 800;
  line-height: 1.18;
}

.pdi-product-page.pdi-msm-page :where(h3) {
  font-size: 20px;
  font-weight: 700;
}

.pdi-product-page.pdi-msm-page :where(p) {
  color: var(--product-slate);
  font-family: var(--product-sans);
  line-height: 1.6;
}

.pdi-product-page.pdi-msm-page :where(.hero) {
  min-height: 0;
  padding-top: 64px;
  padding-bottom: 40px;
  background: linear-gradient(180deg, var(--product-white) 0%, var(--product-cloud) 100%);
}

.pdi-product-page.pdi-msm-page :where(.btn) {
  min-height: 46px;
  padding: 13px 22px;
  border: 1.5px solid var(--product-blue);
  border-radius: 8px;
  font-family: var(--product-sans);
  font-size: 15px;
  font-weight: 600;
}

.pdi-product-page.pdi-msm-page :where(.btn-secondary) {
  color: var(--product-blue);
  background: var(--product-white);
  border-color: var(--product-line);
}

.pdi-product-page.pdi-msm-page :where(.pdi-msm-cta-secondary) {
  margin-left: 12px;
}

.pdi-product-page.pdi-msm-page :where(.feature-card, .perf-card, .paper-card, .testimonial-inner) {
  border: 1px solid var(--product-line);
  border-radius: 12px;
}

.pdi-product-page.pdi-msm-page :where(.feature-card, .perf-card) {
  background: var(--product-white);
}

.pdi-product-page.pdi-msm-page :where(.pdi-msm-faq) {
  background: var(--product-cloud);
}

.pdi-product-page.pdi-msm-page :where(.pdi-msm-faq__label) {
  max-width: none;
  margin-bottom: 12px;
  color: var(--product-blue);
  font-family: var(--product-mono);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pdi-product-page.pdi-msm-page :where(.pdi-msm-faq h2) {
  margin-bottom: 28px;
}

.pdi-product-page.pdi-msm-page :where(.pdi-msm-faq__list) {
  max-width: 800px;
  border-top: 1px solid var(--product-line);
}

.pdi-product-page.pdi-msm-page :where(.pdi-msm-faq__list details) {
  border-bottom: 1px solid var(--product-line);
}

.pdi-product-page.pdi-msm-page :where(.pdi-msm-faq__list summary) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  list-style: none;
}

.pdi-product-page.pdi-msm-page :where(.pdi-msm-faq__list p) {
  max-width: 76ch;
  margin: 0;
  padding: 0 0 16px;
  color: var(--product-slate);
  font-size: 15px;
}

/* QuickBooks public shell. Migration data-state colors remain in the ledger. */
.pdi-product-page.qbn-main-page {
  --blue: var(--pdi-marketing-blue);
  --blue-d: var(--pdi-marketing-blue-dark);
  --navy: var(--pdi-marketing-navy);
  --ink: var(--pdi-marketing-ink);
  --slate: var(--pdi-marketing-slate);
  --cloud: var(--pdi-marketing-cloud);
  --line: var(--pdi-marketing-line);
  font-family: var(--product-sans);
}

.pdi-product-page.qbn-main-page :where(.wrap) {
  max-width: var(--product-max-width);
}

.pdi-product-page.qbn-main-page :where(h1, h2, h3) {
  font-family: var(--product-sans);
  color: var(--product-navy);
}

.pdi-product-page.qbn-main-page :where(h1) {
  font-size: clamp(36px, 4.3vw, 46px);
  font-weight: 800;
  line-height: 1.15;
}

.pdi-product-page.qbn-main-page :where(h2) {
  font-size: clamp(28px, 3.1vw, 32px);
  font-weight: 800;
  line-height: 1.18;
}

.pdi-product-page.qbn-main-page :where(.hero) {
  padding-top: 64px;
  padding-bottom: 40px;
  background: linear-gradient(180deg, var(--product-white) 0%, var(--product-cloud) 100%);
}

.pdi-product-page.qbn-main-page :where(.btn) {
  min-height: 46px;
  border-radius: 8px;
  font-family: var(--product-sans);
  font-size: 15px;
  font-weight: 600;
}

/* Final conversion bands use one dark, high-contrast treatment. The
   destination and wording stay owned by each Product template. */
.pdi-product-page.pdi-msm-page :where(.cta),
.pdi-product-page.qbn-main-page :where(.cta-band) {
  border-top: 0;
  background: linear-gradient(120deg, var(--product-navy), #15406A);
  color: #CFE0F0;
  text-align: center;
}

.pdi-product-page.pdi-msm-page :where(.cta h2, .cta p) {
  color: #fff;
}

.pdi-product-page.pdi-msm-page :where(.cta p) {
  color: #BDD4EC;
}

.pdi-product-page.pdi-msm-page :where(.cta .btn) {
  border-color: var(--product-white);
  background: var(--product-white);
  color: var(--product-blue);
}

.pdi-product-page.qbn-main-page :where(.cta-band h2) {
  color: #fff;
}

.pdi-product-page.qbn-main-page :where(.cta-band p) {
  color: #BDD4EC;
}

.pdi-product-page.qbn-main-page :where(.cta-band .btn-primary) {
  border-color: var(--product-blue);
  background: var(--product-blue);
  color: var(--product-white);
}

.pdi-product-page.qbn-main-page :where(.cta-band .btn-ghost) {
  border-color: rgba(255, 255, 255, .42);
  background: transparent;
  color: var(--product-white);
}

.pdi-product-page.qbn-main-page :where(.cta-band .btn-ghost:hover) {
  border-color: var(--product-white);
  background: rgba(255, 255, 255, .06);
  color: var(--product-white);
}

.pdi-product-page.pgrn-page :where(.pgrn-final),
.pdi-product-page.pcm-page :where(.pcm-section--final),
.pdi-product-page.kstl-page :where(.kstl-sec--flush:last-of-type) {
  border-bottom: 0;
  background: linear-gradient(120deg, var(--product-navy), #15406A);
  color: #CFE0F0;
}

.pdi-product-page.pgrn-page :where(.pgrn-final h2, .pcm-section--final h2,
  .kstl-sec--flush:last-of-type h2) {
  color: var(--product-white);
}

.pdi-product-page.pgrn-page :where(.pgrn-final p, .pcm-section--final p,
  .kstl-sec--flush:last-of-type p) {
  color: #BDD4EC;
}

.pdi-product-page.pgrn-page :where(.pgrn-final .pgrn-btn.ghost),
.pdi-product-page.pcm-page :where(.pcm-section--final .pcm-btn--ghost),
.pdi-product-page.kstl-page :where(.kstl-sec--flush:last-of-type .kstl-btn.ghost) {
  border-color: rgba(255, 255, 255, .42);
  background: transparent;
  color: var(--product-white);
}

/* The two inline technical pages share the Services shell. Their tables,
   metrics, and technical labels remain namespaced below this wrapper. */
.pdi-product-page.pdi-technical-page {
  --tech-ink: var(--pdi-marketing-ink);
  --tech-sub: var(--pdi-marketing-slate);
  --tech-line: var(--pdi-marketing-line);
  --tech-field: var(--pdi-marketing-white);
  --tech-wash: var(--pdi-marketing-cloud);
  --tech-accent: var(--pdi-marketing-blue);
  --tech-navy: var(--pdi-marketing-navy);
  --tech-pale: var(--pdi-marketing-cloud2);
  --tech-deep: var(--pdi-marketing-navy);
  --tech-mint: var(--pdi-marketing-green);
  font-family: var(--product-sans);
  color: var(--tech-ink);
  background: var(--tech-field);
}

.pdi-product-page.pdi-technical-page :where(.wrap) {
  max-width: var(--product-max-width);
  padding-right: 24px;
  padding-left: 24px;
}

.pdi-product-page.pdi-technical-page :where(.hero) {
  padding: 64px 0 40px;
  background: linear-gradient(180deg, var(--product-white) 0%, var(--product-cloud) 100%);
}

.pdi-product-page.pdi-technical-page :where(.crumb, .crumbs) {
  padding: 24px 24px 0;
  color: var(--tech-sub);
  font-size: 13px;
}

.pdi-product-page.pdi-technical-page :where(.crumb a, .crumbs a) {
  color: var(--tech-sub);
}

.pdi-product-page.pdi-technical-page :where(.crumb strong, .crumbs b) {
  color: var(--tech-ink);
  font-weight: 600;
}

.pdi-product-page.pdi-technical-page :where(.lede) {
  max-width: 820px;
  color: var(--tech-sub);
  font-size: 18px;
  line-height: 1.65;
}

.pdi-product-page.pdi-technical-page :where(.eyebrow, .kicker) {
  margin: 0 0 12px;
  color: var(--tech-accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.pdi-product-page.pdi-technical-page :where(.cta-row) {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 24px;
}

.pdi-product-page.pdi-technical-page :where(section) {
  padding: 72px 0;
  border-top: 1px solid var(--tech-line);
}

.pdi-product-page.pdi-technical-page :where(section.wash) {
  background: var(--tech-wash);
}

.pdi-product-page.pdi-technical-page :where(.btn) {
  min-height: 46px;
  padding: 13px 22px;
  border-radius: 8px;
  border: 1.5px solid var(--tech-accent);
  background: var(--tech-accent);
  color: #fff;
  font-family: var(--product-sans);
  font-size: 15px;
  font-weight: 600;
}

.pdi-product-page.pdi-technical-page :where(.btn.ghost) {
  border-color: var(--tech-line);
  background: #fff;
  color: var(--tech-accent);
}

.pdi-product-page.pdi-technical-page :where(.card, .note, .ledger) {
  border-color: var(--tech-line);
  border-radius: 12px;
}

.pdi-product-page.pdi-technical-page :where(.card) {
  background: #fff;
}

.pdi-product-page.pdi-technical-page :where(.ledger) {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--tech-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 20px 50px -32px rgba(10, 37, 64, .30);
}

.pdi-product-page.pdi-technical-page :where(.ledger > div) {
  min-width: 0;
  padding: 26px 22px;
  border-left: 1px solid var(--tech-line);
}

.pdi-product-page.pdi-technical-page :where(.ledger > div:first-child) {
  border-left: 0;
}

.pdi-product-page.pdi-technical-page :where(.fig) {
  color: var(--tech-accent);
  font-family: var(--product-mono);
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.15;
}

.pdi-product-page.pdi-technical-page :where(.fig-l) {
  margin-top: 6px;
  color: var(--tech-sub);
  font-size: 13px;
  line-height: 1.5;
}

.pdi-product-page.pdi-technical-page :where(.basis) {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px dashed var(--tech-line);
  color: var(--tech-sub);
  font-family: var(--product-mono);
  font-size: 10.5px;
  line-height: 1.5;
}

.pdi-product-page.pdi-technical-page :where(.grid2) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.pdi-product-page.pdi-technical-page :where(.grid3) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.pdi-product-page.pdi-technical-page :where(.card) {
  padding: 26px;
  border: 1px solid var(--tech-line);
  border-radius: 12px;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.pdi-product-page.pdi-technical-page :where(.card:hover) {
  border-color: #CDD8E8;
  box-shadow: 0 14px 36px -22px rgba(10, 37, 64, .35);
  transform: translateY(-1px);
}

.pdi-product-page.pdi-technical-page :where(.card h3) {
  margin-bottom: 8px;
  color: var(--product-navy);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}

.pdi-product-page.pdi-technical-page :where(.card p, .sect-sub) {
  color: var(--tech-sub);
  font-size: 15px;
  line-height: 1.6;
}

.pdi-product-page.pdi-technical-page :where(.card .tag, .kicker) {
  display: block;
  margin-bottom: 10px;
  color: var(--tech-accent);
  font-family: var(--product-mono);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .035em;
  line-height: 1.4;
  text-transform: uppercase;
}

.pdi-product-page.pdi-technical-page :where(ol.steps) {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: pdi-step;
}

.pdi-product-page.pdi-technical-page :where(ol.steps li) {
  padding-top: 16px;
  border-top: 2px solid var(--product-ink);
  counter-increment: pdi-step;
}

.pdi-product-page.pdi-technical-page :where(ol.steps li::before) {
  display: block;
  margin-bottom: 8px;
  color: var(--tech-accent);
  content: "0" counter(pdi-step);
  font-family: var(--product-mono);
  font-size: 12px;
}

.pdi-product-page.pdi-technical-page :where(ol.steps h3) {
  margin-bottom: 6px;
  color: var(--product-navy);
  font-size: 20px;
  font-weight: 700;
}

.pdi-product-page.pdi-technical-page :where(ol.steps p) {
  color: var(--tech-sub);
  font-size: 15px;
}

.pdi-product-page.pdi-technical-page :where(table) {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.pdi-product-page.pdi-technical-page :where(th) {
  padding: 10px 14px;
  border-bottom: 1px solid var(--product-ink);
  color: var(--tech-sub);
  font-family: var(--product-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-align: left;
  text-transform: uppercase;
}

.pdi-product-page.pdi-technical-page :where(td) {
  padding: 11px 14px;
  border-bottom: 1px solid var(--tech-line);
  color: var(--tech-sub);
  vertical-align: top;
}

.pdi-product-page.pdi-technical-page :where(td.mono) {
  font-family: var(--product-mono);
  font-size: 13px;
}

.pdi-product-page.pdi-technical-page :where(.note) {
  max-width: 720px;
  padding: 20px 24px;
  border: 1px solid #D7E3F1;
  border-radius: 10px;
  background: var(--product-cloud2);
  color: var(--product-ink);
  font-size: 14.5px;
}

.pdi-product-page.pdi-technical-page :where(.note strong) {
  color: var(--product-navy);
}

.pdi-product-page.pdi-technical-page :where(.note--spaced) {
  margin-top: 26px;
}

.pdi-product-page.pdi-technical-page :where(.note--spaced-sm) {
  margin-top: 22px;
}

.pdi-product-page.pdi-technical-page :where(.pdi-technical-table) {
  max-width: 820px;
}

.pdi-product-page.pdi-technical-page :where(.pdi-section-heading-spaced) {
  margin-top: 48px;
}

.pdi-product-page.pdi-technical-page :where(.prose) {
  max-width: 720px;
}

.pdi-product-page.pdi-technical-page :where(.prose p, .prose ul) {
  color: var(--tech-sub);
  font-size: 16px;
}

.pdi-product-page.pdi-technical-page :where(.prose ul) {
  margin: 0 0 18px;
  padding-left: 22px;
}

.pdi-product-page.pdi-technical-page :where(.prose li) {
  margin: 7px 0;
}

.pdi-product-page.pdi-technical-page :where(.mint, .check) {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--tech-mint);
  font-weight: 600;
}

.pdi-product-page.pdi-technical-page :where(.mint)::before,
.pdi-product-page.pdi-technical-page :where(.check)::before {
  content: "✓";
  font-weight: 800;
}

.pdi-product-page.pdi-technical-page :where(.prose h3) {
  margin: 30px 0 10px;
  color: var(--product-navy);
  font-size: 20px;
  font-weight: 700;
}

.pdi-product-page.pdi-technical-page :where(.cta-band) {
  padding: 72px 0;
  background: linear-gradient(120deg, var(--product-navy), #15406A);
}

.pdi-product-page.pdi-technical-page :where(.cta-band h2) {
  color: #fff;
}

.pdi-product-page.pdi-technical-page :where(.cta-band p) {
  color: #BDD4EC;
}

.pdi-product-page.pdi-technical-page :where(.pdi-faq) {
  max-width: 760px;
  margin-top: 28px;
  border-top: 1px solid var(--tech-line);
}

.pdi-product-page.pdi-technical-page :where(.pdi-faq details) {
  border-bottom: 1px solid var(--tech-line);
}

.pdi-product-page.pdi-technical-page :where(.pdi-faq summary) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  list-style: none;
}

.pdi-product-page.pdi-technical-page :where(.pdi-faq p) {
  margin: 0;
  padding: 0 0 16px;
  color: var(--tech-sub);
  font-size: 15px;
}

@media (max-width: 980px) {
  .pdi-product-page.pdi-msm-page :where(.hero-grid),
  .pdi-product-page.pdi-technical-page :where(.ledger) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .pdi-product-page :where(.wrap, .pgrn-wrap, .kstl-wrap, .pcm-wrap, .qbn-main-page .wrap) {
    padding-right: 20px;
    padding-left: 20px;
  }

  .pdi-product-page :where(.hero, .kstl-hero, .pcm-hero, .pgrn-hero) {
    padding-top: 52px;
    padding-bottom: 36px;
  }

  .pdi-product-page :where(section, .kstl-sec, .pcm-section, .pgrn-sec) {
    padding-top: 52px;
    padding-bottom: 52px;
  }

  .pdi-product-page.pdi-msm-page :where(section) {
    padding-top: 52px;
    padding-bottom: 52px;
  }

  .pdi-product-page.pdi-technical-page :where(.grid2, .grid3, .steps) {
    grid-template-columns: 1fr;
  }

  .pdi-product-page.pdi-technical-page :where(.ledger) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pdi-product-page.pdi-technical-page :where(.ledger > div:nth-child(3)) {
    border-left: 0;
    border-top: 1px solid var(--tech-line);
  }

  .pdi-product-page.pdi-technical-page :where(.ledger > div:nth-child(4)) {
    border-top: 1px solid var(--tech-line);
  }

  .pdi-product-page.pdi-technical-page :where(.cta-row) {
    align-items: stretch;
    flex-direction: column;
  }

  .pdi-product-page.pdi-technical-page :where(.cta-row .btn) {
    width: 100%;
  }
}

@media (max-width: 520px) {
  .pdi-product-label {
    max-width: 100%;
    flex-wrap: wrap;
  }

  .pdi-product-page :where(.wrap, .pgrn-wrap, .kstl-wrap, .pcm-wrap, .qbn-main-page .wrap) {
    padding-right: 18px;
    padding-left: 18px;
  }

  .pdi-product-page :where(.btn, .pgrn-btn, .pcm-btn, .kstl-btn, .qbn-main-page .btn) {
    width: 100%;
  }

  .pdi-product-page.pdi-technical-page :where(.ledger) {
    grid-template-columns: 1fr;
  }

  .pdi-product-page.pdi-technical-page :where(.ledger > div) {
    border-left: 0;
    border-top: 1px solid var(--tech-line);
  }

  .pdi-product-page.pdi-technical-page :where(.ledger > div:first-child) {
    border-top: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pdi-product-page *,
  .pdi-product-page *::before,
  .pdi-product-page *::after {
    transition-duration: .01ms;
    animation-duration: .01ms;
  }
}