/* =============================================================
   NordOps Consulting, v2 consistency layer (18 Oct 2026).
   Loaded LAST on every page. The inner pages were restyled in two
   sets (v2-pages-a.css and v2-pages-b.css) that drifted apart; this
   layer gives every inner page (body.v2u) one set of rules:
   - one hero: left text, picture on the right
   - one section rhythm: hero, then base / tint / base ...
   - one card: always one step lighter than the section it sits on
   - one grid: equal columns
   - one closing call to action: text left, button right
   - one footer, flush with the page
   The `html` prefix lifts specificity above both page sets.
   ============================================================= */

/* ---------- Footer: no gap, same navy as the page (all v2 pages) ---------- */
html body.v2 #site-footer > footer {
  margin-top: 0; background: var(--v2-surface); border-top: 1px solid var(--v2-line);
}

/* ---------- Section rhythm ---------- */
html body.v2u section:nth-of-type(odd):not(.page-hero):not(.cta-section) { background: var(--v2-surface); }
html body.v2u section:nth-of-type(even):not(.page-hero):not(.cta-section) { background: var(--v2-surface-2); }
html body.v2u section { padding: clamp(72px, 8.5vw, 124px) 0; }

/* ---------- Hero: the same on every inner page ---------- */
html body.v2u .page-hero {
  text-align: left; overflow: hidden;
  padding: calc(var(--nav-h) + clamp(44px, 5.5vw, 84px)) 0 clamp(56px, 6vw, 88px);
  border-bottom: 1px solid var(--v2-line);
  background: radial-gradient(70% 90% at 100% 0%, rgba(0, 200, 212, 0.12), transparent 60%), var(--v2-surface);
}
html body.v2u .page-hero .container { position: relative; }
html body.v2u .page-hero h1 {
  font-size: clamp(36px, 4vw, 56px); font-weight: 800; line-height: 1.05;
  letter-spacing: -0.03em; margin: 0 0 24px; max-width: 18ch;
}
html body.v2u .page-hero h1 em { display: block; }
html body.v2u .page-hero .lead { margin: 0; max-width: 56ch; font-size: clamp(17px, 1.35vw, 19px); color: var(--v2-text-2); }
html body.v2u .page-hero .lead + .lead { margin-top: 16px; }
html body.v2u .page-hero.has-visual .container {
  padding-right: calc(40% + 24px); min-height: 440px;
  display: flex; flex-direction: column; justify-content: center;
}
html body.v2u .page-hero.has-visual .container::after {
  content: ""; position: absolute; right: 24px; top: 50%; transform: translateY(-50%);
  width: min(36%, 460px); aspect-ratio: 1 / 1; max-height: none;
  background: var(--v2p-hero-img) center / cover no-repeat;
  border-radius: var(--v2-r);
  box-shadow: 0 40px 80px -40px rgba(0, 200, 212, 0.25), inset 0 0 0 1px var(--v2-line);
}
html body.v2u .page-hero .byline { margin-top: 24px; color: var(--v2-text-3); font-size: 14px; }

/* ---------- Cards: one surface rule ---------- */
html body.v2u .card-panel,
html body.v2u .credential-card,
html body.v2u .card,
html body.v2u .card-accent-top,
html body.v2u .card-data,
html body.v2u .insight-card,
html body.v2u .contact-card,
html body.v2u .portal-feature,
html body.v2u .position-box,
html body.v2u .processor-flow__step,
html body.v2u .scenario-card,
html body.v2u .soft-return {
  background: var(--v2-surface-2) !important; border: 0 !important; border-radius: var(--v2-r) !important;
  box-shadow: inset 0 0 0 1px var(--v2-line) !important; padding: clamp(26px, 3vw, 38px) !important;
  transform: none !important; margin-top: 0;
}
html body.v2u section:nth-of-type(even) .card-panel,
html body.v2u section:nth-of-type(even) .credential-card,
html body.v2u section:nth-of-type(even) .card,
html body.v2u section:nth-of-type(even) .card-accent-top,
html body.v2u section:nth-of-type(even) .card-data,
html body.v2u section:nth-of-type(even) .insight-card,
html body.v2u section:nth-of-type(even) .contact-card,
html body.v2u section:nth-of-type(even) .portal-feature,
html body.v2u section:nth-of-type(even) .position-box,
html body.v2u section:nth-of-type(even) .processor-flow__step,
html body.v2u section:nth-of-type(even) .scenario-card,
html body.v2u section:nth-of-type(even) .soft-return { background: var(--v2-surface-3) !important; }
html body.v2u .card-panel:hover,
html body.v2u .insight-card:hover,
html body.v2u .scenario-card:hover { box-shadow: inset 0 0 0 1px var(--v2-line-2) !important; }
html body.v2u .insight-card:hover { box-shadow: inset 0 0 0 1px var(--v2-accent) !important; }
html body.v2u .card-panel::before, html body.v2u .soft-return::before,
html body.v2u .position-box::before, html body.v2u .card-accent-top::before { display: none !important; }
html body.v2u .card-panel h3, html body.v2u .card-data h3, html body.v2u .portal-feature h3,
html body.v2u .processor-flow__step h3, html body.v2u .contact-card h3 {
  font-family: var(--font-heading); font-size: clamp(19px, 1.6vw, 21px); line-height: 1.25;
  letter-spacing: -0.015em; text-transform: none; color: var(--v2-text); font-weight: 700;
}
html body.v2u .card-panel p, html body.v2u .card-data p, html body.v2u .portal-feature p,
html body.v2u .processor-flow__step p, html body.v2u .processor-flow__desc,
html body.v2u .contact-card p, html body.v2u .portal-feature__desc { font-size: 16px; color: var(--v2-text-2); }
html body.v2u .processor-flow__step--first { border-style: none !important; }

