/* Vector RTK public staging palette. Colour only: preserve existing layout.
 * Each light component establishes its own text/link colours; descendants inherit
 * these tokens, so editorial white never leaks into functional light surfaces. */
body {
  --vector-ink: #f2f2f2;
  --vector-muted: #c4c4c4;
  --vector-link: #f26522;
  --vector-error: #ffb4b4;
  background-color: #171717;
  color: var(--vector-ink);
}
body #page, body #content, body #primary, body #primary > .article {
  background-color: #171717;
  color: var(--vector-ink);
}
body #primary :is(.vrtk-service, .vrtk-discovery) { color: var(--vector-ink); }
body #primary :is(h1,h2,h3,h4,h5,h6) { color: var(--vector-ink); }
body #primary :is(.vrtk-eyebrow,.vrtk-discovery-kicker,.vrtk-reliability div > p:last-child) {
  color: var(--vector-ink);
}
body #primary :is(em, figcaption, .woocommerce-breadcrumb, .woocommerce-result-count) {
  color: var(--vector-muted);
}
body #primary #cov h3 + h3 { color: var(--vector-muted); }
body #primary a:not(:is(.button,[class*="button"],.vrtk-datasheet,.woocommerce-loop-product__link,.woocommerce-loop-category__link,.vrtk-discovery-category)) {
  color: var(--vector-link);
}
body #primary a:not(:is(.button,[class*="button"],.vrtk-datasheet)):is(:hover,:focus-visible) {
  text-decoration: underline;
  text-underline-offset: .2em;
}

/* Existing white / grey cards, information boxes and purchase surfaces. */
body #primary :where(
  .vrtk-card,.vrtk-muted,.vrtk-callout,.vrtk-feature,.vrtk-price,
  .vrtk-reliability li,#cov figure,#price:not(.vrtk-service) > p,#contact.vrtk-split,
  .vrtk-privacy,.vrtk-message-form,.vrtk-local-note,
  .vrtk-plan,.vrtk-service-note,.vrtk-service-status,
  .vrtk-discovery-card,.vrtk-discovery-plan-list,.vrtk-discovery-category,
  .vrtk-discovery-crosslinks,.vrtk-catalogue-empty,
  ul.products li.product,div.product .summary,.page-description,
  .woocommerce-info,.woocommerce-message,.woocommerce-error,
  form.login,form.register,form.checkout_coupon,
  .woocommerce-MyAccount-navigation,table.shop_table,table.shop_attributes,
  #payment,.payment_box,.woocommerce-tabs ul.tabs li
) {
  --vector-ink: #23201f;
  --vector-muted: #595959;
  --vector-link: #23201f;
  --vector-error: #b32d2e;
  color: var(--vector-ink);
}
/* The separate partners page uses a transparent section; Home keeps its grey panel. */
body:not(.page-id-8) #primary #dp {
  --vector-ink: #f2f2f2;
  --vector-muted: #c4c4c4;
  --vector-link: #f26522;
  color: var(--vector-ink);
}
body.page-id-8 #primary .vrtk-message-form { background-color: #fff; }
/* Dark islands inside light components keep their original white labels. */
body #primary :is(.vrtk-live-hero,.vrtk-subpage-title,.vrtk-industry,
  .vrtk-price h3,.woocommerce-products-header > h1,.entry-header > h1,
  .woocommerce-MyAccount-navigation li.is-active,.woocommerce-tabs ul.tabs li.active) {
  --vector-ink: #f2f2f2;
  --vector-muted: #c4c4c4;
  --vector-link: #f2f2f2;
  color: var(--vector-ink);
}
body #primary .vrtk-live-hero .vrtk-live-tagline { color: #f26522; }
body #primary :is(.vrtk-price-amount,.vrtk-saving,.vrtk-approved-saving,.vrtk-monthly strong) {
  color: var(--vector-ink);
}
body #primary :is(.vrtk-product-features li,.vrtk-plan li)::marker { color: var(--vector-ink); }

