/* V18 — one continuous background per theme, secondary pages ONLY. */
html[data-theme="light"] body.vx14-landing {
  background:#f7f9fd!important;
  color:#14223e;
}
html[data-theme="dark"] body.vx14-landing {
  background:linear-gradient(155deg,#03112e 0%,#071b42 48%,#091c40 76%,#03112e 100%) fixed!important;
  color:#f4f7ff;
}
/* Use the BODY as the sole painted backdrop. The rest is the same uninterrupted layer. */
html[data-theme] body.vx14-landing :is(.vx-site-header,.vx-site-header.vx-subnav,.vx-topnav,.footer,main,.wd-main,.ab6-main,.uv-main),
html[data-theme] body.vx14-landing main > section,
html[data-theme] body.vx14-landing main > div > section,
html[data-theme] body.vx14-landing :is(.wd-main,.ab6-main,.uv-main) > section,
html[data-theme] body.vx14-landing :is(.wd-main,.ab6-main,.uv-main) > div > section {
  background:transparent!important;
  background-image:none!important;
  box-shadow:none;
}
/* Remove only header/footer separator, keeping image and card backgrounds intact. */
html[data-theme] body.vx14-landing .vx-site-header.vx-subnav{
  border:0!important;
  border-bottom:0!important;
  box-shadow:none!important;
}
html[data-theme] body.vx14-landing .vx-site-header::before,
html[data-theme] body.vx14-landing .footer::before,
html[data-theme] body.vx14-landing .footer::after{
  background:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}
/* Some layouts had inline/full-bleed color sections. Constrain to top-level content blocks. */
html[data-theme] body.vx14-landing .wd-main > :is(.wd-hero,.wd-section,.wd-manifest,.wd-process,.wd-notes,.wd-end),
html[data-theme] body.vx14-landing .ab6-main > section,
html[data-theme] body.vx14-landing .uv-main > section,
html[data-theme] body.vx14-landing .footer .footer-top {
  background:transparent!important;
  background-image:none!important;
}
/* Preserve legibility in both themes; important for formerly dark full-width segments. */
html[data-theme="light"] body.vx14-landing main :is(h1,h2,h3,h4){color:#14223e}
html[data-theme="light"] body.vx14-landing main :is(p,li){color:#546b8d}
html[data-theme="dark"] body.vx14-landing main :is(h1,h2,h3,h4){color:#f4f7ff}
html[data-theme="dark"] body.vx14-landing main :is(p,li){color:#c4d1e7}
/* The contact form is an intentional elevated card, not a page background. */
html[data-theme="light"] body.vx14-landing .vx16-home-form{background:#eef2f7!important}
html[data-theme="dark"] body.vx14-landing .vx16-home-form{background:#0a1b3a!important}
/* Tiny nonintrusive chat invitation; chat panel never opens automatically. */
.vx-assist-dock .vx18-chat-nudge{
  position:absolute;
  right:0;
  bottom:calc(100% + 14px);
  width:max-content;
  max-width:min(290px,calc(100vw - 32px));
  padding:13px 17px;
  border:1px solid rgba(129,155,200,.24);
  border-radius:17px 17px 5px 17px;
  background:#fff;
  color:#112648;
  box-shadow:0 14px 38px rgba(3,13,38,.18);
  font:700 13px/1.45 Manrope,'DM Sans',sans-serif;
  text-align:left;
  cursor:pointer;
  z-index:12;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(9px);
  transition:opacity .36s ease,transform .36s ease,visibility .36s;
}
.vx-assist-dock .vx18-chat-nudge.vx18-nudge-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.vx-assist-dock .vx18-chat-nudge:hover{border-color:#ff7624}
@media(max-width:520px){
  .vx-assist-dock .vx18-chat-nudge{font-size:12px;padding:12px 14px;max-width:min(246px,calc(100vw - 32px))}
}
@media(prefers-reduced-motion:reduce){
  .vx-assist-dock .vx18-chat-nudge{transition:none;transform:none}
}
