/* ==========================================================================
   TextEnvoy Neo-Brutalist Layer — experimental presentation (theme 1.5.0)
   Loads after theme-components.css and restyles the same semantic classes:
   heavy navy ink borders, hard offset shadows, flat brand fills, squared
   corners. Solid borders mark what TextEnvoy provides; dashed borders mark
   planned or supplier-owned items. Dequeue this file to restore 1.4.0.
   ========================================================================== */

:root {
  --nb-ink: #071B37;
  --nb-paper: #FBF8F1;
  --nb-white: #FFFFFF;
  --nb-blue: #065FD4;
  --nb-cyan: #06BFF1;
  --nb-cyan-wash: #DDF5FD;
  --nb-signal: #FFD23F;
  --nb-muted: #4A5B73;
  --nb-bw: 3px;
  --nb-off: 6px;
  --nb-off-sm: 4px;
  --nb-off-lg: 10px;
  --nb-shadow-color: var(--nb-ink);
  --nb-border: var(--nb-bw) solid var(--nb-ink);
  --nb-dashed: var(--nb-bw) dashed var(--nb-ink);
  --nb-grid-dark: linear-gradient(rgba(6, 191, 241, 0.08) 1px, transparent 1px) 0 0 / 2rem 2rem,
    linear-gradient(90deg, rgba(6, 191, 241, 0.08) 1px, transparent 1px) 0 0 / 2rem 2rem;
  --nb-dots: radial-gradient(rgba(7, 27, 55, 0.16) 1.2px, transparent 1.4px) 0 0 / 1.375rem 1.375rem;
}

@media (max-width: 599px) {
  :root {
    --nb-off: 4px;
    --nb-off-sm: 3px;
    --nb-off-lg: 6px;
  }
}

.te-dark-surface {
  --nb-shadow-color: var(--nb-cyan);
}

/* Composite shadows resolve where declared, so every scope that changes
   --nb-shadow-color must be listed here to pick up the new colour. */
:root,
.te-dark-surface,
.te-band-cta-dark,
.te-network-art,
.te-dark-surface .te-btn-primary,
.te-dark-surface .wp-block-button.is-style-te-primary,
.te-band-cta-dark .te-btn-primary,
.te-band-cta-dark .wp-block-button.is-style-te-primary {
  --nb-shadow: var(--nb-off) var(--nb-off) 0 0 var(--nb-shadow-color);
  --nb-shadow-sm: var(--nb-off-sm) var(--nb-off-sm) 0 0 var(--nb-shadow-color);
  --nb-shadow-lg: var(--nb-off-lg) var(--nb-off-lg) 0 0 var(--nb-shadow-color);
}

body {
  background-color: var(--nb-paper);
  color: var(--nb-ink);
}

::selection {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
}

/* Type: heavier, tighter, larger. Inter variable supplies weights to 900. */
h1, h2, h3, h4 {
  font-weight: 800;
}

h1.wp-block-heading,
.te-hero-title {
  font-weight: 850;
  letter-spacing: -0.05em;
  line-height: 1;
}

.te-band-hero h1.wp-block-heading {
  font-size: clamp(2.5rem, 6.4vw, 5.25rem);
}

.te-band-hero > .te-container > h1.wp-block-heading {
  font-size: clamp(2.25rem, 5vw, 4.25rem);
  line-height: 1.04;
}

.te-band h2,
.te-band-cta-dark h2 {
  font-size: clamp(2rem, 3.8vw, 3.25rem);
  font-weight: 850;
  letter-spacing: -0.045em;
  line-height: 1.04;
}

/* Half-width columns get a smaller display size so headings stay 2–3 lines. */
.te-band :is(.te-split-2col, .te-chapter-split, .te-faq-layout, .te-inquiry-grid) h2 {
  font-size: clamp(1.875rem, 2.8vw, 2.5rem);
}

/* Bands butt against each other and the footer instead of leaving blockGap strips. */
.wp-site-blocks > footer,
.wp-block-post-content > :is(.te-band, .te-band-hero) {
  margin-block-start: 0;
}