/* Featured treatments that read as mistakes: retired */
html body.v2u .grid-3 > :first-child,
html body.v2u .insight-list .insight-card:first-child,
html body.v2u .v2p-bento > :first-child,
html body.v2u .v2p-cascade > *,
html body.v2u .v2p-joined > * { background-image: none !important; }
html body.v2u .v2p-bento > :first-child { min-height: 0; justify-content: flex-start; }
html body.v2u .v2p-bento > :first-child h3 { font-size: clamp(19px, 1.6vw, 21px); max-width: none; }
html body.v2u .v2p-cascade > :nth-child(n) { margin-left: 0; margin-right: 0; }
html body.v2u .v2p-joined > * { background-color: var(--v2-surface-2) !important; }
html body.v2u section:nth-of-type(even) .v2p-joined > * { background-color: var(--v2-surface-3) !important; }
html body.v2u .v2p-tiers > :nth-child(2) { transform: none !important; }

/* Open columns and step rows become ordinary cards */
html body.v2u .v2p-open > *, html body.v2u .v2p-steps > * {
  background: var(--v2-surface-2) !important; border-top: 0 !important;
  border-radius: var(--v2-r) !important; box-shadow: inset 0 0 0 1px var(--v2-line) !important;
  padding: clamp(26px, 3vw, 38px) !important;
}
html body.v2u section:nth-of-type(even) .v2p-open > *,
html body.v2u section:nth-of-type(even) .v2p-steps > * { background: var(--v2-surface-3) !important; }
html body.v2u .v2p-open > * h3 { font-size: clamp(19px, 1.6vw, 21px); }

/* Ruled rows: also for h4 titles */
html body.v2u .v2p-rows > * > h4 { grid-column: 1; margin: 0; }
html body.v2u .v2p-rows > * > :not(h3):not(h4) { grid-column: 2; margin: 0 0 8px; }

/* ---------- Grids: equal columns ---------- */
html body.v2u .grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 16px; }
html body.v2u .grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
html body.v2u .alt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 32px 0; }

