
:root {
  --navy: #102c50;
  --navy-deep: #071a32;
  --red-dark: #bf191e;
  --red: #e41e23;
  --ink: #173453;
  --muted: #536170;
  --white: #fff;
  --container: 1400px;
  --frame-left: max(5vw, calc((100vw - var(--container)) / 2));
  --frame-right: var(--frame-left);
  --wide-left: 3.5vw;
  --wide-right: 4.3vw;
  --frame-inset: 32px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; font-family: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif; color: var(--ink); background: #fff; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid #ffca69; outline-offset: 4px; }
[hidden] { display: none !important; }

.site-shell { min-height: 100vh; overflow: clip; }

/* Header */
.site-header { position: fixed; top: 18px; left: var(--frame-left); right: var(--frame-right); z-index: 50; color: var(--navy); transition: top .35s ease, transform .45s cubic-bezier(.65,0,.35,1); }
.site-header.is-scrolled { top: 10px; }
.site-header.is-hidden { transform: translateY(calc(-100% - 24px)); }
.header-bar { position: relative; height: 82px; display: flex; align-items: center; padding: 0 16px 0 28px; overflow: hidden; border: 1px solid rgba(11,48,85,.1); border-radius: 12px; background: #fff; box-shadow: 0 15px 42px rgba(4,31,61,.17); transition: height .35s ease, box-shadow .25s ease, background .25s ease; }
.site-header.is-scrolled .header-bar { height: 70px; background: rgba(255,255,255,.94); box-shadow: 0 18px 44px rgba(4,31,61,.2); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.site-header.menu-open .header-bar { background: #fff; box-shadow: 0 20px 50px rgba(4,31,61,.24); }
.brand { flex: 0 0 auto; width: 214px; line-height: 0; transition: width .35s ease; }
.site-header.is-scrolled .brand { width: 190px; }
.brand img { width: 100%; height: auto; display: block; }
.desktop-nav { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; gap: 2px; }
.nav-highlight { position: absolute; top: 0; left: 0; width: 0; height: 100%; border-radius: 8px; background: #f0f4f8; opacity: 0; pointer-events: none; transition: transform .35s cubic-bezier(.65,0,.35,1), width .35s cubic-bezier(.65,0,.35,1), opacity .2s ease; }
.nav-highlight.is-visible { opacity: 1; }
.desktop-nav .nav-trigger, .desktop-nav .nav-link { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 6px; height: 42px; padding: 0 16px; border: 0; border-radius: 8px; background: none; color: var(--navy); font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap; cursor: pointer; transition: color .2s ease; }
.desktop-nav .is-current::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--red); }
.desktop-nav .nav-trigger[aria-expanded="true"] { color: var(--red); }
.nav-chevron { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s ease; }
.nav-trigger[aria-expanded="true"] .nav-chevron { transform: rotate(180deg); }
.header-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.header-language { display: inline-flex; align-items: center; padding: 3px; border: 1px solid #dbe3eb; border-radius: 999px; background: #f6f9fc; font-size: 13px; font-weight: 600; }
.header-language span, .header-language a { display: grid; place-items: center; min-width: 36px; height: 32px; padding: 0 9px; border-radius: 999px; color: var(--navy); text-decoration: none; transition: background .2s ease, color .2s ease; }
.header-language span { background: var(--navy); color: #fff; }
.header-language a:hover { background: #e4ebf2; }
.header-contact { display: inline-flex; align-items: center; justify-content: center; gap: 12px; height: 46px; padding: 0 20px; border-radius: 8px; background: var(--red); color: #fff; font-size: 15px; font-weight: 600; text-decoration: none; transition: background .2s ease; }
.header-contact:hover { background: var(--red-dark); }
.header-contact:hover svg { transform: translateX(3px); }
.header-progress { position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: var(--red); transform: scaleX(var(--progress, 0)); transform-origin: left; pointer-events: none; }
.menu-toggle { display: none; position: relative; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: var(--navy); cursor: pointer; }
.menu-toggle span { position: absolute; left: 13px; width: 18px; height: 2px; border-radius: 1px; background: #fff; transition: transform .3s ease, width .3s ease; }
.menu-toggle span:first-child { top: 17px; }
.menu-toggle span:last-child { top: 25px; width: 12px; }
.menu-toggle:hover span:last-child { width: 18px; }

/* Mega menu */
.mega-menu { position: absolute; top: calc(100% + 10px); left: 0; right: 0; overflow: hidden; border: 1px solid rgba(11,48,85,.1); border-radius: 12px; background: #fff; color: var(--ink); box-shadow: 0 28px 60px rgba(4,31,61,.24); opacity: 0; visibility: hidden; transform: translateY(-10px); transition: opacity .25s ease, transform .35s cubic-bezier(.2,.7,.2,1), visibility 0s linear .35s; }
.mega-menu.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.mega-content { display: none; }
.mega-content.is-active { display: grid; animation: mega-in .4s cubic-bezier(.2,.7,.2,1); }
@keyframes mega-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.mega-content[data-panel="activities"] { grid-template-columns: minmax(0, 1fr) 340px; }
.mega-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; padding: 32px 40px 36px; }
.mega-group { display: flex; flex-direction: column; }
.mega-label { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; color: #6d7b8a; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.mega-label::before { content: ""; width: 18px; height: 2px; background: var(--red); }
.mega-item { display: grid; grid-template-columns: 26px minmax(0, 1fr) 16px; align-items: start; gap: 12px; margin: 0 -16px; padding: 14px 16px; border-radius: 10px; color: var(--navy); text-decoration: none; transition: background .2s ease; }
.mega-item:hover, .mega-item:focus-visible { background: #f3f6f9; }
.mega-num { padding-top: 2px; color: var(--red); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.mega-item-text strong { display: block; font-size: 15.5px; font-weight: 600; line-height: 1.35; }
.mega-item-text small { display: block; margin-top: 4px; color: #6d7b8a; font-size: 13.5px; line-height: 1.45; }
.mega-item svg.icon-arrow { align-self: center; color: var(--red); opacity: 0; transform: translateX(-6px); transition: opacity .2s ease, transform .25s ease; }
.mega-item:hover svg.icon-arrow, .mega-item:focus-visible svg.icon-arrow { opacity: 1; transform: none; }
.mega-feature { position: relative; isolation: isolate; display: flex; align-items: flex-end; margin: 12px; overflow: hidden; border-radius: 10px; background: var(--navy-deep); color: #fff; text-decoration: none; }
.mega-feature img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.mega-feature::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6,47,93,.15), rgba(6,47,93,.92) 72%); transition: opacity .3s ease; }
.mega-feature-body { display: flex; flex-direction: column; gap: 12px; padding: 28px; }
.mega-feature-eyebrow { color: rgba(255,255,255,.72); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.mega-feature strong { font-size: 21px; font-weight: 500; line-height: 1.3; letter-spacing: -.015em; }
.mega-feature-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 6px; font-size: 15px; font-weight: 600; }
.mega-feature-link svg.icon-arrow { color: var(--red); }
.mega-feature:hover .mega-feature-link svg.icon-arrow { transform: translateX(3px); }
.mega-content[data-panel="sectors"] { grid-template-columns: minmax(0, 1fr) 300px; }
.mega-sectors { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 12px; }
.mega-sector { position: relative; isolation: isolate; display: flex; align-items: flex-end; height: 236px; padding: 20px; overflow: hidden; border-radius: 10px; background: var(--navy-deep); color: #fff; text-decoration: none; }
.mega-sector img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.mega-sector::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6,47,93,0) 30%, rgba(6,47,93,.9)); transition: background .3s ease; }
.mega-sector:hover::before { background: linear-gradient(180deg, rgba(6,47,93,.2) 0%, rgba(6,47,93,.95)); }
.mega-sector-num { position: absolute; top: 16px; left: 16px; padding: 5px 10px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--navy); font-size: 12px; font-weight: 600; }
.mega-sector-text { display: flex; flex-direction: column; gap: 4px; padding-right: 44px; }
.mega-sector-text strong { font-size: 19px; font-weight: 500; letter-spacing: -.015em; }
.mega-sector-text small { color: rgba(255,255,255,.75); font-size: 13.5px; line-height: 1.4; }
.mega-sector svg.icon-arrow { position: absolute; right: 18px; bottom: 20px; box-sizing: content-box; padding: 9px; border-radius: 50%; background: rgba(255,255,255,.16); transition: background .2s ease, transform .25s ease; }
.mega-sector:hover svg.icon-arrow { background: var(--red); transform: translateX(3px); }
.mega-aside { display: flex; flex-direction: column; align-items: flex-start; padding: 32px 32px 34px; border-left: 1px solid #e8ecf0; background: #f6f8fa; }
.mega-aside p:not(.mega-label) { margin: 0; color: var(--navy); font-size: 17px; line-height: 1.5; }
.mega-cta { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; color: var(--red); font-size: 15px; font-weight: 600; text-decoration: none; }
.mega-cta:hover svg { transform: translateX(3px); }

.mobile-menu { display: none; }


@media (max-width: 1240px) {
  .brand, .site-header.is-scrolled .brand { width: 176px; }
  .desktop-nav .nav-trigger, .desktop-nav .nav-link { padding: 0 12px; font-size: 14.5px; }
  .header-contact { padding: 0 16px; }
  .mega-content[data-panel="activities"] { grid-template-columns: minmax(0, 1fr) 280px; }
  .mega-content[data-panel="sectors"] { grid-template-columns: minmax(0, 1fr); }
  .mega-aside { display: none; }
}

@media (max-width: 1100px) {
  .header-language { display: none; }
}

@media (max-width: 1000px) {
  .site-shell { overflow: visible; }
  .site-header { top: 12px; left: 16px; right: 16px; }
  .site-header.is-scrolled { top: 8px; }
  .header-bar, .site-header.is-scrolled .header-bar { height: 66px; padding: 0 11px 0 18px; border-radius: 10px; }
  .brand, .site-header.is-scrolled .brand { width: 152px; }
  .desktop-nav, .header-contact, .mega-menu { display: none; }
  .header-language { display: inline-flex; }
  .header-language span, .header-language a { min-width: 32px; height: 30px; padding: 0 7px; font-size: 12.5px; }
  .menu-toggle { display: block; }

  .mobile-menu { position: fixed; z-index: 90; inset: 0; display: flex; flex-direction: column; overflow-y: auto; padding: 12px 16px 24px; background: #062f5d; color: #fff; animation: mobile-menu-in .35s ease; }
  .mobile-menu-top { flex: none; height: 66px; display: flex; align-items: center; justify-content: space-between; padding: 0 11px 0 18px; border-radius: 10px; background: #fff; }
  .mobile-brand { line-height: 0; }
  .mobile-brand img { display: block; width: 152px; height: auto; }
  .mobile-close { position: relative; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: var(--red); cursor: pointer; }
  .mobile-close span { position: absolute; top: 21px; left: 13px; width: 18px; height: 2px; border-radius: 1px; background: #fff; transform: rotate(45deg); }
  .mobile-close span:last-child { transform: rotate(-45deg); }
  .mobile-menu nav { display: flex; flex-direction: column; margin-top: 24px; padding: 0 6px; }
  .mobile-menu nav > a, .mobile-menu summary { display: flex; align-items: center; gap: 14px; width: 100%; padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.12); color: #fff; font-size: 24px; font-weight: 500; letter-spacing: -.015em; text-decoration: none; cursor: pointer; list-style: none; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-num { width: 22px; color: var(--red); font-size: 12px; font-weight: 600; letter-spacing: 0; font-variant-numeric: tabular-nums; }
  .mobile-menu .nav-chevron, .mobile-menu nav > a svg.icon-arrow { margin-left: auto; color: rgba(255,255,255,.55); }
  .mobile-menu .nav-chevron { width: 20px; height: 20px; }
  .mobile-menu details[open] .nav-chevron { transform: rotate(180deg); color: #fff; }
  .mobile-submenu { display: flex; flex-direction: column; padding: 6px 0 14px 36px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .mobile-submenu a { padding: 9px 0; color: rgba(255,255,255,.75); font-size: 16px; text-decoration: none; }
  .mobile-submenu a:hover { color: #fff; }
  .mobile-menu details[open] summary { border-bottom-color: transparent; }
  .mobile-menu-footer { margin-top: auto; padding: 36px 6px 0; }
  .mobile-contact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 22px; }
  .mobile-contact dt { margin-bottom: 4px; color: rgba(255,255,255,.55); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
  .mobile-contact dd { margin: 0; font-size: 15px; overflow-wrap: anywhere; }
  .mobile-contact a { color: #fff; text-decoration: none; }
  .mobile-menu-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .mobile-menu-actions a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; border-radius: 8px; font-size: 15px; font-weight: 600; text-decoration: none; }
  .mobile-outline { border: 1px solid rgba(255,255,255,.3); color: #fff; }
  .mobile-solid { background: var(--red); color: #fff; }
  .mobile-menu nav > *, .mobile-menu-footer { animation: mobile-item-in .5s cubic-bezier(.2,.7,.2,1) backwards; animation-delay: calc(.05s * var(--i, 5) + .1s); }
  body.menu-is-open { overflow: hidden; }
}

@keyframes mobile-menu-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes mobile-item-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

@media (max-width: 390px) {
  .header-bar, .site-header.is-scrolled .header-bar { padding: 0 9px 0 14px; }
  .brand, .site-header.is-scrolled .brand, .mobile-brand img { width: 128px; }
  .header-actions { gap: 8px; }
}

.hero { position: relative; background: #fff; }
.hero-stage { height: 100vh; height: 100dvh; min-height: 600px; position: relative; overflow: hidden; }
.hero-scrim { position: absolute; inset: 0; }
.hero-background { position: absolute; inset: 0; background: #0b2c52 url('../img/hero-night.webp') center 70% / cover no-repeat; }
.hero-scrim { background: linear-gradient(180deg, rgba(0,49,94,.48), rgba(0,45,87,.48) 57%, rgba(0,38,77,.58)); }
.hero-grid { position: absolute; z-index: 2; top: clamp(120px, calc(50dvh - 200px), 245px); left: 0; width: 100%; display: grid; grid-template-columns: 31% 35.5% 33.5%; padding-left: calc(var(--wide-left) + var(--frame-inset)); padding-right: calc(var(--wide-right) + var(--frame-inset)); }
.hero-story { position: relative; height: 230px; padding: 0 32px; color: #fff; display: flex; flex-direction: column; align-items: flex-start; }
.hero-story:first-child { padding-left: 0; }
.hero-story:last-child { padding-right: 0; }
.hero-story + .hero-story { border-left: 1px solid rgba(255,255,255,.31); }
.hero-story::before { content: ""; position: absolute; z-index: 0; inset: -32px 0; border-radius: 12px; background: rgba(0,41,84,.2); opacity: 0; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); mix-blend-mode: multiply; pointer-events: none; transition: opacity .5s cubic-bezier(.05,0,.35,1); }
.hero-story:first-child::before { left: -32px; }
.hero-story:last-child::before { right: -32px; }
.hero-story > * { position: relative; z-index: 1; transition: transform .5s cubic-bezier(.05,0,.35,1); }
.hero-story:hover, .hero-story:focus-within { border-left-color: transparent; }
.hero-story:hover + .hero-story, .hero-story:focus-within + .hero-story { border-left-color: transparent; }
.hero-story:hover::before, .hero-story:focus-within::before { opacity: .6; }
.hero-story:hover > *, .hero-story:focus-within > * { transform: translateX(8px); }
.hero-story h1, .hero-story h2 { margin: 0 0 15px; font-size: 36px; font-weight: 400; line-height: 1.3; letter-spacing: 0; }
.hero-copy { max-width: 505px; margin: 0; font-size: 18px; line-height: 1.5; color: #fff; }
.hero-link { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; text-decoration: none; color: #fff; font-size: 16px; font-weight: 400; line-height: 24px; }
.hero-link:hover { text-decoration: none; }
.hero-link svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s ease; }
.hero-link:hover svg { transform: translateX(3px); }
.hero-pagination { display: none; }

.hero-action-panel { position: absolute; z-index: 4; bottom: 56px; left: var(--wide-left); right: var(--wide-right); min-height: 155px; display: grid; grid-template-columns: 200px minmax(0, 1fr) 1px 420px; align-items: center; gap: 48px; padding: var(--frame-inset); border-radius: 9px; background: #fff; box-shadow: 0 7px 22px rgba(3,16,35,.12); }
.panel-identity { height: 91px; display: flex; flex-direction: column; justify-content: space-between; }
.panel-identity strong, .panel-links > span, .panel-reach > span { display: block; color: #003369; font-size: 20px; font-weight: 400; line-height: 28px; }
.panel-identity strong { font-weight: 600; }
.panel-identity p { margin: 0; max-width: 200px; color: #686868; font-size: 14px; line-height: 21px; }
.panel-links, .panel-reach { height: 91px; display: flex; flex-direction: column; justify-content: space-between; }
.panel-link-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.panel-link-list a { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; border: 1px solid var(--red); border-radius: 5px; padding: 7px 11px; color: var(--red); font-size: 15px; font-weight: 600; text-align: center; text-decoration: none; white-space: nowrap; }
.panel-link-list a:hover { background: #fdeeee; }
.panel-divider { width: 1px; height: 91px; background: #dfe4ea; }
.panel-reach-actions { display: grid; grid-template-columns: minmax(0, 1fr) 150px; gap: 16px; }
.panel-email { display: flex; align-items: center; min-width: 0; min-height: 40px; padding: 7px 13px; border: 1px solid #b5c6d7; border-radius: 5px; color: #718092; font-size: 15px; text-decoration: none; overflow: hidden; white-space: nowrap; }
.panel-contact { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 7px 12px; border-radius: 5px; background: var(--red); color: #fff; font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.panel-contact:hover { background: var(--red-dark); }

/* About */
.about-section { padding: 128px var(--frame-right) 120px var(--frame-left); background: #fff; }
.about-top { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 44px; }
.about-top .section-eyebrow { margin: 0; }
.about-meta { display: flex; gap: 28px; margin: 0; color: #7a8796; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.about-meta span + span::before { content: ""; display: inline-block; width: 5px; height: 5px; margin: 0 28px 2px -28px; border-radius: 50%; background: var(--red); vertical-align: middle; transform: translateX(14px); }
.about-statement { max-width: 1240px; margin: 0; color: var(--navy); font-size: clamp(28px, 2.9vw, 46px); font-weight: 500; line-height: 1.2; letter-spacing: -.025em; }
.about-word { opacity: .14; transition: opacity .35s ease; }
.about-word.is-lit { opacity: 1; }
.about-mark { color: var(--red); }
.about-chip { position: relative; display: inline-block; width: 1.9em; height: .82em; margin: 0 .04em; vertical-align: -.06em; opacity: .14; transform: scale(.85); transition: opacity .45s ease, transform .6s cubic-bezier(.2,.7,.2,1), width .6s cubic-bezier(.65,0,.35,1); }
.about-chip.is-lit { opacity: 1; transform: none; }
.about-chip-thumb { position: absolute; inset: 0; overflow: hidden; border-radius: 999px; background: var(--navy-deep); transition: box-shadow .4s ease; }
.about-chip img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.about-chip-thumb img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.about-chip-pop { display: none; }
@media (hover: hover) and (pointer: fine) {
  .about-chip { cursor: zoom-in; }
  .about-chip.is-lit:hover { z-index: 5; transform: scale(1.12); }
  .about-chip:hover .about-chip-thumb { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--red); }
  .about-chip:hover .about-chip-thumb img { transform: scale(1.12); }
  .about-chip-pop { position: absolute; left: 50%; bottom: calc(100% + 18px); display: block; width: 230px; aspect-ratio: 4 / 3; overflow: hidden; border: 5px solid #fff; border-radius: 14px; background: var(--navy-deep); box-shadow: 0 30px 60px rgba(4,31,61,.28); opacity: 0; pointer-events: none; transform: translate(-50%, 16px) scale(.55) rotate(-6deg); transform-origin: 50% 100%; transition: opacity .25s ease, transform .5s cubic-bezier(.34,1.56,.64,1); }
  .about-chip-pop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(6,47,93,.85)); }
  .about-chip-pop span { position: absolute; left: 14px; bottom: 12px; z-index: 1; display: flex; align-items: center; gap: 8px; color: #fff; font-size: 13px; font-weight: 600; letter-spacing: 0; line-height: 1.2; }
  .about-chip-pop span::before { content: ""; width: 16px; height: 2px; background: var(--red); }
  .about-chip.is-lit:hover .about-chip-pop { opacity: 1; transform: translate(-50%, 0) scale(.9) rotate(-2deg); }
  .about-statement .about-word, .about-statement .about-chip { transition: opacity .35s ease, transform .6s cubic-bezier(.2,.7,.2,1), width .6s cubic-bezier(.65,0,.35,1); }
  .about-statement:has(.about-chip.is-lit:hover) .about-word.is-lit, .about-statement:has(.about-chip.is-lit:hover) .about-chip.is-lit:not(:hover) { opacity: .28; }
}
.about-bottom { display: flex; justify-content: flex-end; margin-top: 72px; }
.about-intro { max-width: 520px; padding-left: 28px; border-left: 2px solid var(--red); }
.about-intro p { margin: 0 0 22px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.about-link { display: inline-flex; align-items: center; gap: 10px; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: var(--navy); font-size: 15px; font-weight: 600; text-decoration: none; }
.about-link svg.icon-arrow { color: var(--red); }
.about-link:hover svg.icon-arrow { transform: translateX(3px); }

@media (max-width: 1000px) {
  .about-section { padding: 96px 22px 88px; }
  .about-bottom { justify-content: flex-start; margin-top: 56px; }
}

@media (max-width: 600px) {
  .about-section { padding: 76px 20px 72px; }
  .about-top { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 28px; }
  .about-meta { gap: 18px; font-size: 12px; }
  .about-meta span + span::before { margin: 0 18px 2px -18px; transform: translateX(9px); }
  .about-statement { font-size: 27px; line-height: 1.25; }
  .about-intro p { font-size: 16px; }
}

.sectors-section { padding: 104px var(--frame-right) 112px var(--frame-left); background: #062f5d; }
.sectors-section h2 { margin: 0 0 32px; color: #fff; font-size: clamp(30px, 2.25vw, 36px); font-weight: 400; line-height: 1.2; letter-spacing: -.025em; }
.sector-cards, .services-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sector-card, .service-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border-radius: 12px; background: #fff; }
.sector-card img, .service-card img { display: block; flex: none; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.sector-card, .service-card { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; }
.sector-card img, .service-card img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.sector-card h3, .service-card h3 { transition: color .25s ease; }
.sector-card:hover, .service-card:hover, .sector-card:focus-within, .service-card:focus-within { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(0,0,0,.28); }
.sector-card:hover img, .service-card:hover img, .sector-card:focus-within img, .service-card:focus-within img { transform: scale(1.05); }
.sector-card:hover h3, .service-card:hover h3 { color: var(--red); }
.sector-card-content, .service-card-content { display: flex; flex: 1; flex-direction: column; min-height: 0; padding: 24px 24px 24px; }
.sector-card-content h3, .service-card-content h3 { margin: 0 0 10px; color: #003369; font-size: 22px; font-weight: 400; line-height: 1.2; letter-spacing: -.02em; }
.sector-card-content p, .service-card-content p { margin: 0; color: #686868; font-size: 16px; line-height: 1.5; }
.sector-card-actions, .service-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: auto; padding-top: 24px; }
.sector-card-actions a, .service-card-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--red); border-radius: 6px; color: var(--red); background: #fff; font-size: 15px; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none; transition: background .2s ease, color .2s ease; }
.sector-card-actions a:first-child, .service-card-actions a:first-child { background: var(--red); color: #fff; }
.sector-card-actions a:first-child:hover, .service-card-actions a:first-child:hover { background: var(--red-dark); }
.sector-card-actions a:last-child:hover, .service-card-actions a:last-child:hover { background: #fdeeee; }

.services-section { padding: 104px var(--frame-right) 112px var(--frame-left); background: #fff; }
.services-intro { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(48px, 6vw, 110px); align-items: start; }
.services-intro h2 { max-width: 640px; margin: 0; color: #003369; font-size: clamp(30px, 2.25vw, 36px); font-weight: 400; line-height: 1.2; letter-spacing: -.025em; }
.services-intro-copy h3 { margin: 0 0 16px; color: #003369; font-size: 22px; font-weight: 400; line-height: 1.2; letter-spacing: -.015em; }
.services-intro-copy p { max-width: 620px; margin: 0; color: #393939; font-size: 17px; line-height: 1.55; }
.services-tabs { display: flex; align-items: end; gap: 36px; margin-top: 64px; overflow-x: auto; scrollbar-width: none; }
.services-tabs::-webkit-scrollbar { display: none; }
.services-tab { position: relative; flex: 0 0 auto; padding: 0 0 12px; border: 0; background: none; color: #003369; font-size: 16px; font-weight: 600; line-height: 1.2; cursor: pointer; white-space: nowrap; }
.services-tab::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 4px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.services-tab:hover::after { transform: scaleX(1); }
.services-tab[aria-selected="true"]::after { display: none; }
.services-tabs { position: relative; }
.services-tab::after { opacity: .25; }
.services-tab-indicator { position: absolute; left: 0; bottom: 0; width: 0; height: 4px; background: var(--red); pointer-events: none; transition: transform .45s cubic-bezier(.65,0,.35,1), width .45s cubic-bezier(.65,0,.35,1); }
.services-panel.is-entering .service-card { animation: service-card-in .55s cubic-bezier(.2,.7,.2,1) backwards; }
.services-panel.is-entering .service-card:nth-child(2) { animation-delay: .07s; }
.services-panel.is-entering .service-card:nth-child(3) { animation-delay: .14s; }
@keyframes service-card-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.services-panel { margin-top: 40px; }


@media (max-width: 1500px) {
  .hero-action-panel { grid-template-columns: 175px minmax(0, 1fr) 1px 350px; gap: 28px; }
  .panel-link-list { gap: 10px; }
  .panel-link-list a { font-size: 14px; }
  .panel-reach-actions { grid-template-columns: minmax(0, 1fr) 125px; gap: 10px; }
  .panel-email { font-size: 13px; }
}

@media (max-width: 1100px) {
  .sector-card-actions, .service-card-actions { grid-template-columns: 1fr; gap: 9px; }
}

@media (max-width: 1200px) {
  .hero-story { height: 210px; padding-inline: 22px; }
  .hero-story h1, .hero-story h2 { font-size: 31px; }
  .hero-copy { font-size: 16px; line-height: 1.45; }
  .hero-action-panel { display: grid; grid-template-columns: 175px minmax(0, 1fr); min-height: 210px; row-gap: 22px; }
  .panel-divider { display: none; }
  .panel-reach { grid-column: 1 / -1; height: auto; display: grid; grid-template-columns: 175px 1fr; align-items: center; gap: 28px; padding-top: 18px; border-top: 1px solid #e3e8ee; }
  .panel-reach-actions { grid-template-columns: minmax(0, 1fr) 150px; }
}

@media (min-width: 1001px) and (max-height: 650px) {
  .hero-action-panel { bottom: 16px; row-gap: 12px; padding-top: 20px; padding-bottom: 20px; }
  .panel-reach { padding-top: 12px; }
}

@media (max-width: 1000px) {
  .site-shell { overflow: visible; }
  .hero-stage { min-height: 560px; }
  .hero-scrim { background: linear-gradient(180deg, rgba(0,47,91,.48), rgba(0,47,91,.58) 60%, rgba(0,35,71,.75)); }
  .hero-grid { display: block; top: 155px; width: 100%; max-width: 650px; padding: 0 22px; }
  .hero-story { display: none; height: max(300px, calc(100dvh - 250px)); padding: 0; border: 0 !important; }
  .hero-story.is-active { display: flex; }
  .hero-story::before { display: none; }
  .hero-story:hover > *, .hero-story:focus-within > * { transform: none; }
  .hero-story h1, .hero-story h2 { max-width: 520px; margin-bottom: 10px; font-size: 34px; line-height: 1.28; }
  .hero-copy { max-width: 500px; font-size: 16px; line-height: 1.55; }
  .hero-link { margin-top: auto; font-size: 16px; }
  .hero-pagination { position: absolute; z-index: 3; left: 22px; bottom: 43px; display: flex; gap: 9px; }
  .hero-pagination button { width: 29px; height: 4px; padding: 0; border: 0; background: rgba(255,255,255,.44); cursor: pointer; }
  .hero-pagination button.is-active { background: #fff; }
  .hero-action-panel { position: static; display: flex; flex-direction: column; align-items: stretch; gap: 28px; min-height: 0; padding: 30px 22px 36px; border-radius: 0; box-shadow: none; }
  .panel-identity { height: auto; gap: 10px; }
  .panel-identity p { max-width: none; }
  .panel-links { height: auto; gap: 18px; padding: 25px 0 0; border-top: 1px solid #e2e6eb; }
  .panel-link-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
  .panel-link-list a { font-size: 15px; }
  .panel-reach { display: flex; flex-direction: column; align-items: stretch; gap: 18px; padding-top: 25px; border-top: 1px solid #e2e6eb; }
  .panel-reach-actions { grid-template-columns: minmax(0, 1fr) 130px; gap: 10px; }
  .panel-email { font-size: 14px; }

  .sectors-section { padding: 75px 22px 84px; }
  .sectors-section h2 { margin-bottom: 26px; font-size: clamp(28px, 4.2vw, 34px); }
  .sector-cards, .services-cards { gap: 16px; }
  .sector-card-content, .service-card-content { padding: 20px 19px 19px; }
  .sector-card-content h3, .service-card-content h3 { font-size: 22px; }
  .sector-card-content p, .service-card-content p { font-size: 16px; }
  .sector-card-actions a, .service-card-actions a { min-height: 43px; font-size: 14px; }

  .services-section { padding: 80px 22px 90px; }
  .services-intro { grid-template-columns: 1fr; gap: 28px; }
  .services-intro h2 { max-width: 720px; font-size: clamp(28px, 4.2vw, 34px); }
  .services-intro-copy h3 { margin-bottom: 14px; }
  .services-intro-copy p { max-width: 720px; font-size: 17px; }
  .services-tabs { gap: 30px; margin-top: 60px; }
}

@media (max-width: 600px) {
  .hero-stage { min-height: 520px; }
  .hero-grid { top: 130px; }
  .hero-story { height: max(300px, calc(100dvh - 220px)); }
  .hero-story h1, .hero-story h2 { font-size: 30px; line-height: 1.3; }
  .hero-copy { font-size: 16px; line-height: 1.55; }
  .sectors-section { padding: 66px 20px 76px; }
  .sectors-section h2 { margin-bottom: 24px; font-size: 28px; }
  .sector-cards { grid-template-columns: 1fr; gap: 16px; }
  .sector-card-content, .service-card-content { padding: 22px; }
  .sector-card-content h3, .service-card-content h3 { font-size: 22px; }
  .sector-card-content p, .service-card-content p { font-size: 16px; }
  .sector-card-actions, .service-card-actions { grid-template-columns: 1fr 1fr; gap: 9px; }
  .sector-card-actions a, .service-card-actions a { min-height: 46px; padding: 7px; font-size: 14px; }
  .services-section { padding: 66px 20px 80px; }
  .services-intro h2 { font-size: 28px; }
  .services-intro-copy h3 { font-size: 22px; }
  .services-intro-copy p { font-size: 16px; }
  .services-tabs { margin-top: 47px; gap: 26px; }
  .services-tab { font-size: 15px; }
  .services-cards { grid-template-columns: 1fr; gap: 18px; }
}

@media (max-width: 390px) {
  .hero-grid { padding-inline: 20px; }
  .hero-pagination { left: 20px; }
  .hero-action-panel { padding-left: 20px; padding-right: 20px; }
  .panel-reach-actions { grid-template-columns: minmax(0, 1fr) 105px; }
  .panel-email { font-size: 12px; }
}

/* Services: editorial step cards */
.section-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; color: var(--red); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.section-eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.services-intro { align-items: end; }
.services-intro-copy p { color: var(--muted); }
.services-intro-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; color: var(--navy); font-size: 15px; font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; transition: color .2s ease; }
.services-intro-link:hover { color: var(--red); }
.services-intro-link svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.services-intro-link:hover svg { transform: translateX(3px); }
.services-tabs { margin-top: 64px; border-bottom: 1px solid #e1e6ec; }
.services-tab { display: inline-flex; align-items: baseline; gap: 10px; padding-bottom: 16px; color: #8592a0; transition: color .25s ease; }
.services-tab:hover, .services-tab[aria-selected="true"] { color: var(--navy); }
.services-tab::after { bottom: -1px; height: 2px; }
.services-tab-indicator { bottom: -1px; height: 2px; }
.services-tab-range { color: #a3adb8; font-size: 13px; font-weight: 400; letter-spacing: .04em; }
.services-tab[aria-selected="true"] .services-tab-range { color: var(--red); }
.services-section .services-cards { gap: 24px; }
.services-section .service-card { position: relative; height: auto; overflow: visible; border-radius: 0; background: none; }
.services-section .service-card:hover, .services-section .service-card:focus-within { transform: none; box-shadow: none; }
.service-card-media { position: relative; overflow: hidden; border-radius: 12px; aspect-ratio: 4 / 3; background: #e9eef3; }
.service-card-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,47,93,0) 50%, rgba(6,47,93,.35)); opacity: 0; transition: opacity .35s ease; }
.services-section .service-card-media img { height: 100%; aspect-ratio: auto; }
.services-section .service-card:hover .service-card-media::after { opacity: 1; }
.services-section .service-card-content { padding: 26px 0 0; }
.service-step { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; color: var(--red); font-size: 13px; font-weight: 600; letter-spacing: .08em; }
.service-step::after { content: ""; flex: 1; height: 1px; background: #e1e6ec; transition: background .35s ease; }
.service-card:hover .service-step::after { background: var(--red); }
.services-section .service-card-content h3 { margin-bottom: 10px; color: var(--navy); }
.services-section .service-card:hover h3 { color: var(--navy); }
.services-section .service-card-content p { max-width: 400px; color: var(--muted); font-size: 15px; }
.service-card-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; color: var(--red); font-size: 15px; font-weight: 600; text-decoration: none; }
.service-card-link::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.service-card-link svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s ease; }
.service-card:hover .service-card-link svg, .service-card-link:focus-visible svg { transform: translateX(3px); }
@media (max-width: 1000px) {
  .services-intro { align-items: start; }
  .services-tabs { margin-top: 44px; }
  .services-section .services-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
}
@media (max-width: 600px) {
  .services-section .services-cards { grid-template-columns: 1fr; gap: 36px; }
  .services-tab-range { display: none; }
}

/* Sectors: expanding image panels */
.sectors-head { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(48px, 6vw, 110px); align-items: end; margin-bottom: 48px; }
.sectors-section .sectors-head h2 { margin: 0; }
.sectors-lead { max-width: 560px; margin: 0; color: rgba(255,255,255,.72); font-size: 17px; line-height: 1.55; }
.sectors-section .sector-cards { display: flex; gap: 16px; height: clamp(520px, 66vh, 680px); container-type: inline-size; }
.sectors-section .sector-card { position: relative; isolation: isolate; flex: 1 1 0; min-width: 0; height: auto; overflow: hidden; border-radius: 12px; background: var(--navy-deep); color: #fff; cursor: pointer; transition: flex-grow .7s cubic-bezier(.65,0,.35,1); }
.sectors-section .sector-card.is-active { flex-grow: 2.6; cursor: default; }
.sectors-section .sector-card:hover, .sectors-section .sector-card:focus-within { transform: none; box-shadow: none; }
/* Image keeps the expanded panel's width so it is revealed, not re-cropped, while the panel animates */
.sectors-section .sector-card img { position: absolute; top: 0; left: 50%; z-index: -2; width: calc((100cqw - (var(--n, 3) - 1) * 16px) * 2.6 / (var(--n, 3) + 1.6)); max-width: none; height: 100%; aspect-ratio: auto; transform: translateX(-50%); filter: saturate(.75) brightness(.8); transition: filter .6s ease; }
.sectors-section .sector-card.is-active img, .sectors-section .sector-card:hover img, .sectors-section .sector-card:focus-within img { transform: translateX(-50%); filter: none; }
.sectors-section .sector-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(4,24,48,.35) 0%, rgba(6,47,93,0) 30%, rgba(6,47,93,.45) 60%, rgba(4,24,48,.95) 100%); }
.sectors-section .sector-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .6s cubic-bezier(.65,0,.35,1) .15s; }
.sectors-section .sector-card.is-active::after { transform: scaleX(1); }
.sector-index { position: absolute; top: 28px; left: 28px; color: rgba(255,255,255,.75); font-size: 14px; font-weight: 600; letter-spacing: .08em; }
.sector-card.is-active .sector-index { color: #fff; }
.sector-card.is-active .sector-index::after { content: ""; display: inline-block; width: 28px; height: 2px; margin-left: 12px; vertical-align: middle; background: var(--red); }
.sectors-section .sector-card-content { position: absolute; left: 0; right: 0; bottom: 0; flex: none; padding: 32px; background: none; }
.sectors-section .sector-card-content h3, .sectors-section .sector-card:hover h3 { margin: 0; color: #fff; font-size: 22px; white-space: nowrap; }
.sectors-section .sector-card-content p, .sectors-section .sector-card-actions { max-width: 460px; max-height: 0; overflow: hidden; opacity: 0; transform: translateY(12px); transition: max-height .5s ease, opacity .35s ease, transform .5s ease, padding-top .5s ease; }
.sectors-section .sector-card-content p { padding-top: 0; color: rgba(255,255,255,.86); font-size: 16px; }
.sectors-section .sector-card-actions { padding-top: 0; }
.sectors-section .sector-card.is-active .sector-card-content p { max-height: 100px; padding-top: 12px; opacity: 1; transform: none; transition-delay: .25s; }
.sectors-section .sector-card.is-active .sector-card-actions { max-height: 100px; padding-top: 24px; opacity: 1; transform: none; transition-delay: .32s; }
.sectors-section .sector-card-actions a { border-color: rgba(255,255,255,.75); background: transparent; color: #fff; white-space: nowrap; }
.sectors-section .sector-card-actions a:first-child { border-color: #fff; background: #fff; color: var(--red); }
.sectors-section .sector-card-actions a:first-child:hover { background: #fdeeee; }
.sectors-section .sector-card-actions a:last-child:hover { background: rgba(255,255,255,.14); }
@media (max-width: 1000px) {
  .sectors-head { grid-template-columns: 1fr; gap: 20px; align-items: start; margin-bottom: 32px; }
  .sectors-lead { font-size: 16px; }
  .sectors-section .sector-cards { flex-direction: column; height: auto; }
  .sectors-section .sector-card, .sectors-section .sector-card.is-active { flex: none; height: 420px; cursor: default; }
  .sectors-section .sector-card img, .sectors-section .sector-card.is-active img { left: 0; width: 100%; transform: none; filter: none; }
  .sectors-section .sector-card::after { transform: scaleX(1); }
  .sectors-section .sector-card-content { padding: 24px; }
  .sectors-section .sector-card-content h3 { font-size: 22px; white-space: normal; }
  .sectors-section .sector-card-content p, .sectors-section .sector-card-actions { max-height: none; opacity: 1; transform: none; }
  .sectors-section .sector-card-content p { padding-top: 10px; }
  .sectors-section .sector-card-actions { padding-top: 20px; }
  .sector-index { top: 22px; left: 24px; }
}
@media (max-width: 600px) {
  .sectors-section .sector-card, .sectors-section .sector-card.is-active { height: 440px; }
}

/* Tools: editorial list with a sticky visual */
.tools-section { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(48px, 7vw, 120px); align-items: stretch; padding: 112px var(--frame-right) 120px var(--frame-left); background: #062f5d; color: #fff; }
.tools-section .section-eyebrow { color: rgba(255,255,255,.78); }
.tools-section .section-eyebrow::before { background: var(--red); }
.tools-aside { display: flex; flex-direction: column; }
.tools-aside h2 { max-width: 460px; margin: 0; font-size: clamp(30px, 2.25vw, 36px); line-height: 1.2; }
.tools-lead { max-width: 440px; margin: 20px 0 0; color: rgba(255,255,255,.72); font-size: 17px; line-height: 1.55; }
.tools-visual { position: relative; flex: 1; min-height: 320px; margin-top: 40px; overflow: hidden; border-radius: 12px; background: var(--navy-deep); }
.tools-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,47,93,0) 55%, rgba(4,24,48,.45)); pointer-events: none; }
.tools-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .55s ease, transform 1.2s cubic-bezier(.2,.7,.2,1); }
.tools-visual img.is-active { opacity: 1; transform: none; }
.tool-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.16); }
.tool-row { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 30px 0; border-bottom: 1px solid rgba(255,255,255,.16); cursor: default; }
.tool-row::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 100%; height: 1px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.65,0,.35,1); }
.tool-row.is-active::after { transform: scaleX(1); }
.tool-index { padding-top: 4px; color: rgba(255,255,255,.4); font-size: 14px; font-weight: 600; letter-spacing: .08em; transition: color .3s ease; }
.tool-row.is-active .tool-index { color: var(--red); }
.tool-row-body { transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.tool-row.is-active .tool-row-body { transform: translateX(8px); }
.tools-section .tool-category { display: block; margin-bottom: 8px; color: rgba(255,255,255,.55); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.tool-row h3 { margin: 0; color: rgba(255,255,255,.62); font-size: 22px; line-height: 1.2; transition: color .3s ease; }
.tool-row.is-active h3 { color: #fff; }
.tool-row p { max-width: 520px; margin: 0; max-height: 0; overflow: hidden; color: rgba(255,255,255,.72); font-size: 15px; line-height: 1.5; opacity: 0; transition: max-height .45s ease, margin-top .45s ease, opacity .35s ease; }
.tool-row.is-active p { max-height: 80px; margin-top: 10px; opacity: 1; }
.tool-thumb { display: none; }
@media (max-width: 1000px) {
  .tools-section { grid-template-columns: 1fr; gap: 36px; padding: 80px 22px 90px; }
  .tools-aside { display: block; }
  .tools-aside h2 { font-size: clamp(28px, 4.2vw, 34px); }
  .tools-visual { display: none; }
  .tool-row { grid-template-columns: 40px minmax(0, 1fr) 96px; align-items: start; padding: 22px 0; }
  .tool-row h3 { color: #fff; }
  .tool-row p { max-height: none; margin-top: 8px; opacity: 1; }
  .tool-row.is-active .tool-row-body { transform: none; }
  .tool-row::after { display: none; }
  .tool-index { color: var(--red); }
  .tool-thumb { display: block; width: 96px; height: auto; aspect-ratio: 1; border-radius: 8px; object-fit: cover; }
}
@media (max-width: 600px) {
  .tools-section { padding: 66px 20px 80px; }
  .tools-aside h2 { font-size: 28px; }
  .tools-lead { font-size: 16px; }
  .tool-row { grid-template-columns: 32px minmax(0, 1fr) 72px; gap: 12px; }
  .tool-thumb { width: 72px; }
  .tool-row h3 { font-size: 20px; }
}

/* Projects: horizontal, draggable showcase */
.projects-section { padding: 112px var(--frame-right) 104px var(--frame-left); background: #fff; overflow: hidden; }
.projects-head { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(48px, 6vw, 110px); align-items: end; margin-bottom: 48px; }
.projects-head h2 { margin: 0; color: #003369; font-size: clamp(30px, 2.25vw, 36px); line-height: 1.2; }
.projects-head-side { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.projects-head-side p { max-width: 420px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.55; }
.projects-controls { display: flex; flex: none; gap: 10px; }
.projects-nav { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; padding: 0; border: 1px solid #d3dbe4; border-radius: 50%; background: #fff; color: var(--navy); cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease; }
.projects-nav:hover:not(:disabled) { border-color: var(--red); background: var(--red); color: #fff; }
.projects-nav:disabled { opacity: .35; cursor: default; }
.icon-arrow-back { transform: rotate(180deg); }
.projects-nav:hover:not(:disabled) svg.icon-arrow { transform: translateX(2px); }
.projects-nav:hover:not(:disabled) svg.icon-arrow-back { transform: rotate(180deg) translateX(2px); }
.projects-track { display: flex; gap: 24px; margin: 0 calc(-1 * var(--frame-right)) 0 calc(-1 * var(--frame-left)); padding: 0 var(--frame-right) 4px var(--frame-left); overflow-x: auto; overscroll-behavior-x: contain; scroll-padding-left: var(--frame-left); scrollbar-width: none; cursor: grab; outline-offset: -3px; }
.projects-track::-webkit-scrollbar { display: none; }
.projects-track.is-dragging { cursor: grabbing; user-select: none; }
.projects-track.is-dragging .project-card-media > img { transform: none; }
.project-card { flex: 0 0 clamp(280px, 27vw, 380px); }
.project-card-media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; border-radius: 12px; background: #e9eef3; }
.project-card-media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.65,0,.35,1); }
.project-card:hover .project-card-media::after { transform: scaleX(1); }
.project-card-media > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.project-card:hover .project-card-media > img { transform: scale(1.04); }
.project-tag { position: absolute; top: 18px; left: 18px; padding: 7px 12px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--navy); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.project-client { position: absolute; right: 18px; bottom: 18px; display: flex; align-items: center; justify-content: center; width: 104px; height: 48px; padding: 8px 12px; border-radius: 10px; background: rgba(255,255,255,.94); box-shadow: 0 6px 18px rgba(4,24,48,.18); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.project-client img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.project-card-content { padding-top: 22px; }
.project-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; color: var(--muted); font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.project-meta span { color: var(--red); }
.project-card h3 { margin: 0 0 8px; color: var(--navy); font-size: 22px; line-height: 1.25; }
.project-card p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.projects-progress { position: relative; height: 2px; margin-top: 48px; background: #e1e6ec; overflow: hidden; }
.projects-progress span { position: absolute; top: 0; left: 0; height: 100%; width: 30%; background: var(--red); transition: transform .15s linear; }
@media (max-width: 1000px) {
  .projects-section { padding: 80px 22px 84px; }
  .projects-head { grid-template-columns: 1fr; gap: 20px; align-items: start; margin-bottom: 32px; }
  .projects-head h2 { font-size: clamp(28px, 4.2vw, 34px); }
  .projects-head-side p { font-size: 16px; }
  .projects-track { margin: 0 -22px; padding: 0 22px 4px; scroll-padding-left: 22px; gap: 16px; }
  .project-card { flex-basis: clamp(260px, 42vw, 340px); }
}
@media (max-width: 600px) {
  .projects-section { padding: 66px 20px 72px; }
  .projects-head h2 { font-size: 28px; }
  .projects-head-side { flex-direction: column; align-items: flex-start; gap: 20px; }
  .projects-nav { width: 46px; height: 46px; }
  .projects-track { margin: 0 -20px; padding: 0 20px 4px; scroll-padding-left: 20px; }
  .project-card { flex-basis: 78vw; }
  .projects-progress { margin-top: 32px; }
}

/* Clients: stats and endless logo marquee */
.clients-section { padding: 112px var(--frame-right) 120px var(--frame-left); background: #f3f6f9; overflow: hidden; }
.clients-head { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(48px, 6vw, 110px); align-items: end; }
.clients-head h2 { margin: 0; color: #003369; font-size: clamp(30px, 2.25vw, 36px); line-height: 1.2; }
.clients-head > p { max-width: 560px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.55; }
.clients-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 56px 0 64px; border-top: 1px solid #dbe2ea; border-bottom: 1px solid #dbe2ea; }
.clients-stats > div { display: flex; flex-direction: column; padding: 28px 28px 30px; border-left: 1px solid #dbe2ea; }
.clients-stats > div:first-child { padding-left: 0; border-left: 0; }
.clients-stats dt { margin-bottom: 10px; color: var(--muted); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.clients-stats dd { margin: auto 0 0; color: var(--navy); font-size: clamp(32px, 2.5vw, 40px); font-weight: 500; line-height: 1; letter-spacing: -.02em; }
.clients-marquees { display: grid; gap: 16px; margin: 0 calc(-1 * var(--frame-right)) 0 calc(-1 * var(--frame-left)); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.clients-marquee { display: flex; width: max-content; }
.clients-track { display: flex; flex: none; gap: 16px; margin: 0; padding: 0 16px 0 0; list-style: none; animation: clients-scroll 48s linear infinite; }
.clients-marquee.is-reverse .clients-track { animation-direction: reverse; animation-duration: 56s; }
.clients-marquees:hover .clients-track { animation-play-state: paused; }
.client-logo { display: flex; align-items: center; justify-content: center; width: 220px; height: 96px; border: 1px solid #e1e7ee; border-radius: 12px; background: #fff; transition: border-color .3s ease, box-shadow .3s ease; }
.client-logo img { display: block; width: auto; height: auto; max-width: 156px; max-height: 46px; opacity: .7; filter: grayscale(1); transition: opacity .3s ease, filter .3s ease; }
.client-logo img[src*="kale-jet"] { max-width: 180px; }
.client-logo img[src*="tubitak"] { max-width: 168px; max-height: 60px; }
.client-logo:hover { border-color: transparent; box-shadow: 0 12px 28px rgba(6,47,93,.1); }
.client-logo:hover img { opacity: 1; filter: none; }
@keyframes clients-scroll { to { transform: translateX(-100%); } }
@media (max-width: 1000px) {
  .clients-section { padding: 80px 22px 90px; }
  .clients-head { grid-template-columns: 1fr; gap: 20px; align-items: start; }
  .clients-head h2 { font-size: clamp(28px, 4.2vw, 34px); }
  .clients-head > p { font-size: 16px; }
  .clients-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 40px 0 48px; }
  .clients-stats > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .clients-stats > div:nth-child(n+3) { border-top: 1px solid #dbe2ea; }
  .clients-marquees { margin: 0 -22px; }
  .client-logo { width: 180px; height: 84px; }
  .client-logo img { max-width: 134px; max-height: 40px; }
}
@media (max-width: 600px) {
  .clients-section { padding: 66px 20px 76px; }
  .clients-head h2 { font-size: 28px; }
  .clients-stats > div { padding: 22px 16px 24px; }
  .clients-marquees { margin: 0 -20px; }
}

/* Footer: white panel over the industrial image, like the hero */
.site-footer { position: relative; isolation: isolate; padding: 120px var(--frame-right) 0 var(--frame-left); background: #062f5d; color: rgba(255,255,255,.74); }
.footer-hero { position: absolute; top: 0; left: 0; right: 0; z-index: -1; height: 360px; background: linear-gradient(180deg, rgba(0,45,87,.55), #062f5d 96%), url('../img/hero-industrial.webp') center 70% / cover no-repeat; }
.site-footer .section-eyebrow { margin-bottom: 14px; }
.footer-panel { display: grid; grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1.1fr) auto; align-items: center; gap: 40px; padding: 36px 40px; border-radius: 12px; background: #fff; color: var(--ink); box-shadow: 0 20px 50px rgba(3,16,35,.22); }
.footer-panel h2 { max-width: 420px; margin: 0; color: #003369; font-size: clamp(24px, 1.8vw, 28px); line-height: 1.2; }
.footer-panel-divider { width: 1px; height: 100%; min-height: 80px; background: #dfe4ea; }
.footer-panel-contact { display: grid; grid-template-columns: repeat(3, minmax(0, auto)); gap: 32px; margin: 0; }
.footer-panel-contact dt { margin-bottom: 8px; color: #697684; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.footer-panel-contact dd { margin: 0; color: #003369; font-size: 16px; font-weight: 600; line-height: 1.4; }
.footer-panel-contact a { color: inherit; text-decoration: none; transition: color .2s ease; }
.footer-panel-contact a:hover { color: var(--red); }
.footer-panel-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 0 24px; border-radius: 6px; background: var(--red); color: #fff; font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background .2s ease; }
.footer-panel-button:hover { background: var(--red-dark); }
.footer-panel-button:hover svg { transform: translateX(3px); }
.footer-main { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, .8fr)) minmax(0, 1.1fr); gap: 48px; padding: 72px 0 64px; }
.footer-brand img { display: block; width: 180px; height: auto; padding: 12px 16px; box-sizing: content-box; border-radius: 10px; background: #fff; }
.footer-brand p { max-width: 320px; margin: 22px 0 0; font-size: 15px; line-height: 1.6; }
.footer-col { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; font-style: normal; }
.footer-title { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.footer-title::before { content: ""; width: 18px; height: 2px; background: var(--red); }
.footer-col a, .footer-col span { color: rgba(255,255,255,.74); font-size: 15px; line-height: 1.55; text-decoration: none; }
.footer-col a { position: relative; transition: color .2s ease; }
.footer-col a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.footer-col a:hover { color: #fff; }
.footer-col a:hover::after { transform: scaleX(1); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 0 32px; border-top: 1px solid rgba(255,255,255,.16); font-size: 14px; }
.footer-bottom p { margin: 0; }
.footer-top { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-weight: 600; text-decoration: none; }
.icon-arrow-up { transform: rotate(-90deg); }
.footer-top:hover svg.icon-arrow-up { transform: rotate(-90deg) translateX(3px); }
@media (max-width: 1200px) {
  .footer-panel { grid-template-columns: minmax(0, 1fr) auto; row-gap: 28px; }
  .footer-panel-divider { display: none; }
  .footer-panel-contact { grid-column: 1 / -1; grid-row: 2; padding-top: 24px; border-top: 1px solid #e3e8ee; }
}
@media (max-width: 1000px) {
  .site-footer { padding: 88px 22px 0; }
  .footer-hero { height: 300px; }
  .footer-panel { padding: 28px 24px; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 28px; padding: 56px 0; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .site-footer { padding: 72px 20px 0; }
  .footer-panel { grid-template-columns: 1fr; }
  .footer-panel h2 { font-size: 24px; }
  .footer-panel-contact { grid-template-columns: 1fr; gap: 18px; }
  .footer-panel-button { grid-row: 3; width: 100%; }
  .footer-main { gap: 36px 20px; }
  .footer-contact { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 14px; }
}

/* Type: one heading weight and tracking across the page */
.hero-story h1, .hero-story h2, .sectors-section h2, .services-intro h2, .panel-links > span, .panel-reach > span,
.sector-card-content h3, .service-card-content h3, .sectors-section .sector-card-content h3, .services-section .service-card-content h3, .tools-aside h2, .tool-row h3, .projects-head h2, .project-card h3, .clients-head h2, .footer-panel h2 { font-weight: 500; letter-spacing: -.015em; }

/* Shared arrow icon */
svg.icon-arrow { flex: none; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s ease; }
.sectors-section .section-eyebrow { color: rgba(255,255,255,.78); }
.sectors-section .section-eyebrow::before { background: var(--red); }

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

/* Mobile hero: all three stories stacked on one screen */
@media (max-width: 1000px) {
  .hero-stage { display: flex; flex-direction: column; justify-content: flex-end; height: 100svh; min-height: 640px; max-height: 940px; padding: 108px 22px 28px; }
  .hero-scrim { background: linear-gradient(180deg, rgba(0,40,80,.4), rgba(0,40,80,.35) 40%, rgba(3,24,50,.85)); }
  .hero-grid { position: relative; top: auto; left: auto; display: flex; flex-direction: column; max-width: 620px; padding: 0; }
  .hero-story, .hero-story.is-active { display: flex; height: auto; padding: 22px 0; }
  .hero-story:first-child { padding-top: 0; }
  .hero-story:last-child { padding-bottom: 0; }
  .hero-story + .hero-story { border-top: 1px solid rgba(255,255,255,.22) !important; }
  .hero-story h1, .hero-story h2 { margin-bottom: 8px; font-size: 26px; line-height: 1.22; }
  .hero-story h1 { font-size: 32px; }
  .hero-copy { font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.86); }
  .hero-link { margin-top: 12px; font-size: 15px; }
  .hero-pagination { display: none; }
}

@media (max-width: 390px) {
  .hero-stage { padding-inline: 20px; }
  .hero-story h1 { font-size: 29px; }
  .hero-story h2 { font-size: 23px; }
}

/* Inner pages */
.page-hero { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; height: auto; min-height: clamp(540px, 64vh, 660px); max-height: none; padding: 132px var(--frame-right) 36px var(--frame-left); overflow: hidden; color: #fff; }
.page-hero-bg { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,40,80,.45), rgba(0,40,80,.4) 45%, rgba(3,24,50,.85)), url('../img/hero-night.webp') center 70% / cover no-repeat; }
.page-hero-inner { max-width: 920px; margin-bottom: 40px; }
.breadcrumb { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; color: rgba(255,255,255,.7); font-size: 14px; font-weight: 500; }
.breadcrumb a { color: #fff; text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; text-underline-offset: 4px; }
.page-hero h1 { max-width: 760px; margin: 0 0 16px; font-size: clamp(32px, 3vw, 46px); font-weight: 500; line-height: 1.15; letter-spacing: -.025em; }
.page-hero-lead { max-width: 560px; margin: 0; color: rgba(255,255,255,.86); font-size: 17px; line-height: 1.6; }
.page-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 28px 8px; border-radius: 12px; background: #fff; color: var(--navy); box-shadow: 0 18px 44px rgba(3,16,35,.2); }
.page-facts > div { display: flex; flex-direction: column; gap: 8px; padding: 0 28px; }
.page-facts > div + div { border-left: 1px solid #e3e8ee; }
.page-facts dt { color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.page-facts dd { margin: 0; font-size: 18px; font-weight: 500; line-height: 1.25; letter-spacing: -.015em; }

.corp-story { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(56px, 7vw, 120px); align-items: start; padding: 120px var(--frame-right) 120px var(--frame-left); background: #fff; }
.corp-story-aside { position: sticky; top: 120px; }
.corp-story-aside h2 { margin: 0; color: #003369; font-size: clamp(28px, 2.25vw, 36px); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.corp-story-photo { margin: 40px 0 0; overflow: hidden; border-radius: 12px; aspect-ratio: 4 / 3; background: var(--navy-deep); }
.corp-story-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.corp-story-body > p { max-width: 660px; margin: 0 0 18px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.corp-story-body > .corp-lead { color: var(--navy); font-size: 19px; line-height: 1.55; letter-spacing: -.005em; }
.corp-story-body strong { color: var(--navy); font-weight: 600; }
.corp-timeline { margin: 64px 0 0; padding: 0; list-style: none; border-bottom: 1px solid #e3e8ee; }
.corp-timeline li { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 24px; padding: 24px 0; border-top: 1px solid #e3e8ee; }
.corp-year { color: var(--navy); font-size: 28px; font-weight: 500; line-height: 1; letter-spacing: -.02em; }
.corp-timeline li:last-child .corp-year { color: var(--red); }
.corp-timeline strong { display: block; margin-bottom: 4px; color: var(--navy); font-size: 16px; font-weight: 600; }
.corp-timeline p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.55; }

.corp-mv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding: 112px var(--frame-right) 112px var(--frame-left); background: #062f5d; color: #fff; }
.corp-mv-item { position: relative; display: flex; flex-direction: column; min-height: 280px; padding: 36px 40px 40px; overflow: hidden; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; background: rgba(255,255,255,.03); transition: background .3s ease, border-color .3s ease; }
.corp-mv-item:hover { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.06); }
.corp-mv-index { position: absolute; top: 28px; right: 36px; color: rgba(255,255,255,.1); font-size: 72px; font-weight: 600; line-height: 1; letter-spacing: -.04em; }
.corp-mv-label { display: flex; align-items: center; gap: 12px; margin: 0; color: rgba(255,255,255,.78); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.corp-mv-label::before { content: ""; width: 28px; height: 2px; background: var(--red); }
.corp-mv-text { max-width: 520px; margin: auto 0 0; padding-top: 44px; font-size: clamp(20px, 1.55vw, 25px); font-weight: 500; line-height: 1.4; letter-spacing: -.015em; }

.corp-partners { padding: 120px var(--frame-right) 128px var(--frame-left); background: #f3f6f9; }
.corp-partners-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 48px; }
.corp-partners-head h2 { max-width: 600px; margin: 0; color: #003369; font-size: clamp(28px, 2.25vw, 36px); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.corp-partner-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.corp-partner { display: flex; flex-direction: column; gap: 6px; padding: 24px 22px 26px; border: 1px solid #e1e7ee; border-radius: 12px; background: #fff; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; }
.corp-partner:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(6,47,93,.1); }
.corp-partner.is-featured { box-shadow: inset 0 3px 0 var(--red); }
.corp-partner.is-featured:hover { box-shadow: inset 0 3px 0 var(--red), 0 18px 40px rgba(6,47,93,.1); }
.corp-partner-logo { display: flex; align-items: center; height: 72px; margin-bottom: 18px; }
.corp-partner-logo img { display: block; width: auto; height: auto; max-width: 150px; max-height: 50px; }
.corp-partner-logo img[src*="kale-jet"] { max-width: 100%; }
.corp-partner strong { color: var(--navy); font-size: 15px; font-weight: 600; }
.corp-partner > span:last-child { color: var(--muted); font-size: 13.5px; line-height: 1.45; }

[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1200px) {
  .corp-partner-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
  .page-hero { height: auto; min-height: 0; max-height: none; padding: 128px 22px 24px; }
  .page-hero-inner { margin-bottom: 32px; }
  .page-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; padding: 22px 4px; }
  .page-facts > div { padding: 0 20px; }
  .page-facts > div:nth-child(3) { border-left: 0; }
  .corp-story { grid-template-columns: 1fr; gap: 40px; padding: 88px 22px; }
  .corp-story-aside { position: static; }
  .corp-mv { grid-template-columns: 1fr; padding: 80px 22px; }
  .corp-partners { padding: 88px 22px 96px; }
  .corp-partners-head { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 600px) {
  .page-hero { padding: 116px 20px 20px; }
  .page-hero h1 { font-size: 29px; }
  .page-hero-lead { font-size: 16px; }
  .page-facts dd { font-size: 16px; }
  .page-facts > div { padding: 0 16px; }
  .corp-story { padding: 72px 20px; }
  .corp-timeline li { grid-template-columns: 1fr; gap: 8px; padding: 20px 0; }
  .corp-year { font-size: 24px; }
  .corp-story-body > .corp-lead { font-size: 17px; }
  .corp-story-aside h2 { font-size: 26px; }
  .corp-partners-head h2 { font-size: 26px; }
  .corp-mv { padding: 72px 20px; }
  .corp-mv-item { min-height: 0; padding: 32px 26px 34px; }
  .corp-mv-index { top: 20px; right: 22px; font-size: 52px; }
  .corp-mv-text { padding-top: 32px; font-size: 19px; }
  .corp-partners { padding: 72px 20px 80px; }
  .corp-partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .corp-partner { padding: 18px 16px 20px; }
  .corp-partner-logo { height: 56px; margin-bottom: 12px; }
  .corp-partner-logo img { max-width: 120px; max-height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; }
}

/* Sectors page */
.page-jump { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 18px 44px rgba(3,16,35,.2); }
.page-jump a { display: flex; align-items: center; gap: 16px; padding: 24px 28px; color: var(--navy); text-decoration: none; transition: background .25s ease; }
.page-jump a + a { border-left: 1px solid #e3e8ee; }
.page-jump a span { color: var(--red); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-jump a strong { font-size: 18px; font-weight: 500; letter-spacing: -.01em; }
.page-jump a svg.icon-arrow { margin-left: auto; color: var(--red); transform: rotate(90deg); transition: transform .25s ease; }
.page-jump a:hover { background: #f5f7fa; }
.page-jump a:hover svg.icon-arrow { transform: rotate(90deg) translateX(3px); }

.sector-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 6vw, 104px); align-items: center; padding: 112px var(--frame-right) 112px var(--frame-left); background: #fff; scroll-margin-top: 0; }
.sector-detail + .sector-detail { border-top: 1px solid #e8ecf0; }
.sector-detail.is-reversed .sector-detail-media { order: 2; }
.sector-detail-media { position: relative; margin: 0; overflow: hidden; border-radius: 12px; aspect-ratio: 5 / 4; background: var(--navy-deep); }
.sector-detail-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sector-detail-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(6,47,93,.55)); }
.sector-detail-num { position: absolute; left: 24px; bottom: 20px; z-index: 1; color: #fff; font-size: 64px; font-weight: 600; line-height: 1; letter-spacing: -.04em; opacity: .9; }
.sector-detail-body h2 { margin: 0 0 18px; color: #003369; font-size: clamp(28px, 2.25vw, 36px); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.sector-detail-body > p:not(.section-eyebrow):not(.sector-detail-label) { max-width: 560px; margin: 0 0 14px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.sector-detail-body > .sector-detail-lead { color: var(--navy) !important; font-size: 19px !important; line-height: 1.55 !important; }
.sector-detail-label { margin: 32px 0 14px; color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.sector-detail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; margin: 0; padding: 0; list-style: none; }
.sector-detail-list li { display: flex; align-items: flex-start; gap: 10px; color: var(--navy); font-size: 15px; font-weight: 500; line-height: 1.45; }
.sector-detail-list svg { flex: none; width: 22px; height: 22px; padding: 4px; box-sizing: border-box; border-radius: 50%; background: #fdeeee; fill: none; stroke: var(--red); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.sector-detail-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-top: 36px; padding-top: 28px; border-top: 1px solid #e8ecf0; }
.sector-detail-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sector-detail-tools li { padding: 7px 12px; border: 1px solid #dbe3eb; border-radius: 999px; color: var(--navy); font-size: 13px; font-weight: 500; }

.sector-process { padding: 112px var(--frame-right) 120px var(--frame-left); background: #062f5d; color: #fff; }
.sector-process-head { margin-bottom: 48px; }
.sector-process-head .section-eyebrow { color: rgba(255,255,255,.78); }
.sector-process-head h2 { max-width: 640px; margin: 0; font-size: clamp(28px, 2.25vw, 36px); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.sector-process-steps { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.18); }
.sector-process-steps a { position: relative; display: flex; flex-direction: column; gap: 14px; height: 100%; padding: 28px 22px 30px 0; color: #fff; text-decoration: none; }
.sector-process-steps a::before { content: ""; position: absolute; top: -1px; left: 0; width: 100%; height: 2px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.65,0,.35,1); }
.sector-process-steps a:hover::before { transform: scaleX(1); }
.sector-process-steps span { color: var(--red); font-size: 13px; font-weight: 600; }
.sector-process-steps strong { font-size: 18px; font-weight: 500; line-height: 1.3; }
.sector-process-steps svg.icon-arrow { margin-top: auto; color: rgba(255,255,255,.5); transition: transform .25s ease, color .25s ease; }
.sector-process-steps a:hover svg.icon-arrow { color: #fff; transform: translateX(3px); }

@media (max-width: 1200px) {
  .sector-process-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sector-process-steps li:nth-child(n+4) { border-top: 1px solid rgba(255,255,255,.18); }
}

@media (max-width: 1000px) {
  .page-jump { grid-template-columns: 1fr; }
  .page-jump a { padding: 18px 22px; }
  .page-jump a + a { border-left: 0; border-top: 1px solid #e3e8ee; }
  .sector-detail { grid-template-columns: 1fr; gap: 36px; padding: 80px 22px; }
  .sector-detail.is-reversed .sector-detail-media { order: 0; }
  .sector-process { padding: 80px 22px 88px; }
}

@media (max-width: 600px) {
  .page-jump a strong { font-size: 16px; }
  .sector-detail { padding: 64px 20px; }
  .sector-detail-num { font-size: 44px; left: 18px; bottom: 14px; }
  .sector-detail-body h2 { font-size: 26px; }
  .sector-detail-body > .sector-detail-lead { font-size: 17px !important; }
  .sector-detail-list { grid-template-columns: 1fr; }
  .sector-process { padding: 64px 20px 72px; }
  .sector-process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sector-process-steps li:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.18); }
  .sector-process-steps strong { font-size: 16px; }
}

/* Services page */
.page-flow { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 18px 44px rgba(3,16,35,.2); }
.page-flow a { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 22px 22px 24px; color: var(--navy); text-decoration: none; transition: background .25s ease; }
.page-flow a + a { border-left: 1px solid #e3e8ee; }
.page-flow a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.65,0,.35,1); }
.page-flow a:hover { background: #f5f7fa; }
.page-flow a:hover::after { transform: scaleX(1); }
.page-flow span { color: var(--red); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-flow strong { font-size: 16px; font-weight: 500; line-height: 1.3; }

.service-phase { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(48px, 6vw, 104px); align-items: start; padding: 112px var(--frame-right) 112px var(--frame-left); background: #fff; }
.service-phase.is-tinted { background: #f3f6f9; }
.service-phase-aside { position: sticky; top: 120px; }
.service-phase-aside h2 { margin: 0 0 16px; color: #003369; font-size: clamp(28px, 2.25vw, 36px); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.service-phase-aside > p:not(.section-eyebrow) { max-width: 380px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.service-phase-range { display: inline-block; margin-top: 28px; color: var(--navy); font-size: 13px; font-weight: 600; letter-spacing: .08em; }
.service-phase-steps { border-bottom: 1px solid #e3e8ee; }
.svc-step { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 36px; align-items: start; padding: 36px 0; border-top: 1px solid #e3e8ee; scroll-margin-top: 110px; }
.svc-step-media { margin: 0; overflow: hidden; border-radius: 12px; aspect-ratio: 4 / 5; background: var(--navy-deep); }
.svc-step-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.svc-step-num { display: block; margin-bottom: 10px; color: var(--red); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.svc-step-body h3 { margin: 0 0 12px; color: var(--navy); font-size: 22px; font-weight: 500; line-height: 1.25; letter-spacing: -.015em; }
.svc-step-body > p:not(.svc-step-label) { max-width: 600px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.svc-step-label { margin: 24px 0 10px; color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.svc-step-outputs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.svc-step-outputs li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px; border: 1px solid #dbe3eb; border-radius: 999px; background: #fff; color: var(--navy); font-size: 13.5px; font-weight: 500; }
.svc-step-outputs li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }

.service-tools { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 32px clamp(48px, 6vw, 104px); align-items: center; padding: 104px var(--frame-right) 112px var(--frame-left); background: #062f5d; color: #fff; }
.service-tools-head .section-eyebrow { color: rgba(255,255,255,.78); }
.service-tools-head h2 { margin: 0; font-size: clamp(28px, 2.25vw, 36px); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.service-tools-list { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.service-tools-list li { padding: 12px 18px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; font-size: 15px; font-weight: 500; transition: background .25s ease, border-color .25s ease; }
.service-tools-list li:hover { border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.06); }
.service-tools-link { grid-column: 2; justify-self: start; display: inline-flex; align-items: center; gap: 10px; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: #fff; font-size: 15px; font-weight: 600; text-decoration: none; }
.service-tools-link svg.icon-arrow { color: var(--red); }
.service-tools-link:hover svg.icon-arrow { transform: translateX(3px); }

@media (max-width: 1200px) {
  .page-flow { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-flow a:nth-child(4) { border-left: 0; }
  .page-flow a:nth-child(n+4) { border-top: 1px solid #e3e8ee; }
}

@media (max-width: 1000px) {
  .service-phase { grid-template-columns: 1fr; gap: 32px; padding: 80px 22px; }
  .service-phase-aside { position: static; }
  .svc-step { grid-template-columns: 160px minmax(0, 1fr); gap: 24px; }
  .service-tools { grid-template-columns: 1fr; padding: 80px 22px 88px; }
  .service-tools-link { grid-column: 1; }
}

@media (max-width: 600px) {
  .page-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-flow a { padding: 16px 16px 18px; }
  .page-flow a:nth-child(4) { border-left: 1px solid #e3e8ee; }
  .page-flow a:nth-child(odd) { border-left: 0; }
  .page-flow a:nth-child(n+3) { border-top: 1px solid #e3e8ee; }
  .page-flow strong { font-size: 14.5px; }
  .service-phase { padding: 64px 20px; }
  .service-phase-aside h2 { font-size: 26px; }
  .svc-step { grid-template-columns: 1fr; gap: 18px; padding: 28px 0; }
  .svc-step-media { aspect-ratio: 16 / 10; }
  .service-tools { padding: 64px 20px 72px; }
  .service-tools-list li { padding: 10px 14px; font-size: 14px; }
}

/* Projects archive */
.page-filter { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px; border-radius: 12px; background: #fff; box-shadow: 0 18px 44px rgba(3,16,35,.2); }
.page-filter button { display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 18px; border: 1px solid #dbe3eb; border-radius: 8px; background: #fff; color: var(--navy); font-size: 15px; font-weight: 600; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.page-filter button span { display: grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px; background: #eef2f6; color: var(--navy); font-size: 12px; }
.page-filter button:hover { border-color: #b4c6d8; }
.page-filter button.is-active { border-color: var(--navy); background: var(--navy); color: #fff; }
.page-filter button.is-active span { background: var(--red); color: #fff; }
.archive-list { padding: 72px var(--frame-right) 120px var(--frame-left); background: #fff; }
.archive-count { margin: 0 0 28px; color: var(--muted); font-size: 15px; }
.archive-count strong { color: var(--navy); }
.archive-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 28px; }
.archive-card.is-hidden { display: none; }
.archive-card.is-entering { animation: archive-in .5s cubic-bezier(.2,.7,.2,1) backwards; }
@keyframes archive-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.archive-card-link { display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.archive-card-media { position: relative; display: block; overflow: hidden; margin-bottom: 22px; border-radius: 12px; aspect-ratio: 4 / 3; background: #e9eef3; }
.archive-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.archive-card-link:hover .archive-card-media img { transform: scale(1.04); }
.archive-card .project-meta { margin-bottom: 10px; }
.archive-card-title { margin-bottom: 8px; color: var(--navy); font-size: 22px; font-weight: 500; line-height: 1.25; letter-spacing: -.015em; transition: color .25s ease; }
.archive-card-link:hover .archive-card-title { color: var(--red); }
.archive-card-text { color: var(--muted); font-size: 15px; line-height: 1.55; }
.archive-card-more { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; color: var(--navy); font-size: 14px; font-weight: 600; }
.archive-card-more svg.icon-arrow { color: var(--red); }
.archive-card-link:hover .archive-card-more svg.icon-arrow { transform: translateX(3px); }

/* Project detail */
.project-hero .page-hero-bg { background: linear-gradient(180deg, rgba(0,40,80,.55), rgba(0,40,80,.45) 40%, rgba(3,24,50,.9)), var(--hero-image) center / cover no-repeat; }
.project-hero-tag { display: inline-flex; margin-bottom: 18px; padding: 7px 12px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--navy); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.page-facts dd a { color: inherit; text-decoration: none; border-bottom: 1px solid #c9d4df; transition: border-color .2s ease, color .2s ease; }
.page-facts dd a:hover { color: var(--red); border-color: var(--red); }
.breadcrumb span[aria-current] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-body { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(48px, 6vw, 104px); align-items: start; padding: 112px var(--frame-right) 104px var(--frame-left); background: #fff; }
.project-story-block { display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 20px; padding: 32px 0; border-top: 1px solid #e3e8ee; }
.project-story-block:first-child { padding-top: 0; border-top: 0; }
.project-story-num { grid-row: span 2; padding-top: 6px; color: var(--red); font-size: 13px; font-weight: 600; }
.project-story-block h2 { margin: 0 0 12px; color: #003369; font-size: 22px; font-weight: 500; line-height: 1.25; letter-spacing: -.015em; }
.project-story-block p { max-width: 680px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.75; }
.project-story-figure { margin: 8px 0 40px; overflow: hidden; border-radius: 12px; aspect-ratio: 16 / 9; background: var(--navy-deep); }
.project-story-figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.project-aside { position: sticky; top: 120px; display: grid; gap: 16px; }
.project-aside-card { overflow: hidden; border: 1px solid #e3e8ee; border-radius: 12px; background: #fff; }
.project-aside-label { display: flex; align-items: center; justify-content: space-between; margin: 0; padding: 18px 24px; border-bottom: 1px solid #eef1f4; color: var(--navy); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.project-aside-label span { color: #7a8796; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.project-scope { position: relative; margin: 0; padding: 18px 24px 20px; list-style: none; }
.project-scope::before { content: ""; position: absolute; top: 30px; bottom: 32px; left: 29px; width: 1px; background: #e3e8ee; }
.project-scope li { position: relative; padding: 8px 0 8px 26px; color: var(--navy); font-size: 15px; font-weight: 500; line-height: 1.4; }
.project-scope li::before { content: ""; position: absolute; top: 13px; left: 0; width: 11px; height: 11px; box-sizing: border-box; border: 2px solid var(--red); border-radius: 50%; background: #fff; }
.project-scope li:last-child::before { background: var(--red); }
.project-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 18px 24px 22px; list-style: none; }
.project-tools li { padding: 7px 11px; border-radius: 6px; background: #f1f4f8; color: var(--navy); font-size: 13px; font-weight: 600; }
.project-scope + .project-aside-label { border-top: 1px solid #eef1f4; }
.project-aside-cta { padding: 28px; border-radius: 12px; background: #062f5d; color: #fff; }
.project-aside-cta p { margin: 0 0 16px; font-size: 18px; font-weight: 500; line-height: 1.35; }
.project-aside-cta a { display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 18px; border-radius: 8px; background: var(--red); color: #fff; font-size: 15px; font-weight: 600; text-decoration: none; transition: background .2s ease; }
.project-aside-cta a:hover { background: var(--red-dark); }
.project-aside-cta a:hover svg.icon-arrow { transform: translateX(3px); }
.project-pager { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 24px; margin: 0 var(--frame-right) 0 var(--frame-left); padding: 40px 0 112px; border-top: 1px solid #e3e8ee; }
.project-pager-link { display: flex; flex-direction: column; gap: 8px; color: var(--navy); text-decoration: none; }
.project-pager-link.is-next { align-items: flex-end; text-align: right; }
.project-pager-dir { display: inline-flex; align-items: center; gap: 8px; color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.project-pager-dir svg.icon-arrow { color: var(--red); }
.project-pager-link strong { font-size: 20px; font-weight: 500; letter-spacing: -.015em; transition: color .25s ease; }
.project-pager-link:hover strong { color: var(--red); }
.project-pager-all { display: inline-flex; align-items: center; height: 46px; padding: 0 20px; border: 1px solid #dbe3eb; border-radius: 8px; color: var(--navy); font-size: 14px; font-weight: 600; text-decoration: none; transition: border-color .2s ease, background .2s ease; }
.project-pager-all:hover { border-color: var(--navy); background: #f5f7fa; }

.projects-all { margin-top: 4px; }
.project-card h3 a { color: inherit; text-decoration: none; }
.project-card h3 a:hover { color: var(--red); }

@media (max-width: 1100px) {
  .archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
  .archive-list { padding: 56px 22px 88px; }
  .project-body { grid-template-columns: 1fr; gap: 40px; padding: 72px 22px 64px; }
  .project-aside { position: static; }
  .project-pager { margin: 0 22px; padding-bottom: 80px; }
}

@media (max-width: 600px) {
  .page-filter { padding: 10px; gap: 6px; }
  .page-filter button { height: 40px; padding: 0 12px; font-size: 14px; }
  .archive-list { padding: 48px 20px 72px; }
  .archive-grid { grid-template-columns: 1fr; gap: 40px; }
  .project-body { padding: 56px 20px; }
  .project-story-block { grid-template-columns: 1fr; row-gap: 6px; }
  .project-story-num { grid-row: auto; padding-top: 0; }
  .project-pager { grid-template-columns: 1fr 1fr; margin: 0 20px; padding-bottom: 64px; }
  .project-pager-all { grid-column: 1 / -1; grid-row: 2; justify-self: center; }
  .project-pager-link strong { font-size: 16px; }
}

/* Project detail: top gallery */
.project-top { padding: 0 var(--frame-right) 0 var(--frame-left); background: #fff; }
.project-top-head { margin: 0 calc(-1 * var(--frame-right)) 0 calc(-1 * var(--frame-left)); padding: 136px var(--frame-right) 260px var(--frame-left); background: #062f5d; color: #fff; }
.project-top-title { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 32px 64px; align-items: end; }
.project-top-title h1 { margin: 0; font-size: clamp(32px, 3vw, 46px); font-weight: 500; line-height: 1.15; letter-spacing: -.025em; }
.project-top-title p { max-width: 460px; margin: 0; color: rgba(255,255,255,.82); font-size: 17px; line-height: 1.6; }
.gallery { position: relative; margin-top: -220px; }
.gallery-viewport { position: relative; overflow: hidden; border-radius: 16px; background: var(--navy-deep); box-shadow: 0 30px 70px rgba(3,16,35,.25); }
.gallery-track { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; outline-offset: -4px; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-slide { flex: 0 0 100%; height: clamp(380px, 60vh, 600px); margin: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.gallery-slide img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; }
.gallery-nav { position: absolute; top: 50%; display: grid; place-items: center; width: 54px; height: 54px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--navy); box-shadow: 0 10px 26px rgba(3,16,35,.22); cursor: pointer; transform: translateY(-50%); transition: background .2s ease, color .2s ease, transform .25s ease; }
.gallery-nav.is-prev { left: 24px; }
.gallery-nav.is-next { right: 24px; }
.gallery-nav:hover { background: var(--red); color: #fff; }
.gallery-nav.is-prev:hover svg.icon-arrow-back { transform: rotate(180deg) translateX(2px); }
.gallery-nav.is-next:hover svg.icon-arrow { transform: translateX(2px); }
.gallery-viewport::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(180deg, transparent, rgba(3,20,42,.7)); pointer-events: none; }
.gallery-bar { position: absolute; left: 24px; right: 24px; bottom: 22px; z-index: 2; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; pointer-events: none; }
.gallery-bar > * { pointer-events: auto; }
.gallery-counter { padding: 8px 14px; border-radius: 999px; background: rgba(6,23,46,.55); color: rgba(255,255,255,.75); font-size: 13px; font-weight: 600; letter-spacing: .04em; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.gallery-counter strong { color: #fff; }
.gallery-thumbs { position: relative; display: flex; gap: 8px; max-width: 70%; padding: 8px; overflow-x: auto; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; background: rgba(6,23,46,.45); scrollbar-width: none; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.gallery-thumbs::-webkit-scrollbar { display: none; }
.gallery-thumb { position: relative; flex: 0 0 92px; height: 58px; padding: 0; overflow: hidden; border: 0; border-radius: 8px; background: var(--navy-deep); cursor: pointer; opacity: .55; transition: opacity .25s ease, transform .25s ease; }
.gallery-thumb::after { content: ""; position: absolute; inset: 0; border: 2px solid transparent; border-radius: 8px; transition: border-color .25s ease; }
.gallery-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gallery-thumb:hover { opacity: .85; }
.gallery-thumb.is-active { opacity: 1; }
.gallery-thumb.is-active::after { border-color: #fff; }
.project-facts { margin-top: 40px; box-shadow: none; border: 1px solid #e3e8ee; }
.project-top + .project-body { padding-top: 88px; }

@media (max-width: 1000px) {
  .project-top { padding: 0 22px; }
  .project-top-head { margin: 0 -22px; padding: 128px 22px 200px; }
  .project-top-title { grid-template-columns: 1fr; gap: 16px; }
  .gallery { margin-top: -168px; }
  .gallery-slide { height: auto; aspect-ratio: 16 / 10; }
  .project-top + .project-body { padding-top: 64px; }
}

@media (max-width: 600px) {
  .project-top { padding: 0 20px; }
  .project-top-head { margin: 0 -20px; padding: 116px 20px 150px; }
  .project-top-title h1 { font-size: 29px; }
  .project-top-title p { font-size: 16px; }
  .gallery { margin-top: -120px; }
  .gallery-viewport { border-radius: 12px; }
  .gallery-slide { aspect-ratio: 4 / 3; }
  .gallery-nav { width: 40px; height: 40px; }
  .gallery-nav.is-prev { left: 12px; }
  .gallery-nav.is-next { right: 12px; }
  .gallery-bar { left: 12px; right: 12px; bottom: 12px; gap: 10px; }
  .gallery-counter { padding: 6px 11px; font-size: 12px; }
  .gallery-thumbs { gap: 6px; max-width: 72%; padding: 5px; border-radius: 10px; }
  .gallery-thumb { flex-basis: 52px; height: 36px; border-radius: 6px; }
  .gallery-thumb::after { border-radius: 6px; }
  .project-facts { margin-top: 28px; }
}

/* Contact page */
.contact-quick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 18px 44px rgba(3,16,35,.2); }
.contact-quick a { display: flex; align-items: center; gap: 16px; padding: 22px 26px; color: var(--navy); text-decoration: none; transition: background .25s ease; }
.contact-quick a + a { border-left: 1px solid #e3e8ee; }
.contact-quick a:hover { background: #f5f7fa; }
.contact-quick-icon { display: grid; flex: none; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #fdeeee; color: var(--red); transition: background .25s ease, color .25s ease; }
.contact-quick-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.contact-quick a:hover .contact-quick-icon { background: var(--red); color: #fff; }
.contact-quick a > span:last-child { display: flex; flex-direction: column; gap: 3px; min-width: 0; font-size: 17px; font-weight: 500; letter-spacing: -.01em; overflow-wrap: anywhere; }
.contact-quick small { color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }

.contact-main { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(48px, 6vw, 104px); align-items: start; padding: 112px var(--frame-right) 104px var(--frame-left); background: #fff; }
.contact-info h2 { margin: 0 0 16px; color: #003369; font-size: clamp(28px, 2.25vw, 36px); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.contact-info > p:not(.section-eyebrow) { max-width: 440px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.contact-details { display: grid; gap: 0; margin: 36px 0 28px; border-top: 1px solid #e3e8ee; }
.contact-details > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 18px 0; border-bottom: 1px solid #e3e8ee; }
.contact-details dt { color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding-top: 3px; }
.contact-details dd { margin: 0; color: var(--navy); font-size: 16px; line-height: 1.55; }
.contact-details a { color: inherit; text-decoration: none; }
.contact-details a:hover { color: var(--red); }

.contact-form { display: grid; gap: 18px; padding: 36px; border: 1px solid #e3e8ee; border-radius: 16px; background: #f8fafc; }
.contact-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.contact-field { display: flex; flex-direction: column; gap: 8px; }
.contact-field > span { color: var(--navy); font-size: 14px; font-weight: 600; }
.contact-field em { color: var(--red); font-style: normal; }
.contact-field input, .contact-field select, .contact-field textarea { width: 100%; padding: 13px 14px; border: 1px solid #d5dee8; border-radius: 8px; background: #fff; color: var(--navy); font: inherit; font-size: 15px; transition: border-color .2s ease, box-shadow .2s ease; }
.contact-field select { appearance: none; padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 8l4 4 4-4' fill='none' stroke='%23102c50' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 14px center / 16px no-repeat; }
.contact-field textarea { min-height: 150px; resize: vertical; }
.contact-field input:focus, .contact-field select:focus, .contact-field textarea:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(16,44,80,.12); }
.contact-field.is-invalid input, .contact-field.is-invalid textarea { border-color: var(--red); box-shadow: 0 0 0 3px rgba(228,30,35,.12); }
.contact-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 6px; }
.contact-form-note { margin: 0; color: #7a8796; font-size: 13.5px; }
.contact-form-note.is-error { color: var(--red); }
.contact-form-note.is-success { color: #1d7a46; }
.contact-submit { display: inline-flex; align-items: center; gap: 12px; height: 52px; padding: 0 26px; border: 0; border-radius: 8px; background: var(--red); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; transition: background .2s ease; }
.contact-submit:hover { background: var(--red-dark); }
.contact-submit:hover svg.icon-arrow { transform: translateX(3px); }

.contact-map { padding: 0 var(--frame-right) 120px var(--frame-left); background: #fff; }
.contact-map-frame { position: relative; overflow: hidden; height: 460px; border-radius: 16px; background: #e9eef3; }
.contact-map-frame iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(.35) contrast(1.05); }
.contact-map-card { position: absolute; left: 28px; bottom: 28px; display: flex; flex-direction: column; gap: 6px; max-width: 340px; padding: 24px 26px; border-radius: 12px; background: #fff; box-shadow: 0 18px 44px rgba(3,16,35,.2); }
.contact-map-card .section-eyebrow { margin-bottom: 6px; }
.contact-map-card strong { color: var(--navy); font-size: 20px; font-weight: 500; letter-spacing: -.015em; }
.contact-map-card span { color: var(--muted); font-size: 14.5px; line-height: 1.55; }
.contact-map-card a { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; color: var(--navy); font-size: 14px; font-weight: 600; text-decoration: none; }
.contact-map-card a svg.icon-arrow { color: var(--red); }
.contact-map-card a:hover svg.icon-arrow { transform: translateX(3px); }
.header-contact[aria-current="page"] { background: var(--red-dark); }

@media (max-width: 1000px) {
  .contact-quick { grid-template-columns: 1fr; }
  .contact-quick a { padding: 16px 20px; }
  .contact-quick a + a { border-left: 0; border-top: 1px solid #e3e8ee; }
  .contact-main { grid-template-columns: 1fr; gap: 40px; padding: 80px 22px; }
  .contact-map { padding: 0 22px 88px; }
}

@media (max-width: 600px) {
  .contact-quick a > span:last-child { font-size: 15px; }
  .contact-main { padding: 64px 20px; }
  .contact-form { padding: 22px; }
  .contact-row { grid-template-columns: 1fr; }
  .contact-form-foot { flex-direction: column-reverse; align-items: stretch; }
  .contact-submit { justify-content: center; }
  .contact-map { padding: 0 20px 72px; }
  .contact-map-frame { height: 520px; }
  .contact-map-card { left: 12px; right: 12px; bottom: 12px; max-width: none; padding: 20px; }
}

/* Legal pages */
.page-hero-compact { height: auto; min-height: 0; max-height: none; padding-top: 150px; padding-bottom: 64px; }
.page-hero-compact .page-hero-inner { margin-bottom: 0; }
.legal-updated { margin: 22px 0 0; color: rgba(255,255,255,.65); font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.legal-fill { padding: 1px 6px; border-radius: 4px; background: #fff3c4; color: #7a5600; font-weight: 600; }
.page-hero .legal-fill { background: rgba(255,243,196,.9); }
.legal { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: clamp(48px, 6vw, 104px); align-items: start; padding: 88px var(--frame-right) 120px var(--frame-left); background: #fff; }
.legal-toc { position: sticky; top: 120px; }
.legal-toc-title { margin: 0 0 14px; color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.legal-toc ol { margin: 0; padding: 0; list-style: none; border-left: 1px solid #e3e8ee; }
.legal-toc a { position: relative; display: flex; gap: 12px; padding: 9px 0 9px 18px; color: var(--muted); font-size: 14.5px; line-height: 1.4; text-decoration: none; transition: color .2s ease; }
.legal-toc a span { color: #a3afbc; font-size: 12px; font-weight: 600; padding-top: 2px; font-variant-numeric: tabular-nums; }
.legal-toc a::before { content: ""; position: absolute; left: -1px; top: 6px; bottom: 6px; width: 2px; background: var(--red); transform: scaleY(0); transition: transform .25s ease; }
.legal-toc a:hover { color: var(--navy); }
.legal-toc a.is-active { color: var(--navy); font-weight: 600; }
.legal-toc a.is-active span { color: var(--red); }
.legal-toc a.is-active::before { transform: scaleY(1); }
.legal-body { max-width: 780px; }
.legal-section { padding: 0 0 40px; margin-bottom: 40px; border-bottom: 1px solid #eef1f4; scroll-margin-top: 110px; }
.legal-section h2 { display: flex; align-items: baseline; gap: 14px; margin: 0 0 18px; color: #003369; font-size: 24px; font-weight: 500; line-height: 1.3; letter-spacing: -.015em; }
.legal-section h2 span { color: var(--red); font-size: 13px; font-weight: 600; }
.legal-section p { margin: 0 0 14px; color: var(--muted); font-size: 16px; line-height: 1.75; }
.legal-section p:last-child { margin-bottom: 0; }
.legal-section strong { color: var(--navy); font-weight: 600; }
.legal-section a { color: var(--navy); text-decoration: underline; text-decoration-color: #c9d4df; text-underline-offset: 3px; }
.legal-section a:hover { color: var(--red); text-decoration-color: var(--red); }
.legal-list { display: grid; gap: 10px; margin: 0 0 14px; padding: 0; list-style: none; }
.legal-list li { position: relative; padding-left: 22px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.legal-list li::before { content: ""; position: absolute; left: 2px; top: 11px; width: 7px; height: 7px; border-radius: 50%; background: var(--red); }
.legal-facts { margin: 20px 0 0; border: 1px solid #e3e8ee; border-radius: 12px; overflow: hidden; }
.legal-facts > div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px; padding: 14px 20px; }
.legal-facts > div + div { border-top: 1px solid #eef1f4; }
.legal-facts dt { color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding-top: 3px; }
.legal-facts dd { margin: 0; color: var(--navy); font-size: 15px; line-height: 1.55; }
.legal-table-wrap { margin-top: 18px; overflow-x: auto; border: 1px solid #e3e8ee; border-radius: 12px; }
.legal-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14.5px; }
.legal-table th { padding: 14px 18px; background: #f6f8fa; color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.legal-table td { padding: 16px 18px; border-top: 1px solid #eef1f4; color: var(--muted); line-height: 1.55; vertical-align: top; }
.legal-table td strong { color: var(--navy); }
.legal-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.legal-links a { display: inline-flex; padding: 8px 14px; border: 1px solid #dbe3eb; border-radius: 999px; color: var(--navy) !important; font-size: 14px; font-weight: 500; text-decoration: none !important; }
.legal-links a:hover { border-color: var(--navy); }
.legal-contact { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 32px; border-radius: 12px; background: #062f5d; color: #fff; }
.legal-contact strong { display: block; margin-bottom: 4px; font-size: 18px; font-weight: 500; }
.legal-contact p { margin: 0; color: rgba(255,255,255,.75); font-size: 15px; }
.legal-contact a { display: inline-flex; flex: none; align-items: center; gap: 10px; height: 48px; padding: 0 20px; border-radius: 8px; background: var(--red); color: #fff; font-size: 15px; font-weight: 600; text-decoration: none; transition: background .2s ease; }
.legal-contact a:hover { background: var(--red-dark); }
.footer-legal { display: flex; gap: 24px; }
.footer-legal a { color: rgba(255,255,255,.7); font-size: 14px; text-decoration: none; transition: color .2s ease; }
.footer-legal a:hover { color: #fff; }
.contact-consent { display: flex; align-items: flex-start; gap: 12px; color: var(--muted); font-size: 14px; line-height: 1.55; cursor: pointer; }
.contact-consent input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--red); cursor: pointer; }
.contact-consent a { color: var(--navy); font-weight: 600; }
.contact-consent em { color: var(--red); font-style: normal; }
.contact-consent.is-invalid { color: var(--red); }

/* 404 */
.notfound { position: relative; isolation: isolate; display: flex; align-items: center; min-height: 100vh; min-height: 100svh; padding: 150px var(--frame-right) 96px var(--frame-left); overflow: hidden; color: #fff; }
.notfound .page-hero-bg { background: linear-gradient(180deg, rgba(0,40,80,.55), rgba(3,24,50,.88)), url('../img/hero-night.webp') center 70% / cover no-repeat; }
.notfound-inner { max-width: 720px; }
.notfound-code { position: absolute; right: var(--frame-right); top: 52%; z-index: -1; color: transparent; font-size: clamp(160px, 22vw, 340px); font-weight: 600; line-height: 1; letter-spacing: -.05em; -webkit-text-stroke: 1.5px rgba(255,255,255,.22); transform: translateY(-50%); pointer-events: none; }
.notfound .section-eyebrow { color: rgba(255,255,255,.8); }
.notfound h1 { margin: 0 0 18px; font-size: clamp(32px, 3vw, 46px); font-weight: 500; line-height: 1.15; letter-spacing: -.025em; }
.notfound-inner > p:not(.section-eyebrow) { max-width: 520px; margin: 0; color: rgba(255,255,255,.82); font-size: 17px; line-height: 1.6; }
.notfound-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.notfound-primary, .notfound-secondary { display: inline-flex; align-items: center; gap: 12px; height: 52px; padding: 0 24px; border-radius: 8px; font-size: 15px; font-weight: 600; text-decoration: none; transition: background .2s ease, border-color .2s ease; }
.notfound-primary { background: var(--red); color: #fff; }
.notfound-primary:hover { background: var(--red-dark); }
.notfound-primary:hover svg.icon-arrow { transform: translateX(3px); }
.notfound-secondary { border: 1px solid rgba(255,255,255,.35); color: #fff; }
.notfound-secondary:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.notfound-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 56px; border-top: 1px solid rgba(255,255,255,.2); }
.notfound-links a { display: flex; flex-direction: column; gap: 6px; padding: 18px 16px 0 0; color: #fff; font-size: 16px; font-weight: 500; text-decoration: none; transition: color .2s ease; }
.notfound-links a span { color: var(--red); font-size: 12px; font-weight: 600; }
.notfound-links a:hover { color: rgba(255,255,255,.7); }

@media (max-width: 1000px) {
  .page-hero-compact { padding: 132px 22px 48px; }
  .legal { grid-template-columns: 1fr; gap: 32px; padding: 56px 22px 88px; }
  .legal-toc { position: static; padding: 20px 22px; border-radius: 12px; background: #f6f8fa; }
  .legal-contact { flex-direction: column; align-items: flex-start; }
  .notfound { padding: 130px 22px 72px; }
  .notfound-code { right: 22px; top: 150px; transform: none; font-size: 140px; -webkit-text-stroke-color: rgba(255,255,255,.14); }
}

@media (max-width: 600px) {
  .page-hero-compact { padding: 116px 20px 40px; }
  .legal { padding: 40px 20px 72px; }
  .legal-section h2 { font-size: 21px; }
  .legal-section p, .legal-list li { font-size: 15.5px; }
  .legal-facts > div { grid-template-columns: 1fr; gap: 4px; }
  .legal-contact { padding: 24px; }
  .footer-legal { gap: 16px; flex-wrap: wrap; }
  .notfound { padding: 116px 20px 56px; }
  .notfound h1 { font-size: 28px; }
  .notfound-links { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 18px; }
}

/* WordPress integration */
.wp-site-blocks { min-height: 100vh; overflow: clip; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-site-blocks > main, .page-main { display: block; }
.wp-block-post-content > *, .page-main > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
@media (max-width: 1000px) {
  .wp-site-blocks { overflow: visible; }
}

/* Legal text written with core blocks */
.legal-section ul, .legal-section ol { display: grid; gap: 10px; margin: 0 0 14px; padding: 0; list-style: none; }
.legal-section li { position: relative; padding-left: 22px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.legal-section li::before { content: ""; position: absolute; left: 2px; top: 11px; width: 7px; height: 7px; border-radius: 50%; background: var(--red); }
.legal-section .wp-block-table { margin: 18px 0 0; overflow-x: auto; border: 1px solid #e3e8ee; border-radius: 12px; }
.legal-section .wp-block-table table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14.5px; }
.legal-section .wp-block-table th, .legal-section .wp-block-table thead td { padding: 14px 18px; border: 0; background: #f6f8fa; color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.legal-section .wp-block-table td { padding: 16px 18px; border: 0; border-top: 1px solid #eef1f4; color: var(--muted); line-height: 1.55; vertical-align: top; }
.legal-section .wp-block-table thead { border: 0; }
.contact-form-plugin { display: block; }

/* Mega menu: capabilities + sectors, three activity groups */
.mega-content[data-panel="activities"] { grid-template-columns: minmax(0, 1fr); }
.mega-content[data-panel="activities"] .mega-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mega-content[data-panel="capabilities"] { grid-template-columns: minmax(0, 1fr) 300px; }
.mega-content[data-panel="capabilities"] .mega-groups { grid-template-columns: minmax(0, 1fr); }
.mega-cap-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
.mega-item.mega-cap { grid-template-columns: 40px minmax(0, 1fr) 16px; align-items: center; }
.mega-cap-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: #fdeeee; color: var(--red); transition: background .2s ease, color .2s ease; }
.mega-cap-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mega-item.mega-cap:hover .mega-cap-icon { background: var(--red); color: #fff; }
.mega-sector-list { display: grid; width: 100%; margin: 0 0 20px; padding: 0; list-style: none; }
.mega-sector-list a { display: flex; align-items: center; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid #e3e8ee; color: var(--navy); font-size: 15.5px; font-weight: 600; text-decoration: none; transition: color .2s ease; }
.mega-sector-list a svg.icon-arrow { color: var(--red); opacity: 0; transform: translateX(-6px); transition: opacity .2s ease, transform .25s ease; }
.mega-sector-list a:hover { color: var(--red); }
.mega-sector-list a:hover svg.icon-arrow { opacity: 1; transform: none; }
@media (max-width: 1240px) {
  .mega-content[data-panel="activities"] { grid-template-columns: minmax(0, 1fr); }
  .mega-content[data-panel="capabilities"] { grid-template-columns: minmax(0, 1fr) 240px; }
  .mega-content[data-panel="capabilities"] .mega-aside { display: flex; }
  .mega-cap-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Capabilities */
.cap-section { padding: 112px var(--frame-right) 112px var(--frame-left); background: #fff; }
.cap-section.is-tinted { background: #f3f6f9; }
.cap-head { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(48px, 6vw, 110px); align-items: end; margin-bottom: 56px; }
.cap-head h2 { margin: 0; color: #003369; font-size: clamp(28px, 2.25vw, 36px); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.cap-head > p { max-width: 560px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.6; }
.cap-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.cap-card { position: relative; display: flex; flex-direction: column; gap: 12px; min-height: 300px; padding: 32px 28px 30px; border: 1px solid #e1e7ee; border-radius: 12px; background: #fff; color: var(--navy); text-decoration: none; transition: background .35s ease, border-color .35s ease, transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; }
.cap-num { position: absolute; top: 26px; right: 28px; color: #a3afbc; font-size: 13px; font-weight: 600; }
.cap-icon { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 18px; border-radius: 14px; background: #fdeeee; color: var(--red); transition: background .35s ease, color .35s ease; }
.cap-icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cap-title { font-size: 20px; font-weight: 500; line-height: 1.3; letter-spacing: -.015em; }
.cap-text { color: var(--muted); font-size: 15px; line-height: 1.6; transition: color .35s ease; }
.cap-more { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 12px; font-size: 14px; font-weight: 600; }
.cap-more svg.icon-arrow { color: var(--red); }
a.cap-card:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(6,47,93,.12); }
a.cap-card:hover .cap-more svg.icon-arrow { transform: translateX(3px); }
.cap-card.is-featured { border-color: #062f5d; background: #062f5d; color: #fff; }
.cap-card.is-featured .cap-text { color: rgba(255,255,255,.78); }
.cap-card.is-featured .cap-num { color: rgba(255,255,255,.45); }
.cap-card.is-featured .cap-icon { background: var(--red); color: #fff; }

/* Reference jobs */
.ref-section { padding: 0 var(--frame-right) 120px var(--frame-left); background: #fff; }
.ref-head { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(48px, 6vw, 110px); align-items: end; margin-bottom: 36px; padding-top: 88px; border-top: 1px solid #e3e8ee; }
.ref-head h2 { margin: 0; color: #003369; font-size: clamp(28px, 2.25vw, 36px); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.ref-head > p { max-width: 520px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.6; }
.ref-table-wrap { overflow-x: auto; border: 1px solid #e3e8ee; border-radius: 12px; }
.ref-table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 15px; }
.ref-table th { padding: 15px 22px; background: #f6f8fa; color: #7a8796; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.ref-table td { padding: 17px 22px; border-top: 1px solid #eef1f4; color: var(--muted); vertical-align: middle; }
.ref-table tbody tr { transition: background .2s ease; }
.ref-table tbody tr:hover { background: #f8fafc; }
.ref-client { color: var(--navy) !important; font-weight: 600; white-space: nowrap; }
.ref-job { color: var(--navy) !important; }
.ref-spec { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ref-status { display: inline-flex; align-items: center; gap: 8px; padding: 5px 11px; border-radius: 999px; background: #eef7f1; color: #1d7a46; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.ref-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ref-status.is-ongoing { background: #fff4e5; color: #b05f00; }

/* Project status badges and specs */
.project-status { position: absolute; top: 18px; right: 18px; padding: 7px 12px; border-radius: 999px; background: var(--red); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.project-hero-tag + .project-hero-tag { margin-left: 8px; }
.project-hero-tag.is-ongoing { background: var(--red); color: #fff; }
.page-filter button.is-status { margin-left: auto; }
.project-specs { display: grid; margin: 0; padding: 14px 24px 18px; }
.project-specs > div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid #eef1f4; font-size: 14.5px; }
.project-specs > div:last-child { border-bottom: 0; }
.project-specs dt { color: #7a8796; }
.project-specs dd { margin: 0; color: var(--navy); font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }

@media (max-width: 1200px) {
  .cap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
  .cap-section { padding: 80px 22px; }
  .cap-head, .ref-head { grid-template-columns: 1fr; gap: 16px; align-items: start; }
  .ref-section { padding: 0 22px 88px; }
  .ref-head { padding-top: 64px; }
}
@media (max-width: 600px) {
  .cap-section { padding: 64px 20px; }
  .cap-grid { grid-template-columns: 1fr; gap: 14px; }
  .cap-card { min-height: 0; padding: 26px 22px; }
  .ref-section { padding: 0 20px 72px; }
  .page-filter button.is-status { margin-left: 0; }
}

/* Page header: steps grouped by phase */
.page-phases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 18px 44px rgba(3,16,35,.2); }
.page-phase { padding: 24px 28px 18px; }
.page-phase + .page-phase { border-left: 1px solid #e3e8ee; }
.page-phase-head { display: flex; align-items: baseline; gap: 12px; margin: 0 0 10px; padding-bottom: 14px; border-bottom: 2px solid var(--navy); color: var(--navy); font-size: 18px; font-weight: 600; letter-spacing: -.01em; }
.page-phase-head span { color: var(--red); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.page-phase ol { margin: 0; padding: 0; list-style: none; }
.page-phase li + li { border-top: 1px solid #eef1f4; }
.page-phase a { display: flex; align-items: center; gap: 14px; padding: 11px 0; color: var(--navy); font-size: 15.5px; font-weight: 500; text-decoration: none; transition: color .2s ease, padding .25s ease; }
.page-phase a span { width: 22px; color: #a3afbc; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; transition: color .2s ease; }
.page-phase a svg.icon-arrow { margin-left: auto; color: var(--red); opacity: 0; transform: translateX(-6px); transition: opacity .2s ease, transform .25s ease; }
.page-phase a:hover { color: var(--red); padding-left: 4px; }
.page-phase a:hover span { color: var(--red); }
.page-phase a:hover svg.icon-arrow { opacity: 1; transform: none; }
@media (max-width: 1000px) {
  .page-phases { grid-template-columns: 1fr; }
  .page-phase + .page-phase { border-left: 0; border-top: 1px solid #e3e8ee; }
  .page-phase { padding: 20px 22px 12px; }
}

/* Process band: steps grouped by phase on navy */
.sector-process-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.sector-process-head .service-tools-link { flex: none; margin-bottom: 6px; }
.process-phases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.process-phase { padding: 28px 30px 20px; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; background: rgba(255,255,255,.04); transition: background .3s ease, border-color .3s ease; }
.process-phase:hover { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.07); }
.process-phase-head { display: flex; flex-direction: column; gap: 6px; margin: 0 0 12px; padding-bottom: 18px; border-bottom: 2px solid var(--red); color: #fff; font-size: 22px; font-weight: 500; letter-spacing: -.015em; }
.process-phase-head span { color: rgba(255,255,255,.6); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.process-phase ol { margin: 0; padding: 0; list-style: none; }
.process-phase li + li { border-top: 1px solid rgba(255,255,255,.12); }
.process-phase a { display: flex; align-items: center; gap: 16px; padding: 14px 0; color: #fff; font-size: 17px; font-weight: 500; text-decoration: none; transition: padding .25s ease, color .2s ease; }
.process-phase a span { width: 24px; color: var(--red); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.process-phase a svg.icon-arrow { margin-left: auto; color: rgba(255,255,255,.45); transition: color .2s ease, transform .25s ease; }
.process-phase a:hover { padding-left: 4px; }
.process-phase a:hover svg.icon-arrow { color: #fff; transform: translateX(3px); }
@media (max-width: 1000px) {
  .process-phases { grid-template-columns: 1fr; gap: 14px; }
  .sector-process-head { flex-direction: column; align-items: flex-start; gap: 16px; }
}
@media (max-width: 600px) {
  .process-phase { padding: 22px 20px 12px; }
  .process-phase a { font-size: 16px; }
}

/* Gallery lightbox */
.gallery-slide { cursor: zoom-in; }
.gallery-expand { position: absolute; top: 20px; right: 20px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--navy); cursor: pointer; box-shadow: 0 8px 22px rgba(3,16,35,.2); transition: background .2s ease, color .2s ease; }
.gallery-expand svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.gallery-expand:hover { background: var(--red); color: #fff; }
.lightbox { position: fixed; inset: 0; z-index: 120; display: flex; align-items: center; justify-content: center; padding: 72px 96px; background: rgba(3,14,30,.94); opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility 0s linear .25s; }
.lightbox.is-open { opacity: 1; visibility: visible; transition-delay: 0s; }
.lightbox-figure { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 0; margin: 0; overflow: hidden; }
.lightbox-figure img { display: block; width: auto; height: auto; max-width: calc(100vw - 192px); max-height: calc(100vh - 144px); max-height: calc(100dvh - 144px); object-fit: contain; border-radius: 8px; box-shadow: 0 30px 80px rgba(0,0,0,.45); transform: scale(.97); transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.lightbox.is-open .lightbox-figure img { transform: none; }
.lightbox-close { position: absolute; top: 22px; right: 22px; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); cursor: pointer; transition: background .2s ease; }
.lightbox-close span { position: absolute; top: 23px; left: 14px; width: 20px; height: 2px; border-radius: 1px; background: #fff; transform: rotate(45deg); }
.lightbox-close span:last-child { transform: rotate(-45deg); }
.lightbox-close:hover { background: var(--red); }
.lightbox-nav { position: absolute; top: 50%; display: grid; place-items: center; width: 54px; height: 54px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; transform: translateY(-50%); transition: background .2s ease; }
.lightbox-nav.is-prev { left: 24px; }
.lightbox-nav.is-next { right: 24px; }
.lightbox-nav:hover { background: var(--red); }
.lightbox-counter { position: absolute; left: 50%; bottom: 24px; color: rgba(255,255,255,.75); font-size: 14px; font-weight: 600; letter-spacing: .06em; transform: translateX(-50%); }
.lightbox.is-single .lightbox-nav, .lightbox.is-single .lightbox-counter { display: none; }
body.lightbox-is-open { overflow: hidden; }
@media (max-width: 600px) {
  .lightbox { padding: 72px 12px 64px; }
  .lightbox-figure img { max-width: calc(100vw - 24px); max-height: calc(100vh - 136px); max-height: calc(100dvh - 136px); }
  .lightbox-nav { top: auto; bottom: 14px; width: 44px; height: 44px; transform: none; }
  .lightbox-nav.is-prev { left: 16px; }
  .lightbox-nav.is-next { right: 16px; }
  .lightbox-counter { bottom: 28px; }
  .gallery-expand { top: 12px; right: 12px; width: 38px; height: 38px; }
}

/* Capabilities mega menu: cards + navy sectors panel */
.mega-content[data-panel="capabilities"] { grid-template-columns: minmax(0, 1fr) 380px; }
.mega-caps { padding: 28px 32px 32px; }
.mega-caps-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 4px; }
.mega-capcard { display: flex; flex-direction: column; gap: 8px; min-height: 236px; padding: 20px 18px 18px; border: 1px solid #e6ebf0; border-radius: 12px; background: #f7f9fb; color: var(--navy); text-decoration: none; transition: background .3s ease, border-color .3s ease, transform .3s cubic-bezier(.2,.7,.2,1); }
.mega-capcard-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 10px; }
.mega-capcard-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; background: #fdeeee; color: var(--red); transition: background .3s ease, color .3s ease; }
.mega-capcard-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mega-capcard-num { color: #a3afbc; font-size: 12px; font-weight: 600; transition: color .3s ease; }
.mega-capcard strong { font-size: 15.5px; font-weight: 600; line-height: 1.3; }
.mega-capcard small { color: #6d7b8a; font-size: 13px; line-height: 1.5; transition: color .3s ease; }
.mega-capcard-more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 8px; font-size: 13px; font-weight: 600; }
.mega-capcard-more svg.icon-arrow { width: 14px; height: 14px; color: var(--red); transition: transform .25s ease, color .3s ease; }
.mega-capcard:hover { border-color: #062f5d; background: #062f5d; color: #fff; transform: translateY(-2px); }
.mega-capcard:hover small { color: rgba(255,255,255,.75); }
.mega-capcard:hover .mega-capcard-num { color: rgba(255,255,255,.5); }
.mega-capcard:hover .mega-capcard-icon { background: var(--red); color: #fff; }
.mega-capcard:hover .mega-capcard-more svg.icon-arrow { color: #fff; transform: translateX(3px); }
.mega-sectors-panel { display: flex; flex-direction: column; margin: 12px 12px 12px 0; padding: 24px 22px 22px; border-radius: 10px; background: #062f5d; color: #fff; }
.mega-sectors-panel .mega-label { color: rgba(255,255,255,.7); }
.mega-sectors-panel ul { margin: 0 0 16px; padding: 0; list-style: none; }
.mega-sectors-panel li + li { border-top: 1px solid rgba(255,255,255,.12); }
.mega-sectors-panel li a { display: flex; align-items: center; gap: 14px; padding: 11px 0; color: #fff; text-decoration: none; }
.mega-sectors-thumb { flex: none; width: 52px; height: 52px; overflow: hidden; border-radius: 10px; background: rgba(255,255,255,.08); }
.mega-sectors-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.mega-sectors-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.mega-sectors-text strong { font-size: 15.5px; font-weight: 600; }
.mega-sectors-text small { color: rgba(255,255,255,.62); font-size: 12.5px; line-height: 1.35; }
.mega-sectors-panel li a svg.icon-arrow { flex: none; margin-left: auto; color: rgba(255,255,255,.4); transition: color .2s ease, transform .25s ease; }
.mega-sectors-panel li a:hover svg.icon-arrow { color: #fff; transform: translateX(3px); }
.mega-sectors-panel li a:hover .mega-sectors-thumb img { transform: scale(1.08); }
.mega-sectors-all { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; }
.mega-sectors-all svg.icon-arrow { color: var(--red); }
.mega-sectors-all:hover svg.icon-arrow { transform: translateX(3px); }
@media (max-width: 1240px) {
  .mega-content[data-panel="capabilities"] { grid-template-columns: minmax(0, 1fr) 300px; }
  .mega-caps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mega-capcard { min-height: 0; }
  .mega-sectors-text small { display: none; }
}

/* Project archive cards v2 */
.archive-list { background: #fff; }
.archive-grid { gap: 28px; }
.archive-card-link { height: 100%; overflow: hidden; border: 1px solid #e3e8ee; border-radius: 14px; background: #fff; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease; }
.archive-card-link:hover { border-color: transparent; transform: translateY(-4px); box-shadow: 0 24px 48px rgba(6,47,93,.14); }
.archive-card-media { margin: 0; border-radius: 0; aspect-ratio: 16 / 11; background: #e9eef3; }
.archive-card-media::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; background: linear-gradient(180deg, transparent, rgba(6,47,93,.18)); pointer-events: none; }
.archive-card-link:hover .archive-card-media img { transform: scale(1.03); }
.archive-card-tags { position: absolute; top: 16px; left: 16px; z-index: 1; display: flex; flex-wrap: wrap; gap: 6px; }
.archive-card-tag { padding: 6px 11px; border-radius: 999px; background: #062f5d; color: #fff; font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; box-shadow: 0 6px 16px rgba(3,16,35,.18); }
.archive-card-tag.is-ongoing { background: var(--red); }
.archive-card-body { display: flex; flex: 1; flex-direction: column; padding: 22px 24px 22px; }
.archive-card-eyebrow { margin-bottom: 8px; color: var(--red); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.archive-card-title { margin-bottom: 8px; font-size: 20px; }
.archive-card-text { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 14.5px; }
.archive-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid #eef1f4; margin-top: 18px; }
.archive-card-chips { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.archive-card-chips span { padding: 5px 10px; border-radius: 6px; background: #f1f4f8; color: var(--navy); font-size: 12.5px; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.archive-card-go { display: grid; flex: none; place-items: center; width: 38px; height: 38px; margin-left: auto; border-radius: 50%; background: #fdeeee; color: var(--red); transition: background .25s ease, color .25s ease; }
.archive-card-link:hover .archive-card-go { background: var(--red); color: #fff; }
.archive-card-link:hover .archive-card-go svg.icon-arrow { transform: translateX(2px); }
.archive-card-more { display: none; }
@media (max-width: 600px) {
  .archive-card-body { padding: 18px 18px 18px; }
  .archive-card-title { font-size: 18px; }
}

/* Home projects carousel: same card as the archive */
.projects-head-side .projects-all { white-space: nowrap; }
.project-card { display: flex; flex: 0 0 clamp(300px, 27vw, 400px); }
.project-card .archive-card-link { width: 100%; }
.project-card .archive-card-media { aspect-ratio: 4 / 3; }
.project-card .project-client { z-index: 1; }
.projects-track.is-dragging .archive-card-link { pointer-events: none; }
.projects-track.is-dragging .archive-card-media img { transform: none; }
.projects-track { padding-top: 8px; padding-bottom: 32px; }
.projects-head-side { flex-wrap: wrap; align-items: center; column-gap: 24px; row-gap: 18px; max-width: 540px; }
.projects-head-side p { flex: 1 1 100%; max-width: none; }
.projects-head-side .projects-controls { margin-left: auto; }
