:root {
  /* WordPress shell aliases. Canonical values live in design-system/tokens.css. */
  --vt-ink: var(--color-forest-950);
  --vt-forest: var(--color-forest-800);
  --vt-mint: var(--color-mint-100);
  --vt-paper: var(--color-ink-light);
  --vt-white: var(--color-white);
  --vt-border: var(--color-border-control-inverse);
  --vt-font-display: var(--font-family-display);
  --vt-font-sans: var(--font-family-body);
  --vt-content: var(--width-content);
  --vt-wide: var(--width-shell);
  --vt-ease: var(--ease-out);
  --vt-hover-duration: var(--duration-hover);
  --vt-action-size: var(--type-action);
  --vt-legal-size: var(--type-legal);
  --vt-button-hover-shadow: var(--shadow-button-hover);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body,
body.wp-theme-valtrion-family { margin: 0; color: var(--vt-paper); background: var(--vt-ink); font-family: var(--vt-font-sans); line-height: 1.6; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 2px solid var(--vt-white); outline-offset: 4px; }

.screen-reader-text,
.skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; z-index: 100000; top: 1rem; left: 1rem; padding: .75rem 1rem; color: var(--vt-ink); background: var(--vt-white); }

.site-header { position: fixed; z-index: 1000; inset: 0 0 auto; height: 80px; display: grid; grid-template-columns: 250px 1fr auto; align-items: center; gap: 36px; padding: 0 40px; border-bottom: var(--border-width-hairline) solid transparent; transition: background var(--duration-hover) var(--ease-out), border-color var(--duration-hover) var(--ease-out); }
.site-header.is-scrolled { border-color: rgb(255 255 255 / .1); background: rgb(5 12 9 / .94); backdrop-filter: blur(16px); }
.brand { width: 225px; height: 60px; display: flex; align-items: center; gap: 13px; color: var(--vt-white); text-decoration: none; }
.brand img { width: 37px; height: 42px; object-fit: contain; filter: brightness(1.2); }
.brand span { display: flex; flex-direction: column; align-items: center; text-align: center; }
.brand b { font: var(--weight-brand-wordmark) var(--type-brand-wordmark)/.9 var(--vt-font-display); letter-spacing: .14em; text-transform: uppercase; }
.brand small { margin-top: 7px; font: var(--weight-brand-tagline) var(--type-brand-tagline)/1 var(--vt-font-sans); letter-spacing: .22em; text-transform: uppercase; }
.desktop-nav { display: flex; justify-content: flex-end; }
.desktop-nav > ul,
.footer-top nav > ul,
.mobile-menu > ul { display: flex; align-items: center; gap: clamp(26px, 2vw, 36px); margin: 0; padding: 0; list-style: none; }
.desktop-nav a,
.header-cta { color: rgb(238 244 240 / .76); font-size: var(--vt-action-size); font-weight: var(--weight-action); line-height:1.2; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: color var(--duration-base) var(--vt-ease), border-color var(--duration-base) var(--vt-ease), box-shadow var(--duration-base) var(--vt-ease); }
.desktop-nav a:hover,
.desktop-nav a:focus-visible { color: var(--vt-white); }
.header-cta { position:relative; overflow:hidden; min-width:140px; height:44px; padding:0 18px; display:inline-flex; align-items:center; justify-content:center; border:var(--border-width-subtle) solid rgb(238 244 240 / .42); background:transparent; box-shadow:none; transition:color var(--vt-hover-duration) var(--vt-ease),background-color var(--vt-hover-duration) var(--vt-ease),border-color var(--vt-hover-duration) var(--vt-ease),box-shadow var(--vt-hover-duration) var(--vt-ease),transform var(--vt-hover-duration) var(--vt-ease); }
.header-cta::before,
.button::before,
.wp-element-button::before { content:""; position:absolute; z-index:1; top:0; left:-120%; width:80%; height:100%; background:linear-gradient(120deg,transparent 0%,rgb(255 255 255 / .55) 50%,transparent 100%); transform:skewX(-20deg); transition:left var(--duration-hover) var(--ease-standard); pointer-events:none; }
.header-cta:hover,
.header-cta:focus-visible,
.button:hover,
.button:focus-visible,
.wp-element-button:hover,
.wp-element-button:focus-visible { color:var(--vt-ink); border-color:var(--vt-white); background-color:var(--vt-white); background-image:none; box-shadow:var(--vt-button-hover-shadow); }
.header-cta:hover,
.header-cta:focus-visible { transform:none; }
.header-cta:hover::before,
.header-cta:focus-visible::before,
.button:hover::before,
.button:focus-visible::before,
.wp-element-button:hover::before,
.wp-element-button:focus-visible::before { left:120%; }
.menu-toggle,
.mobile-menu { display: none; }

