:root {
  --color-brand: #0b5fa8;
  --color-brand-surface: #07528f;
  --color-brand-surface-hover: #063f6e;
  --color-accent: #2aa7e8;
  --color-ink: #172332;
  --color-muted: #5d6b7a;
  --color-line: #dce5ed;
  --color-surface: #f3f7fa;
  --color-dark: #071726;
  --container: 1180px;
  --header-height: 94px;
  --radius: 12px;
  --shadow: 0 18px 50px rgba(7, 23, 38, .12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--color-ink); background: #fff; font-family: "Segoe UI", Roboto, Arial, sans-serif; line-height: 1.65; }
body.nav-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: var(--color-brand-surface); }
a:hover { color: var(--color-brand-surface-hover); }
button, input, textarea, select { font: inherit; }
.container { width: min(var(--container), calc(100% - 40px)); margin-inline: auto; }
.sr-only { 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 { position: fixed; z-index: 9999; top: 8px; left: 8px; transform: translateY(-160%); padding: .75rem 1rem; background: #fff; color: #071726; border-radius: 4px; }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #f5b51b; outline-offset: 3px; }
.eyebrow { margin: 0 0 .8rem; color: var(--color-brand-surface); font-size: .78rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.section-heading { max-width: 780px; margin-bottom: 2.5rem; }
.section-heading h2 { margin: 0 0 .8rem; font-size: clamp(2rem, 4vw, 3.15rem); line-height: 1.12; }
.section-heading p { margin: 0; color: var(--color-muted); font-size: 1.08rem; }
.section { padding: clamp(4.5rem, 8vw, 7rem) 0; }
.section--surface { background: var(--color-surface); }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .78rem 1.25rem; border: 1px solid transparent; border-radius: 4px; font-weight: 760; text-decoration: none; transition: background-color .2s ease, border-color .2s ease, transform .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn--primary { color: #fff; background: var(--color-brand-surface); }
.btn--primary:hover { color: #fff; background: var(--color-brand-surface-hover); }
.btn--outline { color: #fff; border-color: rgba(255,255,255,.75); background: rgba(7,23,38,.18); }
.btn--outline:hover { color: #fff; background: rgba(7,23,38,.5); }
.btn--light { color: var(--color-dark); background: #fff; }
.btn--light:hover { color: var(--color-dark); background: #eaf5ff; }

.site-header { position: fixed; z-index: 1000; inset: 0 0 auto; height: var(--header-height); color: #fff; background: rgba(7,23,38,.12); border-bottom: 1px solid rgba(255,255,255,.14); transition: background-color .25s ease, box-shadow .25s ease, color .25s ease; }
.site-header.is-scrolled { color: var(--color-ink); background: rgba(255,255,255,.97); box-shadow: 0 8px 30px rgba(7,23,38,.10); border-bottom-color: rgba(7,23,38,.07); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { position: relative; display: block; width: 242px; height: 76px; flex: 0 0 auto; }
.brand-logo { position: absolute; inset: 50% auto auto 0; width: 242px; height: auto; transform: translateY(-50%); transition: opacity .25s ease; }
.brand-logo--transparent { opacity: 1; }
.brand-logo--scrolled { opacity: 0; }
.site-header.is-scrolled .brand-logo--transparent { opacity: 0; }
.site-header.is-scrolled .brand-logo--scrolled { opacity: 1; }
.primary-navigation ul { display: flex; align-items: center; gap: 2.1rem; margin: 0; padding: 0; list-style: none; }
.primary-navigation a { position: relative; color: inherit; font-size: .97rem; font-weight: 700; text-decoration: none; }
.primary-navigation a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.45rem; height: 2px; background: currentColor; transition: right .2s ease; }
.primary-navigation a:hover::after, .primary-navigation a:focus-visible::after { right: 0; }
.nav-toggle { display: none; width: 48px; height: 48px; padding: 11px; border: 0; background: transparent; color: inherit; }
.nav-toggle span { display: block; width: 100%; height: 2px; margin: 5px 0; background: currentColor; transition: transform .2s ease, opacity .2s ease; }

.evolution-hero { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: 680px; height: 100svh; color: #fff; background: #071726; --slide-duration: 6500ms; --crossfade-duration: 1300ms; --ken-burns-duration: 7800ms; }
.evolution-hero .hero-slides, .evolution-hero .hero-slide, .evolution-hero .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-slide { z-index: 0; display: flex; align-items: center; opacity: 0; pointer-events: none; transition: opacity var(--crossfade-duration) ease-in-out; }
.hero-slide.is-active { z-index: 2; opacity: 1; pointer-events: auto; }
.hero-slide.is-active.is-leaving, .hero-slide.is-leaving { z-index: 3; opacity: 0; pointer-events: none; }
.evolution-hero .hero-media { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: hidden; pointer-events: none; }
.evolution-hero .hero-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.03); transform-origin: center; will-change: transform; }
.evolution-hero.is-ready .hero-slide.is-active img { animation-duration: var(--ken-burns-duration); animation-timing-function: ease-out; animation-fill-mode: forwards; }
.evolution-hero.is-ready .hero-slide.kb-dir-1.is-active img { animation-name: mzKenBurns1; }
.evolution-hero.is-ready .hero-slide.kb-dir-2.is-active img { animation-name: mzKenBurns2; }
.evolution-hero.is-ready .hero-slide.kb-dir-3.is-active img { animation-name: mzKenBurns3; }
.evolution-hero.is-ready .hero-slide.kb-dir-4.is-active img { animation-name: mzKenBurns4; }
.evolution-hero.is-ready .hero-slide.kb-dir-5.is-active img { animation-name: mzKenBurns5; }
.evolution-hero.is-ready .hero-slide.kb-dir-6.is-active img { animation-name: mzKenBurns6; }
@keyframes mzKenBurns1 { from { transform: scale(1.03) translate3d(-1.4%, .8%, 0); } to { transform: scale(1.20) translate3d(2.8%, -2.2%, 0); } }
@keyframes mzKenBurns2 { from { transform: scale(1.04) translate3d(1.8%, -.8%, 0); } to { transform: scale(1.19) translate3d(-2.8%, 2.1%, 0); } }
@keyframes mzKenBurns3 { from { transform: scale(1.03) translate3d(0, 1.4%, 0); } to { transform: scale(1.20) translate3d(2.2%, -2.8%, 0); } }
@keyframes mzKenBurns4 { from { transform: scale(1.04) translate3d(-1.8%, -1%, 0); } to { transform: scale(1.19) translate3d(2.9%, 2.2%, 0); } }
@keyframes mzKenBurns5 { from { transform: scale(1.03) translate3d(1.2%, 1.2%, 0); } to { transform: scale(1.20) translate3d(-2.5%, -2.6%, 0); } }
@keyframes mzKenBurns6 { from { transform: scale(1.04) translate3d(0, -1.3%, 0); } to { transform: scale(1.19) translate3d(-2.4%, 2.7%, 0); } }
.hero-shade { z-index: 3; background: linear-gradient(90deg, rgba(4,16,28,.88), rgba(7,23,38,.38) 62%, rgba(7,23,38,.55)), linear-gradient(0deg, rgba(7,23,38,.55), transparent 45%); pointer-events: none; }
.hero-content { position: relative; z-index: 4; pointer-events: auto; width: min(1180px, calc(100% - 40px)); margin: auto; padding-top: clamp(2rem, 5vh, 4.25rem); padding-bottom: clamp(4.75rem, 8vh, 6.75rem); }
.hero-content__box { max-width: 710px; }
.hero-content .eyebrow { color: #a8ddff; }
.hero-content h1, .hero-content h2 { max-width: 700px; margin: 0 0 1.25rem; color: #fff; font-size: clamp(2.65rem, 6vw, 5.6rem); line-height: .98; letter-spacing: -.035em; }
.hero-content p:not(.eyebrow) { max-width: 650px; margin: 0 0 1.8rem; color: rgba(255,255,255,.9); font-size: clamp(1.05rem, 2vw, 1.3rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.hero-controls { position: absolute; z-index: 5; right: max(24px, calc((100vw - 1180px) / 2)); bottom: 46px; display: flex; align-items: center; gap: 10px; }
.slide-dots { display: flex; align-items: center; gap: 0; }
.slide-dots button { position: relative; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; transition: width .3s ease; }
.slide-dots button::before { content: ""; position: absolute; top: 50%; left: 8px; width: 28px; height: 3px; background: rgba(255,255,255,.45); transform: translateY(-50%); transition: width .3s ease, background-color .3s ease; }
.slide-dots button.is-active { width: 59px; }
.slide-dots button.is-active::before { width: 43px; background: #fff; }
.slide-pause { width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; background: rgba(0,0,0,.28); color: #fff; cursor: pointer; }
.scroll-cue { position: absolute; z-index: 5; left: 50%; bottom: 22px; display: flex; flex-direction: column; align-items: center; gap: 9px; min-width: 90px; padding: 8px 14px 0; color: #fff; text-decoration: none; text-shadow: 0 2px 12px rgba(0,0,0,.72); transform: translateX(-50%); animation: mzScrollCueFloat 2.2s ease-in-out infinite; }
.scroll-cue__label { font-size: .68rem; font-weight: 800; letter-spacing: .17em; line-height: 1; text-transform: uppercase; }
.scroll-cue__line { position: relative; display: block; width: 2px; height: 52px; overflow: hidden; background: rgba(255,255,255,.44); box-shadow: 0 0 12px rgba(0,0,0,.38); }
.scroll-cue__runner { position: absolute; top: -18px; left: 0; width: 100%; height: 20px; background: #fff; box-shadow: 0 0 12px rgba(255,255,255,.85); animation: mzScrollCueRunner 1.55s cubic-bezier(.45,0,.2,1) infinite; }
@keyframes mzScrollCueRunner { 0% { transform: translateY(0); opacity: 0; } 18% { opacity: 1; } 82% { opacity: 1; } 100% { transform: translateY(70px); opacity: 0; } }
@keyframes mzScrollCueFloat { 0%,100% { transform: translate(-50%,0); } 50% { transform: translate(-50%,5px); } }

.intro-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.intro-copy h2 { margin: 0 0 1.2rem; font-size: clamp(2.2rem, 4vw, 3.7rem); line-height: 1.08; letter-spacing: -.025em; }
.intro-copy p { color: var(--color-muted); font-size: 1.08rem; }
.tech-panel { position: relative; min-height: 420px; overflow: hidden; border-radius: var(--radius); background: linear-gradient(145deg,#071726,#0b4f84); box-shadow: var(--shadow); }
.tech-panel::before { content: ""; position: absolute; inset: 0; background: url('../images/backgrounds/cta-circuit.svg') center/cover no-repeat; opacity: .8; }
.tech-panel__content { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; min-height: 420px; background: rgba(255,255,255,.14); }
.tech-metric { display: flex; flex-direction: column; justify-content: flex-end; padding: 2rem; color: #fff; background: rgba(7,23,38,.45); }
.tech-metric strong { font-size: 1.2rem; }
.tech-metric span { color: rgba(255,255,255,.72); font-size: .94rem; }
.specialty-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
.specialty-card { position: relative; min-height: 255px; display: flex; flex-direction: column; align-items: center; padding: 1.7rem; border: 1px solid var(--color-line); border-radius: var(--radius); background: #fff; box-shadow: 0 6px 22px rgba(7,23,38,.04); text-align: center; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.specialty-card:hover { transform: translateY(-5px); border-color: #9bc8e9; box-shadow: var(--shadow); }
.specialty-icon { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 1.65rem; color: var(--color-brand-surface); border: 1px solid #bfdcf0; border-radius: 50%; }
.specialty-icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.specialty-card h3 { margin: 0 0 .65rem; font-size: 1.14rem; line-height: 1.25; }
.specialty-card p { margin: 0; color: var(--color-muted); font-size: .95rem; }
.sector-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.sector-card { position: relative; min-height: 285px; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: 1.7rem; color: #fff; border-radius: var(--radius); background: #071726; box-shadow: 0 12px 30px rgba(7,23,38,.12); text-decoration: none; }
.sector-card::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,rgba(4,16,28,.06) 18%,rgba(4,16,28,.28) 50%,rgba(4,16,28,.95) 100%); transition: background .3s ease; }
.sector-card__image { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.01); transition: transform .45s ease, filter .45s ease; }
.sector-card__content { position: relative; z-index: 2; display: block; }
.sector-card:hover { color: #fff; }
.sector-card:hover::before { background: linear-gradient(180deg,rgba(4,16,28,.02) 15%,rgba(4,16,28,.22) 48%,rgba(4,16,28,.92) 100%); }
.sector-card:hover .sector-card__image, .sector-card:focus-visible .sector-card__image { transform: scale(1.07); filter: saturate(1.08); }
.sector-card__content > span { color: #b9e6ff; font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sector-card h3 { margin: .45rem 0 0; color: #fff; font-size: 1.45rem; text-shadow: 0 2px 18px rgba(0,0,0,.45); }

.inner-hero { position: relative; display: flex; align-items: end; min-height: 470px; padding: calc(var(--header-height) + 5rem) 0 4.5rem; overflow: hidden; color: #fff; background: var(--color-dark); }
.inner-hero__media { position: absolute; inset: 0; width: 100%; height: 100%; }
.inner-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.inner-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; background: linear-gradient(90deg,rgba(4,16,28,.92),rgba(7,23,38,.45) 70%,rgba(7,23,38,.35)); }
.inner-hero__content { position: relative; z-index: 2; }
.inner-hero__content .eyebrow { color: #a8ddff; }
.inner-hero__content h1 { max-width: 820px; margin: 0 0 1rem; font-size: clamp(2.55rem,5vw,4.7rem); line-height: 1; letter-spacing: -.03em; }
.inner-hero__content p:not(.eyebrow) { max-width: 720px; margin: 0; color: rgba(255,255,255,.88); font-size: 1.15rem; }

.project-tools { display: flex; gap: 1rem; align-items: end; justify-content: space-between; margin-bottom: 2rem; }
.project-search { width: min(100%, 520px); }
.project-search label { display: block; margin-bottom: .45rem; font-weight: 750; }
.project-search input { width: 100%; min-height: 50px; padding: .75rem 1rem; border: 1px solid #b9c9d6; border-radius: 5px; background: #fff; }
.project-count { margin: 0 0 .75rem; color: var(--color-muted); }
.project-category { margin-bottom: 1rem; border: 1px solid var(--color-line); border-radius: 8px; background: #fff; }
.project-category summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.35rem; color: var(--color-ink); cursor: pointer; font-weight: 800; list-style: none; }
.project-category summary::-webkit-details-marker { display: none; }
.project-category summary::after { content: "+"; color: var(--color-brand-surface); font-size: 1.5rem; line-height: 1; }
.project-category[open] summary::after { content: "−"; }
.project-category__body { padding: 0 1.35rem 1.3rem; border-top: 1px solid var(--color-line); }
.project-list { margin: 0; padding: 1rem 0 0 1.2rem; columns: 2; column-gap: 3rem; }
.project-list li { break-inside: avoid; margin: 0 0 .75rem; color: #405064; }
.project-list ol { margin-top: .5rem; }
.project-category.is-filtered-out, .project-item.is-filtered-out { display: none; }

.contact-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2.5rem,6vw,6rem); }
.contact-card { padding: 2rem; border: 1px solid var(--color-line); border-radius: var(--radius); background: var(--color-surface); }
.contact-card h2 { margin-top: 0; }
.contact-list { display: grid; gap: 1.2rem; }
.contact-item { display: grid; grid-template-columns: 30px 1fr; gap: .8rem; align-items: start; }
.contact-item img { width: 24px; margin-top: .2rem; filter: invert(24%) sepia(82%) saturate(1410%) hue-rotate(178deg) brightness(82%) contrast(97%); }
.contact-item address { font-style: normal; }
.contact-item a { font-weight: 700; }
.call-note { display: block; margin-top: .15rem; color: inherit; font-size: .72rem; opacity: .76; }
.maps-link { display: inline-flex; margin-top: .55rem; font-weight: 750; }
.contact-form { display: grid; gap: 1rem; }
.form-row { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.form-field label { display: block; margin-bottom: .35rem; font-weight: 750; }
.form-field input, .form-field textarea { width: 100%; padding: .8rem .9rem; color: var(--color-ink); border: 1px solid #aebfcb; border-radius: 5px; background: #fff; }
.contact-form textarea { min-height: 155px; resize: vertical; }
.form-acknowledgement { display: grid; grid-template-columns: auto 1fr; gap: .65rem; align-items: start; font-size: .92rem; }
.form-acknowledgement input { margin-top: .35rem; }
.form-notice { padding: .8rem 1rem; color: #314459; border-left: 3px solid var(--color-brand-surface); background: var(--color-surface); font-size: .92rem; }
.form-status { min-height: 1.5em; color: #344b61; }

.legal-content { max-width: 900px; }
.legal-content h2 { margin-top: 2.4rem; font-size: 1.6rem; }
.legal-content h3 { margin-top: 1.7rem; }
.legal-content p, .legal-content li { color: #425267; }
.legal-content .legal-highlight { padding: 1.2rem 1.4rem; border-left: 4px solid var(--color-brand-surface); background: var(--color-surface); }
.error-page { min-height: 100svh; display: grid; place-items: center; padding: 4rem 0; color: #fff; background: radial-gradient(circle at 60% 20%,#0b5fa8,transparent 35%),#071726; text-align: center; }
.error-page h1 { margin: 0; font-size: clamp(5rem,18vw,10rem); line-height: .8; }
.error-page h2 { margin: 1.5rem 0 .6rem; }

.cta-panel { position: relative; overflow: hidden; padding: clamp(4rem,7vw,6.5rem) 0; color: #fff; background: linear-gradient(120deg,#07528f,#071726); }
.cta-panel::before { content: ""; position: absolute; inset: 0; background: url('../images/backgrounds/cta-circuit.svg') center/cover no-repeat; opacity: .9; }
.cta-panel__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 3rem; }
.cta-panel .eyebrow { color: #b9e6ff; }
.cta-panel h2 { margin: 0 0 .75rem; font-size: clamp(2rem,4vw,3.25rem); line-height: 1.08; }
.cta-panel p:not(.eyebrow) { max-width: 770px; margin: 0; color: rgba(255,255,255,.84); }
.cta-panel .btn { flex: 0 0 auto; }

.site-footer { color: rgba(255,255,255,.82); background: #07131f; }
.footer-main { padding: 4.4rem 0 3.2rem; }
.footer-grid { display: grid; grid-template-columns: 1.12fr .75fr 1.35fr 1fr; }
.footer-column { min-width: 0; padding: 0 2rem; border-left: 1px solid rgba(255,255,255,.14); }
.footer-column:first-child { padding-left: 0; border-left: 0; }
.footer-column:last-child { padding-right: 0; }
.footer-column h2 { margin: 0 0 1.35rem; color: #fff; font-size: 1rem; letter-spacing: .05em; text-transform: uppercase; }
.footer-identity p { margin: 1.1rem 0 0; color: rgba(255,255,255,.64); }
.footer-logo-link { display: inline-block; }
.footer-logo-image--monochrome { width: 255px; height: auto; filter: grayscale(1) brightness(0) invert(1); }
.footer-links { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; }
.footer-links a { color: rgba(255,255,255,.78); text-decoration: none; }
.footer-links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.footer-contact-list { display: grid; gap: 1rem; }
.footer-contact-item { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: .75rem; align-items: start; }
.footer-contact-item img { width: 21px; margin-top: .2rem; filter: brightness(0) invert(1); opacity: .9; }
.footer-contact-item address { font-style: normal; }
.footer-contact-item a { color: #fff; overflow-wrap: anywhere; }
.footer-contact-item a[href^="tel:"] { text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.62); }
.footer-legal-links { gap: .55rem; }
.legal-badge-item { padding-top: .55rem; }
.legal-badge, .legal-badge__image { background: transparent; }
.complaints-link { display: inline-block; background: transparent; }
.complaints-link img { display: block; width: 120px; height: 50px; object-fit: contain; background: transparent; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); }
.copyright { min-height: 66px; display: flex; align-items: center; justify-content: center; gap: .35rem; color: rgba(255,255,255,.62); font-size: .86rem; text-align: center; }
.copyright a { color: rgba(255,255,255,.82); text-decoration: none; }
.copyright a:hover { color: #fff; }

@media (max-width: 1050px) {
  .specialty-grid { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: repeat(2,1fr); gap: 3rem 0; }
  .footer-contact-column { padding-left: 0; border-left: 0; }
}
@media (max-width: 820px) {
  :root { --header-height: 82px; }
  .container { width: min(100% - 28px,var(--container)); }
  .brand { width: 205px; height: 68px; }
  .brand-logo { width: 205px; }
  .nav-toggle { display: block; }
  .primary-navigation { position: fixed; inset: var(--header-height) 0 auto; max-height: 0; overflow: hidden; color: var(--color-ink); background: #fff; box-shadow: 0 18px 35px rgba(7,23,38,.16); transition: max-height .25s ease; }
  .primary-navigation.is-open { max-height: calc(100svh - var(--header-height)); }
  .primary-navigation ul { display: grid; gap: 0; padding: .75rem 20px 1.1rem; }
  .primary-navigation a { display: block; padding: .85rem 0; border-bottom: 1px solid var(--color-line); }
  .site-header--home:not(.is-scrolled) .primary-navigation { color: var(--color-ink); }
  .nav-toggle[aria-expanded="true"] .nav-toggle__line--top { transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle__line--middle { opacity: 0; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__line--bottom { transform: translateY(-7px) rotate(-45deg); }
  .hero-content h1, .hero-content h2 { max-width: 590px; font-size: clamp(2.55rem,10vw,4.2rem); }
  .hero-controls { right: 18px; bottom: 27px; }
  .scroll-cue { display: none; }
  .intro-grid, .contact-layout { grid-template-columns: 1fr; }
  .tech-panel { min-height: 360px; }
  .tech-panel__content { min-height: 360px; }
  .sector-grid { grid-template-columns: repeat(2,1fr); }
  .cta-panel__inner { align-items: flex-start; flex-direction: column; }
  .project-list { columns: 1; }
}
@media (max-width: 620px) {
  .evolution-hero { min-height: 680px; height: 100svh; }
  .hero-content { padding-top: calc(var(--header-height) + 1.5rem); padding-bottom: 6.5rem; }
  .hero-content p:not(.eyebrow) { font-size: 1rem; }
  .hero-actions { align-items: stretch; flex-direction: column; max-width: 280px; }
  .intro-copy h2 { font-size: 2.3rem; }
  .specialty-grid, .sector-grid, .footer-grid, .form-row { grid-template-columns: 1fr; }
  .tech-panel__content { grid-template-columns: 1fr; }
  .tech-metric { min-height: 145px; }
  .project-tools { align-items: stretch; flex-direction: column; }
  .inner-hero { min-height: 430px; padding-bottom: 3.4rem; }
  .site-footer .footer-grid { gap: 0; text-align: center; }
  .footer-column { padding: 2rem 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.13); }
  .footer-column:first-of-type { padding-top: 0; border-top: 0; }
  .footer-links, .footer-contact-list { justify-items: center; }
  .footer-contact-item { width: min(100%,320px); text-align: left; }
  .copyright { min-height: 88px; flex-wrap: wrap; padding: 1rem 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .evolution-hero .hero-slide img, .evolution-hero.is-ready .hero-slide.is-active img { animation: none !important; transform: scale(1.03) !important; }
  .scroll-cue__runner { animation: none; top: 16px; opacity: 1; }
  .scroll-cue { animation: none; }
}