/* Header/footer colours only: existing 70px logo and flex alignment are untouched. */
body #masthead, body #colophon { background-color: #151515 !important; color: #f2f2f2; border-color: #454545; }
body #masthead .site-title a { color: #f2f2f2 !important; }
body #masthead #primary-menu a { color: #f2f2f2; }
body #masthead #primary-menu > .menu-item-has-children > .sub-menu { background-color: #23201f; border-color: #555; border-top-color: #f26522; }
body #masthead #primary-menu > .menu-item-has-children > .sub-menu a { color: #f2f2f2; }
body #masthead #primary-menu > .menu-item-has-children > .sub-menu a:is(:hover,:focus-visible) { background-color: #151515; color: #f26522; }
body #masthead #primary-menu a:is(:hover,:focus-visible),
body #masthead #primary-menu :is(.current-menu-item,.current-menu-ancestor) > a {
  color: #f26522; background-color: #23201f;
}
body #masthead #primary-menu > li:last-child > a { background-color: #f26522; color: #23201f; }
body #masthead #primary-menu > li:last-child > a:is(:hover,:focus-visible) { background-color: #fff; color: #23201f; }
body #masthead .menu-toggle, body #masthead .menu-toggle::after { color: #23201f; }
body #colophon :is(a,p,.site-info) { color: #f2f2f2; }
body #colophon a:is(:hover,:focus-visible) { color: #f26522; }

/* Native WooCommerce controls, notices and tabular data stay light. */
body #primary :is(input:not([type=checkbox],[type=radio],[type=submit],[type=button],[type=hidden]),select,textarea),
body .select2-container :is(.select2-selection,.select2-dropdown),body .select2-results {
  background-color: #fff; color: #23201f; border-color: #888; color-scheme: light;
}
body #primary ::placeholder { color: #666; opacity: 1; }
body #primary :is(input,select,textarea):focus-visible { outline: 2px solid #f26522; outline-offset: 2px; }
body .select2-container .select2-selection__rendered { color: #23201f; }
body .select2-container .select2-results__option--highlighted[aria-selected],
body .select2-container .select2-results__option--highlighted[data-selected] { background-color: #23201f; color: #fff; }
body #primary :is(table.shop_table,table.shop_attributes) { background-color: #f7f7f7; }
body #primary :is(.woocommerce-error,.woocommerce-info,.woocommerce-message) { background-color: #f7f7f7; }
body #primary .woocommerce-error { border-top-color: #b32d2e; }
body #primary .woocommerce-error::before { color: #b32d2e; }
body #primary .woocommerce-invalid label, body #primary .required { color: var(--vector-error); }
body #primary .woocommerce-invalid :is(input,select,textarea) { border-color: #b32d2e; }
body #primary div.product .woocommerce-product-gallery { background-color: #fff; }
body #primary .woocommerce nav.woocommerce-pagination ul li :is(a,span) { background-color: #f7f7f7; color: #23201f; }
body #primary .woocommerce nav.woocommerce-pagination ul li :is(.current,a:hover,a:focus-visible) { background-color: #f26522; color: #23201f; }
body #primary .vrtk-catalogue-nav a { border-color: #777; }
body #primary .vrtk-catalogue-nav a:is([aria-current],:hover,:focus-visible) { background-color: #f26522; color: #23201f; border-color: #f26522; }
body #primary .woocommerce a.remove { color: #b32d2e !important; }
body #primary .woocommerce a.remove:hover { background-color: #b32d2e; color: #fff !important; }
/* PopularFX makes the mobile remove row black; keep this control on a light surface. */
body #primary table.shop_table td.product-remove { background-color: #f7f7f7 !important; }

/* Contact form presentation only. Existing markup and behaviour are unchanged. */
body.page-id-25 #primary .vrtk-contact-form > div { min-width: 0; }
body.page-id-25 #primary .vrtk-message-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  padding: 32px;
  background: #fff;
  color: #23201f;
  border: 1px solid #d0d0d0;
  border-radius: 4px;
}
body.page-id-25 #primary .vrtk-message-form,
body.page-id-25 #primary .vrtk-message-form * { box-sizing: border-box; }
body.page-id-25 #primary .vrtk-message-form .vrtk-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 20px;
  min-width: 0;
}
body.page-id-25 #primary .vrtk-message-form label {
  display: block;
  min-width: 0;
  margin: 0;
  color: #23201f;
  line-height: 1.5;
}
body.page-id-25 #primary .vrtk-message-form input:not([type=checkbox]),
body.page-id-25 #primary .vrtk-message-form textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 48px;
  margin: 8px 0 0;
  padding: 12px 14px;
  font: inherit;
  line-height: 1.5;
  background: #f7f7f7;
  color: #23201f;
  border: 1px solid #aaa;
  border-radius: 3px;
}
body.page-id-25 #primary .vrtk-message-form textarea { min-height: 160px; resize: vertical; }
body.page-id-25 #primary .vrtk-message-form .vrtk-consent {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  line-height: 1.65;
}
body.page-id-25 #primary .vrtk-message-form input[type=checkbox] {
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
}
body.page-id-25 #primary .vrtk-message-form button {
  justify-self: start;
  max-width: 100%;
  min-height: 48px;
  margin: 4px 0;
  padding: 13px 22px;
}
body.page-id-25 #primary .vrtk-message-form .vrtk-local-note {
  max-width: 100%;
  margin: 0;
  padding: 18px;
  font-size: 14px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