.site-main { min-height: 60vh; }
.content-shell { width: min(calc(100% - 2rem), var(--vt-content)); margin-inline: auto; }
.page-content { padding-block: clamp(5rem, 10vw, 9rem); }
.entry-header { margin-block-end: clamp(2rem, 5vw, 5rem); }
.page-content :where(h1, h2, h3) { font-family: var(--vt-font-display); font-weight: 500; line-height: 1.03; text-wrap: balance; }
.page-content h1 { font-size: clamp(2.75rem, 7vw, 5.75rem); }
.page-content h2 { font-size: clamp(2.25rem, 5vw, 4.25rem); }
.page-content .eyebrow { color: var(--vt-mint); font-size: var(--type-eyebrow); font-weight: var(--weight-eyebrow); letter-spacing: .18em; text-transform: uppercase; }
.vt-landing-page { position:relative; isolation:isolate; display:grid; align-items:center; min-height:max(44rem, 100svh); padding:clamp(7rem, 12vw, 11rem) 1rem clamp(5rem, 8vw, 8rem); overflow:hidden; background-color:#08251f; background-image:var(--vt-landing-image); background-position:center; background-size:cover; }
.vt-landing-page::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg, rgb(5 20 35 / .72) 0%, rgb(7 31 42 / .58) 45%, rgb(3 20 17 / .82) 100%); }
.vt-landing-page__layout { width:min(100%, 64rem); margin-inline:auto; }
.vt-landing-page__content { width:min(100%, 48rem); margin-inline:auto; color:var(--vt-white); text-align:center; }
.vt-landing-page__content > :first-child { margin-top:0; }
.vt-landing-page__content > :last-child { margin-bottom:0; }
.vt-landing-page__content h1 { margin:0 0 1.5rem; font:var(--font-weight-regular) clamp(3.5rem, 8vw, 6.5rem)/.96 var(--vt-font-display); letter-spacing:-.025em; text-wrap:balance; }
.vt-landing-page__content > p { width:min(100%, 42rem); margin:0 auto 2.5rem; color:rgb(255 255 255 / .9); font-size:clamp(1.1rem, 2vw, 1.5rem); line-height:1.45; text-wrap:balance; }
.vt-landing-page__content .gform_wrapper { width:100%; margin-top:clamp(2rem, 5vw, 3.5rem); text-align:left; }
.vt-landing-page__content .gform_confirmation_wrapper { text-align:center; }
.button,
.wp-element-button { position:relative; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.85rem 1.4rem; border:var(--border-width-subtle) solid var(--vt-border); border-radius:0; color:var(--vt-white); background:transparent; box-shadow:none; font-size:var(--type-action); font-weight:var(--weight-eyebrow); letter-spacing:.12em; text-decoration:none; text-transform:uppercase; transition:color var(--vt-hover-duration) var(--vt-ease),background-color var(--vt-hover-duration) var(--vt-ease),border-color var(--vt-hover-duration) var(--vt-ease),box-shadow var(--vt-hover-duration) var(--vt-ease); }