/* Focus: thick ink ring on light ground, signal yellow on dark ground. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--nb-ink);
  outline-offset: 3px;
}

.te-dark-surface :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.te-footer :where(a, button, [tabindex]):focus-visible {
  outline: 3px solid var(--nb-signal);
  outline-offset: 3px;
}

.te-header :where(a, button, [tabindex]):focus-visible,
.te-mobile-dialog :where(a, button, [tabindex]):focus-visible {
  outline: 3px solid var(--nb-ink);
  outline-offset: 3px;
}

.te-skip-link,
.te-skip-link:focus,
.te-skip-link:focus-visible,
.skip-link.screen-reader-text:focus {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border: var(--nb-border);
  border-radius: 0;
  box-shadow: var(--nb-shadow-sm);
  outline: 0;
}

/* Inline text links inside reading content. */
.te-band :where(p, li, td, dd, figcaption) a:not(.te-btn):not(.wp-block-button__link) {
  color: var(--nb-ink);
  font-weight: 650;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-decoration-color: var(--nb-blue);
  text-underline-offset: 0.2em;
}

.te-band :where(p, li, td, dd, figcaption) a:not(.te-btn):not(.wp-block-button__link):hover {
  background-color: var(--nb-signal);
  text-decoration-color: var(--nb-ink);
}

/* ==========================================================================
   Buttons — flat fill, ink border, hard shadow that "presses" on click
   ========================================================================== */
.te-btn,
.wp-block-button .wp-block-button__link,
.te-menu-toggle,
.te-dialog-close {
  border: var(--nb-border);
  border-radius: 0;
  box-shadow: var(--nb-shadow-sm);
  font-weight: 800;
  letter-spacing: -0.005em;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
}

.te-btn:hover,
.wp-block-button .wp-block-button__link:hover,
.te-menu-toggle:hover,
.te-dialog-close:hover {
  transform: translate(-2px, -2px);
  box-shadow: calc(var(--nb-off-sm) + 2px) calc(var(--nb-off-sm) + 2px) 0 0 var(--nb-shadow-color);
}

.te-btn:active,
.wp-block-button .wp-block-button__link:active,
.te-menu-toggle:active,
.te-dialog-close:active {
  transform: translate(var(--nb-off-sm), var(--nb-off-sm));
  box-shadow: 0 0 0 0 var(--nb-shadow-color);
}

.te-btn-primary,
.te-btn-primary:hover,
.wp-block-button.is-style-te-primary .wp-block-button__link,
.wp-block-button.is-style-te-primary .wp-block-button__link:hover {
  background-color: var(--nb-cyan);
  border-color: var(--nb-ink);
  color: var(--nb-ink) !important;
}

/* On dark grounds the primary keeps its cyan fill, so its shadow turns white. */
.te-dark-surface .te-btn-primary,
.te-dark-surface .wp-block-button.is-style-te-primary {
  --nb-shadow-color: var(--nb-white);
}

.te-btn-secondary-dark,
.wp-block-button.is-style-te-secondary-dark .wp-block-button__link {
  background-color: transparent;
  color: var(--nb-white) !important;
  border-color: var(--nb-white);
  box-shadow: none;
}

.te-btn-secondary-dark:hover,
.wp-block-button.is-style-te-secondary-dark .wp-block-button__link:hover {
  background-color: var(--nb-white);
  border-color: var(--nb-white);
  color: var(--nb-ink) !important;
  box-shadow: none;
}

/* ==========================================================================
   Header (light) & mobile dialog
   ========================================================================== */
.te-header {
  background-color: var(--nb-white);
  color: var(--nb-ink);
  border-block-end: var(--nb-border);
  padding-block: 0.75rem;
}

.te-header .wp-block-navigation ul,
.te-nav-list {
  gap: 0.5rem;
}

.te-header .wp-block-navigation a,
.te-nav-list a {
  color: var(--nb-ink);
  font-weight: 700;
  padding: 0.375rem 0.625rem;
  border: 2px solid transparent;
}

.te-header .wp-block-navigation a:hover,
.te-nav-list a:hover {
  color: var(--nb-ink);
  text-decoration: none;
  border-color: var(--nb-ink);
  background-color: var(--nb-cyan-wash);
}

