:root {
    --navy: #062641;
    --navy-deep: #031d32;
    --navy-soft: #0a3150;
    --blue: #2588b9;
    --blue-bright: #2c92c7;
    --line: rgba(133, 171, 204, .35);
    --white: #ffffff;
    --ink: #07121b;
    --muted: #6f7c87;
    --header-h: 108px;
    --footer-h: 54px;
    --page-max: 1440px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: "Arial Narrow", "Roboto Condensed", "Helvetica Neue", Arial, sans-serif;
    color: var(--ink);
    background: #fff;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
button, input, textarea { font: inherit; }

.site-header {
    height: var(--header-h);
    background: #fff;
    position: relative;
    z-index: 50;
    border-bottom: 1px solid rgba(0,0,0,.03);
}
.site-header__inner {
    max-width: 1500px;
    height: 100%;
    margin: 0 auto;
    padding: 0 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}
.site-logo { display: inline-flex; align-items: center; min-width: 185px; }
.site-logo img { width: 220px; height: auto; display: block; }
.site-logo .custom-logo-link, .site-logo > a { display: inline-flex; }

.primary-nav .menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 52px;
    align-items: center;
}
.primary-nav li { position: relative; }
.primary-nav a {
    display: block;
    padding: 40px 0 31px;
    font-size: 17px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .02em;
}
.primary-nav li::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 21px;
    height: 3px;
    background: var(--blue);
    transform: scaleX(0);
    transition: transform .22s ease;
}
.primary-nav li:hover::after,
.primary-nav .current-menu-item::after,
.primary-nav .current_page_item::after { transform: scaleX(1); }

.menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    padding: 9px;
    cursor: pointer;
}
.menu-toggle span {
    display: block;
    height: 2px;
    background: var(--navy);
    margin: 6px 0;
    transition: .2s ease;
}

.site-main { min-height: calc(100vh - var(--header-h) - var(--footer-h)); }
.page-shell { max-width: var(--page-max); margin: 0 auto; padding-left: 52px; padding-right: 52px; }
.narrow-shell { max-width: 980px; }