@media (max-width: 900px) {
  body.page-id-25 #primary .vrtk-message-form { padding: 28px; }
  body.page-id-25 #primary .vrtk-message-form .vrtk-form-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Coverage: the map sits 16px up/left of an off-white backing layer.
   Both layers stay inside the existing figure footprint. */
body.page-id-19 #primary #cov figure {
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  min-width: 0;
  padding: 0 16px 16px 0;
  background: transparent;
  border: 0;
  border-radius: 4px;
}
body.page-id-19 #primary #cov figure::before {
  content: "";
  position: absolute;
  inset: 16px 0 0 16px;
  z-index: -1;
  background: #f7f7f7;
  border-radius: 4px;
}
body.page-id-19 #primary #cov figure a { display: block; }
body.page-id-19 #primary #cov figure img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  border-radius: 4px;
}

/* About: only the five numbered feature cards; reliability remains light. */
body.page-id-23 #primary #about .vrtk-benefits > .vrtk-card {
  --vector-ink: #f2f2f2;
  --vector-muted: #ccc;
  --vector-link: #f26522;
  background: #242424;
  color: #ccc;
  border-color: #414141;
  border-top-color: #f26522;
}
body.page-id-23 #primary #about .vrtk-benefits > .vrtk-card h3 { color: #f2f2f2; }
body.page-id-23 #primary #about .vrtk-benefits > .vrtk-card::before {
  color: #be7955;
  font-size: 36px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -.025em;
  margin-bottom: 22px;
}

/* Shop: one shared gutter aligns the introduction and category grid. */
body.post-type-archive-product #primary .woocommerce-products-header .page-description {
  padding: 24px;
}
body.post-type-archive-product #primary .vrtk-discovery-shop { padding: 0; }
body.post-type-archive-product #primary .vrtk-discovery-shop > p { margin: 0; }
body.post-type-archive-product #primary .vrtk-discovery-shop .vrtk-discovery-categories { margin: 24px 0 0; }
body.post-type-archive-product #primary .vrtk-discovery-shop .vrtk-discovery-crosslinks { margin: 24px 0 0; }

/* Products & Services: keep the richer hero and match the internal H1 accent. */
body.page-id-17 #primary .vrtk-discovery-hero h1 {
  border-left: 4px solid #f26522;
  padding-left: 26px;
}
@media (max-width: 650px) {
  body.page-id-17 #primary .vrtk-discovery-hero h1 { padding-left: 18px; }
}

