@font-face { font-family: "Mona Sans"; src: url("/vtriak/fonts/mona-sans-400.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Mona Sans"; src: url("/vtriak/fonts/mona-sans-500.ttf") format("truetype"); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: "Mona Sans"; src: url("/vtriak/fonts/mona-sans-600.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "Mona Sans"; src: url("/vtriak/fonts/mona-sans-700.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "Mona Sans"; src: url("/vtriak/fonts/mona-sans-800.ttf") format("truetype"); font-style: normal; font-weight: 800; font-display: swap; }

:root {
  --white: #ffffff;
  --ink: #0c1e21;
  --ink-2: #18292c;
  --body: #364e52;
  --muted: #67787a;
  --teal: #1e8a8a;
  --teal-bright: #28a0a0;
  --teal-pale: #d8e5e5;
  --grey: #ecf0f0;
  --border: #c9d1d1;
  --section: clamp(78px, 8vw, 130px);
  --container: 1320px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--white); color: var(--body); font-family: "Mona Sans", Arial, sans-serif; font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.drawer-lock { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { color: var(--ink); font-weight: 600; line-height: 1.08; letter-spacing: -.035em; }
h2 { font-size: clamp(38px, 4.2vw, 64px); }
.container, .wide-container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.wide-container { width: min(calc(100% - 32px), 1780px); }
.section { padding-block: var(--section); }
.section-heading { max-width: 790px; margin-bottom: 48px; }
.section-heading.center { margin-inline: auto; text-align: center; }
.section-heading.light h2, .section-heading.light .eyebrow { color: var(--white); }
.section-heading h2 { margin: 12px 0 0; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--teal); font-size: 13px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.eyebrow i { width: 14px; height: 14px; border: 2px solid currentColor; position: relative; transform: rotate(45deg); }
.eyebrow i::after { content: ""; width: 5px; height: 5px; background: currentColor; position: absolute; inset: 2.5px; }
.button { min-height: 58px; display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; padding: 4px 5px 4px 25px; color: var(--white); background: var(--teal); border: 0; border-radius: 4px; font-size: 15px; font-weight: 700; overflow: hidden; transition: background .3s ease, transform .3s ease; }
.button > span:last-child { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 3px; color: var(--ink); background: var(--white); font-size: 21px; }
.button:hover, .button:focus-visible { background: var(--teal-bright); transform: translateY(-2px); }
.button:hover > span:last-child, .button:focus-visible > span:last-child { animation: vtriak-arrow-swap .45s cubic-bezier(.22,1,.36,1); }
.button-small { min-height: 48px; padding-left: 19px; }
.button-small > span:last-child { width: 38px; height: 38px; }
.button-dark { background: var(--ink); }
.reveal { opacity: 1; transform: none; }
.vtriak-js .reveal { opacity: 0; transform: translateY(42px); transition: opacity 1s ease var(--delay, 0ms), transform 1s cubic-bezier(.22, 1, .36, 1) var(--delay, 0ms); }
.vtriak-js .reveal.reveal-from-left { transform: translateX(-48px); }
.vtriak-js .reveal.reveal-from-right { transform: translateX(48px); }
.vtriak-js .reveal.in-view { opacity: 1; transform: none; }
.vtriak-js .section-heading.reveal h2,
.vtriak-js .page-hero-inner.reveal h1,
.vtriak-js .intro-copy.reveal h2,
.vtriak-js .cta-card.reveal h2 { clip-path: inset(0 0 100% 0); opacity: 0; transform: translateY(28px); transition: clip-path .9s cubic-bezier(.22,1,.36,1) calc(var(--delay, 0ms) + 120ms), opacity .55s ease calc(var(--delay, 0ms) + 120ms), transform .9s cubic-bezier(.22,1,.36,1) calc(var(--delay, 0ms) + 120ms); }
.vtriak-js .section-heading.reveal.in-view h2,
.vtriak-js .page-hero-inner.reveal.in-view h1,
.vtriak-js .intro-copy.reveal.in-view h2,
.vtriak-js .cta-card.reveal.in-view h2 { clip-path: inset(0); opacity: 1; transform: none; }
@keyframes vtriak-arrow-swap { 0% { transform: translate(0,0); opacity: 1; } 45% { transform: translate(14px,-14px); opacity: 0; } 46% { transform: translate(-14px,14px); opacity: 0; } 100% { transform: translate(0,0); opacity: 1; } }

/* Preloader */
.preloader { position: fixed; inset: 0; z-index: 10000; display: none; place-items: center; background: var(--ink); transition: opacity .4s ease, visibility .4s ease; }
.vtriak-js .preloader { display: grid; animation: preloader-failsafe 0s linear 3s forwards; }
.preloader.leaving { opacity: 0; visibility: hidden; }
.preloader-mark { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 20px; color: var(--white); }
.preloader-board { position: relative; width: 280px; height: 174px; display: grid; place-items: center; background-image: radial-gradient(circle,rgba(40,160,160,.28) 1px,transparent 1.5px),linear-gradient(90deg,transparent 49.7%,rgba(40,160,160,.06) 50%,transparent 50.3%),linear-gradient(transparent 49.7%,rgba(40,160,160,.06) 50%,transparent 50.3%); background-size: 20px 20px,100% 100%,100% 100%; }
.preloader-chip { position: relative; z-index: 2; width: 168px; height: 82px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; color: var(--white); background: linear-gradient(145deg,#173337,#091c1f); border: 1px solid rgba(40,160,160,.75); border-radius: 5px; box-shadow: 0 0 0 5px rgba(40,160,160,.06),0 0 34px rgba(40,160,160,.18),inset 0 0 22px rgba(0,0,0,.35); animation: chip-power 1.1s ease-in-out infinite alternate; }
.preloader-chip::before, .preloader-chip::after { content: ""; position: absolute; top: 9px; bottom: 9px; width: 12px; background: repeating-linear-gradient(to bottom,var(--teal-bright) 0 3px,transparent 3px 9px); filter: drop-shadow(0 0 4px rgba(40,160,160,.8)); animation: pin-sequence .8s steps(4,end) infinite; }
.preloader-chip::before { right: 100%; }
.preloader-chip::after { left: 100%; animation-delay: .4s; }
.preloader-chip strong { font-size: 15px; letter-spacing: .12em; line-height: 1; }
.preloader-chip small { color: var(--teal-bright); font-size: 9px; letter-spacing: .22em; }
.boot-trace { position: absolute; display: block; background: rgba(40,160,160,.28); overflow: hidden; }
.boot-trace::after { content: ""; position: absolute; background: var(--teal-bright); border-radius: 4px; box-shadow: 0 0 10px var(--teal-bright); }
.trace-left, .trace-right { top: 86px; width: 62px; height: 2px; }
.trace-left { left: 0; }
.trace-right { right: 0; }
.trace-left::after, .trace-right::after { top: 0; width: 18px; height: 2px; animation: current-horizontal .9s linear infinite; }
.trace-left::after { left: -18px; }
.trace-right::after { right: -18px; animation-direction: reverse; }
.trace-top, .trace-bottom { left: 139px; width: 2px; height: 42px; }
.trace-top { top: 0; }
.trace-bottom { bottom: 0; }
.trace-top::after, .trace-bottom::after { left: 0; width: 2px; height: 15px; animation: current-vertical .9s linear infinite; animation-delay: .22s; }
.trace-top::after { top: -15px; }
.trace-bottom::after { bottom: -15px; animation-direction: reverse; }
.preloader-word { min-width: 110px; margin: 0; padding-left: .3em; color: var(--teal-pale); font-size: 12px; font-weight: 700; letter-spacing: .3em; text-align: center; text-transform: uppercase; }
.preloader-curtain { position: absolute; inset-block: 0; width: 50%; background: var(--ink); transition: transform .7s cubic-bezier(.77,0,.175,1); }
.curtain-one { left: 0; }
.curtain-two { right: 0; }
.preloader.leaving .curtain-one { transform: translateX(-100%); }
.preloader.leaving .curtain-two { transform: translateX(100%); }
@keyframes chip-power { to { border-color: var(--teal-bright); box-shadow: 0 0 0 5px rgba(40,160,160,.1),0 0 46px rgba(40,160,160,.3),inset 0 0 22px rgba(0,0,0,.25); } }
@keyframes pin-sequence { 50% { opacity: .3; } }
@keyframes current-horizontal { to { transform: translateX(80px); } }
@keyframes current-vertical { to { transform: translateY(57px); } }
@keyframes preloader-failsafe { to { opacity: 0; visibility: hidden; pointer-events: none; } }

/* Header */
.site-header { position: absolute; z-index: 100; top: 0; left: 0; width: 100%; padding: 22px 24px; color: var(--white); }
.site-header.duplicate { position: fixed; z-index: 900; padding-block: 10px; background: rgba(12,30,33,.97); box-shadow: 0 8px 32px rgba(0,0,0,.16); opacity: 0; transform: translateY(-110%); transition: opacity .3s ease, transform .3s cubic-bezier(.22,1,.36,1); }
.site-header.duplicate.visible { opacity: 1; transform: translateY(0); }
.header-inner { width: min(100%, 1480px); min-height: 70px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { width: auto; flex: none; }
.brand-lockup { min-height: 46px; display: inline-flex; align-items: center; gap: 10px; color: var(--white); }
.brand-mark { width: 46px; height: 46px; flex: none; box-sizing: border-box; padding: 2px; object-fit: contain; background: var(--white); border-radius: 50%; }
.brand-name { font-size: 24px; font-weight: 800; letter-spacing: .075em; white-space: nowrap; }
.brand-name b { color: #36b64a; font-weight: 800; }
.mobile-drawer .brand-lockup { color: var(--ink); }
.skip-link { position: fixed; z-index: 1200; top: 12px; left: 12px; padding: 10px 14px; color: var(--white); background: var(--ink); border-radius: 4px; transform: translateY(-150%); transition: transform .2s ease; }
.skip-link:focus { transform: translateY(0); }
.desktop-nav { display: flex; align-items: center; gap: clamp(24px, 2.5vw, 44px); margin-left: auto; font-size: 15px; font-weight: 600; }
.desktop-nav > a, .nav-services > button { position: relative; padding: 25px 0; border: 0; background: transparent; cursor: pointer; white-space: nowrap; }
.desktop-nav > a::after, .nav-services > button::after { content: ""; position: absolute; right: 0; bottom: 17px; left: 0; height: 2px; background: var(--teal-bright); transform: scaleX(0); transform-origin: right; transition: transform .3s ease; }
.desktop-nav > a:hover::after, .desktop-nav > a.active::after, .nav-services:hover > button::after, .nav-services.active > button::after { transform: scaleX(1); transform-origin: left; }
.nav-services { position: relative; }
.nav-services.active > button { color: var(--teal-bright); }
.nav-services > button { display: inline-flex; align-items: center; gap: 7px; }
.services-chevron { position: relative; width: 12px; height: 8px; flex: none; transition: transform .3s ease-in-out; }
.services-chevron::before, .services-chevron::after { content: ""; position: absolute; top: 3px; width: 7px; height: 2px; border-radius: 2px; background: currentColor; }
.services-chevron::before { left: 0; transform: rotate(45deg); }
.services-chevron::after { right: 0; transform: rotate(-45deg); }
.nav-services:hover > button .services-chevron, .nav-services:focus-within > button .services-chevron { transform: rotate(-180deg); }
.mega-menu { position: absolute; z-index: 4; top: calc(100% - 4px); left: 50%; width: min(430px,85vw); padding: 10px 0; color: var(--ink); background: var(--white); border-radius: 10px; box-shadow: 0 18px 45px rgba(0,0,0,.15); opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(-50%) scaleY(0); transform-origin: top; transition: opacity .4s ease, transform .4s ease, visibility .4s ease; }
.nav-services:hover .mega-menu, .nav-services:focus-within .mega-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) scaleY(1); transition-duration: .5s; }
.mega-menu a { display: grid; grid-template-columns: 54px 1fr 36px; align-items: center; gap: 14px; min-height: 78px; padding: 11px 20px; border-bottom: 1px solid var(--border); transition: color .3s ease, background .3s ease; }
.mega-menu a:last-child { border: 0; }
.mega-menu a:hover { color: var(--teal); background: var(--grey); }
.mega-index { width: 54px; height: 54px; display: grid; place-items: center; color: var(--teal); background: linear-gradient(-45deg,rgba(30,138,138,.3) 0%,rgba(30,138,138,0) 50%,rgba(30,138,138,.3) 100%); border: 1px solid rgba(30,138,138,.22); border-radius: 50%; font-size: 12px; transition: color .4s ease-in-out, background .4s ease-in-out; }
.menu-diode { position: relative; width: 36px; height: 36px; overflow: hidden; color: var(--teal); opacity: 0; transform: rotate(-45deg); transition: opacity .3s ease; }
.menu-diode i { position: absolute; top: 17px; left: 6px; width: 24px; height: 2px; background: currentColor; transition: transform .4s ease-in-out; }
.menu-diode i::before { content: ""; position: absolute; top: -6px; left: 6px; width: 0; height: 0; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 10px solid currentColor; }
.menu-diode i::after { content: ""; position: absolute; top: -7px; left: 16px; width: 2px; height: 16px; border-radius: 1px; background: currentColor; }
.menu-diode i:last-child { transform: translateX(-150%); }
.mega-menu a:hover .mega-index, .mega-menu a:focus-visible .mega-index { color: var(--white); background: var(--teal); }
.mega-menu a:hover .menu-diode, .mega-menu a:focus-visible .menu-diode { opacity: 1; }
.menu-diode:hover i:first-child, .mega-menu a:focus-visible .menu-diode i:first-child { transform: translateX(150%); }
.menu-diode:hover i:last-child, .mega-menu a:focus-visible .menu-diode i:last-child { transform: translateX(0); }
.mega-menu strong { font-size: 17px; font-weight: 600; }
.header-actions { display: flex; align-items: center; gap: 18px; flex: none; }
.menu-lines { width: 42px; height: 42px; padding: 7px; display: flex; flex-direction: column; justify-content: center; gap: 6px; border: 0; background: transparent; cursor: pointer; }
.menu-lines i { display: block; width: 100%; height: 2px; background: currentColor; transition: width .25s ease; }
.menu-lines i:nth-child(2) { width: 70%; margin-left: auto; }
.menu-lines:hover i:nth-child(2) { width: 100%; }
.mobile-only { display: none; }

/* Drawers */
.drawer-overlay { position: fixed; z-index: 950; inset: 0; background: rgba(4,14,16,.68); opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility .35s ease; }
.drawer-overlay.open { opacity: 1; visibility: visible; }
.info-drawer, .mobile-drawer { position: fixed; z-index: 960; top: 0; right: 0; width: min(560px,92vw); height: 100dvh; padding: clamp(30px,4vw,58px); overflow-y: auto; color: rgba(255,255,255,.76); background: var(--ink); transform: translateX(102%); transition: transform .6s cubic-bezier(.77,0,.175,1); }
.info-drawer.open, .mobile-drawer.open { transform: translateX(0); }
.drawer-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 42px; }
.drawer-top button { width: 44px; height: 44px; color: var(--white); border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: transparent; font-size: 28px; cursor: pointer; }
.info-drawer > p { text-align: justify; }
.drawer-company { margin-top: 30px; padding: 20px 22px; border: 1px solid rgba(255,255,255,.14); border-radius: 4px; }
.drawer-company span { display: block; margin-bottom: 8px; color: var(--teal-bright); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.drawer-company strong { color: var(--white); font-size: 17px; line-height: 1.45; }
.drawer-contact { margin-top: 46px; }
.drawer-contact h3, .drawer-social h3 { color: var(--white); font-size: 22px; margin-bottom: 22px; }
.drawer-contact span { display: block; color: var(--teal-bright); font-size: 12px; text-transform: uppercase; letter-spacing: .15em; margin-top: 16px; }
.drawer-contact a { color: var(--white); font-size: 18px; }
.drawer-contact p { margin: 5px 0; }
.drawer-social { margin-top: 40px; }
.social-links { display: flex; align-items: center; gap: 10px; }
.social-links a { width: 39px; height: 39px; display: grid; place-items: center; color: var(--white); border: 1px solid rgba(255,255,255,.2); border-radius: 50%; font-size: 13px; font-weight: 700; transition: color .25s ease, background .25s ease, border .25s ease; }
.social-links a:hover { color: var(--white); background: var(--teal); border-color: var(--teal); }
.mobile-drawer { display: none; background: var(--white); color: var(--body); }
.mobile-drawer .drawer-top button { color: var(--ink); border-color: var(--border); }
.mobile-nav { display: flex; flex-direction: column; border-top: 1px solid var(--border); }
.mobile-nav > a, .mobile-nav > button { min-height: 56px; display: flex; align-items: center; justify-content: space-between; padding: 0; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--border); font-size: 19px; font-weight: 600; text-align: left; }
.mobile-nav > a.active { color: var(--teal); }
.mobile-submenu { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.mobile-submenu.open { max-height: 240px; }
.mobile-submenu a { display: block; padding: 12px 16px; border-bottom: 1px solid var(--grey); }
.mobile-contact { margin-top: 32px; display: flex; flex-direction: column; gap: 10px; }
.mobile-contact a { color: var(--ink); font-weight: 600; }
.mobile-contact .social-links { margin-top: 15px; }
.mobile-contact .social-links a { color: var(--ink); border-color: var(--border); }

/* Hero */
.home-hero { position: relative; height: min(900px,100svh); min-height: 720px; color: var(--white); background: var(--ink); overflow: hidden; }
.hero-slide { position: absolute; inset: 0; background-position: center; background-size: cover; opacity: 0; transform: scale(1.03); transition: opacity 1s ease-in-out, transform 6s ease; pointer-events: none; }
.hero-slide.active { opacity: 1; transform: scale(1); pointer-events: auto; }
.vtriak-js .hero-slide .hero-content > p,
.vtriak-js .hero-slide .hero-content h1,
.vtriak-js .hero-slide .hero-copy > p,
.vtriak-js .hero-slide .hero-copy .button { opacity: 0; transform: translateY(20px); }
.vtriak-js .hero-slide.motion-enter .hero-content h1 { animation: vtriak-hero-rise .8s ease-in-out 1s forwards; }
.vtriak-js .hero-slide.motion-enter .hero-content > p,
.vtriak-js .hero-slide.motion-enter .hero-copy > p { animation: vtriak-hero-rise .8s ease-in-out 1.25s forwards; }
.vtriak-js .hero-slide.motion-enter .hero-copy .button { animation: vtriak-hero-rise .8s ease-in-out 1.5s forwards; }
@keyframes vtriak-hero-rise { to { opacity: 1; transform: translateY(0); } }
.hero-content { height: 100%; padding-top: 195px; padding-bottom: 175px; display: flex; flex-direction: column; justify-content: center; }
.hero-content > p { margin-bottom: 20px; font-size: 14px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.hero-content h1 { max-width: 1050px; margin: 0; color: var(--white); font-size: clamp(64px,7.2vw,118px); font-weight: 600; letter-spacing: -.055em; }
.hero-slide:first-child .hero-content h1 { max-width: 1180px; font-size: clamp(52px,5.7vw,92px); }
.hero-copy { max-width: 610px; margin-top: 34px; display: flex; align-items: center; gap: 32px; }
.hero-copy > p { margin: 0; color: rgba(255,255,255,.82); font-size: 18px; }
.hero-copy .button { flex: none; }
.hero-controls { position: absolute; z-index: 5; right: 0; bottom: 37px; left: 0; display: flex; align-items: flex-end; justify-content: space-between; }
.hero-thumbnails { display: flex; gap: 12px; }
.hero-thumbnails button { position: relative; width: 116px; height: 76px; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.3); border-radius: 4px; background: transparent; cursor: pointer; opacity: .6; transition: opacity .25s ease, border-color .25s ease; }
.hero-thumbnails button.active { opacity: 1; border-color: var(--white); }
.hero-thumbnails img { width: 100%; height: 100%; object-fit: cover; }
.hero-thumbnails span { position: absolute; right: 7px; bottom: 4px; color: var(--white); font-size: 11px; }
.hero-arrows { display: flex; align-items: center; gap: 17px; }
.hero-arrows button { width: 45px; height: 45px; color: var(--white); border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(255,255,255,.07); cursor: pointer; transition: background .25s ease; }
.hero-arrows button:hover { background: var(--teal); }
.hero-arrows span { font-size: 13px; letter-spacing: .1em; }
.hero-scroll { position: absolute; z-index: 6; right: 25px; top: 50%; display: flex; align-items: center; gap: 14px; transform: rotate(90deg) translateY(-50%); transform-origin: right center; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; }
.statement-strip { background: var(--teal-pale); }
.statement-inner { min-height: 150px; display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 28px; }
.statement-inner > span { color: var(--teal); font-size: 36px; }
.statement-inner h2 { margin: 0; font-size: clamp(28px,3vw,46px); }
.statement-inner p { margin: 0; font-weight: 600; color: var(--teal); }

/* Shared page hero */
.page-hero { min-height: 510px; display: flex; align-items: flex-end; padding: 180px 0 76px; color: var(--white); background-position: center; background-size: cover; }
.page-hero h1 { margin: 0 0 22px; color: var(--white); font-size: clamp(54px,6.2vw,94px); }
.page-hero p { display: flex; align-items: center; gap: 14px; margin: 0; color: rgba(255,255,255,.74); }
.page-hero a { color: var(--white); }

/* Sections */
.highlights { background: var(--grey); }
.highlight-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.highlight-card { min-height: 275px; padding: 40px; border-right: 1px solid var(--border); }
.highlight-card:last-child { border-right: 0; }
.highlight-card > span { display: inline-grid; place-items: center; width: 42px; height: 42px; margin-bottom: 40px; color: var(--teal); border: 1px solid var(--teal); border-radius: 50%; font-size: 12px; }
.highlight-card h3 { margin-bottom: 16px; font-size: 25px; }
.highlight-card p { margin: 0; }
.highlights.compact { padding-block: 100px; }
.split-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: clamp(50px,7vw,110px); }
.collage { position: relative; min-height: 650px; padding: 0 90px 90px 0; }
.collage-main { width: 100%; height: 590px; object-fit: cover; border-radius: 6px; }
.collage-small { position: absolute; right: 0; bottom: 0; width: 250px; height: 300px; object-fit: cover; border: 10px solid var(--white); border-radius: 4px; }
.experience-badge { position: absolute; left: 0; bottom: 0; width: 235px; min-height: 175px; padding: 25px; display: flex; flex-direction: column; justify-content: center; color: var(--white); background: var(--teal); border-radius: 5px; }
.experience-badge strong { font-size: 56px; line-height: 1; }
.experience-badge span { margin-top: 12px; font-size: 13px; }
.split-copy .lead, .section-lead, .intro-copy > p { font-size: 18px; line-height: 1.75; }
.section-lead { max-width: 800px; margin: -25px auto 48px; text-align: center; }
.check-list { margin: 30px 0; padding: 0; list-style: none; }
.check-list li { position: relative; margin: 13px 0; padding-left: 31px; color: var(--ink-2); font-weight: 500; }
.check-list li::before { content: "\2713"; position: absolute; left: 0; top: -1px; width: 21px; height: 21px; display: grid; place-items: center; color: var(--white); background: var(--teal); border-radius: 50%; font-size: 11px; }
.service-links { margin-top: 35px; border-top: 1px solid var(--border); }
.service-links a { display: grid; grid-template-columns: 42px 1fr 28px; align-items: center; gap: 15px; padding: 19px 0; border-bottom: 1px solid var(--border); color: var(--ink); font-size: 18px; font-weight: 600; transition: color .3s ease, padding .3s ease; }
.service-links a > span:first-child { color: var(--teal); font-size: 12px; }
.service-links a b { opacity: .35; font-size: 20px; font-weight: 500; transition: opacity .3s ease; }
.service-links a:hover, .service-links a:focus-visible { color: var(--teal); padding-left: 8px; }
.service-links a:hover b, .service-links a:focus-visible b { opacity: 1; animation: vtriak-arrow-swap .45s cubic-bezier(.22,1,.36,1); }
.industries-section { padding-bottom: 60px; }
.industry-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 10px; }
.industry-card { position: relative; min-height: 420px; overflow: hidden; border-radius: 4px; background: var(--ink); }
.industry-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 25%,rgba(4,18,21,.88) 100%); }
.industry-card > img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.industry-card:hover > img { transform: scale(1.07); }
.industry-card > div { position: absolute; z-index: 2; right: 20px; bottom: 22px; left: 20px; color: var(--white); }
.industry-card span { color: var(--teal-pale); font-size: 12px; text-transform: uppercase; letter-spacing: .12em; }
.industry-card h3 { min-height: 52px; margin: 8px 0 12px; color: var(--white); font-size: 22px; }
.industry-card i { width: 38px; height: 38px; display: grid; place-items: center; margin-left: auto; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; font-style: normal; }

/* About */
.portrait-frame { position: relative; padding: 16px 0 0 16px; }
.portrait-frame::before { content: ""; position: absolute; top: 0; left: 0; width: 65%; height: 68%; background: var(--teal-pale); border-radius: 5px; }
.portrait-frame img { position: relative; width: 100%; height: 640px; object-fit: cover; border-radius: 5px; }
.portrait-frame.tall img { height: 790px; }
.portrait-frame.wide img { height: 560px; }
.about-brand-visual { min-height: 565px; }
.about-brand-visual > img { width: 100%; height: 565px; object-fit: cover; border-radius: 5px; }
.mission-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 35px; }
.mission-card { padding: 28px; background: var(--grey); border-radius: 4px; }
.mission-card span { color: var(--teal); font-size: 12px; }
.mission-card h3 { margin: 20px 0 12px; font-size: 25px; }
.values-card { grid-column: 1 / -1; }
.mission-card p { margin: 0; }
.partner-section { background: var(--grey); }
.partner-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.partner-card { display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 21px; background: var(--white); border-radius: 4px; }
.partner-card > span { color: var(--teal); font-size: 12px; }
.partner-card h3 { margin: 0 0 8px; font-size: 20px; }
.partner-card p { margin: 0; font-size: 14px; }