.site-footer {
    min-height: var(--footer-h);
    background: #021827;
    color: rgba(255,255,255,.72);
    display: flex;
    align-items: center;
    font-size: 13px;
}
.site-footer__inner {
    width: 100%; max-width: var(--page-max); margin: 0 auto; padding: 16px 52px;
    display: flex; justify-content: space-between; gap: 24px; align-items: center;
}
.site-footer a:hover { color: #fff; }

.accent-line { display: block; width: 70px; height: 4px; background: var(--blue-bright); margin: 22px 0 28px; }

/* HOME */
.hero {
    min-height: calc(100vh - var(--header-h));
    position: relative;
    background-image: var(--hero-bg);
    background-position: center center;
    background-size: cover;
    overflow: hidden;
    color: #fff;
}
.hero__shade {
    position: absolute; inset: 0 auto 0 0; width: 61%;
    background: linear-gradient(110deg, rgba(3,31,53,.99) 0%, rgba(5,42,70,.98) 68%, rgba(5,42,70,.93) 100%);
    clip-path: polygon(0 0, 100% 0, 78% 100%, 0 100%);
}
.hero__geometry {
    position: absolute; inset: 0 auto 0 0; width: 54%; opacity: .24;
    background: linear-gradient(145deg, transparent 0 34%, #0b486f 34% 51%, transparent 51% 67%, #071c2d 67% 82%, transparent 82%);
    clip-path: polygon(0 0, 100% 0, 76% 100%, 0 100%);
}
.hero__content {
    position: relative; z-index: 2; min-height: calc(100vh - var(--header-h));
    display: flex; align-items: center;
}
.hero__copy { max-width: 690px; padding-bottom: 30px; }
.hero h1 {
    margin: 0;
    font-size: clamp(44px, 5vw, 78px);
    line-height: .98;
    letter-spacing: -.025em;
    text-transform: uppercase;
    font-weight: 800;
    max-width: 650px;
}
.hero__services {
    display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center;
    font-size: clamp(17px, 1.5vw, 23px); font-weight: 400; text-transform: uppercase;
}
.hero__separator { color: var(--blue-bright); font-weight: 700; }

/* ABOUT */
.about-page {
    min-height: calc(100vh - var(--header-h));
    display: grid;
    grid-template-columns: 57% 43%;
    background: var(--navy);
    color: #fff;
    overflow: hidden;
}
.about-page__panel {
    position: relative;
    background: linear-gradient(145deg, #052946, #041f35 76%);
    z-index: 2;
}
.about-page__panel::after {
    content: ""; position: absolute; top: 0; right: -170px; width: 300px; height: 100%;
    background: inherit; clip-path: polygon(0 0, 56% 0, 100% 50%, 42% 100%, 0 100%);
}
.about-page__inner {
    position: relative; z-index: 2; max-width: 900px; margin-left: auto;
    padding: 78px 70px 62px 52px;
}
.about-page h1, .contact-page h1, .section-heading h1, .standard-page h1 {
    margin: 0; font-size: clamp(48px, 5vw, 74px); line-height: 1; text-transform: uppercase; letter-spacing: -.025em; color: #fff;
}
.about-page__text { font-size: 18px; line-height: 1.55; max-width: 760px; }
.about-page__text p { margin: 0 0 22px; }
.about-page__image { background-size: cover; background-position: center; min-height: 660px; }
.about-stats {
    margin-top: 40px; padding-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid rgba(255,255,255,.16);
}
.about-stat { display: grid; grid-template-columns: 56px 1fr; gap: 14px; padding: 0 24px; border-right: 1px solid rgba(255,255,255,.22); }
.about-stat:first-child { padding-left: 0; }
.about-stat:last-child { border-right: 0; }
.about-stat__icon svg { width: 46px; height: 46px; fill: none; stroke: var(--blue-bright); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.about-stat__value { font-size: 39px; font-weight: 800; line-height: 1; }
.about-stat__label { margin-top: 6px; font-size: 14px; font-weight: 700; text-transform: uppercase; }
.about-stat__desc { margin-top: 10px; font-size: 11px; line-height: 1.45; color: rgba(255,255,255,.72); }

/* REFERENCES ARCHIVE */
.references-archive {
    min-height: calc(100vh - var(--header-h));
    background: linear-gradient(145deg, #052946, #031d32);
    color: #fff;
    padding: 66px 0 84px;
}
.section-heading { max-width: 700px; margin-bottom: 44px; }
.section-heading p { color: rgba(255,255,255,.72); font-size: 18px; }
.reference-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 30px; }
.reference-card {
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.12);
    overflow: hidden;
    display: grid;
    grid-template-columns: 46% 54%;
    min-height: 310px;
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.reference-card:hover { transform: translateY(-3px); border-color: rgba(44,146,199,.6); background: rgba(255,255,255,.075); }
.reference-card__image { background-size: cover; background-position: center; min-height: 250px; }
.reference-card__body { padding: 30px; display: flex; flex-direction: column; align-items: flex-start; }
.reference-card h2 { margin: 0 0 20px; font-size: 25px; line-height: 1.12; text-transform: uppercase; }
.reference-card h2 a:hover { color: #b9e9ff; }
.reference-card__meta { display: grid; gap: 10px; color: rgba(255,255,255,.78); font-size: 14px; margin-bottom: 24px; }
.reference-card__meta span { display: flex; gap: 9px; align-items: center; }
.reference-card__meta svg { width: 18px; height: 18px; fill: none; stroke: var(--blue-bright); stroke-width: 1.8; }
.text-link { margin-top: auto; color: #9cdfff; font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: .03em; }

/* REFERENCE DETAIL */
.reference-detail {
    min-height: calc(100vh - var(--header-h));
    display: grid;
    grid-template-columns: 49% 51%;
    background: var(--navy);
    color: #fff;
    overflow: hidden;
}
.reference-detail__panel {
    position: relative; z-index: 3;
    background: linear-gradient(145deg, #052946, #031f35);
}
.reference-detail__panel::after {
    content: ""; position: absolute; top: 0; right: -140px; width: 230px; height: 100%;
    background: inherit; clip-path: polygon(0 0, 62% 0, 100% 50%, 62% 100%, 0 100%);
}
.reference-detail__inner { position: relative; z-index: 2; padding: 54px 55px 60px max(48px, calc((100vw - var(--page-max))/2 + 52px)); }
.back-link { display: inline-block; margin-bottom: 32px; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: #9edbfa; }
.reference-detail h1 { margin: 0; max-width: 720px; font-size: clamp(40px, 4vw, 63px); line-height: 1.04; text-transform: uppercase; letter-spacing: -.02em; }
.reference-facts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 22px; }
.reference-fact {
    display: grid; grid-template-columns: 58px 1fr; gap: 16px; min-height: 118px; padding: 24px 22px 24px 0; border-bottom: 1px solid var(--line);
}
.reference-fact:nth-child(odd) { border-right: 1px solid var(--line); padding-right: 28px; }
.reference-fact:nth-child(even) { padding-left: 28px; }
.reference-fact__icon svg { width: 44px; height: 44px; fill: none; stroke: #2a7fce; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.reference-fact__label { display: block; font-size: 13px; text-transform: uppercase; color: rgba(255,255,255,.72); margin-bottom: 8px; }
.reference-fact__value { display: block; font-size: 18px; line-height: 1.35; }
.reference-extra { margin-top: 30px; color: rgba(255,255,255,.78); line-height: 1.6; }
.reference-visual { min-height: 640px; display: grid; position: relative; z-index: 1; background: #d9e0e5; }
.reference-visual__item { background-size: cover; background-position: center; min-height: 100%; }
.reference-visual.has-gallery.count-2 { grid-template-rows: 1fr 1fr; }
.reference-visual.has-gallery.count-3 { grid-template-rows: 1fr 1fr 1fr; }
.reference-visual.has-gallery.count-3 .reference-visual__item { border-bottom: 4px solid var(--navy); }

/* CONTACT */
.contact-page {
    min-height: calc(100vh - var(--header-h));
    background: linear-gradient(125deg, #062b49, #031d32 72%);
    color: #fff;
    padding: 66px 0 74px;
}
.contact-page__inner { display: grid; grid-template-columns: 36% 64%; gap: 48px; }
.contact-company { padding-right: 36px; border-right: 1px solid rgba(255,255,255,.26); }
.contact-company__item { display: grid; grid-template-columns: 62px 1fr; gap: 22px; align-items: start; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.22); font-size: 18px; line-height: 1.42; }
.contact-icon { width: 58px; height: 58px; border: 2px solid rgba(125,160,211,.65); border-radius: 16px; display: grid; place-items: center; }
.contact-icon svg { width: 32px; height: 32px; fill: none; stroke: rgba(125,160,211,.88); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.contact-people { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
.person-card { display: grid; grid-template-columns: 70px 1fr; gap: 18px; padding: 14px 26px 28px; min-height: 190px; border-bottom: 1px solid rgba(255,255,255,.22); }
.person-card:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.22); }
.person-card__avatar { width: 62px; height: 62px; border: 2px solid rgba(125,160,211,.65); border-radius: 50%; display: grid; place-items: center; }
.person-card__avatar svg { width: 36px; height: 36px; fill: none; stroke: rgba(125,160,211,.88); stroke-width: 1.6; }
.person-card h2 { margin: 0 0 3px; font-size: 20px; line-height: 1.15; }
.person-card__role { margin: 0 0 20px; font-size: 17px; color: rgba(255,255,255,.88); }
.person-card a { display: flex; align-items: center; gap: 10px; margin: 8px 0; font-size: 16px; color: #fff; }
.person-card a:hover { color: #a8e2ff; }
.person-card a span { display: inline-flex; }
.person-card a svg { width: 20px; height: 20px; fill: none; stroke: rgba(125,160,211,.9); stroke-width: 1.8; }

/* STANDARD */
.standard-page { min-height: calc(100vh - var(--header-h)); background: #f4f6f8; padding: 72px 0; }
.standard-page h1 { color: var(--navy); }
.standard-page .entry-content { font-size: 18px; line-height: 1.7; }
.standard-page a { color: #1477a7; text-decoration: underline; }
.post-list-item { padding: 24px 0; border-bottom: 1px solid #d9dee2; }

.entry-content a { text-decoration: underline; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }

@media (max-width: 1180px) {
    :root { --header-h: 92px; }
    .site-header__inner { padding: 0 28px; }
    .site-logo img { width: 185px; }
    .primary-nav .menu { gap: 30px; }
    .primary-nav a { font-size: 15px; padding-top: 34px; }
    .page-shell { padding-left: 32px; padding-right: 32px; }
    .hero__shade { width: 68%; }
    .about-page { grid-template-columns: 62% 38%; }
    .about-page__inner { padding: 54px 46px 48px 32px; }
    .about-stats { grid-template-columns: 1fr; gap: 16px; }
    .about-stat { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); padding: 0 0 16px; }
    .about-stat:last-child { border-bottom: 0; }
    .reference-card { grid-template-columns: 1fr; }
    .reference-detail { grid-template-columns: 58% 42%; }
    .reference-detail__inner { padding-left: 32px; }
    .reference-facts { grid-template-columns: 1fr; }
    .reference-fact:nth-child(odd) { border-right: 0; padding-right: 0; }
    .reference-fact:nth-child(even) { padding-left: 0; }
}

@media (max-width: 820px) {
    :root { --header-h: 78px; }
    .site-header__inner { padding: 0 20px; }
    .site-logo img { width: 160px; }
    .menu-toggle { display: block; margin-left: auto; }
    .primary-nav {
        position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0; background: #fff;
        opacity: 0; visibility: hidden; transform: translateY(-8px); transition: .2s ease;
        padding: 28px;
    }
    .primary-nav.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
    .primary-nav .menu { flex-direction: column; align-items: stretch; gap: 0; }
    .primary-nav a { padding: 18px 8px; font-size: 20px; border-bottom: 1px solid #e4e8eb; }
    .primary-nav li::after { display: none; }
    .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

    .page-shell { padding-left: 22px; padding-right: 22px; }
    .site-footer__inner { padding-left: 22px; padding-right: 22px; }

    .hero { min-height: calc(100svh - var(--header-h)); background-position: 62% center; }
    .hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,25,42,.96), rgba(2,25,42,.72) 66%, rgba(2,25,42,.35)); }
    .hero__shade, .hero__geometry { display: none; }
    .hero__content { min-height: calc(100svh - var(--header-h)); z-index: 2; align-items: flex-end; padding-bottom: 90px; }
    .hero h1 { font-size: clamp(42px, 13vw, 66px); max-width: 90%; }
    .hero__services { font-size: 16px; line-height: 1.4; }

    .about-page { display: flex; flex-direction: column; }
    .about-page__panel::after { display: none; }
    .about-page__inner { padding: 50px 22px 40px; }
    .about-page__image { min-height: 56vw; order: 2; }
    .about-stats { grid-template-columns: 1fr; }
    .about-page h1, .contact-page h1, .section-heading h1, .standard-page h1 { font-size: 48px; }

    .references-archive { padding: 48px 0 64px; }
    .reference-grid { grid-template-columns: 1fr; }
    .reference-card { grid-template-columns: 1fr; }
    .reference-card__image { min-height: 250px; }

    .reference-detail { display: flex; flex-direction: column; }
    .reference-detail__panel::after { display: none; }
    .reference-detail__inner { padding: 42px 22px 44px; }
    .reference-detail h1 { font-size: 42px; }
    .reference-facts { grid-template-columns: 1fr; }
    .reference-fact { grid-template-columns: 48px 1fr; min-height: 0; }
    .reference-fact:nth-child(odd), .reference-fact:nth-child(even) { padding: 20px 0; border-right: 0; }
    .reference-visual { min-height: 70vw; }

    .contact-page { padding: 48px 0 58px; }
    .contact-page__inner { grid-template-columns: 1fr; gap: 34px; }
    .contact-company { padding-right: 0; border-right: 0; }
    .contact-people { grid-template-columns: 1fr; }
    .person-card, .person-card:nth-child(odd) { border-right: 0; padding-left: 0; padding-right: 0; }
}

@media (max-width: 520px) {
    .hero__copy { padding-bottom: 0; }
    .hero__services { gap: 8px 10px; }
    .hero__separator { display: none; }
    .hero__services span:not(.hero__separator) { width: calc(50% - 6px); }
    .about-page__text { font-size: 16px; }
    .reference-card__body { padding: 24px; }
    .contact-company__item { grid-template-columns: 50px 1fr; font-size: 16px; }
    .contact-icon { width: 48px; height: 48px; border-radius: 12px; }
    .person-card { grid-template-columns: 54px 1fr; gap: 14px; }
    .person-card__avatar { width: 50px; height: 50px; }
    .person-card h2 { font-size: 18px; }
    .person-card a { font-size: 15px; word-break: break-word; }
    .site-footer__inner { flex-direction: column; align-items: flex-start; gap: 6px; }
}