/* Phone internal heroes: contain the menu float and retain full title width. */
@media (max-width: 650px) {
  body:is(.page-id-15,.page-id-17,.page-id-19,.page-id-21,.page-id-23,.page-id-25) #masthead { display: flow-root; }
  body:is(.page-id-15,.page-id-17,.page-id-19,.page-id-21,.page-id-23,.page-id-25) #masthead .menu-toggle {
    position: static;
    clear: both;
    margin-top: 8px;
  }
  body:is(.page-id-15,.page-id-17,.page-id-19,.page-id-21,.page-id-23,.page-id-25) #primary .vrtk-subpage-title {
    min-height: 0;
    margin-top: 16px;
    padding: 30px 20px;
  }
  body:is(.page-id-15,.page-id-17,.page-id-19,.page-id-21,.page-id-23,.page-id-25) #primary .vrtk-subpage-title h1,
  body.page-id-17 #primary .vrtk-discovery-hero h1 {
    font-size: 40px;
    line-height: 1.08;
    border-left-width: 3px;
    padding-left: 16px;
  }
  body.page-id-17 #primary .vrtk-discovery-hero { padding: 30px 20px; }
}
/* Homepage form presentation only. Existing markup and behaviour are unchanged. */
body.page-id-8 #primary .vrtk-contact-form > div { min-width: 0; }
body.page-id-8 #primary .vrtk-message-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  padding: 32px;
  background: #fff;
  color: #23201f;
  border: 1px solid #d0d0d0;
  border-radius: 4px;
}
body.page-id-8 #primary .vrtk-message-form,
body.page-id-8 #primary .vrtk-message-form * { box-sizing: border-box; }
body.page-id-8 #primary .vrtk-message-form .vrtk-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 20px;
  min-width: 0;
}
body.page-id-8 #primary .vrtk-message-form label {
  display: block;
  min-width: 0;
  margin: 0;
  color: #23201f;
  line-height: 1.5;
}
body.page-id-8 #primary .vrtk-message-form input:not([type=checkbox]),
body.page-id-8 #primary .vrtk-message-form textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 48px;
  margin: 8px 0 0;
  padding: 12px 14px;
  font: inherit;
  line-height: 1.5;
  background: #f7f7f7;
  color: #23201f;
  border: 1px solid #aaa;
  border-radius: 3px;
}
body.page-id-8 #primary .vrtk-message-form textarea { min-height: 160px; resize: vertical; }
body.page-id-8 #primary .vrtk-message-form .vrtk-consent {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  line-height: 1.65;
}
body.page-id-8 #primary .vrtk-message-form input[type=checkbox] {
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
}
body.page-id-8 #primary .vrtk-message-form button {
  justify-self: start;
  max-width: 100%;
  min-height: 48px;
  margin: 4px 0;
  padding: 13px 22px;
}
body.page-id-8 #primary .vrtk-message-form .vrtk-local-note {
  max-width: 100%;
  margin: 0;
  padding: 18px;
  font-size: 14px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