/* Service pages */
.service-intro { padding-bottom: 80px; }
.intro-copy { max-width: 900px; margin-bottom: 55px; }
.intro-copy h2 { margin: 13px 0; }
.intro-copy h3 { margin-bottom: 20px; color: var(--teal); font-size: 22px; letter-spacing: 0; }
.capability-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 30px; }
.capability-card { min-height: 390px; display: grid; grid-template-columns: .88fr 1.12fr; overflow: hidden; background: var(--grey); border-radius: 5px; }
.capability-card > img { width: 100%; height: 100%; object-fit: cover; }
.capability-content { padding: 36px; display: flex; flex-direction: column; align-items: flex-start; }
.capability-content > span { color: var(--teal); font-size: 13px; }
.capability-content small { margin: 20px 0 7px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.capability-content h3 { margin: 0 0 17px; font-size: 25px; }
.capability-content p { margin: 0; }
.focus-section { background: var(--teal-pale); }
.focus-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.focus-card { min-height: 315px; padding: 42px; background: var(--white); border-radius: 5px; }
.focus-icon { width: 72px; height: 72px; margin-bottom: 34px; display: grid; place-items: center; background: var(--grey); border-radius: 50%; color: var(--teal); }
.focus-icon img { width: 45px; height: 45px; object-fit: contain; }
.focus-card h3 { margin-bottom: 15px; font-size: 25px; }
.focus-card p { margin-bottom: 8px; }
.compliance-section { color: rgba(255,255,255,.76); background: var(--ink); }
.compliance-list { border-top: 1px solid rgba(255,255,255,.17); }
.compliance-row { min-height: 230px; padding: 32px 0; display: grid; grid-template-columns: 70px 1fr 280px; align-items: center; gap: 35px; border-bottom: 1px solid rgba(255,255,255,.17); }
.compliance-row > span { color: var(--teal-bright); font-size: 13px; align-self: start; }
.compliance-row h3 { color: var(--white); font-size: 28px; }
.compliance-row p { margin: 6px 0; }
.compliance-row img { width: 100%; height: 165px; object-fit: cover; border-radius: 4px; }
.tools-section .focus-card { border: 1px solid var(--border); }
.responsibility-section { background: var(--grey); }
.feature-title { margin: 38px 0 5px; font-size: 28px; }

/* Products and solutions */
.product-overview, .sourcing-section { background: var(--grey); }
.solution-family-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.solution-family-card { min-height: 285px; padding: 34px; background: var(--white); border-top: 3px solid var(--teal); border-radius: 4px; }
.solution-family-card > span { color: var(--teal); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.solution-family-card h3 { margin: 28px 0 14px; font-size: 25px; }
.solution-family-card p { margin-bottom: 0; }
.sourcing-callout { margin-top: 34px; padding: 42px; display: grid; grid-template-columns: 1fr 1.1fr auto; align-items: center; gap: 40px; color: rgba(255,255,255,.72); background: var(--ink); border-radius: 5px; }
.sourcing-callout h3 { margin: 14px 0 0; color: var(--white); font-size: 30px; }
.sourcing-callout p { margin: 0; }
.experience-statement { color: rgba(255,255,255,.78); background: var(--teal); }
.experience-statement .container { max-width: 1040px; text-align: center; }
.experience-statement p:first-child { color: var(--white); font-size: clamp(27px,3.3vw,48px); font-weight: 600; line-height: 1.2; letter-spacing: -.025em; }
.experience-statement p:last-child { max-width: 820px; margin: 24px auto 0; font-size: 18px; }
.solution-catalog { padding-top: 0; }
.catalog-family { padding-block: clamp(60px,7vw,100px); border-bottom: 1px solid var(--border); }
.catalog-family:last-child { border-bottom: 0; }
.catalog-family > header { display: grid; grid-template-columns: 70px minmax(0,760px); gap: 26px; margin-bottom: 46px; }
.catalog-family > header > span { width: 58px; height: 58px; display: grid; place-items: center; color: var(--white); background: var(--teal); border-radius: 50%; font-size: 13px; font-weight: 700; }
.catalog-family h2 { margin: 0 0 14px; font-size: clamp(35px,4vw,58px); }
.catalog-family header p { margin: 0; font-size: 18px; }
.catalog-groups { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.catalog-group { padding: 30px; background: var(--grey); border-radius: 4px; }
.catalog-group:only-child { grid-column: 1/-1; }
.catalog-group h3 { margin-bottom: 22px; font-size: 23px; }
.catalog-group ul, .dense-check-grid { margin: 0; padding: 0; list-style: none; }
.catalog-group li { position: relative; padding: 9px 0 9px 20px; border-bottom: 1px solid rgba(12,30,33,.1); }
.catalog-group li:last-child { border-bottom: 0; }
.catalog-group li::before { content: ""; position: absolute; top: 18px; left: 0; width: 7px; height: 7px; border: 2px solid var(--teal); transform: rotate(45deg); }
.dense-check-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px 24px; }
.dense-check-grid li { position: relative; min-height: 64px; padding: 20px 20px 20px 48px; color: var(--ink); background: var(--white); border-radius: 4px; font-weight: 600; }
.dense-check-grid li::before { content: ""; position: absolute; top: 24px; left: 21px; width: 10px; height: 6px; border-bottom: 2px solid var(--teal); border-left: 2px solid var(--teal); transform: rotate(-45deg); }
.lifecycle-section { background: var(--white); }

/* EMI */
.service-kicker { font-size: 26px; line-height: 1.3; }
.progress-grid { display: flex; gap: 38px; margin-top: 40px; }
.progress-item { display: flex; align-items: center; gap: 14px; }
.progress-ring { width: 86px; height: 86px; padding: 9px; display: grid; place-items: center; border-radius: 50%; }
.progress-ring span { width: 68px; height: 68px; display: grid; place-items: center; color: var(--ink); background: var(--white); border-radius: 50%; font-weight: 700; }
.progress-item strong { max-width: 120px; color: var(--ink); line-height: 1.25; }
.emi-solutions { background: var(--grey); }
.solution-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.solution-card { min-height: 300px; padding: 36px; position: relative; color: var(--body); background: var(--white); border-bottom: 3px solid transparent; transition: transform .3s ease, border-color .3s ease; }
.solution-card:hover { transform: translateY(-7px); border-color: var(--teal); }
.solution-card > span { color: var(--teal); font-size: 12px; }
.solution-card h3 { margin: 38px 0 15px; font-size: 25px; }
.solution-card > span:last-child { position: absolute; right: 28px; bottom: 25px; color: var(--teal); font-size: 24px; }

/* Industries and contact */
.clients-industries { padding-bottom: 80px; }
.clients-section { overflow: hidden; background: var(--teal-pale); }
.clients-section .section-heading { margin-bottom: 42px; }
.client-logo-grid { width: min(100%,1080px); margin-inline: auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.client-logo-card { min-height: 190px; padding: 34px; display: grid; place-items: center; background: var(--white); border: 1px solid rgba(12,30,33,.12); border-radius: 5px; box-shadow: 0 16px 42px rgba(12,30,33,.07); transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.client-logo-card:hover { border-color: rgba(30,138,138,.35); box-shadow: 0 22px 50px rgba(12,30,33,.11); transform: translateY(-4px); }
.client-logo-card img { width: min(100%,360px); max-height: 105px; object-fit: contain; }
.client-logo-card-compact img { width: 105px; max-height: 105px; }
.client-logo-card-portrait img { width: min(100%,190px); max-height: 125px; }
.company-contact-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(340px,.75fr); gap: 28px; align-items: stretch; }
.company-details-card { min-height: 608px; padding: clamp(38px,5vw,72px); display: flex; flex-direction: column; justify-content: center; color: rgba(255,255,255,.76); background: var(--ink); border-radius: 5px; }
.company-details-card .eyebrow { color: var(--teal-bright); }
.company-details-card h3 { max-width: 650px; margin: 26px 0; color: var(--white); font-size: clamp(34px,4vw,58px); line-height: 1.08; }
.company-details-card address { max-width: 680px; margin: 0; font-size: 19px; font-style: normal; line-height: 1.75; }
.company-identifiers { margin: 42px 0 0; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.15); }
.company-identifiers div { display: grid; gap: 7px; }
.company-identifiers div + div { margin-top: 20px; }
.company-identifiers dt { color: var(--teal-bright); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.company-identifiers dd { margin: 0; color: var(--white); font-size: 18px; font-weight: 600; overflow-wrap: anywhere; }
.contact-action-stack { display: grid; grid-template-rows: repeat(2,1fr); gap: 22px; }
.contact-card { min-height: 290px; padding: 42px; display: flex; flex-direction: column; justify-content: flex-end; background: var(--grey); border-radius: 5px; transition: color .3s ease, background .3s ease, transform .3s ease; }
.contact-card:hover { color: var(--white); background: var(--teal); transform: translateY(-5px); }
.contact-card > span { width: 64px; height: 64px; margin-bottom: auto; display: grid; place-items: center; color: var(--teal); background: var(--white); border-radius: 50%; font-size: 24px; }
.contact-card h3 { margin: 28px 0 15px; font-size: 28px; transition: color .3s ease; }
.contact-card:hover h3 { color: var(--white); }
.contact-card p, .contact-card a { margin: 0; font-size: 18px; font-weight: 500; }
.contact-map { position: relative; margin-top: 28px; display: block; overflow: hidden; color: var(--white); background: var(--ink); border-radius: 5px; box-shadow: 0 18px 46px rgba(12,30,33,.12); }
.contact-map::after { content: ""; position: absolute; inset: 38% 0 0; background: linear-gradient(180deg,transparent,rgba(5,23,25,.74)); pointer-events: none; }
.contact-map picture { display: block; }
.contact-map img { width: 100%; height: auto; display: block; transition: transform .5s ease; }
.contact-map:hover img { transform: scale(1.012); }
.contact-map:focus-visible { outline: 3px solid var(--teal); outline-offset: 4px; }
.contact-map-overlay { position: absolute; z-index: 1; left: clamp(20px,4vw,52px); bottom: clamp(18px,3vw,40px); display: grid; grid-template-columns: auto auto; align-items: center; gap: 5px 14px; text-shadow: 0 2px 12px rgba(0,0,0,.4); }
.contact-map-overlay span { grid-column: 1/-1; color: var(--teal-bright); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.contact-map-overlay strong { font-size: clamp(20px,2.5vw,32px); line-height: 1.1; }
.contact-map-overlay i { font-size: 22px; font-style: normal; transition: transform .25s ease; }
.contact-map:hover .contact-map-overlay i { transform: translate(3px,-3px); }

/* CTA */
.cta-section { padding: 0 0 60px; background: var(--white); }
.cta-card { position: relative; min-height: 380px; display: flex; align-items: center; overflow: hidden; border-radius: 6px; background: var(--teal); }
.cta-image { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(30,138,138,.98) 5%,rgba(30,138,138,.82) 54%,rgba(30,138,138,.15)),url("/vtriak/images/cta-engineering.webp") center/cover; }
.parallax-media { will-change: transform; transform: translate3d(0,var(--parallax-y,0),0) scale(1.035); }
.cta-image.parallax-media { inset: -24px 0; }
.cta-content { position: relative; z-index: 2; width: 65%; padding: clamp(40px,7vw,90px); }
.cta-content h2 { margin-bottom: 38px; color: var(--white); font-size: clamp(48px,5vw,76px); }
.cta-content p { max-width: 650px; margin: -18px 0 30px; color: rgba(255,255,255,.82); font-size: 18px; }

/* Footer */
.site-footer { position: relative; overflow: hidden; color: rgba(255,255,255,.68); background: var(--ink); }
.footer-pattern { position: absolute; width: 380px; height: 380px; opacity: .22; background: center/contain no-repeat; pointer-events: none; }
.footer-pattern-one { left: -90px; bottom: 0; background-image: url("/vtriak/images/shape/pattern-2.svg"); }
.footer-pattern-two { right: -80px; top: 0; background-image: url("/vtriak/images/shape/pattern-3.svg"); }
.footer-grid { position: relative; z-index: 2; padding-block: 95px 75px; display: grid; grid-template-columns: 1.55fr .85fr 1.1fr; gap: clamp(40px,6vw,90px); }
.footer-logo { width: 285px; margin-bottom: 30px; display: block; padding: 12px; background: var(--white); border-radius: 4px; }
.footer-logo img { width: 100%; }
.footer-about > p { max-width: 610px; text-align: justify; }
.footer-legal { max-width: 610px; margin-top: 26px; padding-top: 22px; display: grid; gap: 8px; border-top: 1px solid rgba(255,255,255,.13); }
.footer-legal strong { color: var(--white); font-size: 15px; letter-spacing: .04em; }
.footer-legal address { margin: 0; font-style: normal; line-height: 1.65; }
.footer-legal span { color: var(--teal-pale); font-size: 13px; overflow-wrap: anywhere; }
.footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.footer-links h3 { margin-bottom: 15px; color: var(--white); font-size: 21px; font-weight: 600; }
.footer-links a:hover { color: var(--teal-bright); }
.footer-email > span { display: block; color: var(--teal-bright); font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.footer-email h3 { margin: 14px 0 28px; color: var(--white); font-size: clamp(28px,3vw,42px); line-height: 1.12; }
.footer-email .button { width: 100%; }
.footer-phone { display: block; margin-top: 14px; color: var(--white); font-size: 18px; font-weight: 600; }
.footer-bottom { position: relative; z-index: 2; border-top: 1px solid rgba(255,255,255,.13); }
.footer-bottom-inner { min-height: 105px; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.footer-bottom-inner > a { color: var(--white); }
.footer-contact-links { display: flex; flex-wrap: wrap; gap: 25px; }
.footer-contact-links a { color: var(--white); }
.footer-contact-links span { color: var(--teal-bright); margin-right: 7px; }
.footer-bottom .social-links { justify-content: center; }
.footer-bottom p { margin: 0; text-align: right; }
.footer-credit { display: block; margin-top: 3px; color: rgba(255,255,255,.6); font-size: 11px; font-weight: 400; line-height: 1.3; }
.footer-credit a { color: inherit; text-decoration: none; }
.footer-credit a:hover, .footer-credit a:focus-visible { color: var(--white); text-decoration: underline; text-underline-offset: 2px; }
.scroll-progress { position: fixed; z-index: 800; right: 25px; bottom: 25px; width: 64px; height: 64px; padding: 5px; border: 1px solid rgba(30,138,138,.35); border-radius: 50%; cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(15px); box-shadow: 0 8px 28px rgba(4,18,21,.2), 0 0 0 2px rgba(255,255,255,.8), inset 0 0 0 1px rgba(12,30,33,.18); transition: opacity .3s ease, visibility .3s ease, transform .3s ease, box-shadow .3s ease; }
.scroll-progress.active { opacity: 1; visibility: visible; transform: none; }
.scroll-progress:hover, .scroll-progress:focus-visible { box-shadow: 0 10px 34px rgba(4,18,21,.28), 0 0 0 2px var(--white), 0 0 0 4px rgba(30,138,138,.25); }
.encoder-face { position: relative; width: 52px; height: 52px; display: grid; place-items: center; overflow: hidden; color: var(--white); background: radial-gradient(circle at 38% 32%,#294448 0,#132b2e 42%,#081b1e 100%); border: 1px solid rgba(40,160,160,.65); border-radius: 50%; box-shadow: inset 0 0 0 4px rgba(255,255,255,.04), inset 0 -5px 12px rgba(0,0,0,.28); }
.encoder-face::before { content: ""; position: absolute; inset: 5px; border: 1px dashed rgba(40,160,160,.48); border-radius: 50%; }
.encoder-face::after { content: ""; position: absolute; top: 4px; left: 50%; width: 3px; height: 3px; margin-left: -1.5px; background: var(--teal-bright); border-radius: 50%; box-shadow: 0 40px 0 var(--teal-bright), 20px 20px 0 rgba(40,160,160,.75), -20px 20px 0 rgba(40,160,160,.75); }
.encoder-pointer { position: absolute; z-index: 2; inset: 7px; transform: rotate(var(--encoder-angle,0deg)); transition: transform .18s ease-out; }
.encoder-pointer::before { content: ""; position: absolute; top: -1px; left: 50%; width: 3px; height: 10px; margin-left: -1.5px; background: var(--teal-bright); border-radius: 2px; box-shadow: 0 0 7px rgba(40,160,160,.9); }
.encoder-value { position: relative; z-index: 3; color: var(--white); font-size: 10px; font-style: normal; font-weight: 700; letter-spacing: .02em; transition: opacity .2s ease, transform .2s ease; }
.encoder-up { position: absolute; z-index: 4; top: 16px; left: 50%; width: 2px; height: 19px; margin-left: -1px; background: var(--white); border-radius: 2px; opacity: 0; transform: translateY(7px); transition: opacity .2s ease, transform .25s cubic-bezier(.22,1,.36,1); }
.encoder-up::before { content: ""; position: absolute; top: 0; left: -4px; width: 8px; height: 8px; border-top: 2px solid var(--white); border-left: 2px solid var(--white); transform: rotate(45deg); }
.scroll-progress:hover .encoder-value, .scroll-progress:focus-visible .encoder-value { opacity: 0; transform: translateY(-6px); }
.scroll-progress:hover .encoder-up, .scroll-progress:focus-visible .encoder-up { opacity: 1; transform: translateY(0); }
.section-action { display: flex; justify-content: center; margin-top: 46px; }

@media only screen and (min-width: 1400px) and (max-width: 1600px) {
  :root { --container: 1240px; }
  .site-header { padding-inline: 18px; }
  .desktop-nav { gap: 26px; }
  .industry-card { min-height: 385px; }
  .industry-card h3 { font-size: 20px; }
}

@media only screen and (min-width: 1200px) and (max-width: 1399px) {
  :root { --container: 1120px; }
  .desktop-nav { gap: 20px; }
  .header-actions { gap: 10px; }
  .hero-content h1 { font-size: 78px; }
  .hero-slide:first-child .hero-content h1 { font-size: 66px; }
  .industry-grid { grid-template-columns: repeat(3,1fr); }
  .industry-card { min-height: 360px; }
  .capability-card { grid-template-columns: .8fr 1.2fr; }
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
  :root { --container: 940px; }
  .site-header { padding-inline: 15px; }
  .desktop-nav { gap: 17px; font-size: 14px; }
  .header-actions .button { display: none; }
  .hero-content h1 { font-size: 68px; }
  .hero-slide:first-child .hero-content h1 { font-size: 57px; }
  .hero-copy { max-width: 560px; }
  .statement-inner { grid-template-columns: 40px 1fr; }
  .statement-inner p { grid-column: 2; margin-top: -25px; }
  .split-layout { gap: 50px; }
  .collage { min-height: 570px; padding-right: 60px; }
  .collage-main { height: 515px; }
  .collage-small { width: 210px; height: 250px; }
  .industry-grid { grid-template-columns: repeat(3,1fr); }
  .industry-card { min-height: 350px; }
  .capability-card { grid-template-columns: 1fr; }
  .capability-card > img { height: 260px; }
  .focus-card { padding: 30px; }
  .contact-grid { grid-template-columns: 1fr 1fr; }
  .contact-location { grid-column: 1/-1; }
  .sourcing-callout { grid-template-columns: 1fr 1fr; }
  .sourcing-callout .button { grid-column: 1/-1; justify-self: start; }
}

@media only screen and (max-width: 991px) {
  :root { --section: 90px; }
  .desktop-only, .desktop-nav { display: none; }
  .mobile-only { display: flex; }
  .mobile-drawer { display: block; }
  .site-header { padding: 15px 22px; }
  .header-inner { min-height: 62px; }
  .brand-mark { width: 42px; }
  .brand-lockup, .brand-mark { min-height: 42px; height: 42px; }
  .brand-name { font-size: 21px; }
  .home-hero { min-height: 700px; height: 850px; }
  .hero-content { padding-top: 150px; padding-bottom: 210px; }
  .hero-content h1 { font-size: clamp(55px,9vw,78px); }
  .hero-slide:first-child .hero-content h1 { font-size: clamp(48px,7.2vw,65px); }
  .hero-copy { align-items: flex-start; flex-direction: column; }
  .hero-controls { bottom: 35px; }
  .hero-thumbnails button { width: 95px; height: 65px; }
  .hero-scroll { display: none; }
  .statement-inner { grid-template-columns: 42px 1fr; padding-block: 34px; }
  .statement-inner p { grid-column: 2; }
  .highlight-grid { grid-template-columns: 1fr; }
  .highlight-card { min-height: auto; border-right: 0; border-bottom: 1px solid var(--border); }
  .highlight-card:last-child { border-bottom: 0; }
  .split-layout { grid-template-columns: 1fr; gap: 58px; }
  .collage { max-width: 650px; }
  .industry-grid { grid-template-columns: repeat(2,1fr); }
  .industry-card { min-height: 420px; }
  .mission-grid, .partner-list { grid-template-columns: 1fr 1fr; }
  .reverse-mobile .portrait-frame { grid-row: 1; }
  .capability-grid { grid-template-columns: 1fr; }
  .focus-grid { grid-template-columns: 1fr; }
  .focus-card { min-height: auto; }
  .compliance-row { grid-template-columns: 50px 1fr 220px; gap: 24px; }
  .solution-grid { grid-template-columns: repeat(2,1fr); }
  .solution-family-grid, .dense-check-grid { grid-template-columns: repeat(2,1fr); }
  .catalog-groups { grid-template-columns: 1fr; }
  .catalog-group:only-child { grid-column: auto; }
  .sourcing-callout { grid-template-columns: 1fr; }
  .sourcing-callout .button { justify-self: start; }
  .company-contact-grid { grid-template-columns: 1fr; }
  .company-details-card { min-height: auto; }
  .contact-action-stack { grid-template-columns: repeat(2,1fr); grid-template-rows: none; }
  .footer-grid { grid-template-columns: 1.4fr 1fr; }
  .footer-bottom-inner { grid-template-columns: 1fr; padding-block: 28px; text-align: center; }
  .footer-contact-links, .footer-bottom .social-links { justify-content: center; }
  .footer-bottom p { text-align: center; }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .container { width: min(calc(100% - 50px),760px); }
  .page-hero { min-height: 450px; }
  .portrait-frame img { height: 680px; }
  .capability-card { grid-template-columns: .9fr 1.1fr; }
  .compliance-row img { height: 140px; }
}

@media only screen and (max-width: 767px) {
  :root { --section: 75px; }
  .container { width: min(calc(100% - 38px),620px); }
  .site-header { padding-inline: 12px; }
  .brand-mark { width: 42px; }
  .home-hero { height: 760px; min-height: 680px; }
  .hero-content { justify-content: flex-start; padding-top: 145px; }
  .hero-content h1 { font-size: clamp(46px,12.5vw,70px); }
  .hero-slide:first-child .hero-content h1 { font-size: clamp(39px,8.8vw,56px); }
  .hero-copy > p { font-size: 16px; }
  .hero-thumbnails { display: none; }
  .hero-controls { justify-content: flex-end; }
  .statement-inner { grid-template-columns: 1fr; gap: 12px; text-align: center; }
  .statement-inner > span { margin-inline: auto; }
  .statement-inner p { grid-column: auto; }
  .page-hero { min-height: 405px; padding: 150px 0 55px; }
  .page-hero h1 { font-size: clamp(45px,12vw,68px); }
  .collage { min-height: 545px; padding: 0 55px 70px 0; }
  .collage-main { height: 485px; }
  .collage-small { width: 180px; height: 215px; border-width: 7px; }
  .experience-badge { width: 200px; min-height: 145px; }
  .experience-badge strong { font-size: 46px; }
  .industry-card { min-height: 360px; }
  .client-logo-grid { grid-template-columns: repeat(2,1fr); }
  .mission-grid, .partner-list { grid-template-columns: 1fr; }
  .about-brand-visual { min-height: 520px; }
  .about-brand-visual > img { height: 520px; }
  .portrait-frame img, .portrait-frame.tall img { height: 560px; }
  .capability-card { grid-template-columns: 1fr; }
  .capability-card > img { height: 290px; }
  .compliance-row { grid-template-columns: 42px 1fr; }
  .compliance-row img { grid-column: 1/-1; height: 240px; }
  .solution-grid { grid-template-columns: 1fr; }
  .solution-family-grid, .dense-check-grid { grid-template-columns: 1fr; }
  .catalog-family > header { grid-template-columns: 54px 1fr; gap: 18px; }
  .catalog-family > header > span { width: 48px; height: 48px; }
  .progress-grid { flex-direction: column; }
  .contact-action-stack { grid-template-columns: 1fr; }
  .contact-map::after { inset: 0 0 52%; background: linear-gradient(180deg,rgba(5,23,25,.72),transparent); }
  .contact-map-overlay { top: 16px; bottom: auto; }
  .contact-map-overlay strong { font-size: 18px; }
  .cta-card { min-height: 340px; }
  .cta-content { width: 100%; padding: 45px 34px; }
  .cta-content h2 { font-size: clamp(42px,10vw,62px); }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom-inner { flex-direction: column; justify-content: center; padding-block: 28px; text-align: center; }
}

@media only screen and (max-width: 575px) {
  :root { --section: 65px; }
  .container, .wide-container { width: min(calc(100% - 30px),520px); }
  .site-header { padding-top: 11px; }
  .header-inner { min-height: 56px; }
  .brand-lockup { gap: 8px; }
  .brand-mark { width: 38px; }
  .brand-lockup, .brand-mark { min-height: 38px; height: 38px; }
  .brand-name { font-size: 18px; letter-spacing: .055em; }
  .menu-lines { width: 38px; }
  .mobile-drawer { width: 94vw; padding: 26px 24px; }
  .drawer-top { margin-bottom: 28px; }
  .home-hero { height: 700px; min-height: 660px; }
  .hero-content { padding-top: 130px; padding-bottom: 145px; }
  .hero-content > p { margin-bottom: 15px; font-size: 11px; }
  .hero-content h1 { font-size: clamp(42px,12vw,58px); }
  .hero-slide:first-child .hero-content h1 { font-size: clamp(34px,9vw,45px); }
  .hero-copy { margin-top: 24px; gap: 22px; }
  .hero-copy .button { min-height: 52px; }
  .hero-arrows button { width: 40px; height: 40px; }
  .section-heading { margin-bottom: 36px; }
  h2 { font-size: clamp(34px,10vw,48px); }
  .highlight-card { padding: 32px 22px; }
  .collage { min-height: 430px; padding: 0 36px 60px 0; }
  .collage-main { height: 385px; }
  .collage-small { width: 140px; height: 165px; }
  .experience-badge { width: 165px; min-height: 125px; padding: 18px; }
  .experience-badge strong { font-size: 38px; }
  .experience-badge span { font-size: 11px; }
  .industry-grid { grid-template-columns: 1fr; }
  .industry-card { min-height: 390px; }
  .client-logo-grid { grid-template-columns: 1fr; }
  .client-logo-card { min-height: 160px; padding: 28px; }
  .portrait-frame img, .portrait-frame.tall img, .portrait-frame.wide img { height: 430px; }
  .about-brand-visual { min-height: 410px; }
  .about-brand-visual > img { height: 410px; }
  .mission-card, .partner-card { padding: 22px; }
  .capability-card > img { height: 230px; }
  .capability-content { padding: 28px 24px; }
  .focus-card { padding: 28px 24px; }
  .compliance-row { grid-template-columns: 1fr; }
  .compliance-row > span { margin-bottom: -12px; }
  .compliance-row img { grid-column: auto; height: 210px; }
  .solution-card { padding: 30px 24px; }
  .contact-card { min-height: 250px; padding: 30px 24px; }
  .cta-content { padding: 38px 26px; }
  .cta-content h2 { font-size: 41px; }
  .footer-grid { padding-top: 72px; }
  .footer-logo { width: 245px; }
  .footer-contact-links { flex-direction: column; gap: 8px; }
  .scroll-progress { right: 14px; bottom: 14px; width: 58px; height: 58px; }
  .encoder-face { width: 46px; height: 46px; }
  .encoder-face::after { box-shadow: 0 34px 0 var(--teal-bright), 17px 17px 0 rgba(40,160,160,.75), -17px 17px 0 rgba(40,160,160,.75); }
  .encoder-up { top: 13px; }
}

@media (max-width: 400px) {
  .brand-lockup { gap: 6px; }
  .brand-mark { width: 34px; }
  .brand-lockup, .brand-mark { min-height: 34px; height: 34px; }
  .brand-name { font-size: 16px; }
  .hero-content h1 { font-size: 40px; }
  .hero-slide:first-child .hero-content h1 { font-size: 32px; }
  .hero-copy > p { font-size: 15px; }
  .hero-arrows span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal, .vtriak-js .reveal, .vtriak-js .hero-slide.active .hero-content > p, .vtriak-js .hero-slide.active .hero-content h1, .vtriak-js .hero-slide.active .hero-copy > p, .vtriak-js .hero-slide.active .hero-copy .button { opacity: 1; transform: none; }
  .vtriak-js .section-heading.reveal h2, .vtriak-js .page-hero-inner.reveal h1, .vtriak-js .intro-copy.reveal h2, .vtriak-js .cta-card.reveal h2 { clip-path: inset(0); opacity: 1; transform: none; }
  .parallax-media { transform: none; will-change: auto; }
  .service-links a:hover b, .service-links a:focus-visible b { animation: none; }
  .menu-diode i:last-child { transform: translateX(0); }
  .menu-diode:hover i:first-child, .mega-menu a:focus-visible .menu-diode i:first-child { transform: translateX(0); }
}