.te-header .wp-block-navigation a[aria-current="page"],
.te-nav-list a[aria-current="page"] {
  color: var(--nb-ink);
  text-decoration: none;
  border-color: var(--nb-ink);
  background-color: var(--nb-signal);
}

/* Bordered nav chips are wider than classic links, so 1024–1279px needs
   tighter spacing to keep the links and the CTA on one line. */
.te-header .wp-block-navigation a,
.te-header .wp-block-button__link {
  white-space: nowrap;
}

@media (min-width: 1024px) and (max-width: 1279px) {
  .te-desktop-nav-wrap {
    gap: 1.25rem;
  }

  .te-header .wp-block-navigation ul,
  .te-nav-list {
    gap: 0.25rem;
  }

  .te-header .wp-block-navigation a,
  .te-nav-list a {
    padding-inline: 0.375rem;
  }

  .te-header .wp-block-button .wp-block-button__link {
    padding-inline: 1rem;
  }
}

.te-menu-toggle,
.te-dialog-close {
  background-color: var(--nb-white);
  color: var(--nb-ink);
  border-color: var(--nb-ink);
}

.te-mobile-dialog {
  background-color: var(--nb-paper);
  color: var(--nb-ink);
  border-inline-start: var(--nb-border);
}

.te-mobile-dialog::backdrop {
  background-color: rgba(7, 27, 55, 0.6);
}

.te-mobile-dialog-top {
  border-block-end: var(--nb-border);
}

.te-mobile-nav-links {
  gap: 0.625rem;
}

.te-mobile-nav-links a {
  color: var(--nb-ink);
  font-weight: 800;
  border: var(--nb-border);
  border-radius: 0;
  background-color: var(--nb-white);
  box-shadow: var(--nb-shadow-sm);
}

.te-mobile-nav-links a:hover,
.te-mobile-nav-links a[aria-current="page"] {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
}

/* ==========================================================================
   Bands — colour-blocked sections divided by heavy rules
   ========================================================================== */
.te-band {
  border-block: 0;
  border-block-start: var(--nb-border);
}

.te-band-white {
  background-color: var(--nb-paper);
}

.te-band-mist {
  background: var(--nb-dots), var(--nb-cyan-wash);
  border-block: 0;
  border-block-start: var(--nb-border);
}

.te-band-hero {
  background: var(--nb-grid-dark), var(--nb-ink);
}

.te-band-cta-dark {
  background: var(--nb-grid-dark), var(--nb-blue);
  border-block-start: var(--nb-border);
  --nb-shadow-color: var(--nb-ink);
}

.te-band-cta-dark .te-hero-lead {
  color: var(--nb-white);
}

/* The primary CTA on the blue band reads best with an ink shadow. */
.te-band-cta-dark .te-btn-primary,
.te-band-cta-dark .wp-block-button.is-style-te-primary {
  --nb-shadow-color: var(--nb-ink);
}