/* ---------- Links built as cards or buttons: no prose underline effect ---------- */
html body.v2 a.insight-card { display: block !important; background-size: auto; padding-bottom: clamp(26px, 3vw, 38px) !important; }
html body.v2 a.insight-card:hover { color: inherit; }
html body.v2 a.btn-calc-outline, html body.v2 a.btn-calc-primary {
  display: inline-flex !important; align-items: center; gap: 10px; background-image: none !important;
  padding: 15px 28px !important; border-radius: 999px; font-size: 15px; font-weight: 600;
}
html body.v2 a.btn-calc-primary { background: var(--v2-accent) !important; color: #04121f !important; }
html body.v2 a.btn-calc-outline { box-shadow: inset 0 0 0 1px var(--v2-line-2); color: var(--v2-text); }
html body.v2 a.btn-calc-outline:hover { box-shadow: inset 0 0 0 1px var(--v2-accent); color: var(--v2-accent); }

/* ---------- Content column: everything left-aligned to the container ---------- */
html body.v2u .container [style*="margin: 0 auto"],
html body.v2u .container [style*="margin:0 auto"],
html body.v2u .container [style*="auto;"],
html body.v2u .container [style*=" auto "] { margin-left: 0 !important; margin-right: 0 !important; }
html body.v2u .container [style*="text-align:center"],
html body.v2u .container [style*="text-align: center"] { text-align: left !important; }
html body.v2u .timeline, html body.v2u .faq-list, html body.v2u .legal-content,
html body.v2u .legal-body, html body.v2u .contact-steps, html body.v2u .run-numbers,
html body.v2u .legal-nav { margin-left: 0 !important; margin-right: auto !important; text-align: left !important; }

/* ---------- Lists ---------- */
html body.v2u .benefit-list { list-style: none; padding: 0; margin: 16px 0 0; }
html body.v2u .benefit-list li { padding: 12px 0; border-top: 1px solid var(--v2-line); color: var(--v2-text-2); }
html body.v2u .benefit-list li strong { color: var(--v2-text); }
html body.v2u .comparison ul li { padding-left: 20px !important; position: relative; }
html body.v2u .comparison-before ul li::before { background: var(--v2-text-3) !important; }
html body.v2u .comparison-after ul li::before { background: var(--v2-accent) !important; }
html body.v2u [style*="var(--success)"], html body.v2u [style*="var(--warning)"] { color: var(--v2-accent) !important; }

/* ---------- Quotes and numerals: one sans style ---------- */
html body.v2u .processor-constraint__lead,
html body.v2u .pull, html body.v2u .pull-quote, html body.v2u blockquote.pull p {
  font-family: var(--font-heading) !important; font-style: normal !important; font-weight: 500;
  font-size: clamp(21px, 2.2vw, 28px); line-height: 1.3; letter-spacing: -0.02em; color: var(--v2-text) !important;
  background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; max-width: 40ch;
}
html body.v2u blockquote.pull { margin: 40px 0; padding: 0 0 0 24px !important; border-left: 2px solid var(--v2-accent) !important; }
html body.v2u blockquote.pull cite, html body.v2u blockquote.pull p cite { display: block; margin-top: 14px; font-style: normal; font-size: 14px; color: var(--v2-text-3); }
html body.v2u .processor-constraint { background: none !important; border: 0 !important; padding-left: 24px !important; border-left: 2px solid var(--v2-accent) !important; }
html body.v2u .mega-numeral {
  font-family: var(--font-heading); font-variation-settings: normal; font-weight: 800;
  font-size: clamp(88px, 11vw, 160px); line-height: .85; letter-spacing: -0.06em;
  background: none; -webkit-text-fill-color: var(--v2-accent); color: var(--v2-accent); padding: 0;
}
html body.v2u .mega-numeral::after { display: none; }
html body.v2u .founder-spread__name { font-family: var(--font-heading) !important; font-variation-settings: normal; font-weight: 800; letter-spacing: -0.03em; }
html body.v2u .career-year { width: 150px; flex: 0 0 150px; word-break: normal; overflow-wrap: normal; hyphens: none; }

/* ---------- FAQ ---------- */
html body.v2u .faq-wrap { max-width: 860px; }
html body.v2u .faq-item { background: var(--v2-surface-3); border: 0; border-radius: var(--v2-r-sm); box-shadow: inset 0 0 0 1px var(--v2-line); margin-bottom: 10px; }

/* ---------- Articles ---------- */
html body.v2-article .article-body li { max-width: 62ch; }
html body.v2-article .article-body ul.plain { list-style: none; padding-left: 0; }
html body.v2-article .article-body > :first-child { margin-top: 0; }

/* ---------- Closing call to action: one layout everywhere ---------- */
html body.v2u .cta-section {
  text-align: left; padding: clamp(88px, 10vw, 140px) 0;
  background: linear-gradient(180deg, var(--v2-surface) 0%, #0b2033 100%) !important; border-top: 1px solid var(--v2-line);
}
html body.v2u .cta-section::before { display: none; }
html body.v2u .cta-section > .container {
  text-align: left !important; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  column-gap: clamp(32px, 6vw, 96px); align-items: end;
}
html body.v2u .cta-section > .container > * { grid-column: 1; margin-left: 0 !important; margin-right: 0 !important; text-align: left !important; }
html body.v2u .cta-section > .container > .btn-primary,
html body.v2u .cta-section > .container > a:last-of-type:not(:only-of-type),
html body.v2u .cta-section > .container > .cta-actions,
html body.v2u .cta-section > .container > .hero-ctas { grid-column: 2; grid-row: 1 / span 4; justify-self: start; align-self: end; margin: 0 !important; }
html body.v2u .cta-section h2 { margin: 0 0 16px !important; max-width: 22ch; }
html body.v2u .cta-section p { margin: 0 !important; max-width: 56ch !important; }
html body.v2u .cta-section .eyebrow { margin-bottom: 14px; }

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
  html body.v2u .page-hero.has-visual .container { padding-right: calc(38% + 24px); min-height: 380px; }
}

/* ---------- Headings never hyphenate (mid-word breaks look broken) ---------- */
html body.v2 h1, html body.v2 h2, html body.v2 h3, html body.v2 h4 { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; }
html body.v2u .soft-return { margin-top: 16px; }
html body.v2u .split-section__main .display-heading { margin-bottom: 20px; }
html body.v2u .comparison + h2, html body.v2u section h2 + p { margin-top: 16px; }

/* ---------- Articles: spacing ---------- */
html body.v2-article .article-body .card-panel h3, html body.v2-article .article-body .card-panel h2 { margin-top: 0; }
html body.v2-article .article-body ul, html body.v2-article .article-body ol { margin: 12px 0 1.4rem; }
html body.v2-article .article-body ul.plain li { margin-bottom: 10px; }
html body.v2u .insight-card h2 { text-wrap: pretty; }
html body.v2u .section-header h2 { margin-bottom: 14px; }
html body.v2u blockquote.pull { padding-right: 8px !important; }
html body.v2u blockquote.pull cite, html body.v2u blockquote.pull p cite { font-size: 15px; color: var(--v2-text-2); }

/* ---------- Phone ---------- */
@media (max-width: 768px) {
  html body.v2-article .page-hero h1 { font-size: clamp(28px, 7.4vw, 34px); }
  html body.v2-article section.article-body, html body.v2-article .article-body { padding-top: 36px !important; }

  /* two-column ruled rows stack */
  html body.v2u .v2p-rows > * { grid-template-columns: 1fr !important; gap: 8px !important; }
  html body.v2u .v2p-rows > * > * { grid-column: 1 !important; }
  /* joined grids become separate cards with a gap */
  html body.v2u .v2p-joined { gap: 12px !important; background: none !important; box-shadow: none !important; overflow: visible !important; }
  html body.v2u .v2p-joined > * { border-radius: var(--v2-r) !important; box-shadow: inset 0 0 0 1px var(--v2-line) !important; }
  /* stacked split sections: no stray rule or band above the support column */
  html body.v2u .split-section__support { border-top: 0 !important; padding-top: 0 !important; margin-top: 8px; }
  /* wide tables scroll inside their own box; first column stays visible */
  html body.v2u .summary-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100% !important; font-size: 14px; }
  html body.v2u .summary-table th, html body.v2u .summary-table td { min-width: 120px; }
  html body.v2u .summary-table th:nth-child(2), html body.v2u .summary-table td:nth-child(2) { min-width: 200px; }
  html body.v2u .compare-table th:first-child, html body.v2u .compare-table td:first-child { position: sticky; left: 0; z-index: 1; background: var(--v2-surface-2); box-shadow: 1px 0 0 var(--v2-line-2); }
  /* career timeline: label above text */
  html body.v2u .career-timeline li { flex-direction: column; gap: 6px; }
  html body.v2u .career-year { width: auto !important; flex: 0 0 auto !important; }
  /* scenario strip and metrics */
  html body.v2u .scenario-strip__stats { align-items: end; }
  html body.v2u .scenario-strip__card { padding: 22px !important; }
  html body.v2u .scenario-metric-value { white-space: nowrap; font-size: 20px; }
  /* calculator buttons: full width, label may wrap */
  html body.v2 a.btn-calc-outline, html body.v2 a.btn-calc-primary { display: flex !important; width: 100%; justify-content: center; text-align: center; white-space: normal; }
  /* diagrams and charts too wide for a phone scroll sideways at a readable size */
  html body.v2u .processor-diagram { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  html body.v2u .processor-diagram svg { min-width: 720px; height: auto; }
  html body.v2u .table-panel { overflow-x: auto; }
  html body.v2u .table-panel canvas { min-width: 560px; }
  /* ROI calculator tabs: 2x2 grid of equal buttons */
  html body.v2u .roi-main .tabs { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  html body.v2u .roi-main .tab { width: 100%; text-align: center; justify-content: center; white-space: normal; }
  /* lists keep the page margin */
  html body.v2u .legal-content ul, html body.v2u .legal-body ul, body.v2-legal section ul { padding-left: 22px; }
  /* founder facts breathe */
  html body.v2 .v2-founder__facts { row-gap: 18px; }
  html body.v2 #site-footer .container, html body.v2 #site-footer > footer > div { padding-left: 16px; padding-right: 16px; }

  html body.v2u .page-hero.has-visual .container { padding-right: 16px; min-height: 0; display: block; }
  html body.v2u .page-hero.has-visual .container::after {
    position: static; display: block; transform: none; width: 100%; aspect-ratio: 16 / 10; max-height: 240px; margin-top: 32px;
  }
  html body.v2u .grid-3, html body.v2u .grid-2, html body.v2u .alt-grid { grid-template-columns: 1fr !important; }
  html body.v2u .cta-section > .container { grid-template-columns: 1fr; row-gap: 28px; }
  html body.v2u .cta-section > .container > * { grid-column: 1 !important; grid-row: auto !important; }
  html body.v2u .career-year { width: auto; flex: 0 0 auto; }
}