/* Theme-owned 404: a quiet wayfinding moment within the approved family system. */
body.error404 .site-header { border-bottom-color: rgb(255 255 255 / .1); background: rgb(5 12 9 / .88); backdrop-filter: blur(16px); }
.error-404 { position:relative; isolation:isolate; display:flex; min-height:max(47rem, 100svh); align-items:center; overflow:clip; padding-block:clamp(8rem, 12vw, 11rem) clamp(5rem, 8vw, 8rem); background:linear-gradient(128deg, #050b08 0%, var(--vt-ink) 48%, #0b211a 100%); }
.error-404::before { content:""; position:absolute; z-index:-2; inset:0; opacity:.2; background-image:linear-gradient(rgb(255 255 255 / .08) 1px, transparent 1px),linear-gradient(90deg, rgb(255 255 255 / .08) 1px, transparent 1px); background-size:clamp(4.5rem, 8vw, 7.5rem) clamp(4.5rem, 8vw, 7.5rem); mask-image:linear-gradient(90deg, transparent, #000 45%, #000); pointer-events:none; }
.error-404__glow { position:absolute; z-index:-1; top:50%; right:clamp(-18rem, -10vw, -7rem); width:clamp(32rem, 55vw, 58rem); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, rgb(127 181 158 / .2) 0%, rgb(44 125 91 / .1) 33%, transparent 68%); transform:translateY(-50%); filter:blur(2px); pointer-events:none; }
.error-404__grid { display:grid; grid-template-columns:minmax(0, .9fr) minmax(24rem, 1.1fr); align-items:center; gap:clamp(3rem, 8vw, 8rem); }
.error-404__content { position:relative; z-index:2; max-width:39rem; }
.error-404 .eyebrow { margin:0 0 1.5rem; color:var(--vt-mint); font-size:var(--type-eyebrow); font-weight:var(--weight-eyebrow); letter-spacing:.2em; text-transform:uppercase; }
.error-404 h1 { width:max-content; max-width:100%; margin:0; font:var(--weight-display) clamp(3.5rem, 4.4vw, 5rem)/.9 var(--vt-font-display); letter-spacing:-.04em; }
.error-404 h1 span { display:block; white-space:nowrap; }
.error-404__copy { max-width:36rem; margin:clamp(1.75rem, 3vw, 2.5rem) 0 0; color:rgb(238 244 240 / .72); font-size:clamp(1rem, 1.3vw, 1.125rem); line-height:1.75; text-wrap:pretty; }
.error-404__actions { display:flex; align-items:center; gap:clamp(1.5rem, 3vw, 2.5rem); margin-top:clamp(2rem, 4vw, 3rem); }
.error-404__primary { min-height:58px; padding-inline:1.9rem; border-color:rgb(255 255 255 / .58); background:linear-gradient(110deg, #173e33, #2e6b58); }
.error-404__secondary { min-height:58px; padding-inline:1.9rem; border-color:rgb(238 244 240 / .52); color:var(--vt-white); background:transparent; box-shadow:none; }
.error-404__art { position:relative; display:grid; width:min(100%, 39rem); aspect-ratio:1; place-items:center; justify-self:end; }
.error-404__art::before,.error-404__art::after { content:""; position:absolute; inset:9%; border:var(--border-width-hairline) solid rgb(255 255 255 / .1); transform:rotate(45deg); }
.error-404__art::after { inset:22%; border-color:rgb(169 232 204 / .2); }
.error-404__number { position:absolute; z-index:-1; color:transparent; font:var(--weight-display) clamp(9rem, 17vw, 17rem)/1 var(--vt-font-display); letter-spacing:-.08em; -webkit-text-stroke:1px rgb(238 244 240 / .2); text-stroke:1px rgb(238 244 240 / .2); }
.error-404__orbit { position:absolute; border:var(--border-width-hairline) solid rgb(255 255 255 / .13); border-radius:50%; }
.error-404__orbit--outer { inset:2%; }
.error-404__orbit--inner { inset:25%; border-color:rgb(169 232 204 / .34); }
.error-404__mark { display:grid; width:clamp(5.75rem, 9vw, 7.5rem); aspect-ratio:1; place-items:center; border:var(--border-width-hairline) solid rgb(255 255 255 / .24); border-radius:50%; background:rgb(5 12 9 / .72); box-shadow:0 0 5rem rgb(127 181 158 / .16); backdrop-filter:blur(12px); }
.error-404__mark img { width:48%; height:auto; filter:brightness(1.2); }
.site-footer { border-top: 1px solid rgb(255 255 255 / .08); background: #04120e; }
.footer-top { padding: 58px 40px 36px; display: flex; flex-direction: column; align-items: center; gap: 30px; }
.footer-brand { width: 190px; height: auto; justify-content: center; }
.footer-brand img { width: 35px; height: 35px; }
.footer-brand b { font-size: var(--type-brand-wordmark); }
.footer-brand small { font-size: var(--type-brand-tagline); }
.footer-top nav > ul { justify-content: center; flex-wrap: wrap; gap: 26px; }
.footer-top nav a { color: rgb(238 244 240 / .48); font-size: var(--vt-action-size); letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.footer-top nav a:hover,
.footer-top nav a:focus-visible { color: var(--vt-white); }
.footer-bottom { padding: 32px 40px 48px; border-top: var(--border-width-hairline) solid rgb(255 255 255 / .08); color: rgb(255 255 255 / .46); text-align: center; font-size: var(--vt-action-size); }
.footer-bottom p { width: min(var(--width-legal), 100%); margin: 0 auto 20px; font: 300 var(--vt-legal-size)/1.5 var(--vt-font-sans); text-wrap: balance; }
.footer-bottom span { color: rgb(255 255 255 / .35); }
.legacy-elementor-content { overflow: clip; }
body.wp-theme-valtrion-family.has-legacy-elementor-content { color: #000; background: #fff; }

/* Retained Elementor pages may include legacy rules that hid the old shell. */
.has-legacy-elementor-content .site-header { display: grid !important; }

@media (max-width: 780px) {
  .site-header { height: 68px; grid-template-columns: 1fr auto auto; gap: 0; padding: 0 18px; border-bottom-color: rgb(255 255 255 / .1); background: #050b08; }
  .brand { width: 155px; height: 55px; gap: 9px; }
  .brand img { width: 27px; height: 32px; }
  .brand small { margin-top: 5px; }
  .desktop-nav { display: none; }
  .header-cta { min-width: auto; padding: 12px 15px; }
  .menu-toggle { position: relative; z-index: 2; display: grid; align-content: center; gap: 5px; width: 34px; height: 34px; padding: 9px; border: 0; background: transparent; }
  .menu-toggle span { display: block; height: var(--border-width-hairline); background: var(--vt-white); transform-origin: center; transition: transform var(--duration-base) var(--vt-ease), opacity var(--duration-fast) var(--ease-standard); }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .mobile-menu { position: fixed; z-index: 1; display: flex; flex-direction: column; inset: 68px 0 0; min-height: calc(100svh - 68px); padding: clamp(36px, 7vh, 64px) 24px max(28px, env(safe-area-inset-bottom)); border-top: var(--border-width-hairline) solid rgb(255 255 255 / .08); background: radial-gradient(circle at 100% 0, rgb(72 139 111 / .2), transparent 38%), linear-gradient(155deg, #050b08 0%, #071712 52%, #0c2b22 100%); overflow-y: auto; }
  .mobile-menu[hidden] { display: none; }
  .mobile-menu__eyebrow { margin-bottom: clamp(24px, 5vh, 42px); color: var(--vt-mint); font: var(--weight-eyebrow) var(--type-eyebrow)/1 var(--vt-font-sans); letter-spacing: .2em; text-transform: uppercase; }
  .mobile-menu__links { display: flex; flex-direction: column; }
  .mobile-menu__links > ul { display: contents; margin: 0; padding: 0; list-style: none; }
  .mobile-menu__links li { display: contents; }
  .mobile-menu__links a { position: relative; display: flex; align-items: center; min-height: clamp(56px, 8vh, 72px); padding: 8px 0; border-bottom: var(--border-width-hairline) solid rgb(255 255 255 / .12); color: var(--vt-white); font: var(--font-weight-regular) var(--type-mobile-nav)/1 var(--vt-font-display); letter-spacing: -.015em; text-decoration: none; text-transform: none; }
  .mobile-menu__links a::before,
  .mobile-menu__links a::after { content: none; }
  .mobile-menu__cta { margin-top:auto; min-height:58px; padding:18px 22px; border:var(--border-width-subtle) solid rgb(255 255 255 / .58); display:flex; align-items:center; justify-content:center; background:linear-gradient(110deg,#173e33,#2e6b58); color:var(--vt-white); font:var(--weight-action) var(--type-action)/1.2 var(--vt-font-sans); letter-spacing:.13em; text-align:center; text-decoration:none; text-transform:uppercase; }
  .footer-top { padding: 55px 24px 34px; gap: 32px; }
  .footer-top nav { width: min(260px, 100%); }
  .footer-top nav > ul { display: grid; width: 100%; grid-template-columns: 1fr; gap: 0; }
  .footer-top nav li { display: block; width: 100%; }
  .footer-top nav a { display: flex; min-height: 42px; align-items: center; justify-content: center; border-bottom: var(--border-width-hairline) solid rgb(255 255 255 / .1); }
  .footer-top nav li:last-child a { border-bottom: 0; }
  .footer-bottom { padding: 30px 24px 42px; }
	.vt-landing-page { min-height:100svh; padding:7rem 1.25rem 4.5rem; }
	.vt-landing-page__content h1 { font-size:clamp(3rem, 16vw, 4.75rem); }

	.error-404 { min-height:max(44rem, 100svh); padding-block:7.5rem 4.5rem; }
	.error-404::before { opacity:.14; mask-image:linear-gradient(180deg, transparent, #000 40%, transparent); }
	.error-404__glow { top:22%; right:-14rem; width:34rem; }
	.error-404__grid { grid-template-columns:1fr; gap:2.5rem; }
	.error-404__grid.content-shell { width:min(calc(100% - 3rem), var(--vt-content)); }
	.error-404__content { max-width:35rem; }
	.error-404 h1 { font-size:clamp(3rem, 8.6vw, 4.5rem); }
	.error-404__copy { max-width:31rem; }
	.error-404__art { position:absolute; z-index:-1; top:50%; right:-12rem; width:30rem; opacity:.3; transform:translateY(-50%); }
	.error-404__actions { flex-direction:column; align-items:flex-start; gap:1.25rem; }
	.error-404__actions .button { min-width:12rem; }
}

@media (max-width: 420px) {
	.error-404 { min-height:max(42rem, 100svh); padding-block:6.75rem 3.5rem; }
	.error-404 h1 { font-size:clamp(2.25rem, 11.8vw, 3.25rem); }
	.error-404__copy { font-size:.9375rem; line-height:1.68; }
	.error-404__actions { margin-top:2rem; }
	.error-404__actions .button { width:100%; }
	.error-404__art { right:-13rem; width:28rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