/* Eyebrows become sticker labels. */
.te-eyebrow,
.te-dark-surface .te-eyebrow {
  display: inline-flex;
  padding: 0.3125rem 0.6875rem;
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border: 2px solid var(--nb-ink);
  border-radius: 0;
  box-shadow: 3px 3px 0 0 var(--nb-shadow-color);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Hero stickers sit slightly askew. `rotate` composes with entrance transforms. */
.te-band-hero .te-eyebrow {
  rotate: -1.5deg;
}

.te-eyebrow-dot {
  border-radius: 0;
  background-color: var(--nb-ink);
}

.te-hero-lead {
  color: #DCE6F3;
}

.te-page-hero-note {
  color: #B9CAE0;
  border-inline-start: 4px solid var(--nb-cyan);
  padding-inline-start: 0.875rem;
}

/* ==========================================================================
   Home hero — facts strip and connection-model card
   ========================================================================== */
.te-hero-facts {
  border-block-start: 0;
  padding-block-start: 0;
  gap: 1rem;
}

.te-hero-facts li {
  color: #DCE6F3;
  padding: 0.875rem 1rem;
  border: 2px solid #3B5A85;
  border-block-start: 6px solid var(--nb-cyan);
  background-color: rgba(11, 35, 70, 0.85);
}

.te-hero-facts li::before {
  display: none;
}

.te-hero-facts strong {
  color: var(--nb-white);
}

.te-network-art {
  --nb-shadow-color: var(--nb-ink);
  --nb-art-pad: clamp(1rem, 2.5vw, 1.5rem);
  padding: var(--nb-art-pad);
  background: var(--nb-paper);
  border: var(--nb-border);
  border-radius: 0;
  box-shadow: var(--nb-off-lg) var(--nb-off-lg) 0 0 var(--nb-cyan);
  color: var(--nb-ink);
}

.te-art-topline {
  margin: calc(-1 * var(--nb-art-pad)) calc(-1 * var(--nb-art-pad)) 1.5rem;
  padding: 0.625rem var(--nb-art-pad);
  background-color: var(--nb-ink);
  color: var(--nb-white);
  font-weight: 700;
}

.te-network-endpoint {
  padding: 0.75rem 0.875rem;
  background-color: var(--nb-white);
  border: var(--nb-border);
  box-shadow: var(--nb-shadow-sm);
}

.te-network-endpoint small,
.te-network-core small {
  color: var(--nb-muted);
  font-weight: 700;
}

.te-network-endpoint strong {
  color: var(--nb-ink);
  font-weight: 750;
}

.te-node-icon {
  border: var(--nb-border);
  border-radius: 0;
  background-color: var(--nb-cyan);
  color: var(--nb-ink);
  font-weight: 800;
}

.te-network-wire {
  border-inline-start: var(--nb-dashed);
  margin-inline-start: 2.125rem;
}

.te-network-wire::after {
  border-right: var(--nb-border);
  border-bottom: var(--nb-border);
  width: 10px;
  height: 10px;
  left: -6.5px;
}

.te-network-wire span {
  color: var(--nb-ink);
  font-weight: 700;
}

.te-network-core {
  background: var(--nb-blue);
  border: var(--nb-border);
  border-radius: 0;
  box-shadow: var(--nb-shadow);
}

.te-network-core small {
  color: var(--nb-white);
}

.te-network-core strong span {
  color: var(--nb-white);
}

.te-core-symbol {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border: var(--nb-border);
  border-radius: 0;
  font-weight: 900;
}

.te-core-tag {
  background-color: var(--nb-white);
  color: var(--nb-ink);
  border: 2px solid var(--nb-ink);
  border-radius: 0;
  font-weight: 700;
}

.te-network-art figcaption {
  color: var(--nb-muted);
  border-top: var(--nb-border);
  font-weight: 600;
}

/* ==========================================================================
   Shared card treatment
   ========================================================================== */
.te-ledger-box,
.te-schematic-card,
.te-checklist-card,
.te-step-item,
.te-cost-layer-card,
.te-owner-card,
.te-form-card,
.te-sidebar-card,
.te-price-platform,
.te-faq-item,
.wp-block-details,
.te-table-wrapper,
.te-architecture,
.te-commercial-banner {
  border: var(--nb-border);
  border-radius: 0;
  box-shadow: var(--nb-shadow);
}

/* Planned or supplier-owned: dashed outline, no shadow. */
.te-ledger-box--exclude,
.te-planned-callout,
.te-price-supplier,
.te-cost-layer-card--supplier {
  border: var(--nb-dashed);
  border-radius: 0;
  box-shadow: none;
}

.te-ledger-box,
.te-checklist-card,
.te-step-item,
.te-owner-card,
.te-form-card,
.te-faq-item,
.wp-block-details,
.te-cost-layer-card,
.te-architecture {
  background-color: var(--nb-white);
}

.te-ledger-box--exclude,
.te-price-supplier,
.te-cost-layer-card--supplier {
  background: repeating-linear-gradient(-45deg, transparent 0 11px, rgba(7, 27, 55, 0.05) 11px 13px), var(--nb-paper);
}

.te-ledger-box h3,
.te-checklist-card strong,
.te-owner-card h3 {
  color: var(--nb-ink);
}

.te-ledger-box--exclude ul {
  color: var(--nb-muted);
}

.te-ledger-stack {
  gap: 1.75rem;
}

.te-scope-note,
.te-band-mist .te-scope-note {
  padding: 0.875rem 1rem;
  background-color: var(--nb-white);
  border: 2px solid var(--nb-ink);
  border-inline-start: 8px solid var(--nb-ink);
  border-radius: 0;
  color: var(--nb-ink);
}

/* ==========================================================================
   Architecture figure
   ========================================================================== */
.te-architecture {
  --nb-arch-pad: clamp(1.25rem, 3vw, 2.25rem);
  padding: var(--nb-arch-pad);
  box-shadow: var(--nb-shadow-lg);
}

.te-architecture-label {
  margin: calc(-1 * var(--nb-arch-pad)) calc(-1 * var(--nb-arch-pad)) 0;
  padding: 0.75rem var(--nb-arch-pad);
  background-color: var(--nb-ink);
  color: var(--nb-white);
  border-bottom: 0;
  font-weight: 700;
}

.te-architecture-label span {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  padding: 0 0.5rem;
  font-weight: 700;
}

.te-arch-end {
  align-self: stretch;
  padding: 1.25rem;
  background-color: var(--nb-paper);
  border: var(--nb-border);
}

.te-arch-number {
  color: var(--nb-blue);
  font-weight: 800;
}

.te-architecture p {
  color: var(--nb-muted);
}

.te-arch-arrow {
  color: var(--nb-ink);
  font-size: 2.25rem;
  font-weight: 900;
}

.te-arch-switch {
  background-color: var(--nb-blue);
  border: var(--nb-border);
  border-radius: 0;
  box-shadow: var(--nb-shadow);
}

.te-arch-switch .te-arch-number {
  color: var(--nb-white);
}

.te-arch-switch ul {
  color: var(--nb-white);
  font-weight: 600;
}

.te-arch-switch li {
  border-top: 2px solid rgba(255, 255, 255, 0.45);
}

.te-receipt-path {
  border-block: var(--nb-dashed);
  color: var(--nb-ink);
  font-weight: 700;
}

.te-receipt-note {
  color: var(--nb-muted);
  font-weight: 500;
}

.te-control-planes > div {
  padding: 1.125rem 1.25rem;
  border: var(--nb-border);
  background-color: var(--nb-white);
}

.te-control-planes > div:last-child {
  border-style: dashed;
  background-color: var(--nb-paper);
}

.te-control-planes p {
  margin-block-start: 0.375rem;
}

.te-architecture figcaption {
  color: var(--nb-muted);
  border-top: var(--nb-border);
}

/* ==========================================================================
   Numbered buying reasons
   ========================================================================== */
.te-pillar-list {
  border-block-start: var(--nb-border);
}

.te-pillar-row {
  grid-template-columns: 5rem minmax(0, 1fr) minmax(0, 1.35fr);
  border-block-end: var(--nb-border);
  align-items: start;
}

@media (max-width: 859px) {
  .te-pillar-row {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
}

.te-pillar-num {
  display: inline-grid;
  place-items: center;
  inline-size: 3.75rem;
  block-size: 3.75rem;
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border: var(--nb-border);
  box-shadow: var(--nb-shadow-sm);
  font-size: 1.375rem;
  font-weight: 800;
}

.te-pillar-row h3 {
  color: var(--nb-ink);
  font-size: clamp(1.25rem, 2vw, 1.625rem);
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.te-pillar-row p {
  color: var(--nb-muted);
}

.te-benefit-link,
.te-band .te-benefit-link {
  color: var(--nb-ink);
  font-weight: 800;
  text-decoration: none;
  box-shadow: inset 0 -0.45em 0 var(--nb-cyan);
}

.te-benefit-link:hover,
.te-band .te-benefit-link:hover {
  background-color: transparent;
  box-shadow: inset 0 -1.4em 0 var(--nb-signal);
}

/* ==========================================================================
   Workflow explorer
   ========================================================================== */
.te-workflow-visual .te-workflow-tabs {
  gap: 0.875rem;
}

.te-workflow-tab-btn,
.te-workflow-visual .te-workflow-tab-btn {
  background-color: var(--nb-white);
  color: var(--nb-ink);
  border: var(--nb-border);
  border-radius: 0;
  box-shadow: var(--nb-shadow-sm);
  transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
}

.te-workflow-visual .te-workflow-tab-btn:hover {
  background-color: var(--nb-white);
  border-color: var(--nb-ink);
  transform: translate(-2px, -2px);
  box-shadow: calc(var(--nb-off-sm) + 2px) calc(var(--nb-off-sm) + 2px) 0 0 var(--nb-ink);
}

.te-workflow-visual .te-workflow-tab-btn small {
  color: var(--nb-muted);
}

.te-workflow-visual .te-workflow-tab-btn[aria-expanded="true"] {
  background-color: var(--nb-ink);
  color: var(--nb-white);
  border-color: var(--nb-ink);
  box-shadow: 0 0 0 0 var(--nb-ink);
  transform: translate(var(--nb-off-sm), var(--nb-off-sm));
}

.te-workflow-visual .te-workflow-tab-btn[aria-expanded="true"] small {
  color: #DCE6F3;
}

.te-wf-tab-number {
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  inline-size: 2rem;
  block-size: 2rem;
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border: 2px solid var(--nb-ink);
  font-weight: 800;
}

.te-workflow-visual .te-workflow-tab-btn[aria-expanded="true"] .te-wf-tab-number {
  color: var(--nb-ink);
  border-color: var(--nb-signal);
}

.te-workflow-visual .te-workflow-tab-btn[aria-expanded="true"]:focus-visible {
  outline-color: var(--nb-ink);
}

.te-workflow-visual .te-schematic-card {
  border: var(--nb-border);
  box-shadow: var(--nb-shadow);
  margin-bottom: 1.5rem;
}

.te-schematic-card {
  background-color: var(--nb-white);
}

.te-wf-disclosure,
.te-schematic-banner {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border-bottom: var(--nb-border);
  font-weight: 800;
}

.te-wf-disclosure span {
  font-weight: 600;
}

.te-workflow-canvas {
  background: var(--nb-dots), var(--nb-paper);
  border: var(--nb-border);
  border-radius: 0;
}

.te-workflow-node {
  border: var(--nb-border);
  border-radius: 0;
  box-shadow: var(--nb-shadow-sm);
}

.te-workflow-node--core {
  background-color: var(--nb-blue);
  border-color: var(--nb-ink);
}

.te-workflow-node--core .te-wf-label {
  color: var(--nb-white);
}

.te-workflow-node--core > span:last-child {
  color: var(--nb-white);
}

.te-wf-label {
  color: var(--nb-muted);
  font-weight: 700;
}

.te-wf-connector {
  color: var(--nb-ink);
  font-weight: 900;
  font-size: 1.5rem;
}

.te-wf-sheet-heading,
.te-wf-definition > div {
  border-bottom: 2px solid var(--nb-ink);
}

.te-wf-chip,
.te-wf-status {
  background-color: var(--nb-white);
  color: var(--nb-ink);
  border: 2px solid var(--nb-ink);
  border-radius: 0;
  font-weight: 700;
}

.te-wf-status--receipt {
  background-color: var(--nb-cyan-wash);
  color: var(--nb-ink);
}

.te-wf-note {
  color: var(--nb-ink);
  font-weight: 700;
}

.te-wf-step {
  border: var(--nb-border);
  border-radius: 0;
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  font-weight: 800;
}

.te-wf-timeline li:not(:last-child)::after {
  width: 3px;
  inset-inline-start: calc(1rem - 1.5px);
  background: var(--nb-ink);
}

.te-schematic-meta {
  background-color: var(--nb-paper);
  border: 2px solid var(--nb-ink);
  border-radius: 0;
}

.te-schematic-caption {
  color: var(--nb-muted);
}

/* ==========================================================================
   Responsibility layers, readiness strip, pricing model
   ========================================================================== */
.te-ownership-grid {
  gap: 1.75rem;
}

.te-owner-card--platform {
  background-color: var(--nb-blue);
  border-color: var(--nb-ink);
}

.te-owner-card--platform h3,
.te-owner-card--platform p,
.te-owner-card--platform li,
.te-owner-card--platform .te-owner-foot {
  color: var(--nb-white);
}

.te-owner-card .te-wf-label {
  align-self: flex-start;
  padding: 0.125rem 0.5rem;
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border: 2px solid var(--nb-ink);
}

.te-owner-card--platform .te-wf-label {
  color: var(--nb-ink);
}

.te-owner-foot,
.te-owner-card--platform .te-owner-foot {
  border-top: 2px solid currentColor;
  font-weight: 700;
}

.te-readiness-strip {
  align-items: center;
  border-block: 0;
  padding: 1rem 1.25rem;
  background-color: var(--nb-white);
  border: var(--nb-border);
  box-shadow: var(--nb-shadow-sm);
  color: var(--nb-ink);
}

.te-readiness-strip strong {
  background-color: var(--nb-ink);
  color: var(--nb-white);
  padding: 0.25rem 0.625rem;
}

.te-readiness-strip span {
  padding: 0.25rem 0.625rem;
  border: 2px solid var(--nb-ink);
  font-weight: 600;
}

.te-pricing-model {
  gap: 1.75rem;
}

.te-price-platform {
  background-color: var(--nb-blue);
  color: var(--nb-white);
}

.te-price-platform .te-price-label,
.te-price-supplier .te-price-label {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  border: 2px solid var(--nb-ink);
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  font-weight: 800;
}

.te-price-supplier .te-price-label {
  background-color: var(--nb-white);
}

.te-price-supplier {
  color: var(--nb-muted);
}

.te-price-supplier h3 {
  color: var(--nb-ink);
}

.te-price-unit {
  font-weight: 800;
}

.te-price-platform .te-price-unit {
  color: var(--nb-white);
}

.te-price-supplier .te-price-unit {
  color: var(--nb-ink);
}

.te-price-divider {
  display: grid;
  place-items: center;
  justify-self: center;
  inline-size: 3rem;
  block-size: 3rem;
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border: var(--nb-border);
  box-shadow: var(--nb-shadow-sm);
  font-size: 1.75rem;
  font-weight: 900;
}

.te-commercial-note {
  color: var(--nb-ink);
  padding-inline-start: 1rem;
  border-inline-start: 6px solid var(--nb-ink);
}

/* ==========================================================================
   Tables
   ========================================================================== */
.te-table-wrapper {
  background-color: var(--nb-white);
}

.te-table caption {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border-block-end: var(--nb-border);
  font-weight: 800;
}

.te-table thead th {
  background-color: var(--nb-ink);
  font-weight: 800;
}

.te-table tbody th,
.te-table tbody td {
  border-block-end: 2px solid var(--nb-ink);
}

.te-table tbody th {
  background-color: var(--nb-cyan-wash);
  color: var(--nb-ink);
  border-inline-end: 2px solid var(--nb-ink);
}

@container (width < 600px) {
  .te-table tbody tr {
    border-block-end: var(--nb-border);
  }

  .te-table tbody th {
    border-inline-end: 0;
    background-color: var(--nb-cyan-wash);
  }

  .te-table tbody td {
    border-block-end: 0;
  }
}

/* ==========================================================================
   Callouts, checklists, steps
   ========================================================================== */
.te-commercial-banner {
  background-color: var(--nb-ink);
}

.te-planned-callout {
  background-color: var(--nb-white);
}

.te-planned-badge,
.te-step-badge {
  display: inline-block;
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border: 2px solid var(--nb-ink);
  border-radius: 0;
  padding: 0.25rem 0.625rem;
  font-weight: 800;
  justify-self: start;
}

.te-checklist-grid,
.te-step-sequence {
  gap: 1.5rem;
}

.te-step-item {
  box-shadow: var(--nb-shadow-sm);
}

.te-staging-gate-banner {
  background-color: var(--nb-signal);
  border: var(--nb-dashed);
  border-radius: 0;
  color: var(--nb-ink);
  font-weight: 600;
}

.te-inquiry-steps {
  gap: 1.75rem;
}

.te-inquiry-steps li {
  padding: 1.25rem;
  background-color: var(--nb-white);
  border: var(--nb-border);
  box-shadow: var(--nb-shadow);
}

.te-inquiry-steps span {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  border: 2px solid var(--nb-ink);
  font-weight: 800;
}

.te-inquiry-steps p {
  color: var(--nb-muted);
}

/* ==========================================================================
   FAQ disclosures
   ========================================================================== */
.te-faq-stack {
  gap: 1.125rem;
}

.te-faq-item,
.wp-block-details {
  box-shadow: var(--nb-shadow-sm);
}

.te-faq-item summary,
.wp-block-details summary {
  color: var(--nb-ink);
  font-weight: 800;
}

.te-faq-item summary:hover,
.wp-block-details summary:hover {
  background-color: var(--nb-cyan-wash);
}

.te-faq-item summary::after,
.wp-block-details summary::after {
  display: grid;
  place-items: center;
  inline-size: 1.875rem;
  block-size: 1.875rem;
  background-color: var(--nb-white);
  color: var(--nb-ink);
  border: 2px solid var(--nb-ink);
  line-height: 1;
}

.te-faq-item[open] summary,
.wp-block-details[open] summary {
  background-color: var(--nb-cyan-wash);
  border-block-end: var(--nb-border);
}

.te-faq-item[open] summary::after,
.wp-block-details[open] summary::after {
  background-color: var(--nb-signal);
}

.te-faq-answer,
.wp-block-details > *:not(summary) {
  padding-block-start: 1rem;
  color: var(--nb-ink);
}

/* ==========================================================================
   Inquiry form
   ========================================================================== */
.te-form-card {
  box-shadow: var(--nb-shadow-lg);
}

.te-sidebar-card {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
}

.te-form-label,
.te-fieldset legend {
  color: var(--nb-ink);
  font-weight: 800;
}

.te-field-hint {
  color: var(--nb-muted);
}

.te-input,
.te-select,
.te-textarea {
  border: var(--nb-border);
  border-radius: 0;
  color: var(--nb-ink);
  transition: box-shadow 0.12s ease;
}

.te-input:focus,
.te-select:focus,
.te-textarea:focus {
  box-shadow: var(--nb-off-sm) var(--nb-off-sm) 0 0 var(--nb-cyan);
}

.te-fieldset {
  border: var(--nb-border);
  border-radius: 0;
}

.te-radio-option input[type="radio"] {
  accent-color: var(--nb-ink);
}

.te-input:user-invalid,
.te-select:user-invalid,
.te-textarea:user-invalid,
.te-input.user-invalid-fallback,
.te-select.user-invalid-fallback,
.te-textarea.user-invalid-fallback,
.te-input[data-server-invalid="true"],
.te-select[data-server-invalid="true"],
.te-textarea[data-server-invalid="true"] {
  border-color: #B31412;
  box-shadow: var(--nb-off-sm) var(--nb-off-sm) 0 0 #B31412;
}

.te-alert {
  border-radius: 0;
  border-width: var(--nb-bw);
  box-shadow: var(--nb-off-sm) var(--nb-off-sm) 0 0 currentColor;
  font-weight: 600;
}

.te-privacy-note {
  background-color: var(--nb-paper);
  border: 2px dashed var(--nb-ink);
  border-radius: 0;
  color: var(--nb-ink);
}

/* ==========================================================================
   Footer
   ========================================================================== */
.te-footer {
  background: var(--nb-grid-dark), var(--nb-ink);
  border-block-start: var(--nb-border);
  box-shadow: inset 0 8px 0 0 var(--nb-cyan);
  padding-block-start: 3.5rem;
}

.te-footer-heading {
  color: var(--nb-cyan);
  font-weight: 800;
}

/* The chip padding is pulled back so link text lines up with the column headings. */
.te-footer-links a {
  margin-inline-start: -0.25rem;
  color: var(--nb-white);
  font-weight: 700;
  padding: 0.125rem 0.25rem;
}

.te-footer-links a:hover,
.te-footer-links a[aria-current="page"] {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  text-decoration: none;
}

.te-footer-bottom {
  border-block-start: 2px dashed #3B5A85;
}

.te-legal-links-list a:hover {
  background-color: var(--nb-signal);
  color: var(--nb-ink);
  text-decoration: none;
}