@media (max-width: 900px) {
  body.page-id-8 #primary .vrtk-message-form { padding: 32px; }
  body.page-id-8 #primary .vrtk-message-form .vrtk-form-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Mobile navigation remains a light functional panel; desktop is unchanged. */
@media (max-width: 768px) {
  body #masthead #site-navigation,
  body #masthead #primary-menu > .menu-item-has-children > .sub-menu { background-color: #fff; }
  body #masthead #site-navigation #primary-menu a { color: #23201f; background-color: #fff; }
  body #masthead #site-navigation #primary-menu a:is(:hover,:focus-visible),
  body #masthead #site-navigation #primary-menu :is(.current-menu-item,.current-menu-ancestor) > a {
    color: #f26522; background-color: #23201f;
  }
  body #masthead #site-navigation #primary-menu > li:last-child > a,
  body #masthead .menu-toggle { color: #23201f; background-color: #f26522; }
}
/* Exact original live-site icon fonts, locally hosted; no generic replacements. */
@font-face { font-family: VectorOriginalBrands; src: url('vector-original-assets/fa-brands-400.woff2') format('woff2'); font-weight: 400; font-display: block; unicode-range: U+F369; }
@font-face { font-family: VectorOriginalSolid; src: url('vector-original-assets/fa-solid-900.woff2') format('woff2'); font-weight: 900; font-display: block; unicode-range: U+F233,U+F4FC,U+F025; }
@font-face { font-family: VectorOriginalThe7; src: url('vector-original-assets/icomoon-the7-font.woff') format('woff'); font-weight: 400; font-display: block; unicode-range: U+E102; }
@font-face { font-family: VectorOriginalIcomoon; src: url('vector-original-assets/icomoon-font-awesome-14x14.woff') format('woff'); font-weight: 400; font-display: block; unicode-range: U+F0E8,U+F0C0,U+F289; }
body.page-id-23 #primary #about .vrtk-benefits > .vrtk-card::before,
body.page-id-21 #primary #dp .vrtk-three > .vrtk-card::before {
  display: block; color: #f26522; font-size: 36px; line-height: 1;
  font-style: normal; font-weight: 400; letter-spacing: 0;
  width: 48px; height: 40px; margin-bottom: 22px;
}
body.page-id-23 #primary #about .vrtk-card:nth-child(1)::before { font-family: VectorOriginalBrands; content: '\f369'; content: '\f369' / ''; }
body.page-id-23 #primary #about .vrtk-card:nth-child(2)::before { font-family: VectorOriginalThe7; content: '\e102'; content: '\e102' / ''; }
body.page-id-23 #primary #about .vrtk-card:nth-child(3)::before { font-family: VectorOriginalIcomoon; content: '\f0e8'; content: '\f0e8' / ''; }
body.page-id-23 #primary #about .vrtk-card:nth-child(4)::before { font-family: VectorOriginalIcomoon; content: '\f0c0'; content: '\f0c0' / ''; }
body.page-id-23 #primary #about .vrtk-card:nth-child(5)::before { font-family: VectorOriginalSolid; font-weight: 900; content: '\f233'; content: '\f233' / ''; }
body.page-id-21 #primary #dp .vrtk-card:nth-child(1)::before { font-family: VectorOriginalSolid; font-weight: 900; content: '\f4fc'; content: '\f4fc' / ''; }
body.page-id-21 #primary #dp .vrtk-card:nth-child(2)::before { font-family: VectorOriginalIcomoon; content: '\f289'; content: '\f289' / ''; }
body.page-id-21 #primary #dp .vrtk-card:nth-child(3)::before { font-family: VectorOriginalSolid; font-weight: 900; content: '\f025'; content: '\f025' / ''; }
/* Original pale nodes, inverted and faintly blended into the dark About section. */
body.page-id-23 #primary #about { position: relative; isolation: isolate; }
body.page-id-23 #primary #about::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url('vector-original-assets/particles-bg.jpg') right bottom / cover no-repeat;
  filter: invert(1); mix-blend-mode: screen; opacity: .35;
}
/* Visible baseline: no JS or persistent hidden state is needed. */
body.page-id-8 #up .vrtk-hero-inner > * { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  body.page-id-8 #up { --vector-enter-x: 14px; --vector-enter-y: 10px; }
  body.page-id-8 #up .vrtk-hero-inner > * {
    animation-duration: .884s; animation-timing-function: cubic-bezier(.2,.7,.2,1);
    animation-fill-mode: backwards; animation-iteration-count: 1;
  }
  body.page-id-8 #up .vrtk-live-logo { animation-name: vector-logo-in; }
  body.page-id-8 #up .vrtk-eyebrow { animation-name: vector-up-in; animation-delay: .163s; }
  body.page-id-8 #up h1 { animation-name: vector-left-in; animation-delay: .354s; }
  body.page-id-8 #up .vrtk-live-tagline { animation-name: vector-right-in; animation-delay: .544s; }
  body.page-id-8 #up .vrtk-button { animation-name: vector-up-in; animation-delay: .816s; }
  @media (max-width: 650px) { body.page-id-8 #up { --vector-enter-x: 6px; --vector-enter-y: 5px; } }
}
@keyframes vector-logo-in { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
@keyframes vector-up-in { from { opacity: 0; transform: translateY(var(--vector-enter-y)); } to { opacity: 1; transform: none; } }
@keyframes vector-left-in { from { opacity: 0; transform: translateX(calc(-1 * var(--vector-enter-x))); } to { opacity: 1; transform: none; } }
@keyframes vector-right-in { from { opacity: 0; transform: translateX(var(--vector-enter-x)); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  body.page-id-8 #up .vrtk-hero-inner > * { animation: none; opacity: 1; transform: none; }
}
