/* Shared action vocabulary, loaded after page styles. No copy or destinations change. */
:root { --tn-button-lime: #8BC63F; --tn-button-lime-hover: #7AB22F; }
body a[data-tn-action] { --action-ink: #092333; --action-blue: #0E4F6E; }
body a[data-tn-action].tn-action--dark { --action-ink: #fff; --action-blue: #DFF2F8; }
body a[data-tn-action] > svg,
body a[data-tn-action] > [aria-hidden="true"] { display: none; }
body a[data-tn-action]::before, body a[data-tn-action]::after { position: static; inset: auto; width: auto; height: auto; background: none; border: 0; box-shadow: none; transform: none; }
body a[data-tn-action].btn--cta,
body a[data-tn-action].btn--download,
body a[data-tn-action].btn--external {
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem; min-height: 48px;
  padding: 13px 21px; border-radius: 5px; font: 600 1rem/1.4 var(--tn-font-body);
  text-decoration: none !important; box-shadow: none !important;
  transition: background-color 180ms ease-out, color 180ms ease-out, transform 180ms ease-out;
}
body a[data-tn-action].btn--cta { background: #8BC63F !important; color: #0A1F2C !important; border: 1.5px solid transparent !important; }
body a[data-tn-action].btn--cta:hover { background: #7AB22F !important; transform: translateY(-1px); }
body a[data-tn-action].btn--cta::after, body a[data-tn-action].btn--cta::before { content: none; }
body a[data-tn-action].btn--download { background: #092333 !important; color: #fff !important; border: 1.5px solid transparent !important; }
body a[data-tn-action].btn--download::before { content: '↓'; font-size: 1.25em; }
body a[data-tn-action].btn--download::after { content: none; }
body a[data-tn-action].btn--download:hover { background: #0E4F6E !important; }
body a[data-tn-action].btn--download.tn-action--dark { background: #fff !important; color: #092333 !important; }
body a[data-tn-action].btn--download.tn-action--dark:hover { background: #DFF2F8 !important; }
body a[data-tn-action].btn--external { background: transparent !important; color: var(--action-ink) !important; border: 1.5px solid var(--action-ink) !important; }
body a[data-tn-action].btn--external::before { content: none; }
body a[data-tn-action].btn--external::after { content: '↗'; }
body a[data-tn-action].btn--external:hover { background: #092333 !important; color: #fff !important; }
body a[data-tn-action].btn--external.tn-action--dark:hover { background: #fff !important; color: #092333 !important; }
body a[data-tn-action].link--page,
body a[data-tn-action].link--jump,
body a[data-tn-action].btn--secondary {
  display: inline-flex; align-items: center; justify-content: flex-start; gap: .4em;
  min-height: 44px; padding: .35em 0; border: 0 !important; border-radius: 0;
  background: transparent !important; color: var(--action-blue) !important; box-shadow: none !important;
  font: 700 1rem/1.4 var(--tn-font-body); text-decoration: underline !important; text-underline-offset: .2em;
  transform: none;
}
body a[data-tn-action].link--jump { font-family: var(--tn-font-mono); font-size: .85rem; }
body a[data-tn-action].link--page::before, body a[data-tn-action].link--jump::before { content: none; }
body a[data-tn-action].link--page::after { content: '→'; transition: margin-left 180ms ease-out; }
body a[data-tn-action].link--page:hover::after { margin-left: 4px; }
body a[data-tn-action].link--jump::after { content: none; }
body a[data-tn-action].btn--secondary:hover { background: transparent !important; transform: none; }
body a[data-tn-action]:focus-visible { outline: 3px solid #1E9FD6; outline-offset: 4px; }
/* Action controls retain their native form/filter behavior without competing lime fills. */
body main [data-tn-control] { background: #092333 !important; color: #fff !important; border-color: #092333 !important; }
body main [data-tn-control]:hover { background: #0E4F6E !important; }
body main [data-tn-control]:disabled { opacity: .55; cursor: not-allowed; }
@media (prefers-reduced-motion: reduce) {
  body a[data-tn-action], body a[data-tn-action]::after { transition: none; }
  body a[data-tn-action]:hover { transform: none; }
  body a[data-tn-action].link--page:hover::after { margin-left: 0; }
}

body main .filter-chip.is-current, body main .events-switch a.is-current { background: #092333 !important; color: #fff !important; border-color: #092333 !important; }

/* First paint must not depend on the footer classifier arriving. Existing
 * action links default to their href's purpose, never a legacy lime fill.
 * JavaScript selects the one main CTA; it does not reveal or enable links. */
body main { --tn-pre-action-ink: #092333; --tn-pre-action-blue: #0E4F6E; --tn-pre-download-fill: #092333; --tn-pre-download-ink: #fff; }
body main :is(.bc-hero, .bc-contact, .industry-estimate, .hero--constellation, .home-momentum-hero, .home-paths, .services-hero, .alliance-hero, .contact-hero, .nova-hub__hero, .nova-hub__card--podcast, .nova-hub__card--video, .podcast-hero, .podcast-format, .podcast-episodes, .visual-rich-section--ink, .visual-panel--dark, .section--ink) { --tn-pre-action-ink: #fff; --tn-pre-action-blue: #DFF2F8; --tn-pre-download-fill: #fff; --tn-pre-download-ink: #092333; }
body main :is(.bc-case, .bc-path, .industry-tool, .bc-integration, .choice-card, .proof-card, .archive-card) { --tn-pre-action-ink: #092333; --tn-pre-action-blue: #0E4F6E; --tn-pre-download-fill: #092333; --tn-pre-download-ink: #fff; }
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action]) {
  display: inline-flex; align-items: center; justify-content: flex-start; gap: .4em;
  min-height: 44px; padding: .35em 0; border: 0 !important; border-radius: 0;
  background: transparent !important; color: var(--tn-pre-action-blue) !important; box-shadow: none !important;
  font: 700 1rem/1.4 var(--tn-font-body); text-decoration: underline !important; text-underline-offset: .2em; transform: none;
}
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action]) > :is(svg, [aria-hidden="true"]) { display: none; }
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action])::before, body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action])::after { position: static; inset: auto; width: auto; height: auto; background: none; border: 0; box-shadow: none; transform: none; }
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action])::before { content: none; }
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action])::after { content: '→'; }
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action])[href^="#"] { font-family: var(--tn-font-mono); font-size: .85rem; }
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action])[href^="#"]::after { content: none; }
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action]):is([href$=".pdf" i], [href*=".pdf?" i], [href*=".pdf#" i]) {
  justify-content: center; gap: .65rem; min-height: 48px; padding: 13px 21px; border-radius: 5px;
  font: 600 1rem/1.4 var(--tn-font-body); text-decoration: none !important;
  background: var(--tn-pre-download-fill) !important; color: var(--tn-pre-download-ink) !important; border: 1.5px solid transparent !important;
}
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action]):is([href$=".pdf" i], [href*=".pdf?" i], [href*=".pdf#" i])::before { content: '↓'; font-size: 1.25em; }
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action]):is([href$=".pdf" i], [href*=".pdf?" i], [href*=".pdf#" i])::after { content: none; }
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action])[href^="http"]:not([href^="https://trunova.ai/"], [href^="https://www.trunova.ai/"], [href^="https://estimate.trunova.ai"], [data-booking-open], [href$=".pdf" i], [href*=".pdf?" i], [href*=".pdf#" i]) {
  justify-content: center; gap: .65rem; min-height: 48px; padding: 13px 21px; border-radius: 5px;
  font: 600 1rem/1.4 var(--tn-font-body); text-decoration: none !important;
  color: var(--tn-pre-action-ink) !important; border: 1.5px solid var(--tn-pre-action-ink) !important;
}
body main :is(a.button, a.wp-block-button__link, a.wp-element-button, a.text-link, a.nova-hub__jump, a.nova-hub__button, a.podcast-episodes__button, .alliance-nav a, .bc-case a[href], a.services-path__link, a[href^="#"]):not([data-tn-action])[href^="http"]:not([href^="https://trunova.ai/"], [href^="https://www.trunova.ai/"], [href^="https://estimate.trunova.ai"], [data-booking-open], [href$=".pdf" i], [href*=".pdf?" i], [href*=".pdf#" i])::after { content: '↗'; }
body main :is(button, input[type="submit"], input[type="button"]):not(dialog *, [class*="art-note"] *) { background: #092333 !important; color: #fff !important; border-color: #092333 !important; }

/* The Customer Insights template includes a decorative arrow in the submit
 * label text. Keep the vendor form untouched in JavaScript while presenting
 * the approved button label without that decoration. */
body main .trunova-ci-form button.submitButton[aria-label="Send my message"] > span,
body main [data-trunova-ci-form] button.submitButton[aria-label="Send my message"] > span { font-size: 0; }
body main .trunova-ci-form button.submitButton[aria-label="Send my message"] > span::after,
body main [data-trunova-ci-form] button.submitButton[aria-label="Send my message"] > span::after { content: 'Send my message'; font-size: 1rem; }
