:root {
    --font-sans: "Space Grotesk", "Segoe UI", Arial, sans-serif;
    --bg: #f7f8f6;
    --surface: #ffffff;
    --ink: #151515;
    --muted: #6b6c6d;
    --line: #e4e5e6;
    --blue: #4e4f50;
    --cyan: #4e4f50;
    --green: #19b883;
    --steel: #3a3b3c;
    --shadow: 0 18px 50px rgba(23, 35, 48, .11);
    --radius: 8px;
}

/* Uzay Ray inner pages */
.inner-rail-hero {
    position: relative;
    display: flex;
    min-height: clamp(500px, 56vw, 660px);
    align-items: flex-end;
    overflow: hidden;
    background: #06111f;
    color: #fff;
    isolation: isolate;
}

.inner-rail-hero > img {
    position: absolute;
    inset: 0;
    z-index: -3;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.inner-rail-hero-shade {
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(3, 12, 25, .96) 0%, rgba(3, 13, 27, .78) 38%, rgba(4, 16, 31, .25) 72%, rgba(3, 10, 20, .12) 100%),
        linear-gradient(0deg, rgba(2, 9, 18, .78), transparent 58%);
}

.inner-rail-hero::before {
    position: absolute;
    right: 9%;
    bottom: 0;
    z-index: -1;
    width: 1px;
    height: 76%;
    background: linear-gradient(transparent, rgba(82, 168, 255, .62));
    content: "";
}

.inner-rail-hero::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #0879ef 0 34%, rgba(8, 121, 239, .18) 34% 100%);
    content: "";
}

.inner-rail-hero-content {
    position: relative;
    z-index: 1;
    width: 100%;
    padding-top: 110px;
    padding-bottom: clamp(68px, 8vw, 106px);
}

.inner-rail-kicker,
.rail-section-kicker,
.rail-contact-form-head > span,
.rail-contact-aside-head > span {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #55adff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.inner-rail-kicker i,
.rail-contact-form-head > span i,
.rail-contact-aside-head > span i {
    width: 34px;
    height: 1px;
    background: currentColor;
}

.inner-rail-hero h1 {
    max-width: 870px;
    margin: 20px 0 22px;
    color: #fff;
    font-size: clamp(46px, 6.5vw, 86px);
    font-weight: 600;
    line-height: .98;
    letter-spacing: -.055em;
}

.inner-rail-hero h1 em {
    color: #5aafff;
    font-style: normal;
}

.inner-rail-hero-content > p {
    max-width: 690px;
    margin: 0;
    color: rgba(235, 242, 251, .82);
    font-size: clamp(15px, 1.45vw, 18px);
    line-height: 1.72;
}

.inner-rail-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 30px;
}

.inner-rail-tags span {
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    background: rgba(6, 17, 31, .34);
    color: rgba(255, 255, 255, .86);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .05em;
    backdrop-filter: blur(9px);
}

.inner-rail-hero-number {
    position: absolute;
    right: clamp(20px, 5vw, 78px);
    bottom: 18px;
    color: rgba(255, 255, 255, .08);
    font-size: clamp(100px, 15vw, 210px);
    font-weight: 700;
    line-height: .72;
    letter-spacing: -.08em;
    pointer-events: none;
}

.inner-rail-hero-policy > img {
    object-position: center center;
}

.inner-rail-hero-contact {
    min-height: clamp(540px, 58vw, 690px);
}

.inner-rail-hero-contact > img {
    object-position: center right;
}

.rail-about-intro,
.rail-policy-intro,
.rail-contact-section {
    background: #f3f6fa;
}

.rail-about-intro {
    padding: clamp(76px, 10vw, 132px) 0;
}

.rail-about-intro-grid {
    display: grid;
    grid-template-columns: minmax(260px, .72fr) minmax(0, 1.55fr);
    gap: clamp(50px, 8vw, 120px);
    align-items: start;
}

.rail-about-experience {
    position: relative;
    min-height: 410px;
    padding: 34px;
    overflow: hidden;
    background: linear-gradient(150deg, #071526, #0b2847 74%, #0e73d7);
    color: #fff;
    box-shadow: 0 28px 60px rgba(7, 21, 38, .2);
}

.rail-about-experience::before {
    position: absolute;
    inset: 16px;
    border: 1px solid rgba(255, 255, 255, .13);
    content: "";
}

.rail-about-experience > span {
    position: relative;
    z-index: 1;
    display: block;
    color: #69b8ff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
}

.rail-about-experience strong {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 82px;
    font-size: clamp(86px, 9vw, 132px);
    font-weight: 500;
    line-height: .8;
    letter-spacing: -.09em;
}

.rail-about-experience strong sup {
    color: #58aeff;
    font-size: .38em;
}

.rail-about-experience small {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 24px;
    color: rgba(255, 255, 255, .72);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.rail-about-track {
    position: absolute;
    right: -25%;
    bottom: -8%;
    left: 26%;
    height: 150px;
    transform: rotate(-16deg);
}

.rail-about-track::before,
.rail-about-track::after {
    position: absolute;
    right: 0;
    left: 0;
    height: 2px;
    background: rgba(255, 255, 255, .34);
    content: "";
}

.rail-about-track::before { top: 38px; }
.rail-about-track::after { bottom: 38px; }

.rail-about-track i {
    position: absolute;
    top: 22px;
    width: 2px;
    height: 105px;
    background: rgba(255, 255, 255, .18);
}

.rail-about-track i:nth-child(1) { left: 18%; }
.rail-about-track i:nth-child(2) { left: 50%; }
.rail-about-track i:nth-child(3) { left: 82%; }

.rail-about-copy h2,
.rail-section-head h2,
.rail-policy-intro-grid h2,
.rail-contact-form-head h2,
.rail-contact-aside-head h2 {
    margin: 15px 0 28px;
    color: #09182a;
    font-size: clamp(34px, 4.4vw, 62px);
    font-weight: 600;
    line-height: 1.06;
    letter-spacing: -.045em;
}

.rail-about-copy > p {
    max-width: 780px;
    margin: 0;
    color: #5d6877;
    font-size: 15px;
    line-height: 1.88;
}

.rail-about-copy > p + p {
    margin-top: 18px;
}

.rail-about-copy > p:first-of-type {
    color: #28384c;
    font-size: 18px;
}

.rail-about-capabilities,
.rail-policy-flow {
    padding: clamp(76px, 9vw, 118px) 0;
    background: #fff;
}

.rail-about-capabilities {
    background: #f3f7f9;
}

.rail-about-capabilities .rail-section-head {
    margin-bottom: 38px;
}

.rail-about-capabilities .rail-section-head h2 {
    max-width: 700px;
    font-size: clamp(34px, 4vw, 56px);
}

.rail-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
    gap: 60px;
    align-items: end;
    margin-bottom: 48px;
}

.rail-section-head h2 {
    max-width: 760px;
    margin-bottom: 0;
}

.rail-section-head > p {
    margin: 0 0 5px;
    color: #6a7482;
    font-size: 14px;
    line-height: 1.75;
}

.rail-capability-showcase {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
    gap: clamp(18px, 2.4vw, 34px);
    align-items: stretch;
}

.rail-capability-photo {
    position: relative;
    min-width: 0;
    min-height: 520px;
    margin: 0;
    overflow: hidden;
    border-radius: 22px;
    background: #0b2134;
    box-shadow: 0 22px 48px rgba(8, 31, 48, .14);
}

.rail-capability-photo::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(180deg, transparent 48%, rgba(2, 17, 30, .78));
}

.rail-capability-photo img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
    transition: transform .7s ease;
}

.rail-capability-photo:hover img {
    transform: scale(1.025);
}

.rail-capability-photo figcaption {
    position: absolute;
    right: 28px;
    bottom: 27px;
    left: 28px;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    color: #fff;
}

.rail-capability-photo figcaption strong {
    font-size: clamp(52px, 6vw, 82px);
    font-weight: 500;
    line-height: .8;
    letter-spacing: -.07em;
}

.rail-capability-photo figcaption span {
    width: min(145px, 45%);
    color: rgba(255, 255, 255, .75);
    font-size: 11px;
    line-height: 1.5;
    text-align: right;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.rail-capability-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.rail-capability-grid article {
    position: relative;
    min-height: 0;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 30px;
    gap: 18px;
    align-items: center;
    padding: 25px 24px;
    border: 1px solid #dbe4ea;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 9px 24px rgba(10, 34, 51, .04);
    transition: border-color .25s ease, background .25s ease, color .25s ease, transform .25s ease;
}

.rail-capability-grid article:first-child { border-left: 1px solid #dbe4ea; }
.rail-capability-grid article:hover { z-index: 1; border-color: #0b5178; background: #0b5178; color: #fff; transform: translateX(6px); }
.rail-capability-grid article > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #edf6fa; color: #0b5178; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.rail-capability-grid h3 { max-width: none; margin: 0; font-size: 19px; line-height: 1.35; }
.rail-capability-grid article > i { position: static; justify-self: end; font-size: 20px; font-style: normal; }
.rail-capability-grid article:hover > span { color: rgba(255, 255, 255, .65); }

.rail-about-principles {
    padding: clamp(76px, 9vw, 118px) 0;
    background: #06111f;
    color: #fff;
}

.rail-principles-shell {
    display: grid;
    grid-template-columns: minmax(340px, .88fr) minmax(0, 1.12fr);
    gap: clamp(30px, 5vw, 74px);
    align-items: stretch;
}

.rail-principles-visual {
    position: relative;
    min-width: 0;
    min-height: 520px;
    margin: 0;
    overflow: hidden;
    border-radius: 22px;
    background: #0b2134;
}

.rail-principles-visual::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(180deg, rgba(3, 13, 25, .08), rgba(3, 13, 25, .88));
}

.rail-principles-visual img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
}

.rail-principles-title {
    position: absolute;
    right: 34px;
    bottom: 35px;
    left: 34px;
    z-index: 1;
}

.rail-principles-title > span {
    color: #5aafff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.rail-principles-title h2 {
    margin: 18px 0 0;
    font-size: clamp(40px, 4.5vw, 62px);
    font-weight: 500;
    line-height: .98;
    letter-spacing: -.055em;
}

.rail-principles-list {
    display: grid;
    gap: 12px;
}

.rail-principles-list article {
    display: grid;
    grid-template-columns: 54px 1fr;
    gap: 20px;
    align-content: center;
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 16px;
    background: rgba(255, 255, 255, .035);
    transition: border-color .25s ease, background .25s ease, transform .25s ease;
}

.rail-principles-list article:hover { border-color: rgba(90, 175, 255, .55); background: rgba(11, 81, 120, .25); transform: translateX(5px); }
.rail-principles-list article:last-child { border-bottom: 1px solid rgba(255, 255, 255, .12); }
.rail-principles-list article > span { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(90, 175, 255, .38); border-radius: 50%; color: #55adff; font-size: 10px; font-weight: 800; }
.rail-principles-list h3 { margin: -4px 0 7px; font-size: 22px; font-weight: 600; }
.rail-principles-list p { margin: 0; color: rgba(255, 255, 255, .63); font-size: 14px; line-height: 1.65; }

.rail-inner-cta {
    background: #0874df;
    color: #fff;
}

.rail-inner-cta-row {
    display: flex;
    min-height: 230px;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.rail-inner-cta span { display: block; margin-bottom: 10px; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; opacity: .75; }
.rail-inner-cta h2 { max-width: 720px; margin: 0; font-size: clamp(30px, 4vw, 50px); font-weight: 600; line-height: 1.08; letter-spacing: -.04em; }
.rail-inner-cta a { display: inline-flex; min-width: 190px; min-height: 58px; align-items: center; justify-content: space-between; gap: 24px; padding: 0 10px 0 22px; border-radius: 999px; background: #fff; color: #0b2037; font-size: 13px; font-weight: 800; }
.rail-inner-cta a b { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: #06111f; color: #fff; }

.rail-policy-intro { padding: clamp(70px, 8vw, 104px) 0; }
.rail-policy-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr);
    gap: clamp(20px, 3vw, 38px);
    align-items: stretch;
}

.rail-policy-intro-copy {
    min-width: 0;
    min-height: 510px;
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: clamp(28px, 4vw, 58px);
    align-content: center;
    padding: clamp(36px, 5vw, 68px);
    border: 1px solid #dce5eb;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 20px 48px rgba(8, 34, 52, .07);
}

.rail-policy-index {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 4px;
    color: #8491a1;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: .18em;
}

.rail-policy-index small {
    font: inherit;
}

.rail-policy-index b {
    display: block;
    margin-top: 14px;
    color: #0b5178;
    font-size: 62px;
    font-weight: 500;
    line-height: .8;
    letter-spacing: -.08em;
}

.rail-policy-intro-grid h2 {
    max-width: 610px;
    margin-bottom: 0;
    font-size: clamp(38px, 4.2vw, 60px);
}

.rail-policy-intro-visual {
    position: relative;
    min-width: 0;
    min-height: 510px;
    margin: 0;
    overflow: hidden;
    border-radius: 22px;
    background: #071726;
    box-shadow: 0 20px 48px rgba(8, 34, 52, .14);
}

.rail-policy-intro-visual::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(180deg, rgba(3, 18, 31, .03) 35%, rgba(3, 18, 31, .9));
}

.rail-policy-intro-visual img {
    width: 100%;
    height: 100%;
    min-height: 510px;
    object-fit: cover;
    transition: transform .7s ease;
}

.rail-policy-intro-visual:hover img {
    transform: scale(1.025);
}

.rail-policy-intro-visual figcaption {
    position: absolute;
    right: 30px;
    bottom: 30px;
    left: 30px;
    z-index: 1;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .3);
}

.rail-policy-intro-visual p {
    margin: 0;
    color: rgba(255, 255, 255, .82);
    font-size: 14px;
    line-height: 1.72;
}

.rail-policy-systems { padding: 0 0 clamp(76px, 10vw, 130px); background: #f3f6fa; }
.rail-policy-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
.rail-policy-card { min-height: 720px; padding: clamp(34px, 5vw, 68px); }
.rail-policy-card-dark { margin-top: 55px; background: linear-gradient(145deg, #06111f, #0a2949); color: #fff; box-shadow: 0 28px 70px rgba(4, 16, 31, .22); }
.rail-policy-card-light { background: #fff; color: #101d2e; box-shadow: 0 20px 55px rgba(25, 45, 70, .09); }
.rail-policy-card header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 25px; border-bottom: 1px solid currentColor; opacity: .7; }
.rail-policy-card header span { color: #55adff; font-size: 34px; font-weight: 500; letter-spacing: -.04em; }
.rail-policy-card header small { font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.rail-policy-card h2 { margin: 44px 0 24px; font-size: clamp(36px, 4vw, 56px); font-weight: 600; line-height: 1.02; letter-spacing: -.045em; }
.rail-policy-card > p { margin: 0; color: inherit; font-size: 14px; line-height: 1.78; opacity: .72; }
.rail-policy-card ul { display: grid; gap: 0; margin: 32px 0 0; padding: 0; list-style: none; }
.rail-policy-card li { display: grid; grid-template-columns: 26px 1fr; gap: 12px; padding: 15px 0; border-top: 1px solid currentColor; font-size: 13px; line-height: 1.55; opacity: .82; }
.rail-policy-card li i { color: #55adff; font-style: normal; font-weight: 800; }

.rail-policy-flow-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #dce3eb; }
.rail-policy-flow-grid article { position: relative; display: flex; min-height: 190px; flex-direction: column; justify-content: flex-end; padding: 28px; border-right: 1px solid #dce3eb; }
.rail-policy-flow-grid article:first-child { border-left: 1px solid #dce3eb; }
.rail-policy-flow-grid article::before { position: absolute; top: -4px; left: 26px; width: 8px; height: 8px; border-radius: 50%; background: #0874df; content: ""; }
.rail-policy-flow-grid span { position: absolute; top: 25px; left: 28px; color: #9aa5b2; font-size: 11px; font-weight: 800; }
.rail-policy-flow-grid strong { margin-bottom: 8px; font-size: 22px; }
.rail-policy-flow-grid small { color: #6b7684; font-size: 12px; }

.rail-policy-signature { padding: 55px 0; background: #0874df; color: #fff; }
.rail-policy-signature .container { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; gap: 36px; align-items: center; }
.rail-policy-signature .container > span { font-size: 46px; font-weight: 800; letter-spacing: -.08em; opacity: .42; }
.rail-policy-signature p { max-width: 820px; margin: 0; font-size: clamp(18px, 2vw, 25px); font-weight: 500; line-height: 1.45; }
.rail-policy-signature a { display: inline-flex; align-items: center; gap: 16px; padding: 13px 17px; border: 1px solid rgba(255, 255, 255, .34); border-radius: 999px; color: #fff; font-size: 12px; font-weight: 800; }

.contact-hero-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; }
.contact-hero-links a { display: grid; min-width: 230px; gap: 4px; padding: 13px 17px; border: 1px solid rgba(255, 255, 255, .22); background: rgba(4, 16, 30, .42); color: #fff; backdrop-filter: blur(10px); }
.contact-hero-links small { color: #67b8ff; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.contact-hero-links strong { font-size: 12px; font-weight: 600; }

.rail-contact-section { padding: clamp(78px, 10vw, 132px) 0; }
.rail-contact-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); gap: 0; align-items: stretch; }
.rail-contact-form-panel { padding: clamp(34px, 5vw, 68px); background: #fff; box-shadow: 0 25px 60px rgba(18, 38, 63, .09); }
.rail-contact-form-head h2 { margin-bottom: 14px; }
.rail-contact-form-head p { max-width: 650px; margin: 0 0 36px; color: #687486; font-size: 14px; line-height: 1.7; }
.contact-page .rail-contact-form { gap: 22px; }
.contact-page .rail-contact-form label > span { color: #344054; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-page .rail-contact-form input,
.contact-page .rail-contact-form textarea { border: 0; border-bottom: 1px solid #cfd7e1; border-radius: 0; background: transparent; box-shadow: none; }
.contact-page .rail-contact-form input { height: 50px; padding: 10px 0; }
.contact-page .rail-contact-form textarea { min-height: 145px; padding: 15px 0; resize: vertical; }
.contact-page .rail-contact-form input:focus,
.contact-page .rail-contact-form textarea:focus { border-color: #0874df; box-shadow: 0 1px 0 #0874df; }
.contact-page .rail-contact-form .contact-submit { width: fit-content; min-width: 190px; margin-top: 5px; border-radius: 0; background: #0874df; }
.rail-contact-privacy { display: block; color: #8b95a3; font-size: 10px; line-height: 1.55; }

.rail-contact-aside { display: flex; flex-direction: column; padding: clamp(34px, 4vw, 54px); background: linear-gradient(155deg, #06111f, #0a2745); color: #fff; box-shadow: 0 25px 60px rgba(4, 16, 31, .16); }
.rail-contact-aside-head > span { color: #5aafff; }
.rail-contact-aside-head h2 { margin-bottom: 35px; color: #fff; font-size: clamp(30px, 3vw, 43px); }
.rail-contact-details { border-top: 1px solid rgba(255, 255, 255, .15); }
.rail-contact-details > a,
.rail-contact-details > div { display: grid; grid-template-columns: 34px 1fr auto; gap: 14px; align-items: center; padding: 20px 0; border-bottom: 1px solid rgba(255, 255, 255, .15); color: #fff; }
.rail-contact-details > a > span,
.rail-contact-details > div > span { color: #5aafff; font-size: 9px; font-weight: 800; }
.rail-contact-details div div { min-width: 0; }
.rail-contact-details small { display: block; margin-bottom: 4px; color: rgba(255, 255, 255, .48); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.rail-contact-details strong { display: block; overflow-wrap: anywhere; font-size: 13px; font-weight: 600; }
.rail-contact-details b { font-size: 16px; }
.rail-contact-process { margin-top: auto; padding-top: 42px; }
.rail-contact-process > span { color: #5aafff; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.rail-contact-process ol { display: grid; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.rail-contact-process li { display: flex; align-items: center; gap: 12px; color: rgba(255, 255, 255, .72); font-size: 12px; }
.rail-contact-process li b { display: grid; width: 25px; height: 25px; place-items: center; border: 1px solid rgba(255, 255, 255, .2); border-radius: 50%; color: #fff; font-size: 9px; }

@media (max-width: 980px) {
    .inner-rail-hero { min-height: 560px; }
    .inner-rail-hero > img { object-position: 64% center; }
    .inner-rail-hero-shade { background: linear-gradient(90deg, rgba(3, 12, 25, .97), rgba(3, 13, 27, .67) 72%, rgba(3, 10, 20, .28)); }
    .rail-about-intro-grid,
    .rail-principles-shell,
    .rail-policy-intro-grid,
    .rail-contact-grid { grid-template-columns: 1fr; }
    .rail-about-experience { min-height: 330px; }
    .rail-about-experience strong { margin-top: 52px; }
    .rail-section-head { grid-template-columns: 1fr; gap: 20px; }
    .rail-capability-showcase { grid-template-columns: 1fr; }
    .rail-capability-photo,
    .rail-capability-photo img { min-height: 430px; }
    .rail-capability-grid { grid-template-columns: 1fr; }
    .rail-capability-grid article { min-height: 132px; border-left: 1px solid #dbe4ea; border-bottom: 1px solid #dbe4ea; }
    .rail-capability-grid h3 { margin-top: 0; }
    .rail-principles-visual,
    .rail-principles-visual img { min-height: 460px; }
    .rail-policy-intro-grid { gap: 18px; }
    .rail-policy-intro-copy { min-height: 400px; }
    .rail-policy-intro-visual,
    .rail-policy-intro-visual img { min-height: 440px; }
    .rail-policy-grid { grid-template-columns: 1fr; }
    .rail-policy-card { min-height: auto; }
    .rail-policy-card-dark { margin-top: 0; }
    .rail-policy-flow-grid { grid-template-columns: 1fr 1fr; }
    .rail-contact-aside { min-height: 620px; }
}

@media (max-width: 640px) {
    .inner-rail-hero { min-height: 560px; }
    .inner-rail-hero-content { padding-top: 90px; padding-bottom: 55px; }
    .inner-rail-hero h1 { font-size: clamp(42px, 13vw, 58px); }
    .inner-rail-hero-content > p { font-size: 14px; }
    .inner-rail-tags { gap: 6px; margin-top: 23px; }
    .inner-rail-tags span { padding: 7px 10px; font-size: 9px; }
    .inner-rail-hero-number { display: none; }
    .rail-about-intro-grid { gap: 42px; }
    .rail-about-experience { min-height: 300px; padding: 28px; }
    .rail-about-copy h2,
    .rail-section-head h2,
    .rail-policy-intro-grid h2,
    .rail-contact-form-head h2,
    .rail-contact-aside-head h2 { font-size: 34px; }
    .rail-principles-shell { gap: 38px; }
    .rail-capability-photo,
    .rail-capability-photo img { min-height: 320px; }
    .rail-capability-photo figcaption { right: 20px; bottom: 20px; left: 20px; }
    .rail-capability-grid article { grid-template-columns: 40px minmax(0, 1fr); gap: 13px; padding: 20px 18px; }
    .rail-capability-grid article > span { width: 36px; height: 36px; }
    .rail-capability-grid h3 { min-width: 0; font-size: 16px; overflow-wrap: anywhere; }
    .rail-capability-grid article > i { display: none; }
    .rail-about-copy h2 { overflow-wrap: anywhere; }
    .rail-principles-visual,
    .rail-principles-visual img { min-height: 390px; }
    .rail-principles-title { right: 24px; bottom: 25px; left: 24px; }
    .rail-principles-list article { grid-template-columns: 38px 1fr; }
    .rail-inner-cta-row { min-height: 300px; align-items: flex-start; flex-direction: column; justify-content: center; }
    .rail-policy-grid { margin-inline: -12px; }
    .rail-policy-intro-copy {
        min-height: auto;
        grid-template-columns: 1fr;
        gap: 34px;
        padding: 34px 26px 38px;
    }
    .rail-policy-index { flex-direction: row; align-items: baseline; gap: 10px; }
    .rail-policy-index b { margin-top: 0; font-size: 48px; }
    .rail-policy-intro-visual,
    .rail-policy-intro-visual img { min-height: 390px; }
    .rail-policy-intro-visual figcaption { right: 22px; bottom: 22px; left: 22px; }
    .rail-policy-card { padding: 38px 25px; }
    .rail-policy-flow-grid { grid-template-columns: 1fr; }
    .rail-policy-flow-grid article { min-height: 150px; border-left: 1px solid #dce3eb; border-bottom: 1px solid #dce3eb; }
    .rail-policy-signature .container { grid-template-columns: 1fr; gap: 20px; }
    .contact-hero-links { display: grid; }
    .contact-hero-links a { min-width: 0; }
    .rail-contact-section { padding-inline: 0; }
    .rail-contact-grid { margin-inline: -12px; }
    .rail-contact-form-panel,
    .rail-contact-aside { padding: 38px 24px; }
    .contact-page .rail-contact-form .form-row { grid-template-columns: 1fr; }
}

* {
    box-sizing: border-box;
}

html {
    font-family: var(--font-sans);
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--font-sans);
    color: var(--ink);
    background: var(--bg);
}

button,
input,
select,
textarea {
    font: inherit;
}

main {
    padding-top: 126px;
}

html.loader-pending,
html.loader-pending body {
    overflow: hidden;
}

html.loader-seen .site-loader {
    display: none;
}

.site-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    background: #fff;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity .45s ease, visibility .45s ease;
}

.site-loader.is-hiding {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.site-loader-video {
    width: min(420px, 68vw);
    height: auto;
    max-height: 52vh;
    object-fit: contain;
    background: #fff;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
}

.container {
    width: min(1210px, calc(100% - 32px));
    margin: 0 auto;
}

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 40;
    padding: 10px 0 12px;
    background: transparent;
    pointer-events: none;
    transition: padding .28s ease;
}

.site-header.is-scrolled {
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.header-stack {
    position: relative;
    display: grid;
    gap: 0;
    pointer-events: auto;
    transition: none;
}

.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 34px;
    padding: 0 14px 0 18px;
    gap: 16px;
    overflow: hidden;
    border: 1px solid #0b5178;
    border-bottom: 0;
    border-radius: 9px 9px 0 0;
    background: #0b5178;
    box-shadow: none;
    color: rgba(255, 255, 255, .72);
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0;
    transition: min-height .28s ease, padding .28s ease, opacity .2s ease, border-width .2s ease;
}

.site-header.is-scrolled .topbar {
    min-height: 0;
    height: 0;
    padding-block: 0;
    border-width: 0;
    opacity: 0;
    pointer-events: none;
}

.topbar-contact,
.topbar-social {
    display: flex;
    align-items: center;
    gap: 10px;
}

.topbar-social {
    margin-left: auto;
    gap: 6px;
}

.topbar a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.topbar svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    fill: currentColor;
}

.topbar a {
    transition: color .2s ease, background .2s ease;
}

.topbar a:hover {
    color: #fff;
}

.topbar-contact a + a {
    padding-left: 12px;
    border-left: 1px solid rgba(255, 255, 255, .14);
}

.topbar-note {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    color: rgba(255, 255, 255, .52);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
}

.topbar-note span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, .1);
}

.social-icon {
    width: 25px;
    height: 25px;
    justify-content: center;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgba(255, 255, 255, .82);
}

.social-icon svg {
    width: 16px;
    height: 16px;
}

.social-icon:hover {
    background: transparent;
    color: #fff;
    transform: translateY(-1px);
}

.nav-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 70px;
    padding: 8px 10px 8px 12px;
    border: 1px solid #dfe2e4;
    border-top: 0;
    border-radius: 0 0 9px 9px;
    background: rgba(255, 255, 255, .97);
    box-shadow: none;
    backdrop-filter: blur(14px);
    transition: min-height .28s ease, padding .28s ease, border-color .28s ease;
}

.site-header.is-scrolled .nav-wrap {
    gap: 14px;
    min-height: 66px;
    padding-inline: 14px 10px;
    border-color: #dfe2e4;
    border-top: 1px solid #dfe2e4;
    border-radius: 9px;
    background: rgba(255, 255, 255, .97);
    box-shadow: none;
}

.nav-pill {
    min-width: 0;
    min-height: 52px;
    flex: 1;
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 0;
    transition: min-height .28s ease;
}

.site-header.is-scrolled .nav-pill {
    flex: 1;
    min-height: 50px;
    padding: 0;
}

.brand {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    white-space: nowrap;
}

.brand-logo {
    display: block;
    width: auto;
    height: 44px;
    max-width: 210px;
    object-fit: contain;
}

.brand-mark {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 42px;
    overflow: hidden;
    border-radius: 6px;
    background: #0b5178;
    color: #fff;
}

.brand-mark strong {
    position: relative;
    z-index: 1;
    font-size: 14px;
    font-weight: 800;
}

.brand-mark i {
    position: absolute;
    right: -11px;
    bottom: -12px;
    width: 28px;
    height: 32px;
    border: 1px solid rgba(255, 255, 255, .34);
    transform: rotate(35deg);
}

.brand-copy {
    display: grid;
    gap: 2px;
}

.brand-copy strong {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.05;
    text-transform: uppercase;
}

.brand-copy small {
    color: #777d83;
    font-size: 9px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
}

.main-nav {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: auto;
}

.main-nav > a,
.nav-dropdown-trigger {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 9px;
    border-radius: 6px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    text-transform: uppercase;
    color: #555a60;
    white-space: nowrap;
    transition: color .2s ease, background .2s ease;
}

.main-nav > a::after,
.nav-dropdown-trigger::after {
    position: absolute;
    right: 9px;
    bottom: 3px;
    left: 9px;
    height: 2px;
    display: block;
    border-radius: 999px;
    background: var(--blue);
    content: "";
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .2s ease;
}

.main-nav > a:hover,
.main-nav > a.is-active,
.nav-dropdown:hover .nav-dropdown-trigger,
.nav-dropdown.is-open .nav-dropdown-trigger,
.nav-dropdown-trigger.is-active {
    color: #0c0f12;
    background: transparent;
}

.main-nav > a:hover::after,
.main-nav > a.is-active::after,
.nav-dropdown:hover .nav-dropdown-trigger::after,
.nav-dropdown.is-open .nav-dropdown-trigger::after,
.nav-dropdown-trigger.is-active::after {
    transform: scaleX(1);
}

.nav-dropdown {
    position: static;
}

.nav-dropdown::after {
    position: absolute;
    top: calc(100% - 10px);
    right: 0;
    left: 0;
    z-index: 89;
    height: 24px;
    display: none;
    content: "";
}

.nav-dropdown:hover::after,
.nav-dropdown:focus-within::after,
.nav-dropdown.is-open::after {
    display: block;
}

.nav-dropdown-trigger {
    gap: 5px;
}

.nav-dropdown-trigger svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
    transition: transform .2s ease;
}

.nav-dropdown:hover .nav-dropdown-trigger svg,
.nav-dropdown.is-open .nav-dropdown-trigger svg,
.nav-dropdown:focus-within .nav-dropdown-trigger svg {
    transform: rotate(180deg);
}

.mega-menu {
    position: absolute;
    top: calc(100% - 1px);
    right: 0;
    left: 0;
    z-index: 90;
    width: auto;
    display: grid;
    grid-template-columns: minmax(250px, .33fr) minmax(0, 1fr);
    gap: 16px;
    padding: 16px;
    border: 1px solid #dfe5ec;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(25, 38, 55, .18), 0 8px 24px rgba(25, 38, 55, .08);
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    visibility: hidden;
}

.nav-dropdown:hover .mega-menu,
.nav-dropdown.is-open .mega-menu,
.nav-dropdown:focus-within .mega-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
}

.nav-dropdown-corporate {
    position: relative;
}

.nav-dropdown-corporate::after {
    top: 100%;
    right: auto;
    left: -10px;
    width: 270px;
    height: 10px;
}

.corporate-menu {
    top: 100%;
    right: auto;
    left: -10px;
    width: 270px;
    grid-template-columns: 1fr;
    gap: 3px;
    padding: 11px 10px 12px;
    border: 1px solid #e6ebf1;
    border-top: 0;
    border-radius: 0 0 14px 14px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(24, 38, 58, .16), 0 5px 14px rgba(24, 38, 58, .07);
}

.corporate-menu > a {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    min-height: 46px;
    align-items: center;
    gap: 11px;
    padding: 5px 10px;
    border: 1px solid transparent;
    border-radius: 9px;
    color: #3f4b5d;
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.3;
    transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.corporate-menu > a::after {
    display: none;
    content: none;
}

.corporate-menu > a:hover,
.corporate-menu > a.is-active {
    border-color: #e4e5e6;
    color: #4e4f50;
    background: #f5f5f5;
    transform: translateX(2px);
}

.corporate-menu-icon {
    display: inline-grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f9fbfd;
    color: #718198;
}

.corporate-menu-icon svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.corporate-menu > a:hover .corporate-menu-icon,
.corporate-menu > a.is-active .corporate-menu-icon {
    border-color: #d7d8d9;
    background: #fff;
    color: #4e4f50;
}

.mega-intro {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
    overflow: hidden;
    min-height: 208px;
    padding: 0;
    border: 1px solid #17283a;
    border-radius: 11px;
    background: #0b1623;
    color: #fff;
}

.mega-intro::after {
    position: absolute;
    inset: 0;
    z-index: 1;
    content: "";
    background: linear-gradient(180deg, rgba(3, 9, 17, .7) 0%, rgba(3, 9, 17, .08) 42%, transparent 68%);
    pointer-events: none;
}

.mega-intro strong {
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 2;
    color: #fff;
    font-size: 22px;
    line-height: 1.1;
    letter-spacing: -.04em;
    white-space: nowrap;
    text-shadow: 0 3px 18px rgba(0, 0, 0, .9);
}

.mega-intro strong::before {
    display: none;
    content: none;
}

.mega-visual {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
    border: 0;
    border-radius: inherit;
    background: #11161b;
}

.mega-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.08);
    transition: transform .45s ease;
}

.mega-intro:hover .mega-visual img {
    transform: scale(1.12);
}

.mega-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    align-content: stretch;
}

.mega-links a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 50px;
    padding: 10px 13px;
    border: 1px solid #e0e5ea;
    border-radius: 9px;
    background: #f8f9fa;
    color: #171b20;
    text-align: left;
    transition: background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.mega-links a::after {
    display: grid;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    place-items: center;
    border: 1px solid #d8dee6;
    border-radius: 6px;
    color: #667085;
    content: "\2197";
    font-size: 13px;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}

.mega-links a:hover,
.mega-links a.is-active {
    border-color: rgba(78, 79, 80, .45);
    background: #f1f2f3;
    color: #4e4f50;
    box-shadow: inset 3px 0 0 #6d6e6f;
    transform: translateY(-2px);
}

.mega-links a:hover::after,
.mega-links a.is-active::after {
    color: #fff;
    background: #4e4f50;
    border-color: #4e4f50;
    transform: translate(1px, -1px);
}

.mega-links span {
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.3;
}

.contact-pill,
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 46px;
    padding: 0 28px;
    border: 1px solid var(--ink);
    border-radius: 999px;
    background: var(--ink);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.header-search-toggle {
    width: 46px;
    height: 52px;
    flex: 0 0 46px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid #dfe2e4;
    border-radius: 7px;
    background: #fff;
    color: #303741;
    cursor: pointer;
    transition: color .2s ease, background .2s ease, border-color .2s ease;
}

.site-header.is-scrolled .header-search-toggle {
    height: 50px;
}

.header-search-toggle:hover,
.header-search-toggle[aria-expanded="true"] {
    border-color: #0c0f12;
    background: #0c0f12;
    color: #fff;
}

.header-search-toggle svg,
.header-search-box svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 1.8;
}

.header-search-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    left: 0;
    z-index: 100;
    padding: 14px;
    border: 1px solid #dce2e8;
    border-radius: 12px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 24px 70px rgba(16, 24, 40, .2);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    visibility: hidden;
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.header-stack.is-search-open .header-search-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
}

.header-search-box {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 15px;
    border: 1px solid #cfd8e3;
    border-radius: 999px;
    background: #fff;
    color: #526173;
}

.header-search-box:focus-within {
    border-color: #4e4f50;
    box-shadow: 0 0 0 3px rgba(78, 79, 80, .1);
}

.header-search-box input {
    min-width: 0;
    flex: 1;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #151515;
    font-size: 13px;
}

.header-search-box input::placeholder {
    color: #9aa8ba;
}

.header-search-results {
    max-height: 310px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 12px;
    overflow-y: auto;
}

.header-search-results a {
    min-width: 0;
    min-height: 54px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-content: center;
    gap: 2px 10px;
    padding: 9px 11px;
    border: 1px solid #e4e8ed;
    border-radius: 8px;
    background: #f8f9f9;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.header-search-results a:hover {
    border-color: rgba(78, 79, 80, .35);
    background: #f1f2f3;
    transform: translateY(-1px);
}

.header-search-results a span {
    overflow: hidden;
    font-size: 12px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.header-search-results a small {
    overflow: hidden;
    color: #7a8592;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.header-search-results a svg {
    width: 18px;
    height: 18px;
    grid-row: 1 / 3;
    grid-column: 2;
    align-self: center;
    fill: none;
    stroke: #4e4f50;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.header-search-results a[hidden] {
    display: none;
}

.header-search-empty {
    display: none;
    grid-column: 1 / -1;
    margin: 0;
    padding: 18px;
    color: #667085;
    text-align: center;
}

.header-search-empty.is-visible {
    display: block;
}

.contact-pill {
    min-width: 148px;
    min-height: 52px;
    justify-content: space-between;
    padding: 0 8px 0 20px;
    border-radius: 7px;
    background: #0c0f12;
    font-size: 13px;
    transition: min-height .28s ease, transform .2s ease, background .2s ease;
}

.site-header.is-scrolled .contact-pill {
    min-height: 50px;
}

.contact-pill svg {
    width: 36px;
    height: 36px;
    padding: 9px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 5px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
    transition: transform .2s ease, background .2s ease;
}

.contact-pill:hover {
    background: #083f5e;
}

.contact-pill:hover svg {
    transform: translateX(2px);
    background: rgba(255, 255, 255, .08);
}

.btn:hover {
    transform: translateY(-2px);
}

.btn-outline {
    background: transparent;
    color: var(--ink);
}

.btn-outline:hover {
    background: var(--ink);
    color: #fff;
}

.menu-toggle {
    display: none;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid #dfe2e4;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
}

.menu-toggle span {
    display: block;
    width: 17px;
    height: 1.5px;
    margin: 4px auto;
    background: #0c0f12;
    transition: transform .2s ease, opacity .2s ease;
}

.menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(5.5px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-5.5px) rotate(-45deg);
}

.home-page main {
    padding-top: 0;
}

.fullscreen-hero {
    position: relative;
    min-height: clamp(650px, 78svh, 820px);
    display: flex;
    align-items: center;
    overflow: hidden;
    background: #090c10;
    color: #fff;
}

.fullscreen-hero-image,
.fullscreen-hero-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.fullscreen-hero-image {
    object-fit: cover;
    object-position: center;
}

.fullscreen-hero-overlay {
    background: linear-gradient(180deg, rgba(0, 0, 0, .2) 0%, rgb(0 0 0 / 95%) 100%), radial-gradient(circle at 50% 48%, rgba(5, 9, 14, .14) 0%, rgba(3, 6, 10, .44) 100%);
}

.fullscreen-hero-content {
    position: relative;
    z-index: 1;
    padding-top: 145px;
    padding-bottom: 80px;
    transform: translateY(42px);
}

.fullscreen-hero h1 {
    width: min(1210px, 100%);
    margin: 0 auto;
    text-align: center;
    text-wrap: balance;
    white-space: nowrap;
    font-size: clamp(40px, 3.6vw, 52px);
    line-height: 1.08;
    letter-spacing: -.045em;
}

.fullscreen-hero h1 span {
    display: inline;
    color: #ffffff;
}

@media (max-width: 1020px) {
    .fullscreen-hero h1 {
        white-space: normal;
    }
}

.fullscreen-hero-content > p {
    width: min(900px, 100%);
    margin: 28px auto 0;
    color: rgba(255, 255, 255, .74);
    font-size: clamp(16px, 1.45vw, 20px);
    line-height: 1.6;
    text-align: center;
    text-wrap: balance;
}

.fullscreen-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 32px;
}

.fullscreen-hero-actions .btn {
    min-width: 160px;
    min-height: 54px;
    border-color: #fff;
    background: #fff;
    color: #111820;
}

.fullscreen-hero-actions .btn-outline {
    border-color: rgba(255, 255, 255, .4);
    background: rgba(255, 255, 255, .06);
    color: #fff;
    backdrop-filter: blur(8px);
}

.fullscreen-hero-actions .btn-outline:hover {
    border-color: #fff;
    background: #fff;
    color: #111820;
}

.fullscreen-hero-scroll {
    position: absolute;
    right: max(32px, calc((100vw - 1210px) / 2));
    bottom: 32px;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(255, 255, 255, .72);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.fullscreen-hero-scroll svg {
    width: 42px;
    height: 42px;
    padding: 11px;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: 50%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
    transition: transform .2s ease, background .2s ease;
}

.fullscreen-hero-scroll:hover svg {
    background: rgba(255, 255, 255, .12);
    transform: translateY(3px);
}

.home-stats-section {
    position: relative;
    z-index: 3;
    padding: 0 0 72px;
}

.home-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    width: min(920px, 100%);
    margin: -72px auto 0;
}

.home-stat-item {
    position: relative;
    min-height: 180px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px 30px 27px;
    border: 1px solid #e0e5ea;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 24px 60px rgba(20, 32, 46, .12);
    text-align: center;
    transition: transform .25s ease, box-shadow .25s ease;
}

.home-stat-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 30px 70px rgba(20, 32, 46, .16);
}

.home-stat-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: #eef1f5;
    color: var(--blue);
}

.home-stat-icon svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.home-stat-item strong {
    margin-top: 13px;
    color: #111820;
    font-size: clamp(34px, 3.5vw, 50px);
    line-height: 1;
    letter-spacing: -.045em;
}

.home-stat-item .home-stat-label {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 10px;
    color: #667085;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.home-stat-item .home-stat-label::before {
    width: 18px;
    height: 2px;
    content: "";
    background: var(--blue);
}

.home-services-section {
    padding: 100px 0 110px;
}

.home-projects-section {
    padding: 0 0 110px;
}

.home-services-section .home-section-head {
    grid-template-columns: 1fr;
}

.home-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .55fr);
    gap: 70px;
    align-items: end;
    margin-bottom: 44px;
}

.home-section-title > span,
.home-process-head > div > span,
.home-cta-copy > span {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--blue);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.home-section-title > span::before,
.home-process-head > div > span::before,
.home-cta-copy > span::before {
    width: 30px;
    height: 2px;
    content: "";
    background: currentColor;
}

.home-section-title h2,
.home-process-head h2,
.home-cta-copy h2 {
    margin: 0;
    color: #101418;
    font-size: clamp(40px, 5.2vw, 68px);
    line-height: .98;
    letter-spacing: -.045em;
}

.home-section-intro {
    display: grid;
    gap: 20px;
}

.home-section-intro p {
    margin: 0;
    color: #667085;
    font-size: 15px;
    line-height: 1.7;
}

.home-section-intro > a {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #111820;
    font-size: 13px;
    font-weight: 800;
}

.home-section-intro > a > span {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #111820;
    color: #fff;
    transition: background .2s ease, transform .2s ease;
}

.home-section-intro > a:hover > span {
    background: var(--blue);
    transform: translate(2px, -2px);
}

.home-services-grid {
    width: 100%;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}

.home-services-track {
    width: max-content;
    display: flex;
    will-change: transform;
    animation: home-services-flow 52s linear infinite;
}

.home-services-grid:hover .home-services-track,
.home-services-grid:focus-within .home-services-track {
    animation-play-state: paused;
}

.home-services-group {
    display: flex;
    gap: 14px;
    padding-right: 14px;
}

@keyframes home-services-flow {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
    .home-services-track {
        animation-play-state: paused;
    }
}

.home-service-card {
    position: relative;
    width: min(535px, calc(100vw - 48px));
    flex: 0 0 min(535px, calc(100vw - 48px));
    min-height: 180px;
    display: grid;
    grid-template-columns: 168px minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid #e0e5ea;
    border-radius: 12px;
    background: #fff;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.home-service-card:hover {
    border-color: rgba(78, 79, 80, .4);
    box-shadow: 0 18px 42px rgba(25, 38, 55, .1);
    transform: translateY(-3px);
}

.home-service-media {
    position: relative;
    display: block;
    min-width: 0;
    overflow: hidden;
    background: #111820;
}

.home-service-media::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(180deg, transparent 35%, rgba(5, 8, 12, .68));
}

.home-service-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(.78);
    transition: transform .45s ease, filter .3s ease;
}

.home-service-card:hover .home-service-media img {
    filter: saturate(1);
    transform: scale(1.06);
}

.home-service-media small {
    position: absolute;
    bottom: 14px;
    left: 14px;
    z-index: 1;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.home-service-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px 46px 24px 24px;
}

.home-service-body > small {
    margin-bottom: 8px;
    color: var(--blue);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.home-service-body > strong {
    color: #111820;
    font-size: 20px;
    line-height: 1.15;
}

.home-service-body > span {
    display: -webkit-box;
    margin-top: 10px;
    overflow: hidden;
    color: #667085;
    font-size: 12px;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-service-arrow {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border: 1px solid #dde3ea;
    border-radius: 7px;
    color: #667085;
    font-size: 13px;
    transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.home-service-card:hover .home-service-arrow {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff;
    transform: translate(1px, -1px);
}

.home-process-section {
    position: relative;
    padding: 76px 0 82px;
    overflow: hidden;
    background: #0d1116;
    color: #fff;
}

.home-process-section::before {
    position: absolute;
    inset: 0;
    content: "";
    background: radial-gradient(circle at 88% 0%, rgba(78, 79, 80, .14), transparent 34%);
}

.home-process-section > .container {
    position: relative;
    z-index: 1;
}

.home-process-head {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, .55fr);
    gap: 50px;
    align-items: end;
    margin-bottom: 40px;
}

.home-process-head h2 {
    color: #fff;
    font-size: clamp(38px, 4.6vw, 60px);
}

.home-process-head > p {
    margin: 0;
    color: rgba(255, 255, 255, .62);
    font-size: 15px;
    line-height: 1.75;
}

.home-process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.home-process-card {
    position: relative;
    min-height: 230px;
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 10px;
    background: rgba(255, 255, 255, .025);
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.home-process-card::before {
    display: none;
}

.home-process-card:hover {
    border-color: rgba(145, 146, 147, .42);
    background: rgba(78, 79, 80, .08);
    transform: translateY(-2px);
}

.home-process-card > span {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    margin: 0 0 34px;
    border: 1px solid rgba(145, 146, 147, .35);
    border-radius: 7px;
    background: rgba(78, 79, 80, .09);
    color: #b8b9ba;
    font-size: 10px;
    font-weight: 800;
}

.home-process-card h3 {
    min-height: 0;
    margin: 0 0 12px;
    font-size: 18px;
}

.home-process-card .home-process-long-title {
    display: grid;
    align-content: start;
    gap: 2px;
    font-size: 14px;
    line-height: 1.15;
    letter-spacing: -.025em;
}

.home-process-long-title span {
    white-space: nowrap;
}

.home-process-card p {
    margin: 0;
    color: rgba(255, 255, 255, .58);
    font-size: 13px;
    line-height: 1.65;
}

.home-projects-section {
    padding: 86px 0 96px;
    background: #fff;
}

.home-projects-section .home-section-head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    margin-bottom: 32px;
}

.home-projects-section .home-section-title h2 {
    max-width: none;
    font-size: clamp(38px, 4vw, 52px);
    line-height: 1;
    white-space: nowrap;
}

.home-projects-section .home-section-intro > a {
    min-height: 54px;
    padding: 0 8px 0 20px;
    border-radius: 8px;
    background: #111820;
    color: #fff;
}

.home-projects-section .home-section-intro > a > span {
    width: 38px;
    height: 38px;
    border-radius: 6px;
    background: var(--blue);
    color: #fff;
}

.home-project-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.home-project-card {
    position: relative;
    overflow: hidden;
    border: 1px solid #e0e5ea;
    border-radius: 14px;
    background: #fff;
    color: #111820;
    display: grid;
    grid-template-rows: auto 1fr;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.home-project-card:first-child {
    grid-row: auto;
}

.home-project-card:hover {
    border-color: rgba(78, 79, 80, .36);
    box-shadow: 0 18px 44px rgba(25, 38, 55, .1);
    transform: translateY(-4px);
}

.home-project-card figure {
    position: relative;
    aspect-ratio: 16 / 11;
    overflow: hidden;
    margin: 0;
}

.home-project-overlay {
    position: absolute;
    inset: 0;
}

.home-project-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

.home-project-overlay {
    background: linear-gradient(0deg, rgba(5, 8, 12, .24), transparent 58%);
}

.home-project-card:hover img {
    transform: scale(1.035);
}

.home-project-content {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 24px;
}

.home-project-card:first-child .home-project-content {
    padding: 24px;
}

.home-project-content > span {
    display: inline-flex;
    width: fit-content;
    padding: 6px 8px;
    border-radius: 5px;
    background: #f1f2f3;
    color: var(--blue);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.home-project-content h3 {
    margin: 14px 0 10px;
    font-size: 21px;
    line-height: 1.15;
}

.home-project-card:first-child h3 {
    font-size: 21px;
}

.home-project-content p {
    display: -webkit-box;
    max-width: 600px;
    margin: 0;
    overflow: hidden;
    color: #667085;
    font-size: 12px;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-project-content > a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 18px;
    color: #111820;
    font-size: 12px;
    font-weight: 800;
}

.home-project-content > a > span {
    color: #b8b9ba;
    transition: transform .2s ease;
}

.home-project-content > a:hover > span {
    transform: translate(2px, -2px);
}

.home-cta-section {
    padding: 72px 0 76px;
    background: #f1f3f4;
}

.home-cta-inner {
    min-height: 330px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 52px;
    padding: 48px 52px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 14px;
    background:
        linear-gradient(90deg, rgba(7, 11, 16, .98) 0%, rgba(7, 11, 16, .94) 47%, rgba(7, 11, 16, .48) 74%, rgba(7, 11, 16, .3) 100%),
        url("../img/hero-industrial-black.png") center right / cover;
    color: #fff;
    box-shadow: 0 24px 60px rgba(20, 32, 46, .12);
}

.home-cta-copy {
    width: min(680px, 100%);
}

.home-cta-copy > span {
    color: #b8b9ba;
}

.home-cta-copy h2 {
    color: #fff;
    font-size: clamp(38px, 4.5vw, 58px);
}

.home-cta-copy p {
    width: min(620px, 100%);
    margin: 22px 0 0;
    color: rgba(255, 255, 255, .66);
    font-size: 14px;
    line-height: 1.65;
}

.home-cta-link {
    min-width: 176px;
    min-height: 56px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 0 9px 0 20px;
    border: 1px solid #6d6e6f;
    border-radius: 8px;
    background: var(--blue);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    transition: background .25s ease, color .25s ease, transform .25s ease;
}

.home-cta-link svg {
    width: 38px;
    height: 38px;
    padding: 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, .12);
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.home-cta-link:hover {
    background: #4e4f50;
    color: #fff;
    transform: translateY(-2px);
}

.hero {
    position: relative;
    overflow: hidden;
    padding: 42px 0 48px;
}

.hero > .container {
    position: relative;
    z-index: 1;
}

.technical-float-layer {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.technical-float {
    position: absolute;
    fill: none;
    stroke: #4e4f50;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
    opacity: .14;
    filter: drop-shadow(0 8px 14px rgba(78, 79, 80, .08));
    animation: technical-float 9s ease-in-out infinite;
}

.technical-float-gear { top: 18px; right: 2.5%; width: 116px; animation-duration: 11s; }
.technical-float-hex { top: 115px; left: 2%; width: 92px; animation-delay: -3s; }
.technical-float-ruler { right: 14%; bottom: 8px; width: 150px; animation-delay: -6s; }
.technical-float-pipe { left: 4%; bottom: 40px; width: 120px; animation-duration: 13s; animation-delay: -4s; }
.technical-float-compass { top: 10px; left: 43%; width: 82px; animation-duration: 12s; animation-delay: -7s; }
.technical-float-circuit { top: 120px; right: 1%; width: 145px; animation-duration: 10s; animation-delay: -2s; }

@keyframes technical-float {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(-1deg); }
    50% { transform: translate3d(0, -14px, 0) rotate(2deg); }
}

@media (prefers-reduced-motion: reduce) {
    .technical-float {
        animation: none;
    }
}

.hero-title {
    width: min(640px, 100%);
    margin: 0 0 -168px 4px;
    font-size: clamp(54px, 5.2vw, 72px);
    line-height: 1.08;
    font-weight: 700;
    letter-spacing: 0;
    position: relative;
    z-index: 6;
}

.hero-title-line {
    display: block;
    white-space: nowrap;
}

.hero-title em {
    color: #393a39;
    font-style: normal;
}

.hero-stage {
    position: relative;
    z-index: 1;
    min-height: 485px;
    margin-left: 0;
}

.hero-stage::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
    width: 542px;
    height: 184px;
    content: "";
    border-bottom-right-radius: 82px;
    background: var(--bg);
}

.hero-image {
    position: absolute;
    inset: 0 0 auto 0;
    z-index: 1;
    height: 485px;
    overflow: hidden;
    border-radius: 52px 52px 96px 52px;
    box-shadow: none;
}

.hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-page .hero-image::after {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(90deg, rgba(0, 0, 0, .08), rgba(0, 0, 0, 0) 42%, rgba(0, 0, 0, .12));
}

.hero-panel {
    position: absolute;
    left: 0;
    top: 184px;
    z-index: 4;
    width: min(1082px, calc(100% - 132px));
    min-height: 301px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 62px 44px 58px 56px;
    border-radius: 52px 6px 96px 52px;
    background: transparent;
    backdrop-filter: none;
    overflow: hidden;
}

.hero-panel::after {
    display: none;
}

.hero-copy {
    width: min(485px, 100%);
}

.home-page .hero-copy .eyebrow {
    display: none;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    color: var(--blue);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.eyebrow::before {
    width: 34px;
    height: 2px;
    content: "";
    background: var(--blue);
}

.hero-copy p {
    margin: 0 0 28px;
    font-size: clamp(25px, 2.45vw, 30px);
    line-height: 1.24;
    font-weight: 600;
    color: #fff;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .45);
}

.hero-copy p span {
    color: #fff;
    font-weight: 800;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.hero-actions .btn {
    min-height: 62px;
    min-width: 168px;
}

.hero-actions .btn-outline {
    min-height: 62px;
    min-width: 176px;
}

.home-page .hero-actions .btn-outline {
    border-color: rgba(255, 255, 255, .42);
    background: rgba(255, 255, 255, .02);
    color: #fff;
}

.home-page .hero-actions .btn-outline:hover {
    border-color: #fff;
    background: #fff;
    color: #0c0f12;
}

.scroll-orb {
    position: absolute;
    right: -12px;
    bottom: -12px;
    z-index: 4;
    width: 170px;
    height: 170px;
    display: grid;
    place-items: center;
    border: 23px solid var(--bg);
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    box-shadow: 0 20px 40px rgba(0, 0, 0, .16);
}

.scroll-orb::before,
.scroll-orb::after {
    position: absolute;
    content: "";
    background: #fff;
}

.scroll-orb::before {
    width: 3px;
    height: 45px;
}

.scroll-orb::after {
    width: 26px;
    height: 26px;
    border-right: 3px solid #fff;
    border-bottom: 3px solid #fff;
    background: transparent;
    transform: translateY(10px) rotate(45deg);
}

.section {
    padding: 86px 0;
}

.section-tight {
    padding: 54px 0;
}

.section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(260px, .7fr);
    gap: 40px;
    align-items: end;
    margin-bottom: 36px;
}

.section-head h1,
.section-head h2,
.page-hero h1 {
    margin: 0;
    font-size: clamp(38px, 5vw, 72px);
    line-height: .98;
    letter-spacing: 0;
}

.section-head p,
.page-hero p {
    margin: 0;
    color: var(--muted);
    font-size: 17px;
    line-height: 1.65;
}

.stats-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--line);
}

.stat-item {
    padding: 26px;
    background: #fff;
}

.stat-item strong {
    display: block;
    margin-bottom: 8px;
    color: var(--steel);
    font-size: clamp(28px, 4vw, 48px);
    line-height: 1;
}

.stat-item span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.service-grid,
.project-grid,
.news-grid,
.values-grid,
.reference-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.service-grid {
    grid-template-columns: repeat(4, 1fr);
}

.service-card,
.project-card,
.news-card,
.value-card,
.reference-card,
.contact-card,
.admin-preview {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, .92);
}

.service-card,
.value-card,
.reference-card {
    padding: 24px;
}

.service-card {
    transition: border-color .2s ease, transform .2s ease, background .2s ease;
}

.service-card:hover {
    border-color: #0c0f12;
    background: #fff;
    transform: translateY(-3px);
}

.service-card span {
    display: inline-flex;
    margin-bottom: 46px;
    color: #0c0f12;
    font-size: 13px;
    font-weight: 800;
}

.service-card h3,
.value-card h3,
.reference-card h3,
.news-card h3 {
    margin: 0 0 12px;
    font-size: 19px;
    line-height: 1.2;
}

.service-card p,
.value-card p,
.reference-card p,
.news-card p,
.project-card p,
.project-detail p {
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.project-card {
    overflow: hidden;
    background: #fff;
}

.project-card figure {
    margin: 0;
    aspect-ratio: 16 / 10;
    background: #dbe3ed;
}

.project-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.project-card-body,
.news-card {
    padding: 22px;
}

.project-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.badge {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    background: #f1f2f3;
    color: var(--blue);
    font-size: 11px;
    font-weight: 800;
}

.project-card h3 {
    margin: 0 0 12px;
    font-size: 22px;
    line-height: 1.15;
}

.card-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
}

.card-link::after {
    content: "";
    width: 22px;
    height: 1px;
    background: currentColor;
    transition: width .2s ease;
}

.card-link:hover::after {
    width: 34px;
}

.dark-band {
    color: #fff;
    background: var(--steel);
}

.dark-band .section-head p,
.dark-band .service-card p,
.dark-band .value-card p {
    color: rgba(255, 255, 255, .7);
}

.dark-band .service-card,
.dark-band .value-card {
    border-color: rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .05);
}

.cta-band {
    padding: 74px 0;
    color: #fff;
    background:
        linear-gradient(110deg, rgba(78, 79, 80, .9), rgba(39, 54, 71, .96)),
        url("../img/hero-industrial-organic.png") center / cover;
}

.cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.cta-inner h2 {
    width: min(690px, 100%);
    margin: 0;
    font-size: clamp(34px, 5vw, 64px);
    line-height: 1;
}

.cta-inner .btn {
    border-color: #fff;
    background: #fff;
    color: var(--ink);
    white-space: nowrap;
}

.page-hero {
    padding: 78px 0 52px;
}

.projects-page-hero {
    padding: 44px 0 70px;
}

.projects-simple-page-hero {
    padding: 24px 0 48px;
}

.projects-simple-hero {
    background:
        linear-gradient(110deg, rgba(4, 13, 27, .94), rgba(78, 79, 80, .82), rgba(4, 12, 24, .92)),
        url("../img/hero-industrial-black.png") center 48% / cover;
}

.projects-page-hero-inner {
    min-height: 390px;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, .55fr);
    gap: 60px;
    align-items: end;
    padding: clamp(38px, 5vw, 64px);
    overflow: hidden;
    border-radius: 18px;
    background:
        linear-gradient(90deg, rgba(6, 10, 15, .96), rgba(6, 10, 15, .58)),
        url("../img/hero-industrial-black.png") center / cover;
    color: #fff;
}

.projects-page-hero .eyebrow {
    color: #b8b9ba;
}

.projects-page-hero .eyebrow::before {
    background: currentColor;
}

.projects-page-hero h1 {
    width: min(760px, 100%);
    margin: 0;
    font-size: clamp(44px, 5.7vw, 76px);
    line-height: .96;
    letter-spacing: -.05em;
}

.projects-page-summary {
    display: grid;
    gap: 28px;
}

.projects-page-summary > p {
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: 14px;
    line-height: 1.7;
}

.projects-page-summary > div {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.projects-page-summary > div > span {
    display: grid;
    gap: 5px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 9px;
    background: rgba(255, 255, 255, .06);
    color: rgba(255, 255, 255, .62);
    font-size: 10px;
    backdrop-filter: blur(8px);
}

.projects-page-summary strong {
    color: #fff;
    font-size: 28px;
}

.projects-collection {
    padding: 80px 0 100px;
}

.projects-collection-unified {
    border-top: 1px solid #e1e6eb;
    background: #f3f6f9;
}

.projects-collection-unified .projects-status-dot {
    background: var(--blue);
    box-shadow: 0 0 0 5px rgba(78, 79, 80, .12);
}

.projects-collection-completed {
    border-top: 1px solid #e1e6eb;
    background: #eef2f5;
}

.projects-collection-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 34px;
}

.projects-collection-head > div {
    position: relative;
    padding-left: 18px;
}

.projects-status-dot {
    position: absolute;
    top: 3px;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #19b883;
    box-shadow: 0 0 0 5px rgba(25, 184, 131, .12);
}

.projects-collection-completed .projects-status-dot {
    background: var(--blue);
    box-shadow: 0 0 0 5px rgba(78, 79, 80, .12);
}

.projects-collection-head small {
    color: #667085;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.projects-collection-head h2 {
    margin: 8px 0 0;
    font-size: clamp(32px, 4vw, 50px);
    line-height: 1;
    letter-spacing: -.04em;
}

.projects-collection-head > strong {
    color: #c5ccd5;
    font-size: clamp(48px, 7vw, 86px);
    line-height: .8;
}

.projects-impact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 34px;
}

.projects-impact-grid article {
    display: grid;
    gap: 7px;
    padding: 24px;
    border: 1px solid #dce2e8;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(20, 32, 46, .07);
}

.projects-impact-grid strong {
    color: #111820;
    font-size: clamp(30px, 3.2vw, 44px);
    line-height: 1;
    letter-spacing: -.04em;
}

.projects-impact-grid span {
    color: #667085;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.projects-impact-note {
    max-width: 900px;
    margin: -12px 0 34px;
    color: #667085;
    font-size: 14px;
    line-height: 1.7;
}

.projects-catalog-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.projects-catalog-card {
    overflow: hidden;
    border: 1px solid #e0e5ea;
    border-radius: 13px;
    background: #fff;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.projects-catalog-card:hover {
    border-color: rgba(78, 79, 80, .4);
    box-shadow: 0 18px 42px rgba(25, 38, 55, .1);
    transform: translateY(-4px);
}

.projects-catalog-media {
    position: relative;
    aspect-ratio: 16 / 10;
    display: block;
    overflow: hidden;
    background: #111820;
}

.projects-catalog-media::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(0deg, rgba(5, 8, 12, .45), transparent 58%);
}

.projects-catalog-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.projects-catalog-card:hover .projects-catalog-media img {
    transform: scale(1.045);
}

.projects-catalog-year {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 1;
    padding: 6px 9px;
    border-radius: 6px;
    background: rgba(7, 12, 18, .76);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    backdrop-filter: blur(8px);
}

.projects-catalog-status {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}

.projects-catalog-status.is-ongoing {
    background: rgba(12, 142, 101, .9);
}

.projects-catalog-status.is-completed {
    background: rgba(78, 79, 80, .9);
}

.projects-catalog-body {
    padding: 22px;
}

.projects-catalog-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.projects-catalog-meta span {
    color: var(--blue);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.projects-catalog-meta span + span::before {
    margin-right: 7px;
    color: #c5ccd5;
    content: "·";
}

.projects-catalog-body h3 {
    margin: 12px 0 10px;
    font-size: 21px;
    line-height: 1.15;
}

.projects-catalog-body p {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #667085;
    font-size: 12px;
    line-height: 1.6;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.projects-catalog-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
    color: #111820;
    font-size: 12px;
    font-weight: 800;
}

.projects-catalog-link > span {
    color: var(--blue);
    transition: transform .2s ease;
}

.projects-catalog-link:hover > span {
    transform: translate(2px, -2px);
}

.projects-empty {
    padding: 40px;
    border: 1px dashed #bfc8d3;
    border-radius: 12px;
    color: #667085;
    text-align: center;
}

.blog-page-hero {
    padding: 24px 0 48px;
}

.blog-simple-hero {
    background:
        linear-gradient(110deg, rgba(4, 13, 27, .94), rgba(78, 79, 80, .82), rgba(4, 12, 24, .92)),
        url("../img/hero-industrial-black.png") center 48% / cover;
}

.blog-list-section {
    padding: 64px 0 100px;
    background: #fff;
}

.blog-list-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr);
    gap: 60px;
    align-items: end;
    margin-bottom: 38px;
}

.blog-list-head > div > span {
    display: inline-flex;
    margin-bottom: 14px;
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.blog-list-head h2 {
    width: min(720px, 100%);
    margin: 0;
    color: #111820;
    font-size: clamp(36px, 4.5vw, 56px);
    line-height: 1;
    letter-spacing: -.045em;
}

.blog-list-head > p {
    margin: 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.7;
}

.blog-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.blog-card {
    overflow: hidden;
    border: 1px solid #dfe5eb;
    border-radius: 13px;
    background: #fff;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.blog-card:hover {
    border-color: rgba(78, 79, 80, .35);
    box-shadow: 0 18px 42px rgba(25, 38, 55, .09);
    transform: translateY(-4px);
}

.blog-card-media {
    aspect-ratio: 16 / 10;
    display: block;
    overflow: hidden;
    background: #111820;
}

.blog-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.blog-card:hover .blog-card-media img {
    transform: scale(1.045);
}

.blog-card-body {
    padding: 22px;
}

.blog-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #7a8592;
    font-size: 10px;
}

.blog-card-meta span {
    color: var(--blue);
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.blog-card-body h2 {
    margin: 14px 0 10px;
    color: #111820;
    font-size: 21px;
    line-height: 1.2;
}

.blog-card-body > p {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #667085;
    font-size: 13px;
    line-height: 1.65;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.blog-card-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 20px;
    color: #111820;
    font-size: 12px;
    font-weight: 800;
}

.blog-card-link span {
    color: var(--blue);
    transition: transform .2s ease;
}

.blog-card-link:hover span {
    transform: translate(2px, -2px);
}

.blog-detail {
    padding: 0 0 100px;
    background: #fff;
}

.blog-detail-head {
    width: min(900px, calc(100% - 32px));
    text-align: center;
}

.blog-detail-meta {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin-bottom: 22px;
    color: #667085;
    font-size: 11px;
}

.blog-detail-meta span {
    color: var(--blue);
    font-weight: 800;
    text-transform: uppercase;
}

.universal-page-hero .blog-detail-meta {
    color: rgba(255, 255, 255, .66);
}

.universal-page-hero .blog-detail-meta span {
    color: #b8b9ba;
}

.blog-detail-head h1 {
    margin: 0;
    color: #111820;
    font-size: clamp(42px, 6vw, 74px);
    line-height: .98;
    letter-spacing: -.05em;
}

.blog-detail-head > p {
    width: min(720px, 100%);
    margin: 24px auto 0;
    color: #667085;
    font-size: 16px;
    line-height: 1.7;
}

.blog-detail-media {
    margin-top: 48px;
    overflow: hidden;
    border-radius: 14px;
}

.blog-detail-media img {
    width: 100%;
    max-height: 620px;
    object-fit: cover;
}

.blog-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 230px;
    gap: 70px;
    padding-top: 54px;
}

.blog-detail-content {
    width: min(760px, 100%);
}

.blog-detail-content p {
    margin: 0 0 24px;
    color: #364152;
    font-size: 16px;
    line-height: 1.85;
}

.blog-detail-layout aside {
    height: fit-content;
    display: grid;
    gap: 14px;
    padding: 20px;
    border: 1px solid #dfe5eb;
    border-radius: 10px;
    background: #f6f8f9;
}

.blog-detail-layout aside span {
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.blog-detail-layout aside a {
    font-size: 13px;
    font-weight: 800;
}

.blog-list-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 38px;
    align-items: start;
}

.blog-result-count {
    margin-bottom: 20px;
    color: #5f6f82;
    font-size: 11px;
    font-weight: 700;
}

.blog-list-layout .blog-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.blog-list-layout .blog-card-media {
    position: relative;
}

.blog-list-layout .blog-card-media > span {
    position: absolute;
    bottom: 14px;
    left: 14px;
    z-index: 1;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: #4e4f50;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.blog-list-layout .blog-card-meta {
    justify-content: flex-start;
    gap: 10px;
}

.blog-list-layout .blog-card-meta > * + *::before {
    margin-right: 10px;
    color: #b7c1ce;
    content: "•";
}

.blog-list-layout .blog-card-meta span {
    color: #7a8592;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.blog-list-layout .blog-card-body h2 {
    font-size: clamp(21px, 2.2vw, 28px);
    line-height: 1.12;
}

.blog-list-layout .blog-card-link {
    color: #4e4f50;
}

.blog-category-panel {
    position: sticky;
    top: 92px;
    padding: 22px;
    border: 1px solid #d8e0ea;
    border-radius: 10px;
    background: #fff;
}

.blog-category-panel h2 {
    margin: 0;
    color: #111820;
    font-size: 17px;
}

.blog-category-line {
    width: 84px;
    height: 1px;
    display: block;
    margin: 14px 0 12px;
    background: #4e4f50;
}

.blog-category-panel nav {
    display: grid;
    gap: 4px;
}

.blog-category-panel nav a {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 10px;
    border-radius: 7px;
    color: #344054;
    font-size: 12px;
    transition: color .2s ease, background .2s ease;
}

.blog-category-panel nav a:hover,
.blog-category-panel nav a.is-active {
    background: #f1f2f3;
    color: #4e4f50;
}

.blog-category-panel nav strong {
    min-width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f1f5fa;
    color: #4e4f50;
    font-size: 10px;
}

.page-hero .eyebrow {
    margin-bottom: 22px;
}

.page-hero h1 {
    width: min(820px, 100%);
    margin-bottom: 22px;
}

.page-hero p {
    width: min(740px, 100%);
}

.page-hero.universal-page-hero {
    position: relative;
    min-height: 340px;
    display: flex;
    align-items: center;
    padding: 68px 0;
    overflow: hidden;
    background: linear-gradient(115deg, #303132 0%, #444546 58%, #4e4f50 100%);
    color: #fff;
}

.universal-page-hero::before {
    position: absolute;
    inset: 0;
    content: "";
    background-image:
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: linear-gradient(90deg, rgba(0, 0, 0, .75), #000 50%, rgba(0, 0, 0, .75));
}

.universal-page-hero-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.universal-page-hero .eyebrow {
    margin: 0 0 16px;
    color: #b8b9ba;
    font-size: 10px;
    letter-spacing: .15em;
}

.universal-page-hero .eyebrow::before {
    display: none;
}

.universal-page-hero h1 {
    width: min(940px, 100%);
    margin: 0 auto 18px;
    color: #fff;
    font-size: clamp(46px, 5.5vw, 70px);
    line-height: .98;
    letter-spacing: -.045em;
}

.universal-page-hero p {
    width: min(720px, 100%);
    margin: 0 auto;
    color: rgba(255, 255, 255, .78);
    font-size: 15px;
    line-height: 1.6;
}

.universal-page-hero-back {
    margin-bottom: 12px;
    color: rgba(255, 255, 255, .62);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.page-hero.universal-page-hero.about-image-hero {
    min-height: 380px;
    background-color: #f6f6f6;
    background-image: url("../img/hakkimizdahero.png");
    background-position: center;
    background-size: cover;
}

.about-image-hero::before {
    background: linear-gradient(90deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .04) 48%, transparent 68%);
    mask-image: none;
}

.about-image-hero .universal-page-hero-content {
    align-items: flex-start;
    text-align: left;
}

.about-image-hero .eyebrow {
    color: #4e4f50;
}

.about-image-hero h1 {
    width: min(590px, 55%);
    margin-right: auto;
    margin-left: 0;
    color: #292a2b;
}

.about-image-hero p {
    width: min(590px, 52%);
    margin-right: auto;
    margin-left: 0;
    color: #68696a;
}

.page-hero.universal-page-hero.projects-image-hero {
    min-height: 380px;
    background-color: #f6f6f6;
    background-image: url("../img/projelerimizhero.png");
    background-position: center;
    background-size: cover;
}

.projects-image-hero::before {
    background: linear-gradient(90deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .04) 48%, transparent 68%);
    mask-image: none;
}

.projects-image-hero .universal-page-hero-content {
    align-items: flex-start;
    text-align: left;
}

.projects-image-hero .eyebrow {
    color: #4e4f50;
}

.projects-image-hero h1 {
    width: min(590px, 55%);
    margin-right: auto;
    margin-left: 0;
    color: #292a2b;
}

.projects-image-hero p {
    width: min(590px, 52%);
    margin-right: auto;
    margin-left: 0;
    color: #68696a;
}

.page-hero.universal-page-hero.career-page-hero {
    min-height: 380px;
    background-color: #f6f6f6;
    background-image: url("../img/kariyerhero.png");
    background-position: center;
    background-size: cover;
}

.career-page-hero::before {
    background: linear-gradient(90deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .04) 48%, transparent 68%);
    mask-image: none;
}

.career-page-hero .universal-page-hero-content {
    align-items: flex-start;
    text-align: left;
}

.career-page-hero .eyebrow {
    color: #4e4f50;
}

.career-page-hero h1 {
    width: min(590px, 55%);
    margin-right: auto;
    margin-left: 0;
    color: #292a2b;
}

.career-page-hero p {
    width: min(590px, 52%);
    margin-right: auto;
    margin-left: 0;
    color: #68696a;
}

.page-hero.universal-page-hero.contact-page-hero {
    min-height: 380px;
    background-color: #f6f6f6;
    background-image: url("../img/ilerisimhero.png");
    background-position: center;
    background-size: cover;
}

.contact-page-hero::before {
    background: linear-gradient(90deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .04) 48%, transparent 68%);
    mask-image: none;
}

.contact-page-hero .universal-page-hero-content {
    align-items: flex-start;
    text-align: left;
}

.contact-page-hero .eyebrow {
    color: #4e4f50;
}

.contact-page-hero h1 {
    width: min(590px, 55%);
    margin-right: auto;
    margin-left: 0;
    color: #292a2b;
}

.contact-page-hero p {
    width: min(590px, 52%);
    margin-right: auto;
    margin-left: 0;
    color: #68696a;
}

.page-hero.universal-page-hero.policy-image-hero {
    min-height: 380px;
    background-color: #f6f6f6;
    background-image: url("../img/isghero.png");
    background-position: center;
    background-size: cover;
}

.policy-image-hero::before {
    background: linear-gradient(90deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .04) 48%, transparent 68%);
    mask-image: none;
}

.policy-image-hero .universal-page-hero-content {
    align-items: flex-start;
    text-align: left;
}

.policy-image-hero .eyebrow {
    color: #4e4f50;
}

.policy-image-hero h1 {
    width: min(590px, 55%);
    margin-right: auto;
    margin-left: 0;
    color: #292a2b;
}

.policy-image-hero p {
    width: min(590px, 52%);
    margin-right: auto;
    margin-left: 0;
    color: #68696a;
}

.policy-content-section {
    padding: 78px 0 92px;
    background: #f5f7fa;
}

.policy-content-shell {
    display: grid;
    gap: 34px;
}

.policy-intro {
    max-width: 1040px;
    padding-left: 24px;
    border-left: 3px solid #4e4f50;
}

.policy-intro .page-kicker {
    margin-bottom: 14px;
}

.policy-intro p {
    margin: 0;
    color: #35445a;
    font-size: 18px;
    line-height: 1.75;
}

.policy-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.policy-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 30px;
    border: 1px solid #dce3ec;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(21, 45, 76, .05);
}

.policy-card-index {
    margin-bottom: 18px;
    color: #4e4f50;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.policy-card h2 {
    margin: 0 0 18px;
    color: #292a2b;
    font-size: clamp(25px, 2.2vw, 32px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.policy-card > p {
    margin: 0 0 24px;
    color: #596980;
    font-size: 14px;
    line-height: 1.72;
}

.policy-card > strong {
    margin-bottom: 13px;
    color: #292a2b;
    font-size: 13px;
}

.policy-card ul {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.policy-card li {
    position: relative;
    padding: 13px 0 13px 25px;
    border-top: 1px solid #e8edf3;
    color: #676869;
    font-size: 13px;
    line-height: 1.58;
}

.policy-card li::before {
    position: absolute;
    top: 18px;
    left: 2px;
    width: 7px;
    height: 7px;
    border: 2px solid #4e4f50;
    border-radius: 50%;
    content: "";
}

.policy-closing {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 24px;
    align-items: center;
    overflow: hidden;
    padding: 30px 34px;
    border-radius: 14px;
    background: linear-gradient(120deg, #292a2b 0%, #4e4f50 100%);
}

.policy-closing > span {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border: 1px solid rgba(184, 185, 186, .55);
    border-radius: 50%;
    color: #b8b9ba;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

.policy-closing p {
    margin: 0;
    color: rgba(255, 255, 255, .88);
    font-size: 15px;
    line-height: 1.7;
}

.page-hero.universal-page-hero.blog-universal-hero {
    min-height: 420px;
    background-color: #f6f6f6;
    background-image: url("../img/bloghero.png");
    background-position: center;
    background-size: cover;
}

.blog-universal-hero::before {
    background: linear-gradient(90deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .04) 48%, transparent 68%);
    mask-image: none;
}

.blog-universal-hero .universal-page-hero-content {
    align-items: flex-start;
    text-align: left;
}

.blog-universal-hero .eyebrow {
    color: #4e4f50;
}

.blog-universal-hero h1 {
    width: min(590px, 55%);
    margin-right: auto;
    margin-left: 0;
    color: #292a2b;
}

.blog-universal-hero p {
    width: min(590px, 52%);
    margin-right: auto;
    margin-left: 0;
    color: #68696a;
}

.blog-universal-hero .blog-search-form {
    width: min(520px, 52%);
}

.page-hero.universal-page-hero.service-detail-hero {
    min-height: 430px;
    padding: 74px 0;
    background-color: #050b14;
    background-image:
        linear-gradient(90deg, rgba(3, 8, 15, .95) 0%, rgba(3, 8, 15, .77) 40%, rgba(3, 8, 15, .18) 72%, rgba(3, 8, 15, .08) 100%),
        var(--service-detail-image);
    background-position: center;
    background-size: cover;
}

.service-detail-hero::before {
    opacity: .48;
    mask-image: linear-gradient(90deg, #000, rgba(0, 0, 0, .55) 45%, transparent 78%);
}

.service-detail-hero-content {
    align-items: flex-start;
    text-align: left;
    background: transparent;
}

.service-detail-hero .eyebrow {
    color: #b8b9ba;
}

.service-detail-hero h1 {
    width: min(700px, 72%);
    margin-right: 0;
    margin-left: 0;
}

.service-detail-hero p {
    width: min(610px, 62%);
    margin-right: 0;
    margin-left: 0;
    color: rgba(255, 255, 255, .78);
}

.page-hero.universal-page-hero.services-index-visual-hero {
    min-height: 380px;
    background-color: #f6f6f6;
    background-image: var(--services-index-hero-image);
    background-position: center;
    background-size: cover;
}

.services-index-visual-hero::before {
    background: linear-gradient(90deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .04) 48%, transparent 68%);
    opacity: 1;
    mask-image: none;
}

.services-index-hero-content {
    align-items: flex-start;
    background: transparent;
    text-align: left;
}

.services-index-visual-hero .eyebrow {
    color: #4e4f50;
}

.services-index-visual-hero h1 {
    width: min(590px, 55%);
    margin-right: auto;
    margin-left: 0;
    color: #292a2b;
    font-size: clamp(40px, 4.1vw, 56px);
    white-space: normal;
    text-shadow: none;
}

.services-index-visual-hero p {
    width: min(590px, 52%);
    margin-right: auto;
    margin-left: 0;
    color: #68696a;
    text-shadow: none;
}

.blog-search-form {
    width: min(520px, 100%);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    margin-top: 26px;
}

.blog-search-form input {
    min-width: 0;
    min-height: 46px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 7px;
    outline: 0;
    background: #fff;
    color: #111820;
    font-size: 13px;
}

.blog-search-form input:focus {
    border-color: #b8b9ba;
    box-shadow: 0 0 0 3px rgba(184, 185, 186, .2);
}

.blog-search-form button {
    min-width: 68px;
    min-height: 46px;
    padding: 0 18px;
    border: 0;
    border-radius: 7px;
    background: #4e4f50;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.services-page-hero {
    padding: 30px 0 42px;
}

.services-page-hero-inner {
    position: relative;
    min-height: 410px;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr);
    overflow: hidden;
    border: 1px solid #dfe4e8;
    border-radius: 18px;
    background: #f2f4f3;
    box-shadow: 0 24px 70px rgba(24, 35, 46, .08);
}

.services-page-hero-copy {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(34px, 4vw, 52px);
}

.services-page-hero-copy::before {
    position: absolute;
    top: 0;
    left: 9%;
    width: 1px;
    height: 100%;
    content: "";
    background: linear-gradient(transparent, rgba(78, 79, 80, .12), transparent);
}

.services-page-hero .eyebrow {
    margin-bottom: 16px;
}

.services-page-hero h1 {
    width: min(760px, 100%);
    margin-bottom: 18px;
    font-size: clamp(40px, 4.7vw, 64px);
    line-height: .96;
    letter-spacing: -.045em;
}

.services-page-hero h1 span {
    color: var(--blue);
}

.services-page-hero p {
    width: min(680px, 100%);
    font-size: 16px;
    line-height: 1.7;
}

.services-hero-link {
    width: fit-content;
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    gap: 16px;
    margin-top: 22px;
    padding: 0 8px 0 20px;
    border-radius: 8px;
    background: #101418;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.services-hero-link svg {
    width: 36px;
    height: 36px;
    padding: 9px;
    border-radius: 6px;
    background: var(--blue);
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    transition: transform .2s ease;
}

.services-hero-link:hover svg {
    transform: translateX(3px);
}

.services-page-visual {
    position: relative;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 32px;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(8, 12, 16, .12), rgba(8, 12, 16, .86)),
        url("../img/hero-industrial-black.png") center / cover;
    color: #fff;
}

.services-page-visual::after {
    position: absolute;
    inset: 0;
    content: "";
    background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to bottom, #000, transparent 80%);
}

.services-visual-label,
.services-visual-stats {
    position: relative;
    z-index: 1;
}

.services-visual-label {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.services-visual-label span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #b8b9ba;
    box-shadow: 0 0 0 5px rgba(78, 79, 80, .2);
}

.services-visual-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.services-visual-stats div {
    display: grid;
    gap: 5px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 10px;
    background: rgba(10, 14, 18, .56);
    backdrop-filter: blur(10px);
}

.services-visual-stats strong {
    font-size: 30px;
    line-height: 1;
}

.services-visual-stats span {
    color: rgba(255, 255, 255, .65);
    font-size: 11px;
}

#hizmet-katalogu {
    scroll-margin-top: 90px;
}

.about-page-hero {
    padding: 24px 0 48px;
}

.about-simple-hero {
    position: relative;
    min-height: 210px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 34px 48px;
    border-radius: 14px;
    background:
        linear-gradient(110deg, rgba(4, 13, 27, .94), rgba(78, 79, 80, .82), rgba(4, 12, 24, .92)),
        url("../img/hero-industrial-black.png") center 48% / cover;
    color: #fff;
    text-align: center;
}

.about-simple-hero-copy {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    gap: 12px;
}

.about-simple-hero-copy > span {
    display: inline-flex;
    align-items: center;
    color: rgba(255, 255, 255, .76);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .02em;
}

.about-simple-hero-copy > span::before,
.about-simple-hero-copy > span::after {
    display: none;
}

.about-simple-hero h1 {
    position: relative;
    z-index: 1;
    width: auto;
    margin: 0;
    color: #fff;
    font-size: clamp(42px, 5vw, 60px);
    line-height: 1;
    letter-spacing: -.04em;
    white-space: normal;
}

.about-page-hero-inner {
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.about-page-hero-copy {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 28px 0 34px;
    color: #111820;
}

.about-page-hero-copy::after {
    display: none;
}

.about-page-hero .eyebrow {
    margin-bottom: 18px;
    color: var(--blue);
}

.about-page-hero .eyebrow::before {
    background: currentColor;
}

.about-page-hero h1 {
    position: relative;
    z-index: 1;
    width: 100%;
    margin-bottom: 20px;
    font-size: clamp(24px, 2.65vw, 34px);
    line-height: 1;
    letter-spacing: -.035em;
    white-space: nowrap;
}

.about-page-hero h1 span {
    color: var(--blue);
}

.about-page-hero p {
    position: relative;
    z-index: 1;
    width: min(760px, 100%);
    color: #667085;
    font-size: 15px;
    line-height: 1.7;
}

.about-hero-values {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.about-hero-values span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid #dce2e8;
    border-radius: 999px;
    background: #fff;
    color: #28313b;
    font-size: 10px;
    font-weight: 700;
}

.about-hero-values span::before {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--blue);
    content: "";
}

.about-page-visual {
    position: relative;
    width: 100%;
    min-height: 310px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px 30px;
    overflow: hidden;
    border-radius: 14px;
    background:
        linear-gradient(90deg, rgba(5, 9, 14, .78), rgba(5, 9, 14, .1) 64%, rgba(5, 9, 14, .34)),
        url("../img/hero-industrial-black.png") center 48% / cover;
    color: #fff;
}

.about-page-visual::before {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(0deg, rgba(5, 9, 14, .76), transparent 48%);
}

.about-visual-top,
.about-visual-content {
    position: relative;
    z-index: 1;
}

.about-visual-top {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.about-visual-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #b8b9ba;
    box-shadow: 0 0 0 5px rgba(78, 79, 80, .22);
}

.about-visual-content {
    width: min(430px, 100%);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 5px 18px;
    margin-left: auto;
    padding: 16px 18px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 10px;
    background: rgba(7, 12, 18, .7);
    backdrop-filter: blur(10px);
}

.about-visual-content > span {
    grid-column: 1;
    margin-bottom: 0;
    color: rgba(255, 255, 255, .62);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.about-visual-content strong {
    grid-row: 2;
    grid-column: 1;
    color: #fff;
    font-size: clamp(40px, 4.5vw, 54px);
    line-height: .9;
    letter-spacing: -.05em;
}

.about-visual-content p {
    grid-row: 1 / 3;
    grid-column: 2;
    width: auto;
    margin: 0;
    color: rgba(255, 255, 255, .72);
    font-size: 11px;
    line-height: 1.5;
}

.about-story-section {
    padding: 72px 0 88px;
    background: #fff;
}

.about-story-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 38px;
    align-items: start;
}

.about-story-visual {
    position: relative;
    min-height: 360px;
    grid-column: 1;
    grid-row: 2;
    margin: 0;
    overflow: hidden;
    border-radius: 14px;
    background: #10151a;
}

.about-story-visual::after {
    display: none;
}

.about-story-visual img {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
}

.about-story-visual figcaption {
    position: absolute;
    right: 24px;
    bottom: 24px;
    left: 24px;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    color: #fff;
}

.about-story-visual figcaption strong {
    font-size: clamp(42px, 5vw, 66px);
    line-height: .85;
    letter-spacing: -.05em;
}

.about-story-visual figcaption span {
    width: min(190px, 52%);
    color: rgba(255, 255, 255, .68);
    font-size: 11px;
    line-height: 1.5;
    text-align: right;
}

.about-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.about-section-kicker::before {
    width: 28px;
    height: 2px;
    content: "";
    background: currentColor;
}

.about-story-copy {
    grid-column: 1;
    grid-row: 1;
    display: block;
    padding-top: 30px;
    border-top: 1px solid #dce3eb;
}

.about-story-copy .about-section-kicker {
    min-height: 0;
    margin-bottom: 24px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--blue);
    letter-spacing: .12em;
}

.about-story-copy .about-section-kicker::before {
    display: block;
}

.about-story-paragraphs {
    columns: 1;
    width: 100%;
    max-width: none;
}

.about-story-paragraphs p {
    break-inside: avoid;
    margin: 0 0 18px;
    color: #667085;
    font-size: 15px;
    line-height: 1.72;
}

.about-story-paragraphs p:first-child {
    color: #667085;
}

.about-story-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 34px;
    border-top: 1px solid #e0e5ea;
}

.about-story-stats div {
    display: grid;
    gap: 7px;
    padding: 22px 12px 0 0;
}

.about-story-stats div + div {
    padding-left: 18px;
    border-left: 1px solid #e0e5ea;
}

.about-story-stats strong {
    color: #111820;
    font-size: 28px;
    line-height: 1;
}

.about-story-stats span {
    color: #667085;
    font-size: 10px;
    font-weight: 700;
}

.about-values-section {
    padding: 82px 0 92px;
    border-top: 1px solid #e4e8ed;
    background: #f6f8f9;
}

.about-values-head {
    width: min(680px, 100%);
    margin: 0 auto 40px;
    text-align: center;
}

.about-values-head h2 {
    margin: 0;
    color: #111820;
    font-size: clamp(34px, 4vw, 50px);
    line-height: 1;
    letter-spacing: -.04em;
}

.about-values-head p {
    margin: 16px 0 0;
    color: #667085;
    font-size: 14px;
    line-height: 1.65;
}

.about-values-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.about-values-grid article {
    min-height: 250px;
    padding: 26px;
    border: 1px solid #dfe5eb;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(25, 38, 55, .045);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.about-values-grid article:hover {
    border-color: rgba(78, 79, 80, .34);
    box-shadow: 0 18px 40px rgba(25, 38, 55, .09);
    transform: translateY(-3px);
}

.about-values-grid article > span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    margin-bottom: 20px;
    border-radius: 10px;
    background: #f1f2f3;
    color: var(--blue);
    font-size: 11px;
    font-weight: 800;
}

.about-values-grid h3 {
    margin: 0 0 10px;
    color: #111820;
    font-size: 20px;
}

.about-values-grid p {
    margin: 0;
    color: #667085;
    font-size: 14px;
    line-height: 1.7;
}

.about-principles-section {
    position: relative;
    padding: 86px 0 92px;
    overflow: hidden;
    background: #0d1116;
    color: #fff;
}

.about-principles-section::before {
    position: absolute;
    inset: 0;
    content: "";
    background: radial-gradient(circle at 90% 0%, rgba(78, 79, 80, .15), transparent 34%);
}

.about-principles-section > .container {
    position: relative;
    z-index: 1;
}

.about-principles-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .45fr);
    gap: 64px;
    align-items: end;
    margin-bottom: 42px;
}

.about-principles-head h2 {
    width: min(700px, 100%);
    margin: 0;
    font-size: clamp(38px, 4.5vw, 58px);
    line-height: 1;
    letter-spacing: -.045em;
}

.about-principles-head > p {
    margin: 0;
    color: rgba(255, 255, 255, .6);
    font-size: 13px;
    line-height: 1.7;
}

.about-principles-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.about-principles-grid article {
    min-height: 190px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 10px;
    background: rgba(255, 255, 255, .025);
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.about-principles-grid article:hover {
    border-color: rgba(145, 146, 147, .42);
    background: rgba(78, 79, 80, .08);
    transform: translateY(-2px);
}

.about-principles-grid article > span {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(145, 146, 147, .35);
    border-radius: 7px;
    color: #b8b9ba;
    font-size: 10px;
    font-weight: 800;
}

.about-principles-grid h3 {
    max-width: 310px;
    margin: 0;
    font-size: 18px;
    line-height: 1.35;
}

.about-contact-section {
    padding: 76px 0;
    background: #fff;
}

.about-contact-inner {
    min-height: 240px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
    padding: 42px 48px;
    border: 1px solid #dfe5eb;
    border-radius: 14px;
    background: #f2f5f7;
}

.about-contact-inner > div > span {
    display: block;
    margin-bottom: 12px;
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.about-contact-inner h2 {
    width: min(720px, 100%);
    margin: 0;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1;
    letter-spacing: -.04em;
}

.about-contact-inner > a {
    min-width: 170px;
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 8px 0 20px;
    border-radius: 8px;
    background: #111820;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.about-contact-inner > a svg {
    width: 38px;
    height: 38px;
    padding: 10px;
    border-radius: 6px;
    background: var(--blue);
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
    transition: transform .2s ease;
}

.about-contact-inner > a:hover svg {
    transform: translateX(2px);
}

.service-hero {
    padding: 12px 0 30px;
}

#kapsam {
    scroll-margin-top: 130px;
}

.service-hero-inner {
    position: relative;
    height: 400px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
    overflow: hidden;
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(8, 9, 10, .96) 0%, rgba(8, 9, 10, .86) 44%, rgba(8, 9, 10, .4) 100%),
        var(--service-hero-image, url("../img/hero-industrial-black.png")) center right / cover;
    color: #fff;
}

.service-hero-inner::after {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(0deg, rgba(255, 255, 255, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(90deg, #000, transparent 72%);
}

.service-hero-copy {
    position: relative;
    z-index: 1;
}

.service-hero-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 42px 52px;
}

.service-breadcrumb,
.service-hero-kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.service-breadcrumb {
    min-height: 30px;
    margin-bottom: 22px;
    padding: 0 11px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 6px;
    color: rgba(255, 255, 255, .74);
    background: rgba(255, 255, 255, .06);
}

.service-hero-kicker {
    margin-bottom: 14px;
    color: rgba(255, 255, 255, .58);
}

.service-hero h1 {
    width: min(760px, 100%);
    margin: 0 0 18px;
    font-size: clamp(36px, 4.2vw, 58px);
    line-height: 1;
    letter-spacing: 0;
}

.service-hero p {
    width: min(680px, 100%);
    margin: 0;
    color: rgba(255, 255, 255, .76);
    font-size: clamp(15px, 1.25vw, 18px);
    line-height: 1.42;
}

.service-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.service-hero-actions .btn {
    min-height: 48px;
}

.service-hero-actions .btn-outline {
    border-color: rgba(255, 255, 255, .32);
    color: #fff;
}

.service-hero-actions .btn-outline:hover {
    border-color: #fff;
    background: #fff;
    color: #0c0f12;
}

.content-detail {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 24px;
    align-items: start;
}

.service-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.content-panel {
    padding: 38px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, .94);
}

.page-kicker {
    display: inline-flex;
    margin-bottom: 24px;
    color: #777d83;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.content-panel h2 {
    width: min(1040px, 100%);
    margin: 0 auto 18px;
    font-size: clamp(30px, 3.4vw, 48px);
    line-height: 1.06;
    text-align: center;
}

.content-panel p {
    width: min(980px, 100%);
    margin: 0 auto 18px;
    color: var(--muted);
    font-size: 17px;
    line-height: 1.72;
    text-align: center;
}

.service-gallery-shell {
    position: relative;
    margin: 8px 0 26px;
}

.service-gallery-stage {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    background: #0c0f12;
    box-shadow: 0 18px 50px rgba(17, 24, 32, .08);
}

.service-gallery {
    display: flex;
    overflow: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.service-gallery::-webkit-scrollbar {
    display: none;
}

.service-gallery figure {
    flex: 0 0 100%;
    scroll-snap-align: start;
    height: clamp(280px, 40vw, 430px);
    margin: 0;
    overflow: hidden;
    background: #0c0f12;
}

.service-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(.12) contrast(1.04);
}

.service-gallery-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: inline-grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: #0c0f12;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .18);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background .2s ease, color .2s ease, transform .2s ease;
}

.service-gallery-nav:hover {
    background: #0c0f12;
    color: #fff;
    transform: translateY(-50%) scale(1.04);
}

.service-gallery-prev {
    left: 16px;
}

.service-gallery-next {
    right: 16px;
}

.service-gallery-nav svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.service-gallery-count {
    position: absolute;
    right: 16px;
    bottom: 14px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(12, 15, 18, .82);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.service-gallery-shell.is-single .service-gallery-nav,
.service-gallery-shell.is-single .service-gallery-thumbs,
.service-gallery-shell.is-single .service-gallery-count {
    display: none;
}

.service-gallery-thumbs {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 12px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
}

.service-gallery-thumbs::-webkit-scrollbar {
    display: none;
}

.service-gallery-thumbs button {
    flex: 0 0 82px;
    height: 60px;
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 7px;
    background: #fff;
    cursor: pointer;
    opacity: .72;
    transition: border-color .2s ease, opacity .2s ease, transform .2s ease;
}

.service-gallery-thumbs button:hover,
.service-gallery-thumbs button.is-active {
    border-color: #0c0f12;
    opacity: 1;
    transform: translateY(-1px);
}

.service-gallery-thumbs img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.info-panel {
    position: sticky;
    top: 124px;
    padding: 28px;
    border-radius: var(--radius);
    background: #0c0f12;
    color: #fff;
}

.info-panel > span {
    display: inline-flex;
    margin-bottom: 18px;
    color: rgba(255, 255, 255, .5);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.info-panel h2 {
    margin: 0 0 18px;
    font-size: 28px;
    line-height: 1.05;
}

.info-panel p {
    margin: 0 0 18px;
    color: rgba(255, 255, 255, .66);
    line-height: 1.6;
}

.check-list {
    display: grid;
    gap: 10px;
    margin: 0 0 24px;
    padding: 0;
}

.check-list li {
    position: relative;
    list-style: none;
    padding-left: 22px;
    color: rgba(255, 255, 255, .76);
    line-height: 1.5;
}

.check-list li::before {
    position: absolute;
    left: 0;
    top: .65em;
    width: 10px;
    height: 1px;
    content: "";
    background: currentColor;
}

.panel-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-top: 10px;
    border: 1px solid #fff;
    border-radius: 6px;
    background: #fff;
    color: #0c0f12;
    font-weight: 800;
}

.panel-link-light {
    background: transparent;
    color: #fff;
}

.capability-grid,
.service-catalog {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 30px;
}

.capability-grid div,
.service-catalog-card {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}

.capability-grid div {
    display: grid;
    gap: 18px;
    padding: 22px;
}

.capability-grid span {
    width: 34px;
    height: 2px;
    background: #0c0f12;
}

.capability-grid strong {
    font-size: 17px;
    line-height: 1.25;
}

.service-catalog {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 0;
}

.service-catalog-card {
    min-height: 220px;
    overflow: hidden;
    padding: 0 24px 24px;
    transition: border-color .2s ease, transform .2s ease, background .2s ease;
}

.service-catalog-media {
    display: block;
    height: 120px;
    margin: 0 -24px 22px;
    overflow: hidden;
    background: #0c0f12;
}

.service-catalog-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: none;
    transition: transform .25s ease;
}

.service-catalog-card:hover {
    border-color: #0c0f12;
    background: #fdfdfc;
    transform: translateY(-3px);
}

.service-catalog-card:hover .service-catalog-media img {
    filter: none;
    transform: scale(1.04);
}

.service-catalog-card small {
    display: block;
    margin-bottom: 20px;
    color: #777d83;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.service-catalog-card h2 {
    margin: 0 0 12px;
    font-size: 24px;
    line-height: 1.1;
}

.service-catalog-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.split-layout {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}

.media-frame {
    overflow: hidden;
    border-radius: 44px 8px 44px 8px;
    box-shadow: var(--shadow);
}

.media-frame img {
    width: 100%;
    height: 520px;
    object-fit: cover;
}

.content-flow h2 {
    margin: 0 0 18px;
    font-size: clamp(32px, 4vw, 56px);
    line-height: 1;
}

.content-flow p {
    margin: 0 0 18px;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.75;
}

.process-list {
    display: grid;
    gap: 14px;
    margin-top: 28px;
}

.process-list li {
    display: flex;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    list-style: none;
}

.process-list strong {
    color: var(--blue);
}

.project-detail {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 36px;
    align-items: start;
}

.project-detail figure {
    margin: 0 0 30px;
    overflow: hidden;
    border-radius: 44px 8px 44px 8px;
}

.project-detail img {
    width: 100%;
    height: 520px;
    object-fit: cover;
}

.detail-aside {
    position: sticky;
    top: 112px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}

.detail-aside dl {
    display: grid;
    gap: 18px;
    margin: 0;
}

.detail-aside dt {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.detail-aside dd {
    margin: 4px 0 0;
    font-weight: 800;
}

.contact-layout {
    display: grid;
    grid-template-columns: minmax(340px, .78fr) minmax(0, 1.22fr);
    gap: 18px;
    align-items: stretch;
    background: transparent;
}

.contact-card {
    padding: 40px;
}

.contact-card h2 {
    margin: 0;
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.03;
    letter-spacing: -.035em;
}

.contact-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.contact-section {
    padding: 70px 0 96px;
    background:
        radial-gradient(circle at 12% 18%, rgba(78, 79, 80, .055), transparent 28%),
        #f7f8fa;
}

.contact-info-panel,
.contact-form-panel {
    min-height: 590px;
    border-radius: 14px;
}

.contact-info-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #1f2c3d;
    background:
        radial-gradient(circle at 100% 0, rgba(78, 79, 80, .32), transparent 38%),
        linear-gradient(145deg, #0a111b 0%, #111c2b 100%);
    color: #fff;
}

.contact-info-panel::before {
    position: absolute;
    inset: 0;
    content: "";
    background-image:
        linear-gradient(rgba(255, 255, 255, .03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .03) 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none;
}

.contact-info-panel > * {
    position: relative;
    z-index: 1;
}

.contact-section-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.contact-section-label::before {
    width: 26px;
    height: 2px;
    content: "";
    background: currentColor;
}

.contact-info-panel .contact-section-label {
    color: #b8b9ba;
}

.contact-info-panel h2 {
    max-width: 390px;
    color: #fff;
}

.contact-panel-intro > p {
    max-width: 390px;
    margin-top: 18px;
    color: rgba(255, 255, 255, .64);
    font-size: 14px;
}

.contact-info-list {
    display: grid;
    margin-top: 42px;
    border-top: 1px solid rgba(255, 255, 255, .13);
}

.contact-info-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .13);
}

a.contact-info-item {
    transition: color .2s ease, padding-left .2s ease;
}

a.contact-info-item:hover {
    padding-left: 6px;
    color: #b8b9ba;
}

.contact-info-index {
    padding-top: 2px;
    color: #b8b9ba;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
}

.contact-info-item > span:last-child {
    min-width: 0;
}

.contact-info-item small {
    display: block;
    margin-bottom: 5px;
    color: rgba(255, 255, 255, .48);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.contact-info-item strong {
    display: block;
    color: #fff;
    font-size: 14px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.contact-panel-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: auto;
    padding-top: 26px;
}

.contact-panel-note > span {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    margin-top: 7px;
    border-radius: 50%;
    background: var(--blue);
    box-shadow: 0 0 0 5px rgba(78, 79, 80, .16);
}

.contact-panel-note p {
    color: rgba(255, 255, 255, .54);
    font-size: 12px;
}

.contact-form-panel {
    border: 1px solid #dfe5ec;
    background: #fff;
    box-shadow: 0 22px 60px rgba(18, 35, 57, .07);
}

.contact-form-header {
    max-width: 650px;
    margin-bottom: 30px;
}

.contact-form-header > p {
    max-width: 590px;
    margin-top: 14px;
    font-size: 14px;
}

.contact-form-error {
    display: grid;
    gap: 5px;
    margin: -8px 0 24px;
    padding: 14px 16px;
    border: 1px solid #f2c9c5;
    border-radius: 10px;
    background: #fff4f3;
    color: #a12b22;
}

.contact-form-error p {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
}

.contact-success-toast {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 2500;
    min-width: 230px;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px 16px;
    border: 1px solid #d8e9e2;
    border-radius: 12px;
    background: rgba(255, 255, 255, .96);
    color: #153d31;
    box-shadow: 0 18px 48px rgba(14, 37, 30, .16);
    backdrop-filter: blur(10px);
    transition: opacity .28s ease, transform .28s ease;
    animation: contact-toast-in .32s ease both;
}

.contact-success-toast > span {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #16a874;
    color: #fff;
    font-size: 14px;
    font-weight: 900;
}

.contact-success-toast strong {
    font-size: 13px;
}

.contact-success-toast.is-leaving {
    opacity: 0;
    transform: translateY(-10px);
}

@keyframes contact-toast-in {
    from { opacity: 0; transform: translateY(-12px); }
    to { opacity: 1; transform: translateY(0); }
}

.contact-form {
    display: grid;
    gap: 18px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.contact-form label {
    gap: 8px;
    color: #202c3a;
    font-size: 11px;
    letter-spacing: .015em;
}

.contact-form input,
.contact-form textarea {
    border-color: #dfe5ec;
    border-radius: 8px;
    background: #f8fafc;
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.contact-form input {
    min-height: 52px;
}

.contact-form textarea {
    min-height: 164px;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
    color: #a0aaba;
}

.contact-form input:focus,
.contact-form textarea:focus {
    border-color: var(--blue);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(78, 79, 80, .09);
}

.contact-submit.btn {
    min-height: 58px;
    justify-content: space-between;
    padding: 0 8px 0 22px;
    border: 0;
    border-radius: 8px;
    background: #0d141d;
    color: #fff;
    font-size: 13px;
    cursor: pointer;
}

.contact-submit strong {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: var(--blue);
    font-size: 18px;
    transition: transform .2s ease, background .2s ease;
}

.contact-submit:hover {
    background: #182332;
}

.contact-submit:hover strong {
    transform: translate(2px, -2px);
    background: #4e4f50;
}

.career-intro-section {
    padding: 72px 0 86px;
    background: #f3f6f8;
}

.career-intro-shell {
    padding: 46px 48px 48px;
    border: 1px solid #dfe5ec;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 22px 65px rgba(18, 35, 57, .06);
}

.career-intro-header {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 36px;
    align-items: start;
    padding-bottom: 36px;
    border-bottom: 1px solid #e1e6ec;
}

.career-intro-header .page-kicker {
    margin-top: 9px;
}

.career-intro-header h2 {
    margin: 0;
    font-size: clamp(40px, 4.4vw, 58px);
    line-height: 1.02;
    letter-spacing: -.045em;
}

.career-intro-main {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, .65fr);
    gap: 54px;
    align-items: stretch;
    padding: 38px 0 42px;
}

.career-intro-copy {
    display: grid;
    align-content: start;
    gap: 20px;
    padding: 8px 0;
}

.career-intro-copy > p,
.career-application-copy > p {
    max-width: 720px;
    margin: 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.75;
}

.career-areas-block {
    padding-top: 34px;
    border-top: 1px solid #e1e6ec;
}

.career-areas-heading {
    display: grid;
    grid-template-columns: minmax(240px, .7fr) minmax(0, 1fr);
    gap: 42px;
    align-items: end;
    margin-bottom: 24px;
}

.career-areas-heading h3 {
    margin: 0;
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -.03em;
}

.career-areas-heading p {
    max-width: 650px;
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.65;
}

.career-area-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.career-area-list span {
    position: relative;
    min-height: 56px;
    display: flex;
    align-items: center;
    padding: 11px 16px 11px 38px;
    border: 1px solid #dfe5ec;
    border-radius: 8px;
    background: #f7f9fb;
    font-size: 11.5px;
    font-weight: 800;
    line-height: 1.35;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.career-area-list span:hover {
    border-color: rgba(78, 79, 80, .34);
    background: #f1f6ff;
    transform: translateY(-2px);
}

.career-area-list span::before {
    position: absolute;
    left: 15px;
    width: 7px;
    height: 7px;
    content: "";
    border-radius: 50%;
    background: var(--blue);
    box-shadow: 0 0 0 5px rgba(78, 79, 80, .09);
}

.career-intro-note {
    position: relative;
    min-height: 290px;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-start;
    overflow: hidden;
    padding: 30px;
    border-radius: 14px;
    background:
        radial-gradient(circle at 100% 0, rgba(78, 79, 80, .34), transparent 45%),
        linear-gradient(145deg, #09111d, #14243a);
    color: #fff;
}

.career-intro-note::before {
    position: absolute;
    inset: 0;
    content: "";
    background-image:
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: 44px 44px;
}

.career-intro-note > * {
    position: relative;
    z-index: 1;
}

.career-intro-note > span {
    margin-bottom: 28px;
    color: #b8b9ba;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.career-intro-note > strong {
    max-width: 350px;
    font-size: 24px;
    line-height: 1.16;
    letter-spacing: -.025em;
}

.career-intro-note p {
    margin: 14px 0 22px;
    color: rgba(255, 255, 255, .62);
    font-size: 13px;
    line-height: 1.6;
}

.career-intro-note .career-email-link {
    width: auto;
    min-height: 0;
    display: inline-flex;
    margin-top: 16px;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: #b8b9ba;
    font-size: 14px;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.career-intro-note a {
    width: 100%;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 7px 0 16px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 7px;
    font-size: 12px;
    font-weight: 800;
}

.career-intro-note > a:last-child {
    margin-top: auto;
}

.career-intro-note a b {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 5px;
    background: var(--blue);
    font-size: 16px;
    transition: transform .2s ease;
}

.career-intro-note a:hover b {
    transform: translateY(2px);
}

.career-application-section {
    padding: 86px 0 100px;
    background:
        radial-gradient(circle at 8% 12%, rgba(78, 79, 80, .065), transparent 25%),
        #eef2f6;
}

.career-application-layout {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
    align-items: start;
    gap: 48px;
    background: transparent;
}

.career-application-copy {
    position: sticky;
    top: 150px;
    padding-top: 18px;
}

.career-application-copy h2 {
    font-size: clamp(34px, 3.8vw, 50px);
}

.career-process {
    display: grid;
    margin-top: 34px;
    border-top: 1px solid #d5dce5;
}

.career-process div {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    padding: 16px 0;
    border-bottom: 1px solid #d5dce5;
}

.career-process span {
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
}

.career-process strong {
    font-size: 13px;
}

.career-form-panel {
    padding: 38px;
    border: 1px solid #dce3eb;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(18, 35, 57, .08);
}

.career-form {
    display: grid;
    gap: 18px;
}

.career-form label {
    gap: 8px;
    color: #202c3a;
    font-size: 11px;
    letter-spacing: .015em;
}

.career-form input,
.career-form select,
.career-form textarea {
    border-color: #dfe5ec;
    border-radius: 8px;
    background: #f8fafc;
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.career-form input,
.career-form select {
    min-height: 52px;
}

.career-form textarea {
    min-height: 140px;
}

.career-form input::placeholder,
.career-form textarea::placeholder {
    color: #a0aaba;
}

.career-form input:focus,
.career-form select:focus,
.career-form textarea:focus {
    border-color: var(--blue);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(78, 79, 80, .09);
}

.career-file-field {
    padding: 16px;
    border: 1px dashed #c8d2df;
    border-radius: 8px;
    background: #f8fafc;
}

.career-file-field input {
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.career-file-field small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 600;
}

.career-consent {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 10px !important;
    align-items: start;
    color: var(--muted) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.55;
}

.career-consent input {
    width: 17px;
    min-height: 17px;
    margin: 1px 0 0;
    accent-color: var(--blue);
    box-shadow: none !important;
}

.career-consent a {
    color: var(--blue);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.career-submit.btn {
    min-height: 58px;
    justify-content: space-between;
    padding: 0 8px 0 22px;
    border: 0;
    border-radius: 8px;
    background: #0d141d;
    color: #fff;
    font-size: 13px;
    cursor: pointer;
}

.career-submit strong {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: var(--blue);
    font-size: 18px;
    transition: transform .2s ease;
}

.career-submit:hover strong {
    transform: translate(2px, -2px);
}

.career-message {
    display: grid;
    gap: 6px;
    margin-bottom: 22px;
    padding: 16px 18px;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.5;
}

.career-message.success {
    border: 1px solid rgba(25, 184, 131, .24);
    background: rgba(25, 184, 131, .09);
    color: #087655;
}

.career-message.error {
    border: 1px solid rgba(217, 45, 32, .2);
    background: rgba(217, 45, 32, .07);
    color: #8b211a;
}

.career-message ul {
    margin: 4px 0 0;
    padding-left: 18px;
}

.career-honeypot {
    position: fixed !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.career-overview-section {
    padding: 76px 0 56px;
    background: #fff;
}

.career-overview {
    background: transparent;
}

.career-overview-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
    align-items: start;
    margin-top: 18px;
    padding-bottom: 52px;
    border-bottom: 1px solid #e0e5eb;
}

.career-overview h2 {
    margin: 0;
    font-size: clamp(38px, 4vw, 54px);
    line-height: 1.03;
    letter-spacing: -.045em;
    white-space: nowrap;
}

.career-overview-grid > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.career-overview p {
    position: relative;
    min-height: 184px;
    padding: 72px 28px 28px;
    overflow: hidden;
    border: 1px solid #dce4ee;
    border-radius: 16px;
    margin: 0;
    background: linear-gradient(145deg, #fff 0%, #f7f7f7 100%);
    box-shadow: 0 12px 34px rgba(16, 36, 64, .055);
    color: #596a80;
    font-size: 14.5px;
    line-height: 1.75;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.career-overview p::before {
    position: absolute;
    top: 24px;
    left: 28px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #f1f2f3;
    color: var(--blue);
    content: "01";
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .05em;
}

.career-overview p::after {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--blue), #b8b9ba);
    content: "";
}

.career-overview p:nth-child(2)::before {
    background: #e8f7f2;
    color: #0b8e68;
    content: "02";
}

.career-overview p:nth-child(2)::after {
    background: linear-gradient(90deg, #0b9c72, #65d3af);
}

.career-overview p:hover {
    border-color: rgba(78, 79, 80, .3);
    box-shadow: 0 18px 42px rgba(16, 36, 64, .09);
    transform: translateY(-3px);
}

.career-benefits-section {
    padding: 66px 0 76px;
    background: #f7f8fa;
}

.career-benefits-section > .container,
.career-opportunities-section > .container {
    background: transparent;
}

.career-section-heading {
    margin-bottom: 42px;
    text-align: center;
}

.career-section-heading h2 {
    margin: 0;
    font-size: 34px;
    line-height: 1.1;
    letter-spacing: -.03em;
}

.career-section-heading p {
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.career-benefit-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.career-benefit-grid article {
    min-height: 210px;
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    padding: 28px;
    border: 1px solid #dce3eb;
    border-radius: 12px;
    background: #fff;
    text-align: center;
    box-shadow: 0 12px 30px rgba(18, 35, 57, .035);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.career-benefit-grid article:hover {
    border-color: rgba(78, 79, 80, .28);
    box-shadow: 0 18px 38px rgba(18, 35, 57, .08);
    transform: translateY(-3px);
}

.career-benefit-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 12px;
    background: #f1f2f3;
    color: var(--blue);
    font-size: 24px;
    font-weight: 700;
}

.career-benefit-grid h3 {
    margin: 0;
    font-size: 16px;
}

.career-benefit-grid p {
    max-width: 330px;
    margin: 9px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
}

.career-opportunities-section {
    padding: 78px 0 88px;
    background: #fff;
}

.career-opportunities-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}

.career-opportunities-head h2 {
    margin: 0;
    font-size: 30px;
    letter-spacing: -.025em;
}

.career-opportunities-head > span {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    padding: 0 12px;
    border-radius: 6px;
    background: #e4f6ef;
    color: #087755;
    font-size: 11px;
    font-weight: 800;
}

.career-job-card {
    width: min(720px, 100%);
    padding: 24px;
    border: 1px solid #dce3eb;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(18, 35, 57, .05);
}

.career-job-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.career-job-label {
    color: var(--blue);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.career-job-main h3 {
    margin: 7px 0 8px;
    font-size: 21px;
}

.career-job-main p {
    max-width: 520px;
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
}

.career-job-type {
    flex: 0 0 auto;
    padding: 7px 11px;
    border-radius: 6px;
    background: #f1f2f3;
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
}

.career-job-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 18px;
    color: #7b8491;
    font-size: 11px;
}

.career-job-meta span::before {
    margin-right: 7px;
    color: var(--blue);
    content: "•";
}

.career-job-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.career-job-actions a {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    padding: 0 15px;
    border: 1px solid var(--blue);
    border-radius: 6px;
    background: var(--blue);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

.career-job-actions a.secondary {
    border-color: #cfd7e2;
    background: #fff;
    color: #344054;
}

.career-general-callout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 36px;
    margin-top: 34px;
    padding: 24px 28px;
    border: 1px dashed #cfd8e4;
    border-radius: 12px;
    background: #f8fafc;
}

.career-general-callout h3 {
    margin: 0;
    font-size: 18px;
}

.career-general-callout p {
    max-width: 760px;
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
}

.career-general-callout > a {
    flex: 0 0 auto;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    padding: 0 16px;
    border: 1px solid var(--blue);
    border-radius: 6px;
    color: var(--blue);
    font-size: 11px;
    font-weight: 800;
}

.career-specialties {
    margin-top: 56px;
    padding-top: 42px;
    border-top: 1px solid #e1e6ec;
    scroll-margin-top: 150px;
}

.career-specialties-head {
    display: grid;
    grid-template-columns: minmax(220px, .6fr) minmax(0, 1fr);
    gap: 40px;
    align-items: end;
    margin-bottom: 22px;
}

.career-specialties-head h3 {
    margin: 0;
    font-size: 25px;
    letter-spacing: -.025em;
}

.career-specialties-head p {
    max-width: 650px;
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.6;
}

.career-application-simple {
    background: transparent;
}

.career-application-simple .career-application-copy {
    position: static;
    max-width: 720px;
    margin: 0 auto 30px;
    padding: 0;
    text-align: center;
}

.career-application-simple .career-application-copy h2 {
    max-width: none;
    margin: 12px 0 10px;
    font-size: clamp(34px, 4vw, 48px);
}

.career-application-simple .career-application-copy p {
    max-width: 620px;
    margin: 0 auto;
}

.career-application-simple .career-form-panel {
    width: min(760px, 100%);
    min-height: 0;
    margin: 0 auto;
    padding: 34px;
    border-radius: 10px;
}

.career-application-simple .career-form label {
    font-size: 12px;
}

.career-application-simple .career-file-field {
    padding: 0;
    border: 0;
    background: transparent;
}

.career-application-simple .career-file-field input {
    min-height: 50px;
    padding: 7px;
    border: 1px solid #dfe5ec;
    background: #f8fafc;
}

.career-application-simple .career-file-field input::file-selector-button {
    min-height: 34px;
    margin-right: 12px;
    padding: 0 13px;
    border: 0;
    border-radius: 5px;
    background: #e8eef6;
    color: #273647;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

.career-application-simple .career-file-field small {
    margin-top: 2px;
}

.career-application-simple .career-submit.btn {
    background: var(--blue);
}

.career-application-simple .career-submit strong {
    background: rgba(255, 255, 255, .16);
}

label {
    display: grid;
    gap: 8px;
    color: var(--steel);
    font-size: 13px;
    font-weight: 800;
}

input,
textarea,
select {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    color: var(--ink);
    background: #fff;
    font: inherit;
}

textarea {
    min-height: 150px;
    resize: vertical;
}

.site-footer {
    position: relative;
    padding: 0;
    color: #d7d8d9;
    background: #0b5178;
    border-top: 3px solid #1678a8;
}

.site-footer-main {
    padding: 64px 0 54px;
    background:
        radial-gradient(circle at 8% 0, rgba(41, 139, 184, .3), transparent 34%),
        linear-gradient(125deg, #0b5178 0%, #094563 100%);
}

.footer-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1.35fr) repeat(3, minmax(150px, 1fr));
    gap: clamp(34px, 6vw, 78px);
    align-items: start;
}

.footer-brand {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.footer-logo {
    display: block;
    width: 185px;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    filter: grayscale(1) brightness(0) invert(1);
}

.footer-about > p {
    max-width: 330px;
    margin: 24px 0 22px;
    color: #d7d8d9;
    font-size: 14px;
    line-height: 1.75;
}

.footer-social {
    display: flex;
    align-items: center;
    gap: 10px;
}

.site-footer .footer-social .social-icon {
    display: inline-grid;
    width: 26px;
    height: 26px;
    margin: 0;
    place-items: center;
    color: #eef6ff;
}

.site-footer .footer-social .social-icon:hover {
    color: #b8b9ba;
    transform: translateY(-2px);
}

.site-footer .footer-social svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
}

.site-footer h2 {
    margin: 5px 0 19px;
    color: #fff;
    font-size: 15px;
    font-weight: 750;
    letter-spacing: -.01em;
}

.footer-links {
    display: grid;
    gap: 11px;
}

.site-footer .footer-links a {
    display: inline-flex;
    width: fit-content;
    margin: 0;
    color: #d7d8d9;
    font-size: 14px;
    line-height: 1.45;
    transition: color .2s ease, transform .2s ease;
}

.site-footer .footer-links a:hover {
    color: #fff;
    transform: translateX(3px);
}

.footer-contact {
    display: grid;
    gap: 13px;
}

.footer-contact h2 {
    margin-bottom: 6px;
}

.site-footer .footer-contact > a,
.site-footer .footer-contact > div {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin: 0;
    color: #d7d8d9;
    font-size: 14px;
    line-height: 1.55;
}

.site-footer .footer-contact > a:hover {
    color: #fff;
}

.footer-contact-icon {
    display: grid;
    min-height: 22px;
    place-items: center;
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
}

.footer-bottom {
    background: #083f5e;
    border-top: 1px solid rgba(255, 255, 255, .05);
}

.footer-bottom-inner {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: #ffffff;
    font-size: 12px;
}

.footer-bottom-inner strong {
    color: #fff;
    font-weight: 700;
}

.whatsapp-float {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 80;
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #25d366;
    color: #fff;
    box-shadow: 0 12px 30px rgba(15, 45, 35, .24);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.whatsapp-float:hover {
    color: #fff;
    background: #1fbd59;
    box-shadow: 0 16px 36px rgba(15, 45, 35, .3);
    transform: translateY(-3px);
}

.whatsapp-float::after {
    position: absolute;
    right: calc(100% + 10px);
    padding: 7px 10px;
    border-radius: 6px;
    background: #292a2b;
    color: #fff;
    content: attr(data-label);
    font-size: 11px;
    font-weight: 700;
    opacity: 0;
    pointer-events: none;
    transform: translateX(5px);
    transition: opacity .2s ease, transform .2s ease;
    white-space: nowrap;
}

.whatsapp-float:hover::after,
.whatsapp-float:focus-visible::after {
    opacity: 1;
    transform: translateX(0);
}

.whatsapp-float > img {
    display: block;
    width: 31px;
    height: 31px;
    filter: brightness(0) invert(1);
}

.floating-up {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 30;
    width: 38px;
    height: 38px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
}

.floating-up::before {
    position: absolute;
    inset: 11px 0 0;
    width: 9px;
    height: 18px;
    margin: auto;
    content: "";
    border-radius: 999px;
    background: var(--green);
}

.empty-state {
    padding: 34px;
    border: 1px dashed #b8c2cf;
    border-radius: var(--radius);
    color: var(--muted);
    text-align: center;
}

.reveal-item {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
    transition:
        opacity .68s cubic-bezier(.22, 1, .36, 1),
        transform .68s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform;
}

.reveal-item.reveal-card {
    transform: translate3d(0, 18px, 0) scale(.988);
}

.reveal-item.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
    .reveal-item,
    .reveal-item.reveal-card {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

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

    .about-story-grid {
        gap: 42px;
    }

    .about-principles-head {
        gap: 40px;
    }

    .projects-catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-section-head,
    .home-process-head {
        grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr);
        gap: 40px;
    }

    .home-service-card {
        grid-template-columns: 132px minmax(0, 1fr);
    }

    .home-service-body {
        padding-left: 18px;
    }

    .home-process-card {
        padding-right: 18px;
    }

    .home-process-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .about-page-hero-inner {
        grid-template-columns: minmax(0, 1.1fr) minmax(300px, .7fr);
    }

    .about-page-hero-copy {
        padding: 34px;
    }

    .services-page-hero-inner {
        grid-template-columns: minmax(0, 1.1fr) minmax(300px, .7fr);
    }

    .services-page-hero-copy {
        padding: 34px;
    }

    .main-nav {
        gap: 0;
    }

    .main-nav > a,
    .nav-dropdown-trigger {
        padding-inline: 7px;
        font-size: 10px;
    }

    .brand-copy small {
        display: none;
    }

    .service-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .scroll-orb {
        width: 110px;
        height: 110px;
        border-width: 18px;
    }
}

@media (max-width: 820px) {
    .page-hero.universal-page-hero {
        min-height: 280px;
        padding: 54px 0;
    }

    .universal-page-hero h1 {
        font-size: clamp(40px, 11vw, 58px);
    }

    .universal-page-hero p {
        font-size: 14px;
    }

    .blog-page-hero {
        padding: 18px 0 34px;
    }

    .blog-list-section {
        padding: 54px 0 72px;
    }

    .blog-detail {
        padding: 0 0 72px;
    }

    .blog-list-head {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-bottom: 30px;
    }

    .blog-card-grid,
    .blog-detail-layout {
        grid-template-columns: 1fr;
    }

    .blog-list-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .blog-list-layout .blog-card-grid {
        grid-template-columns: 1fr;
    }

    .blog-category-panel {
        position: static;
        order: -1;
    }

    .blog-detail-head {
        width: min(100% - 24px, 900px);
    }

    .blog-detail-head h1 {
        font-size: clamp(38px, 11vw, 58px);
    }

    .blog-detail-media {
        margin-top: 34px;
    }

    .blog-detail-layout {
        gap: 28px;
        padding-top: 38px;
    }

    .projects-page-hero {
        padding: 18px 0 48px;
    }

    .projects-page-hero-inner {
        min-height: 480px;
        grid-template-columns: 1fr;
        align-content: end;
        gap: 28px;
        padding: 30px 24px;
    }

    .projects-page-hero h1 {
        font-size: clamp(42px, 12vw, 60px);
    }

    .projects-collection {
        padding: 62px 0 74px;
    }

    .projects-catalog-grid {
        grid-template-columns: 1fr;
    }

    .projects-impact-grid {
        grid-template-columns: 1fr;
    }

    .fullscreen-hero {
        min-height: 640px;
        align-items: flex-end;
    }

    .fullscreen-hero-image {
        object-position: 62% center;
    }

    .fullscreen-hero-content {
        padding-top: 150px;
        padding-bottom: clamp(138px, 18svh, 168px);
    }

    .fullscreen-hero h1 {
        font-size: clamp(36px, 11vw, 48px);
    }

    .fullscreen-hero-content > p {
        margin-top: 20px;
        font-size: 16px;
        white-space: normal;
    }

    .fullscreen-hero-actions {
        margin-top: 24px;
    }

    .fullscreen-hero-actions .btn {
        min-width: 0;
        flex: 1;
        padding-inline: 18px;
    }

    .fullscreen-hero-scroll {
        right: 18px;
        bottom: 22px;
    }

    .fullscreen-hero-scroll span {
        display: none;
    }

    .home-stats-section {
        padding-bottom: 52px;
    }

    .home-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px;
        margin-top: -42px;
    }

    .home-stat-item {
        min-width: 0;
        max-width: 100%;
        min-height: 142px;
        padding: 18px 12px 20px;
    }

    .home-stat-icon {
        width: 38px;
        height: 38px;
    }

    .home-stat-item strong {
        font-size: clamp(31px, 7vw, 42px);
    }

    .home-stat-item .home-stat-label {
        width: 100%;
        min-width: 0;
        justify-content: center;
        font-size: 10px;
    }

    .home-stat-item .home-stat-label > span {
        min-width: 0;
        max-width: 100%;
    }

    .home-services-section {
        padding: 72px 0 78px;
    }

    .home-projects-section {
        padding-bottom: 78px;
    }

    .home-projects-section {
        padding-top: 78px;
    }

    .home-section-head,
    .home-process-head {
        grid-template-columns: 1fr;
        gap: 24px;
        margin-bottom: 32px;
    }

    .home-projects-section .home-section-head {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .home-projects-section .home-section-title h2 {
        white-space: normal;
    }

    .home-section-title h2,
    .home-process-head h2,
    .home-cta-copy h2 {
        font-size: clamp(38px, 11vw, 54px);
    }

    .home-services-grid {
        grid-template-columns: 1fr;
    }

    .home-service-card {
        min-height: 160px;
        grid-template-columns: 120px minmax(0, 1fr);
    }

    .home-service-body {
        padding: 20px 40px 20px 16px;
    }

    .home-service-body > strong {
        font-size: 17px;
    }

    .home-process-section {
        padding: 60px 0 64px;
    }

    .home-process-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .home-process-card {
        min-height: 170px;
    }

    .home-process-card > span {
        margin-bottom: 28px;
    }

    .home-project-grid {
        grid-template-columns: 1fr;
    }

    .home-project-card,
    .home-project-card:first-child {
        min-height: 0;
        grid-row: auto;
    }

    .home-project-card:not(:first-child) {
        min-height: 0;
    }

    .home-project-card:first-child .home-project-content,
    .home-project-content {
        padding: 24px;
    }

    .home-cta-section {
        padding: 48px 0;
    }

    .home-cta-inner {
        min-height: 460px;
        align-items: flex-end;
        flex-direction: column;
        justify-content: flex-end;
        padding: 30px 24px;
        background:
            linear-gradient(0deg, rgba(5, 9, 14, .96), rgba(5, 9, 14, .42)),
            url("../img/hero-industrial-black.png") center / cover;
    }

    .home-cta-link {
        width: 100%;
        height: 54px;
        flex: 0 0 54px;
        display: flex;
        border-radius: 8px;
    }

    .technical-float {
        opacity: .1;
    }

    .technical-float-ruler,
    .technical-float-circuit,
    .technical-float-pipe {
        display: none;
    }

    .container {
        width: min(100% - 24px, 1120px);
    }

    .site-header {
        padding: 8px 0 10px;
    }

    .site-header.is-scrolled {
        padding: 0;
    }

    main {
        padding-top: 114px;
    }

    .topbar {
        align-items: center;
        flex-direction: row;
        min-height: 32px;
        padding: 0 10px 0 12px;
        gap: 10px;
        font-size: 10px;
    }

    .topbar-contact,
    .topbar-social {
        flex-wrap: nowrap;
        gap: 7px;
    }

    .topbar-note {
        display: none;
    }

    .social-icon {
        width: 22px;
        height: 22px;
    }

    .nav-wrap {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 42px 42px;
        grid-template-areas:
            "brand search toggle"
            "menu menu menu";
        align-items: center;
        column-gap: 8px;
        row-gap: 0;
        min-height: 64px;
        padding: 7px 8px 7px 9px;
    }

    .header-search-toggle {
        grid-area: search;
        width: 42px;
        height: 42px;
        flex-basis: 42px;
    }

    .header-search-panel {
        top: calc(100% + 7px);
        padding: 10px;
    }

    .header-search-results {
        grid-template-columns: 1fr;
        max-height: 280px;
    }

    .nav-pill {
        display: contents;
    }

    .site-header.is-scrolled .nav-pill {
        display: contents;
    }

    .brand {
        grid-area: brand;
    }

    .menu-toggle {
        display: block;
        grid-area: toggle;
    }

    .main-nav {
        grid-area: menu;
        display: none;
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        margin: 0;
        margin-top: 7px;
        padding: 10px 0 2px;
        border-top: 1px solid #e5e7e8;
    }

    .main-nav.is-open {
        display: flex;
    }

    .main-nav > a,
    .nav-dropdown-trigger {
        min-height: 42px;
        padding: 0 10px;
        font-size: 12px;
    }

    .main-nav > a::after,
    .nav-dropdown-trigger::after {
        display: none;
    }

    .nav-dropdown {
        width: 100%;
    }

    .nav-dropdown-trigger {
        justify-content: space-between;
        width: 100%;
    }

    .nav-dropdown-trigger svg {
        transform: rotate(0);
    }

    .main-nav .nav-dropdown::after {
        display: none;
    }

    .mega-menu {
        position: static;
        width: 100%;
        display: none;
        margin: 2px 0 8px;
        padding: 10px;
        border-color: #e5e7e8;
        background: #f6f7f5;
        box-shadow: none;
        opacity: 1;
        pointer-events: auto;
        transform: none;
        visibility: visible;
    }

    .nav-dropdown:not(.is-mobile-open) > .mega-menu {
        display: none;
    }

    .nav-dropdown.is-mobile-open > .mega-menu {
        display: block;
    }

    .nav-dropdown:not(.is-mobile-open) > .nav-dropdown-trigger svg {
        transform: rotate(0);
    }

    .nav-dropdown.is-mobile-open > .nav-dropdown-trigger svg {
        transform: rotate(180deg);
    }

    .nav-dropdown-corporate {
        position: static;
    }

    .corporate-menu {
        width: 100%;
        gap: 4px;
    }

    .nav-dropdown-corporate.is-mobile-open > .corporate-menu {
        display: grid;
    }

    .corporate-menu > a {
        min-height: 46px;
        border: 1px solid #e1e5e9;
        background: #fff;
    }

    .mega-intro {
        display: none;
    }

    .mega-links {
        max-height: 286px;
        overflow: auto;
        grid-template-columns: 1fr;
    }

    .mega-links a {
        min-height: 46px;
        border-color: #e1e5e9;
        background: #fff;
        color: #151515;
    }

    .mega-links a::after {
        border-color: #dfe3e8;
        color: #667085;
    }

    .mega-links a:hover,
    .mega-links a.is-active {
        border-color: rgba(78, 79, 80, .4);
        background: #f1f2f3;
        box-shadow: inset 3px 0 0 #4e4f50;
    }

    .mega-links a {
        min-height: 52px;
        border-color: #e0e3e5;
        background: #fff;
        color: #0c0f12;
    }

    .mega-links a:hover,
    .mega-links a.is-active {
        background: #eceeed;
        transform: none;
    }

    .contact-pill {
        display: none;
    }

    .hero {
        padding-top: 36px;
    }

    .hero-title {
        margin-bottom: 18px;
        font-size: clamp(38px, 12vw, 54px);
    }

    .hero-stage {
        min-height: auto;
        display: grid;
        gap: 0;
    }

    .hero-image,
    .hero-panel {
        position: relative;
        inset: auto;
        width: 100%;
    }

    .hero-image {
        height: 270px;
        border-radius: 36px 36px 8px 8px;
    }

    .hero-panel {
        top: auto;
        min-height: auto;
        padding: 34px 22px;
        border-radius: 8px 8px 36px 36px;
    }

    .hero-stage::before {
        display: none;
    }

    .scroll-orb {
        display: none;
    }

    .section,
    .page-hero {
        padding: 54px 0;
    }

    .services-page-hero {
        padding: 18px 0 34px;
    }

    .about-page-hero {
        padding: 18px 0 34px;
    }

    .about-simple-hero {
        min-height: 190px;
        padding: 28px 20px;
        background-position: 62% center;
    }

    .about-page-hero-inner {
        min-height: auto;
        grid-template-columns: 1fr;
        border-radius: 14px;
    }

    .about-page-hero-copy {
        padding: 20px 0 28px;
    }

    .about-page-hero h1 {
        font-size: clamp(38px, 11vw, 56px);
        white-space: normal;
    }

    .about-page-visual {
        min-height: 300px;
        padding: 22px;
    }

    .about-story-section {
        padding: 62px 0 72px;
    }

    .about-story-grid {
        grid-template-columns: 1fr;
    }

    .about-story-copy {
        grid-column: 1;
        grid-row: 1;
        padding-top: 24px;
    }

    .about-story-paragraphs {
        columns: 1;
        column-rule: 0;
        margin-top: 0;
    }

    .about-story-visual {
        grid-column: 1;
        grid-row: 2;
    }

    .about-story-visual,
    .about-story-visual img {
        min-height: 420px;
    }

    .about-values-section {
        padding: 62px 0 70px;
    }

    .about-values-head {
        margin-bottom: 30px;
    }

    .about-values-grid {
        grid-template-columns: 1fr;
    }

    .about-values-grid article {
        min-height: auto;
    }

    .about-principles-section {
        padding: 64px 0 70px;
    }

    .about-principles-head {
        grid-template-columns: 1fr;
        gap: 22px;
        margin-bottom: 32px;
    }

    .about-principles-grid {
        grid-template-columns: 1fr;
    }

    .about-principles-grid article {
        min-height: 150px;
    }

    .about-contact-section {
        padding: 52px 0;
    }

    .about-contact-inner {
        min-height: auto;
        align-items: flex-start;
        flex-direction: column;
        padding: 30px 24px;
    }

    .about-contact-inner > a {
        width: 100%;
    }

    .services-page-hero-inner {
        min-height: auto;
        grid-template-columns: 1fr;
        border-radius: 14px;
    }

    .services-page-hero-copy {
        padding: 38px 24px 34px;
    }

    .services-page-hero h1 {
        font-size: clamp(38px, 11vw, 56px);
    }

    .services-page-visual {
        min-height: 240px;
        padding: 24px;
    }

    .section-head,
    .split-layout,
    .service-hero-inner,
    .content-detail,
    .service-detail-layout,
    .project-detail,
    .contact-layout,
    .footer-grid,
    .cta-inner {
        grid-template-columns: 1fr;
    }

    .cta-inner {
        display: grid;
    }

    .stats-strip,
    .service-grid,
    .service-catalog,
    .capability-grid,
    .project-grid,
    .news-grid,
    .values-grid,
    .reference-grid {
        grid-template-columns: 1fr;
    }

    .content-panel,
    .info-panel {
        padding: 24px;
    }

    .service-gallery figure {
        height: 240px;
    }

    .service-gallery-nav {
        width: 40px;
        height: 40px;
    }

    .service-gallery-prev {
        left: 10px;
    }

    .service-gallery-next {
        right: 10px;
    }

    .service-gallery-thumbs button {
        flex-basis: 70px;
        height: 52px;
    }

    .service-hero {
        padding: 14px 0 18px;
    }

    .service-hero-inner {
        height: 470px;
        gap: 0;
        background:
            linear-gradient(180deg, rgba(8, 9, 10, .98) 0%, rgba(8, 9, 10, .88) 56%, rgba(8, 9, 10, .64) 100%),
            var(--service-hero-image, url("../img/hero-industrial-black.png")) center / cover;
    }

    .service-hero-copy {
        padding: 34px 24px 22px;
    }

    .service-breadcrumb {
        margin-bottom: 22px;
    }

    .service-hero h1 {
        font-size: clamp(34px, 10vw, 52px);
        line-height: 1;
    }

    .service-hero p {
        font-size: 15px;
        line-height: 1.45;
    }

    .service-hero-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        margin-top: 26px;
    }

    .service-hero-actions .btn {
        min-width: 0;
        min-height: 50px;
        padding: 0 12px;
        font-size: 13px;
    }

    .info-panel {
        position: static;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    .media-frame img,
    .project-detail img {
        height: 330px;
    }

    .detail-aside {
        position: static;
    }
}

@media (max-width: 560px) {
    .about-story-visual,
    .about-story-visual img {
        min-height: 330px;
    }

    .about-story-visual figcaption {
        right: 18px;
        bottom: 18px;
        left: 18px;
    }

    .about-story-stats {
        grid-template-columns: 1fr;
    }

    .about-story-stats div {
        padding: 16px 0;
    }

    .about-story-stats div + div {
        padding-left: 0;
        border-top: 1px solid #e0e5ea;
        border-left: 0;
    }

    .home-stat-item strong {
        font-size: 32px;
    }

    .home-stat-item {
        padding-right: 8px;
        padding-left: 8px;
    }

    .home-stat-item .home-stat-label {
        flex-direction: column;
        gap: 6px;
        line-height: 1.25;
        letter-spacing: .06em;
    }

    .home-stat-item .home-stat-label > span {
        overflow-wrap: anywhere;
    }

    .home-service-card {
        min-height: 150px;
        grid-template-columns: 96px minmax(0, 1fr);
    }

    .home-service-body > span {
        -webkit-line-clamp: 3;
    }

    .home-process-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .home-process-card {
        min-height: 148px;
        padding: 18px;
    }

    .home-process-card > span {
        margin: 0 0 22px;
    }

    .topbar-contact a:nth-child(2) span {
        display: none;
    }

    .brand-mark {
        width: 44px;
    }

    .brand-logo {
        height: 38px;
        max-width: 168px;
    }

    .brand-copy strong {
        font-size: 13px;
    }

    .brand-copy small {
        display: block;
        max-width: 122px;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

@media (max-width: 820px) {
    .page-hero.universal-page-hero.about-image-hero {
        background-position: 38% center;
    }

    .page-hero.universal-page-hero.projects-image-hero {
        background-position: 38% center;
    }

    .page-hero.universal-page-hero.career-page-hero {
        background-position: 38% center;
    }

    .page-hero.universal-page-hero.contact-page-hero {
        background-position: 38% center;
    }

    .page-hero.universal-page-hero.blog-universal-hero {
        min-height: 390px;
        background-position: 38% center;
    }

    .about-image-hero h1,
    .about-image-hero p,
    .projects-image-hero h1,
    .projects-image-hero p,
    .career-page-hero h1,
    .career-page-hero p,
    .contact-page-hero h1,
    .contact-page-hero p,
    .blog-universal-hero h1,
    .blog-universal-hero p,
    .blog-universal-hero .blog-search-form,
    .services-index-visual-hero h1,
    .services-index-visual-hero p {
        width: min(600px, 76%);
    }

    .page-hero.universal-page-hero.services-index-visual-hero {
        min-height: 360px;
        padding: 56px 0;
        background-position: 38% center;
    }

    .services-index-visual-hero h1 {
        font-size: clamp(38px, 8vw, 52px);
    }

    .page-hero.universal-page-hero.service-detail-hero {
        min-height: 360px;
        padding: 58px 0;
        background-image:
            linear-gradient(90deg, rgba(3, 8, 15, .94) 0%, rgba(3, 8, 15, .76) 62%, rgba(3, 8, 15, .3) 100%),
            var(--service-detail-image);
        background-position: 60% center;
    }

    .service-detail-hero h1,
    .service-detail-hero p {
        width: min(620px, 86%);
    }

    .contact-section {
        padding: 46px 0 68px;
    }

    .contact-layout {
        gap: 14px;
    }

    .contact-info-panel,
    .contact-form-panel {
        min-height: 0;
        padding: 30px 26px;
        border-radius: 12px;
    }

    .contact-panel-note {
        margin-top: 34px;
    }

    .contact-form-header {
        margin-bottom: 26px;
    }

    .career-intro-section,
    .career-application-section {
        padding: 58px 0;
    }

    .career-application-layout {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .career-intro-shell {
        padding: 34px 30px;
    }

    .career-intro-header,
    .career-intro-main,
    .career-areas-heading {
        grid-template-columns: 1fr;
    }

    .career-intro-header {
        gap: 14px;
        padding-bottom: 28px;
    }

    .career-intro-header .page-kicker {
        margin-top: 0;
    }

    .career-intro-main {
        gap: 28px;
        padding: 30px 0 34px;
    }

    .career-areas-heading {
        gap: 12px;
        align-items: start;
    }

    .career-area-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .career-intro-note {
        min-height: 320px;
    }

    .career-application-copy {
        position: static;
        padding-top: 0;
    }

    .career-form-panel {
        padding: 30px 26px;
    }

    .career-overview-section,
    .career-benefits-section,
    .career-opportunities-section {
        padding: 54px 0;
    }

    .career-overview-grid,
    .career-specialties-head {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .career-overview-grid {
        padding-bottom: 38px;
    }

    .career-benefit-grid {
        grid-template-columns: 1fr;
    }

    .career-benefit-grid article {
        min-height: 180px;
    }

    .career-general-callout {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }

    .career-general-callout > a {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 560px) {
    .page-hero.universal-page-hero.about-image-hero,
    .page-hero.universal-page-hero.projects-image-hero,
    .page-hero.universal-page-hero.career-page-hero,
    .page-hero.universal-page-hero.contact-page-hero,
    .page-hero.universal-page-hero.blog-universal-hero {
        min-height: 330px;
        background-position: left center;
    }

    .about-image-hero h1,
    .about-image-hero p,
    .projects-image-hero h1,
    .projects-image-hero p,
    .career-page-hero h1,
    .career-page-hero p,
    .contact-page-hero h1,
    .contact-page-hero p,
    .blog-universal-hero h1,
    .blog-universal-hero p,
    .blog-universal-hero .blog-search-form,
    .services-index-visual-hero h1,
    .services-index-visual-hero p {
        width: 100%;
    }

    .page-hero.universal-page-hero.services-index-visual-hero {
        min-height: 330px;
        background-position: left center;
    }

    .page-hero.universal-page-hero.service-detail-hero {
        min-height: 330px;
        background-position: 66% center;
    }

    .service-detail-hero h1,
    .service-detail-hero p {
        width: 100%;
    }

    .contact-info-panel,
    .contact-form-panel {
        padding: 26px 20px;
    }

    .contact-card h2 {
        font-size: 30px;
    }

    .contact-info-list {
        margin-top: 30px;
    }

    .contact-info-item {
        grid-template-columns: 32px minmax(0, 1fr);
        gap: 10px;
    }

    .contact-form textarea {
        min-height: 150px;
    }

    .career-intro-header h2,
    .career-application-copy h2 {
        font-size: 34px;
    }

    .career-intro-shell {
        padding: 28px 20px;
        border-radius: 12px;
    }

    .career-area-list {
        grid-template-columns: 1fr;
    }

    .career-intro-note {
        min-height: 300px;
        padding: 26px 22px;
    }

    .career-form-panel {
        padding: 26px 20px;
    }

    .career-overview h2 {
        font-size: 36px;
        white-space: normal;
    }

    .career-overview-grid > div {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .career-section-heading {
        margin-bottom: 28px;
    }

    .career-opportunities-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .career-job-card,
    .career-general-callout {
        padding: 20px;
    }

    .career-job-main {
        flex-direction: column;
    }

    .career-job-actions a {
        flex: 1 1 100%;
        justify-content: center;
    }

    .career-specialties {
        margin-top: 44px;
        padding-top: 34px;
    }

    .career-application-simple .career-form-panel {
        padding: 24px 18px;
    }
}

@media (max-width: 560px) {
    .contact-success-toast {
        top: 16px;
        right: 16px;
        left: 16px;
        min-width: 0;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .contact-success-toast {
        animation: none;
        transition: none;
    }
}

@media (max-width: 820px) {
    .site-footer-main {
        padding: 50px 0 44px;
    }

    .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 42px 30px;
        justify-items: center;
        text-align: center;
    }

    .footer-about,
    .footer-column,
    .footer-contact {
        width: 100%;
    }

    .footer-brand {
        justify-content: center;
    }

    .footer-about > p {
        margin-right: auto;
        margin-left: auto;
    }

    .footer-social {
        justify-content: center;
    }

    .footer-links,
    .footer-contact {
        justify-items: center;
    }

    .site-footer .footer-links a {
        justify-content: center;
        margin-inline: auto;
    }

    .site-footer .footer-contact > a,
    .site-footer .footer-contact > div {
        grid-template-columns: 22px auto;
        justify-content: center;
        text-align: left;
    }

    .footer-bottom-inner {
        justify-content: center;
        text-align: center;
    }
}

@media (max-width: 560px) {
    .site-footer-main {
        padding: 42px 0 38px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .footer-about > p {
        margin: 20px auto;
    }

    .footer-bottom-inner {
        min-height: 70px;
        align-items: center;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
    }

    .whatsapp-float {
        right: 14px;
        bottom: 14px;
        width: 52px;
        height: 52px;
    }

    .whatsapp-float::after {
        display: none;
    }
}

@media (max-width: 820px) {
    .page-hero.universal-page-hero.policy-image-hero {
        background-position: 38% center;
    }

    .policy-image-hero h1,
    .policy-image-hero p {
        width: min(600px, 76%);
    }

    .policy-content-section {
        padding: 58px 0 70px;
    }

    .policy-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .page-hero.universal-page-hero.policy-image-hero {
        min-height: 330px;
        background-position: left center;
    }

    .policy-image-hero h1,
    .policy-image-hero p {
        width: 100%;
    }

    .policy-content-section {
        padding: 44px 0 56px;
    }

    .policy-content-shell {
        gap: 24px;
    }

    .policy-intro {
        padding-left: 16px;
    }

    .policy-intro p {
        font-size: 15px;
    }

    .policy-card {
        padding: 24px 20px;
    }

    .policy-closing {
        grid-template-columns: 1fr;
        gap: 17px;
        padding: 26px 22px;
    }
}

/* Layered corporate header */
.site-header {
    padding: 0;
    background: #fff;
    box-shadow: 0 8px 24px rgba(16, 38, 74, .08);
}

.site-header.is-scrolled {
    padding: 0;
    background: #fff;
    box-shadow: 0 10px 28px rgba(16, 38, 74, .12);
}

.header-stack {
    width: 100%;
}

.topbar {
    width: 100%;
    min-height: 28px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #0b5178;
    color: rgba(255, 255, 255, .88);
    font-size: 10px;
}

.topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 28px;
    gap: 18px;
}

.topbar-contact,
.topbar-social {
    gap: 8px;
}

.topbar-contact a + a {
    padding-left: 11px;
    border-left-color: rgba(255, 255, 255, .24);
}

.topbar .social-icon {
    width: 20px;
    height: 20px;
    color: rgba(255, 255, 255, .82);
}

.topbar .social-icon svg {
    width: 13px;
    height: 13px;
}

.header-main-shell {
    border-bottom: 1px solid #e5e9ef;
    background: #fff;
}

.header-main-row {
    position: relative;
    display: grid;
    grid-template-columns: 165px minmax(320px, 1fr) auto;
    align-items: center;
    gap: clamp(16px, 2.2vw, 30px);
    min-height: 58px;
}

.header-main-row .brand {
    justify-self: start;
}

.brand-logo {
    width: auto;
    height: 38px;
    max-width: 165px;
    object-fit: contain;
}

.header-main-row .brand-custom-logo .brand-logo,
.site-header.is-scrolled .brand-custom-logo .brand-logo {
    width: 165px;
    height: auto;
    max-width: 165px;
}

.header-search-inline {
    width: min(100%, 600px);
    justify-self: center;
}

.header-search-inline .header-search-box {
    min-height: 36px;
    padding: 0 4px 0 16px;
    border-color: #ccd5e2;
    border-radius: 999px;
    background: #fbfcfe;
    color: #57677d;
}

.header-search-inline .header-search-box input {
    min-height: 0;
    height: 34px;
}

.header-search-inline .header-search-box:focus-within {
    border-color: #4e4f50;
    box-shadow: 0 0 0 3px rgba(78, 79, 80, .1);
}

.header-search-inline .header-search-toggle {
    width: 34px;
    height: 30px;
    flex: 0 0 34px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #43536b;
}

.site-header.is-scrolled .header-search-inline .header-search-toggle {
    height: 30px;
}

.header-search-inline .header-search-toggle:hover,
.header-search-inline .header-search-toggle[aria-expanded="true"] {
    background: #f1f2f3;
    color: #4e4f50;
}

.header-search-inline .header-search-toggle svg {
    width: 18px;
    height: 18px;
}

.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 15px;
}

.language-selector {
    position: relative;
    z-index: 30;
    white-space: nowrap;
}

.language-current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 74px;
    min-height: 38px;
    padding: 5px 10px;
    border: 1px solid #dfe4eb;
    border-radius: 999px;
    background: #fff;
    color: #4e4f50;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 5px 14px rgba(16, 24, 40, .07);
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.language-current:hover,
.language-selector.is-open .language-current {
    border-color: #b9c4d2;
    background: #f7f8fa;
    box-shadow: 0 7px 18px rgba(16, 24, 40, .11);
}

.language-current img,
.language-option img {
    width: 18px;
    height: 18px;
    border: 1px solid rgba(16, 24, 40, .08);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 2px 5px rgba(16, 24, 40, .12);
}

.language-current svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    transition: transform .2s ease;
}

.language-selector.is-open .language-current svg {
    transform: rotate(180deg);
}

.language-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    display: grid;
    width: 190px;
    padding: 7px;
    border: 1px solid #e1e6ed;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(16, 24, 40, .17);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
}

.language-selector.is-open .language-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.language-option {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #445064;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: color .18s ease, background .18s ease;
}

.language-option small {
    color: #98a2b3;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
}

.language-option:hover {
    background: #f3f6fa;
    color: #111827;
}

.language-option.is-active {
    background: #edf5ff;
    color: #075fc9;
}

.language-option.is-active::after {
    margin-left: 2px;
    color: #0874e8;
    font-size: 11px;
    content: "✓";
}

.language-option.is-active small {
    display: none;
}

.header-main-row .contact-pill {
    min-width: 110px;
    min-height: 38px;
    padding: 0 9px 0 17px;
    border: 0;
    border-radius: 999px;
    background: #0b5178;
    color: #fff;
    font-size: 11px;
    box-shadow: 0 8px 18px rgba(11, 81, 120, .22);
}

.header-main-row .contact-pill svg {
    width: 26px;
    height: 26px;
    padding: 6px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
}

.header-main-row .contact-pill:hover {
    background: #083f5e;
}

.header-main-row .menu-toggle {
    display: none;
}

.header-nav-shell {
    border-bottom: 1px solid #dfe4eb;
    background: #f7f8fa;
}

.header-nav-shell .nav-wrap,
.site-header.is-scrolled .header-nav-shell .nav-wrap {
    min-height: 40px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.header-nav-shell .nav-pill,
.site-header.is-scrolled .header-nav-shell .nav-pill {
    min-height: 40px;
    padding: 0;
}

.header-nav-shell .main-nav {
    width: 100%;
    justify-content: flex-start;
    gap: 5px;
    margin: 0;
}

.header-nav-shell .nav-dropdown-services {
    order: -1;
    flex: 0 0 172px;
    align-self: stretch;
    margin-right: auto;
}

.header-nav-shell .main-nav::after {
    width: 172px;
    flex: 0 0 172px;
    margin-left: auto;
    content: "";
}

.header-nav-shell .nav-dropdown-services .nav-services-trigger {
    width: 100%;
    min-height: 40px;
    justify-content: space-between;
    gap: 12px;
    padding: 0 14px;
    border-radius: 5px 5px 0 0;
    background: #4e4f50;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .01em;
    text-transform: uppercase;
}

.header-nav-shell .nav-dropdown-services .nav-services-trigger::after {
    display: none;
}

.nav-services-label {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.header-nav-shell .nav-services-trigger .nav-services-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    fill: currentColor;
    stroke: none;
}

.header-nav-shell .nav-dropdown-services:hover .nav-services-trigger,
.header-nav-shell .nav-dropdown-services:focus-within .nav-services-trigger,
.header-nav-shell .nav-dropdown-services.is-open .nav-services-trigger,
.header-nav-shell .nav-dropdown-services .nav-services-trigger.is-active {
    background: #3f4041;
    color: #fff;
}

.header-nav-shell .nav-dropdown-services:hover .nav-services-icon,
.header-nav-shell .nav-dropdown-services:focus-within .nav-services-icon,
.header-nav-shell .nav-dropdown-services.is-open .nav-services-icon {
    transform: none;
}

.header-nav-shell .main-nav > a,
.header-nav-shell .nav-dropdown-trigger {
    min-height: 40px;
    padding: 0 13px;
    border-radius: 0;
    color: #4e5968;
    font-size: 13px;
    font-weight: 600;
    text-transform: none;
}

.header-nav-shell .main-nav > a::after,
.header-nav-shell .nav-dropdown-trigger::after {
    right: 13px;
    bottom: 0;
    left: 13px;
    height: 3px;
    background: #4e4f50;
}

.header-nav-shell .main-nav > a:hover,
.header-nav-shell .main-nav > a.is-active,
.header-nav-shell .nav-dropdown:hover .nav-dropdown-trigger,
.header-nav-shell .nav-dropdown.is-open .nav-dropdown-trigger,
.header-nav-shell .nav-dropdown-trigger.is-active {
    color: #000000;
}

.header-search-panel {
    top: calc(100% + 8px);
    right: auto;
    left: 50%;
    padding: 12px;
    border-color: #d8e0eb;
    border-radius: 12px;
    box-shadow: 0 22px 55px rgba(22, 45, 82, .18);
    transform: translate(-50%, -8px);
}

.header-stack.is-search-open .header-search-panel {
    transform: translate(-50%, 0);
}

.header-search-panel .header-search-results {
    margin-top: 0;
}

.site-header.is-scrolled .header-main-row {
    min-height: 54px;
}

.site-header.is-scrolled .brand-logo {
    height: 34px;
}

@media (max-width: 1020px) {
    .header-main-row {
        grid-template-columns: 145px minmax(260px, 1fr) auto;
        gap: 15px;
    }

    .header-main-row .brand-logo {
        height: 34px;
        max-width: 145px;
    }

    .header-main-row .brand-custom-logo .brand-logo,
    .site-header.is-scrolled .brand-custom-logo .brand-logo {
        width: 145px;
        height: auto;
        max-width: 145px;
    }

    .header-main-row .contact-pill {
        display: none;
    }

    .header-nav-shell .main-nav > a,
    .header-nav-shell .nav-dropdown-trigger {
        padding-inline: 9px;
        font-size: 11.5px;
    }
}

@media (max-width: 820px) {
    main {
        padding-top: 132px;
    }

    .site-header,
    .site-header.is-scrolled {
        padding: 0;
    }

    .topbar {
        min-height: 26px;
        padding: 0;
        font-size: 9px;
    }

    .topbar-inner {
        min-height: 26px;
    }

    .header-main-row,
    .site-header.is-scrolled .header-main-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto 42px;
        grid-template-areas:
            "brand actions toggle"
            "search search search";
        gap: 7px 10px;
        min-height: 0;
        padding: 8px 0;
    }

    .header-main-row .brand {
        grid-area: brand;
    }

    .header-main-row .brand-logo,
    .site-header.is-scrolled .brand-logo {
        height: 32px;
        max-width: 138px;
    }

    .header-main-row .brand-custom-logo .brand-logo,
    .site-header.is-scrolled .brand-custom-logo .brand-logo {
        width: 138px;
        height: auto;
        max-width: 138px;
    }

    .header-search-inline {
        grid-area: search;
        width: 100%;
    }

    .header-search-inline .header-search-box {
        min-height: 38px;
    }

    .header-actions {
        grid-area: actions;
        gap: 8px;
    }

    .header-main-row .contact-pill {
        display: none;
    }

    .language-current {
        min-width: 68px;
        min-height: 36px;
        padding-inline: 9px;
    }

    .language-current img {
        width: 21px;
        height: 21px;
    }

    .language-menu {
        width: 180px;
    }

    .header-main-row .menu-toggle {
        display: block;
        grid-area: toggle;
        width: 42px;
        height: 38px;
    }

    .header-nav-shell .nav-wrap,
    .site-header.is-scrolled .header-nav-shell .nav-wrap {
        display: block;
        min-height: 0;
        padding: 0;
    }

    .header-nav-shell .nav-pill,
    .site-header.is-scrolled .header-nav-shell .nav-pill {
        display: block;
        min-height: 0;
    }

    .header-nav-shell .main-nav {
        display: none;
        width: 100%;
        align-items: stretch;
        flex-direction: column;
        gap: 0;
        margin: 0;
        padding: 8px 0 10px;
    }

    .header-nav-shell .main-nav.is-open {
        display: flex;
    }

    .header-nav-shell .nav-dropdown-services {
        width: 100%;
        flex-basis: auto;
        margin-right: 0;
        margin-bottom: 5px;
    }

    .header-nav-shell .main-nav::after {
        display: none;
    }

    .header-nav-shell .nav-dropdown-services .nav-services-trigger {
        min-height: 42px;
        padding-inline: 13px;
        border-radius: 7px;
        font-size: 11px;
    }

    .header-nav-shell .main-nav > a,
    .header-nav-shell .nav-dropdown-trigger {
        min-height: 40px;
        padding: 0 10px;
        font-size: 12.5px;
    }

    .header-search-panel {
        top: calc(100% + 5px);
        width: calc(100% - 24px);
    }

    .header-search-panel .header-search-results {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .topbar-social {
        display: none;
    }

    .topbar-contact {
        width: 100%;
        justify-content: space-between;
    }

    .topbar-contact a + a {
        padding-left: 0;
        border-left: 0;
    }

    .header-search-inline input {
        font-size: 11px;
    }
}

/* Single-row primary navigation */
main {
    padding-top: 86px;
}

.header-main-row {
    grid-template-columns: 165px minmax(320px, 1fr) auto;
}

.header-actions {
    grid-column: 3;
}

.header-nav-shell {
    position: absolute;
    top: 28px;
    right: 0;
    left: 0;
    z-index: 2;
    height: 58px;
    border: 0;
    background: transparent;
    pointer-events: none;
}

.site-header.is-scrolled .header-nav-shell {
    top: 0;
    height: 54px;
}

.header-nav-shell .nav-wrap,
.site-header.is-scrolled .header-nav-shell .nav-wrap,
.header-nav-shell .nav-pill,
.site-header.is-scrolled .header-nav-shell .nav-pill {
    min-height: 58px;
}

.site-header.is-scrolled .header-nav-shell .nav-wrap,
.site-header.is-scrolled .header-nav-shell .nav-pill {
    min-height: 54px;
}

.header-nav-shell .main-nav {
    width: fit-content;
    justify-content: center;
    gap: 5px;
    margin: 0 auto;
    pointer-events: auto;
}

.header-nav-shell .main-nav::after {
    display: none;
}

.header-nav-shell .nav-dropdown-services {
    order: 0;
    width: auto;
    flex: 0 0 auto;
    align-self: auto;
    margin: 0;
}

.header-nav-shell .nav-dropdown-services .nav-services-trigger {
    width: auto;
    min-height: 58px;
    justify-content: flex-start;
    gap: 5px;
    padding: 0 13px;
    border-radius: 0;
    background: transparent;
    color: #4e5968;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

.site-header.is-scrolled .header-nav-shell .main-nav > a,
.site-header.is-scrolled .header-nav-shell .nav-dropdown-trigger,
.site-header.is-scrolled .header-nav-shell .nav-services-trigger {
    min-height: 54px;
}

.header-nav-shell .main-nav > a,
.header-nav-shell .nav-dropdown-trigger {
    min-height: 58px;
}

.header-nav-shell .nav-dropdown-services .nav-services-trigger::after {
    display: block;
}

.header-nav-shell .nav-dropdown-services:hover .nav-services-trigger,
.header-nav-shell .nav-dropdown-services:focus-within .nav-services-trigger,
.header-nav-shell .nav-dropdown-services.is-open .nav-services-trigger,
.header-nav-shell .nav-dropdown-services .nav-services-trigger.is-active {
    background: transparent;
    color: #4e4f50;
}

@media (max-width: 1020px) {
    .header-main-row {
        grid-template-columns: 145px minmax(260px, 1fr) auto;
    }

    .header-nav-shell .main-nav > a,
    .header-nav-shell .nav-dropdown-trigger,
    .header-nav-shell .nav-dropdown-services .nav-services-trigger {
        padding-inline: 9px;
        font-size: 11.5px;
    }
}

@media (max-width: 820px) {
    main {
        padding-top: 80px;
    }

    .header-main-row,
    .site-header.is-scrolled .header-main-row {
        grid-template-columns: minmax(0, 1fr) auto 42px;
        grid-template-areas: "brand actions toggle";
        gap: 10px;
    }

    .header-actions {
        grid-column: auto;
    }

    .header-nav-shell,
    .site-header.is-scrolled .header-nav-shell {
        position: static;
        height: auto;
        border-bottom: 1px solid #dfe4eb;
        background: #f7f8fa;
        pointer-events: auto;
    }

    .header-nav-shell .nav-wrap,
    .site-header.is-scrolled .header-nav-shell .nav-wrap,
    .header-nav-shell .nav-pill,
    .site-header.is-scrolled .header-nav-shell .nav-pill {
        min-height: 0;
    }

    .header-nav-shell .main-nav {
        width: 100%;
        margin: 0;
    }

    .header-nav-shell .nav-dropdown-services {
        width: 100%;
        margin: 0;
    }

    .header-nav-shell .nav-dropdown-services .nav-services-trigger,
    .site-header.is-scrolled .header-nav-shell .nav-services-trigger {
        width: 100%;
        min-height: 40px;
        justify-content: space-between;
        padding: 0 10px;
        border-radius: 0;
        background: transparent;
        color: #4e5968;
        font-size: 12.5px;
        font-weight: 600;
    }

    .header-nav-shell .nav-dropdown-services:hover .nav-services-trigger,
    .header-nav-shell .nav-dropdown-services:focus-within .nav-services-trigger,
    .header-nav-shell .nav-dropdown-services.is-open .nav-services-trigger,
    .header-nav-shell .nav-dropdown-services .nav-services-trigger.is-active {
        background: transparent;
        color: #4e4f50;
    }
}

/* Compact services dropdown */
.nav-dropdown-services > .mega-menu {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 12px;
}

.nav-dropdown-services .mega-links {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.nav-dropdown-services .mega-links a {
    min-height: 64px;
    justify-content: center;
    padding: 10px 12px;
    text-align: center;
}

.nav-dropdown-services .mega-links a::after {
    display: none;
}

@media (max-width: 820px) {
    .nav-dropdown-services .mega-links {
        grid-template-columns: 1fr;
    }

    .nav-dropdown-services .mega-links a {
        min-height: 46px;
        justify-content: flex-start;
        text-align: left;
    }
}

/* Single-line process statement */
.home-process-head {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 20px;
}

.home-process-head h2 {
    font-size: clamp(32px, 3.25vw, 48px);
    white-space: nowrap;
}

.home-process-head > p {
    width: 100%;
}

@media (min-width: 1021px) {
    .home-process-head > p {
        font-size: clamp(13px, 1.15vw, 15px);
        white-space: nowrap;
    }
}

@media (max-width: 820px) {
    .fullscreen-hero-content {
        transform: translateY(-30px);
    }

    .home-process-head h2 {
        font-size: clamp(30px, 7vw, 42px);
        white-space: normal;
    }
}

/* Uzay Ray project portfolio */
.inner-rail-hero-projects {
    min-height: clamp(570px, 59vw, 720px);
}

.inner-rail-hero-projects > img {
    object-position: center center;
}

.inner-rail-hero-projects .inner-rail-hero-shade {
    background:
        linear-gradient(90deg, rgba(3, 12, 25, .97) 0%, rgba(3, 13, 27, .83) 38%, rgba(4, 16, 31, .28) 70%, rgba(3, 10, 20, .08) 100%),
        linear-gradient(0deg, rgba(2, 9, 18, .82), transparent 60%);
}

.projects-page .inner-rail-hero-content {
    width: min(1210px, calc(100% - 32px));
}

.rail-project-overview {
    padding: clamp(76px, 9vw, 124px) 0;
    background: #f3f6fa;
}

.rail-project-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
    gap: clamp(54px, 8vw, 116px);
    align-items: end;
}

.rail-project-overview header h2,
.rail-project-collection-head h2,
.rail-project-brief h2,
.rail-project-method .rail-section-head h2 {
    margin: 16px 0 20px;
    color: #071526;
    font-size: clamp(35px, 4vw, 56px);
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -.045em;
}

.rail-project-overview header p {
    max-width: 600px;
    margin: 0;
    color: #617083;
    font-size: 15px;
    line-height: 1.75;
}

.rail-project-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid #cdd7e3;
    border-bottom: 1px solid #cdd7e3;
}

.rail-project-metrics article {
    min-height: 170px;
    padding: 28px 22px 24px;
    border-left: 1px solid #cdd7e3;
}

.rail-project-metrics article:last-child {
    border-right: 1px solid #cdd7e3;
}

.rail-project-metrics strong {
    display: block;
    color: #0879ef;
    font-size: clamp(34px, 3.5vw, 52px);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.06em;
}

.rail-project-metrics sup {
    top: -.45em;
    font-size: .46em;
}

.rail-project-metrics span {
    display: block;
    margin-top: 23px;
    color: #344355;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.rail-project-collection {
    padding: clamp(82px, 10vw, 142px) 0;
    background: #fff;
}

.rail-project-collection-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: clamp(38px, 5vw, 70px);
    padding-bottom: 26px;
    border-bottom: 1px solid #dce3eb;
}

.rail-project-collection-head h2 {
    margin-bottom: 0;
}

.rail-project-collection-head > p {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 8px;
    color: #687687;
    font-size: 12px;
}

.rail-project-collection-head > p strong {
    color: #0879ef;
    font-size: 28px;
    font-weight: 600;
    line-height: 1;
}

.rail-project-collection-head > p span {
    margin-left: 10px;
    padding: 7px 10px;
    background: #edf5fe;
    color: #0879ef;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.rail-project-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

.rail-project-card {
    display: grid;
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dfe6ee;
    background: #fff;
    transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}

.rail-project-card:hover {
    transform: translateY(-6px);
    border-color: #b9c9db;
    box-shadow: 0 26px 60px rgba(7, 21, 38, .12);
}

.rail-project-card.is-featured {
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, .65fr);
    grid-column: 1 / -1;
}

.rail-project-card-media {
    position: relative;
    display: block;
    min-height: 330px;
    overflow: hidden;
    background: #071526;
}

.rail-project-card.is-featured .rail-project-card-media {
    min-height: 480px;
}

.rail-project-card-media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(4, 14, 27, .06) 42%, rgba(4, 14, 27, .72));
    content: "";
}

.rail-project-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s cubic-bezier(.2, .7, .2, 1);
}

.rail-project-card:hover .rail-project-card-media img {
    transform: scale(1.045);
}

.rail-project-card-index {
    position: absolute;
    right: 19px;
    bottom: 10px;
    z-index: 2;
    color: rgba(255, 255, 255, .68);
    font-size: 46px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -.07em;
}

.rail-project-card-status {
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    background: rgba(5, 18, 34, .84);
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
}

.rail-project-card-status i,
.rail-project-detail-meta strong i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ffae35;
    box-shadow: 0 0 0 4px rgba(255, 174, 53, .13);
}

.rail-project-card-status.is-completed i,
.rail-project-detail-meta strong i.is-completed {
    background: #28d39b;
    box-shadow: 0 0 0 4px rgba(40, 211, 155, .13);
}

.rail-project-card-body {
    display: flex;
    flex-direction: column;
    padding: clamp(28px, 3.5vw, 46px);
}

.rail-project-card-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 9px 16px;
    margin-bottom: 22px;
    color: #0879ef;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.rail-project-card-meta span:last-child {
    color: #8290a0;
}

.rail-project-card h2 {
    margin: 0 0 17px;
    font-size: clamp(23px, 2.3vw, 34px);
    font-weight: 600;
    line-height: 1.14;
    letter-spacing: -.035em;
}

.rail-project-card h2 a {
    color: #071526;
    text-decoration: none;
}

.rail-project-card-body > p {
    display: -webkit-box;
    margin: 0 0 28px;
    overflow: hidden;
    color: #657386;
    font-size: 14px;
    line-height: 1.7;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.rail-project-card-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid #e2e8ef;
    color: #122237;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
}

.rail-project-card-link b {
    color: #0879ef;
    font-size: 18px;
    transition: transform .25s ease;
}

.rail-project-card-link:hover b {
    transform: translate(3px, -3px);
}

.rail-project-empty {
    padding: clamp(52px, 8vw, 100px);
    border: 1px solid #dfe6ee;
    background: #f5f8fb;
    text-align: center;
}

.rail-project-empty > span {
    color: #0879ef;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.rail-project-empty h2 { margin: 14px 0; color: #071526; }
.rail-project-empty p { margin: 0 0 24px; color: #687687; }
.rail-project-empty a { color: #0879ef; font-weight: 800; text-decoration: none; }

/* Project detail */
.rail-project-detail-hero {
    position: relative;
    display: flex;
    min-height: clamp(650px, 70vw, 820px);
    align-items: flex-end;
    overflow: hidden;
    background: #06111f;
    color: #fff;
    isolation: isolate;
}

.rail-project-detail-hero > img {
    position: absolute;
    inset: 0;
    z-index: -3;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rail-project-detail-shade {
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(3, 12, 25, .96), rgba(3, 13, 27, .72) 48%, rgba(3, 12, 24, .25)),
        linear-gradient(0deg, rgba(2, 9, 18, .94), transparent 67%);
}

.rail-project-detail-hero::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #0879ef 0 34%, rgba(8, 121, 239, .18) 34% 100%);
    content: "";
}

.rail-project-detail-content {
    position: relative;
    z-index: 1;
    width: min(1210px, calc(100% - 32px));
    padding-top: 130px;
    padding-bottom: 0;
}

.rail-project-back {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: clamp(44px, 8vw, 96px);
    color: rgba(255, 255, 255, .75);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-decoration: none;
    text-transform: uppercase;
}

.rail-project-back span { color: #55adff; font-size: 17px; }

.rail-project-detail-heading {
    max-width: 880px;
    padding-bottom: clamp(42px, 6vw, 72px);
}

.rail-project-detail-label {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #55adff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.rail-project-detail-label i { width: 38px; height: 1px; background: currentColor; }

.rail-project-detail-heading h1 {
    margin: 19px 0 22px;
    color: #fff;
    font-size: clamp(44px, 5.4vw, 74px);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.055em;
}

.rail-project-detail-heading p {
    max-width: 680px;
    margin: 0;
    color: rgba(238, 244, 251, .8);
    font-size: clamp(15px, 1.45vw, 18px);
    line-height: 1.72;
}

.rail-project-detail-meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    background: rgba(4, 17, 32, .88);
    border-top: 1px solid rgba(255, 255, 255, .16);
    backdrop-filter: blur(15px);
}

.rail-project-detail-meta > div {
    min-height: 102px;
    padding: 24px 28px;
    border-right: 1px solid rgba(255, 255, 255, .14);
}

.rail-project-detail-meta > div:last-child { border-right: 0; }

.rail-project-detail-meta small {
    display: block;
    margin-bottom: 9px;
    color: rgba(255, 255, 255, .48);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.rail-project-detail-meta strong {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
}

.rail-project-brief {
    padding: clamp(82px, 10vw, 140px) 0;
    background: #f3f6fa;
}

.rail-project-brief-grid {
    display: grid;
    grid-template-columns: minmax(230px, .55fr) minmax(0, 1.45fr);
    gap: clamp(60px, 9vw, 140px);
    align-items: start;
}

.rail-project-brief aside {
    position: relative;
    min-height: 330px;
    padding: 30px;
    overflow: hidden;
    background: linear-gradient(150deg, #071526, #0b2948 76%, #0879ef);
    color: #fff;
}

.rail-project-brief aside::after {
    position: absolute;
    right: -18%;
    bottom: -30%;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(89, 175, 255, .32);
    border-radius: 50%;
    box-shadow: 0 0 0 38px rgba(89, 175, 255, .07), 0 0 0 76px rgba(89, 175, 255, .04);
    content: "";
}

.rail-project-brief aside span,
.rail-project-brief aside small {
    position: relative;
    z-index: 1;
    display: block;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.rail-project-brief aside span { color: #63b5ff; }
.rail-project-brief aside small { position: absolute; bottom: 30px; color: rgba(255,255,255,.6); }

.rail-project-brief aside strong {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 48px;
    color: #fff;
    font-size: 112px;
    font-weight: 500;
    line-height: .8;
    letter-spacing: -.09em;
}

.rail-project-brief article { padding-top: 10px; }
.rail-project-brief h2 { max-width: 760px; }

.rail-project-description {
    max-width: 780px;
    color: #536275;
    font-size: clamp(16px, 1.5vw, 19px);
    line-height: 1.85;
}

.rail-project-method {
    padding: clamp(80px, 10vw, 138px) 0;
    background: #071526;
    color: #fff;
}

.rail-project-method .rail-section-head { border-color: rgba(255,255,255,.14); }
.rail-project-method .rail-section-head h2 { color: #fff; }
.rail-project-method .rail-section-head > p { color: rgba(225,235,246,.61); }

.rail-project-method-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 56px;
    border-top: 1px solid rgba(255,255,255,.15);
    border-bottom: 1px solid rgba(255,255,255,.15);
}

.rail-project-method-grid article {
    min-height: 210px;
    padding: 28px;
    border-right: 1px solid rgba(255,255,255,.15);
}

.rail-project-method-grid article:first-child { border-left: 1px solid rgba(255,255,255,.15); }
.rail-project-method-grid article > span { color: #55adff; font-size: 11px; font-weight: 800; }
.rail-project-method-grid article > div { margin-top: 70px; }
.rail-project-method-grid strong { display: block; color: #fff; font-size: 20px; font-weight: 600; }
.rail-project-method-grid small { display: block; margin-top: 10px; color: rgba(225,235,246,.56); line-height: 1.55; }

.rail-project-detail-footer {
    padding: 48px 0;
    background: #0879ef;
    color: #fff;
}

.rail-project-detail-footer-row {
    display: grid;
    grid-template-columns: minmax(190px, .6fr) minmax(0, 1fr) auto;
    gap: 40px;
    align-items: center;
}

.rail-project-detail-footer a {
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
}

.rail-project-detail-footer > .container > a:first-child { display: flex; align-items: center; gap: 10px; opacity: .78; }
.rail-project-detail-footer-row > div { padding-left: 36px; border-left: 1px solid rgba(255,255,255,.28); }
.rail-project-detail-footer-row small { color: rgba(255,255,255,.72); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rail-project-detail-footer-row h2 { margin: 7px 0 0; color: #fff; font-size: clamp(25px, 3vw, 38px); font-weight: 600; letter-spacing: -.04em; }
.rail-project-contact { padding: 16px 20px; border: 1px solid rgba(255,255,255,.55); }
.rail-project-contact b { margin-left: 16px; font-size: 16px; }

.project-not-found {
    min-height: 72vh;
    padding: 190px 0 110px;
    background: linear-gradient(145deg, #06111f, #0b2b4c);
    color: #fff;
}

.project-not-found span { color: #55adff; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.project-not-found h1 { max-width: 780px; margin: 22px 0; color: #fff; font-size: clamp(48px, 7vw, 88px); line-height: 1; letter-spacing: -.055em; }
.project-not-found p { color: rgba(255,255,255,.68); }
.project-not-found a { display: inline-block; margin-top: 24px; padding: 15px 19px; background: #0879ef; color: #fff; font-weight: 800; text-decoration: none; }

@media (max-width: 1080px) {
    .rail-project-overview-grid { grid-template-columns: 1fr; }
    .rail-project-card.is-featured { grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); }
    .rail-project-detail-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rail-project-detail-meta > div:nth-child(2) { border-right: 0; }
    .rail-project-detail-meta > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.14); }
    .rail-project-method-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rail-project-method-grid article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.15); }
    .rail-project-method-grid article:nth-child(2) { border-right: 0; }
}

@media (max-width: 820px) {
    body.projects-page,
    body.project-detail-page { overflow-x: hidden; }
    .inner-rail-hero-projects { min-height: 610px; }
    .inner-rail-hero-projects > img { object-position: 61% center; }
    .projects-page .inner-rail-hero-content {
        box-sizing: border-box;
        width: 100vw;
        max-width: 100vw;
        margin: 0;
        padding-right: 16px;
        padding-left: 16px;
    }
    .projects-page .rail-project-overview > .container,
    .projects-page .rail-project-collection > .container,
    .projects-page .rail-inner-cta > .container,
    .project-detail-page .rail-project-brief > .container,
    .project-detail-page .rail-project-method > .container,
    .project-detail-page .rail-project-detail-footer > .container {
        width: calc(100vw - 32px);
        max-width: calc(100vw - 32px);
    }
    .rail-project-overview { padding: 72px 0; }
    .rail-project-overview-grid,
    .rail-project-overview-grid > header,
    .rail-project-collection-head,
    .rail-project-card,
    .rail-project-card-body { min-width: 0; }
    .rail-project-overview header h2 { font-size: clamp(31px, 9.5vw, 42px); overflow-wrap: anywhere; }
    .rail-project-metrics { grid-template-columns: 1fr; }
    .rail-project-metrics article { display: grid; grid-template-columns: 1fr 1fr; min-height: 0; align-items: center; padding: 20px 8px; border-right: 0; border-left: 0; border-bottom: 1px solid #cdd7e3; }
    .rail-project-metrics article:last-child { border-right: 0; border-bottom: 0; }
    .rail-project-metrics strong { font-size: 40px; }
    .rail-project-metrics span { margin: 0; }
    .rail-project-collection { padding: 74px 0; }
    .rail-project-collection-head { align-items: flex-start; flex-direction: column; gap: 20px; }
    .rail-project-grid { grid-template-columns: 1fr; gap: 20px; }
    .rail-project-card.is-featured { grid-template-columns: 1fr; grid-column: auto; }
    .rail-project-card-media,
    .rail-project-card.is-featured .rail-project-card-media { min-height: 280px; }
    .rail-project-card-body { min-height: 290px; }
    .rail-project-detail-hero { min-height: 720px; }
    .rail-project-detail-hero > img { object-position: 58% center; }
    .rail-project-detail-content { width: calc(100vw - 32px); max-width: calc(100vw - 32px); padding-top: 110px; }
    .rail-project-back { margin-bottom: 56px; }
    .rail-project-detail-heading h1 { font-size: clamp(39px, 12vw, 58px); }
    .rail-project-detail-meta { grid-template-columns: 1fr 1fr; margin: 0 -18px; }
    .rail-project-detail-meta > div { min-height: 88px; padding: 18px; }
    .rail-project-brief { padding: 72px 0; }
    .rail-project-brief-grid { grid-template-columns: 1fr; gap: 45px; }
    .rail-project-brief aside { min-height: 210px; }
    .rail-project-brief aside strong { margin-top: 35px; font-size: 82px; }
    .rail-project-method { padding: 72px 0; }
    .rail-project-method-grid { grid-template-columns: 1fr; margin-top: 38px; }
    .rail-project-method-grid article,
    .rail-project-method-grid article:first-child { display: grid; grid-template-columns: 50px 1fr; min-height: 0; padding: 22px 8px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.15); border-left: 0; }
    .rail-project-method-grid article > div { margin-top: 0; }
    .rail-project-detail-footer-row { grid-template-columns: 1fr; gap: 26px; }
    .rail-project-detail-footer-row > div { padding: 25px 0 0; border-top: 1px solid rgba(255,255,255,.28); border-left: 0; }
    .rail-project-contact { width: fit-content; }
}

@media (max-width: 520px) {
    .rail-project-card-media,
    .rail-project-card.is-featured .rail-project-card-media { min-height: 235px; }
    .rail-project-card-body { min-height: 0; }
    .rail-project-card-meta { display: grid; }
    .rail-project-detail-hero { min-height: 760px; }
    .rail-project-detail-meta > div { padding: 16px 13px; }
    .rail-project-detail-meta strong { font-size: 11px; }
    .rail-project-detail-meta small { font-size: 8px; }
}

/* Uzay Ray construction service */
.construction-rail-hero {
    min-height: clamp(590px, 61vw, 740px);
}

.construction-rail-hero > img {
    object-position: center center;
}

.construction-rail-hero .inner-rail-hero-shade {
    background:
        linear-gradient(90deg, rgba(3, 12, 25, .97) 0%, rgba(3, 13, 27, .84) 38%, rgba(4, 16, 31, .25) 72%, rgba(3, 10, 20, .06) 100%),
        linear-gradient(0deg, rgba(2, 9, 18, .8), transparent 58%);
}

.construction-page .inner-rail-hero-content {
    width: min(1210px, calc(100% - 32px));
}

.construction-intro {
    padding: clamp(82px, 10vw, 138px) 0;
    background: #f3f6fa;
}

.construction-intro-grid {
    display: grid;
    grid-template-columns: minmax(270px, .68fr) minmax(0, 1.32fr);
    gap: clamp(58px, 9vw, 138px);
    align-items: start;
}

.construction-discipline-card {
    position: relative;
    min-height: 410px;
    padding: 34px;
    overflow: hidden;
    background: linear-gradient(145deg, #071526, #0a2847 74%, #0879ef);
    color: #fff;
    box-shadow: 0 28px 64px rgba(7, 21, 38, .19);
}

.construction-discipline-card::before {
    position: absolute;
    right: -90px;
    bottom: -105px;
    width: 290px;
    height: 290px;
    border: 1px solid rgba(86, 176, 255, .3);
    border-radius: 50%;
    box-shadow: 0 0 0 42px rgba(86, 176, 255, .07), 0 0 0 84px rgba(86, 176, 255, .035);
    content: "";
}

.construction-discipline-card > span,
.construction-discipline-card > small {
    position: relative;
    z-index: 1;
    display: block;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.construction-discipline-card > span { color: #62b5ff; }
.construction-discipline-card > small { position: absolute; bottom: 34px; color: rgba(255,255,255,.58); }

.construction-discipline-card > strong {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 65px;
    color: #fff;
    font-size: 126px;
    font-weight: 500;
    line-height: .8;
    letter-spacing: -.1em;
}

.construction-discipline-card > div {
    position: absolute;
    top: 30px;
    right: 28px;
    display: grid;
    grid-template-columns: repeat(4, 1px);
    gap: 7px;
    height: 110px;
}

.construction-discipline-card > div i {
    background: linear-gradient(transparent, rgba(97,181,255,.56));
}

.construction-intro article {
    padding-top: 9px;
}

.construction-intro article h2,
.construction-scopes .rail-section-head h2,
.construction-delivery h2 {
    max-width: 800px;
    margin: 16px 0 24px;
    color: #071526;
    font-size: clamp(37px, 4.5vw, 62px);
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -.05em;
}

.construction-intro article p {
    max-width: 780px;
    margin: 0;
    color: #5e6d7f;
    font-size: clamp(15px, 1.5vw, 18px);
    line-height: 1.82;
}

.construction-intro article > a {
    display: inline-flex;
    align-items: center;
    gap: 22px;
    margin-top: 34px;
    padding-bottom: 9px;
    border-bottom: 1px solid #9bc9f5;
    color: #0879ef;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-decoration: none;
    text-transform: uppercase;
}

.construction-intro article > a b { font-size: 15px; }

.construction-scopes {
    padding: clamp(84px, 10vw, 142px) 0;
    background: #fff;
}

.construction-scope-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: clamp(46px, 6vw, 76px);
    border-top: 1px solid #d9e2ec;
    border-bottom: 1px solid #d9e2ec;
}

.construction-scope-grid article {
    position: relative;
    min-height: 365px;
    padding: 28px;
    overflow: hidden;
    border-right: 1px solid #d9e2ec;
    transition: background .35s ease, transform .35s ease, box-shadow .35s ease;
}

.construction-scope-grid article:first-child { border-left: 1px solid #d9e2ec; }

.construction-scope-grid article:hover {
    z-index: 1;
    background: #0879ef;
    color: #fff;
    transform: translateY(-6px);
    box-shadow: 0 24px 52px rgba(8, 121, 239, .22);
}

.construction-scope-grid article > span {
    color: #8a98a8;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
}

.construction-scope-grid article > i {
    display: block;
    width: 44px;
    height: 3px;
    margin-top: 56px;
    background: #0879ef;
    transform: skewX(-32deg);
}

.construction-scope-grid h3 {
    margin: 30px 0 18px;
    color: #071526;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -.025em;
}

.construction-scope-grid p {
    margin: 0;
    color: #697789;
    font-size: 13px;
    line-height: 1.75;
}

.construction-scope-grid article:hover > span,
.construction-scope-grid article:hover p { color: rgba(255,255,255,.72); }
.construction-scope-grid article:hover > i { background: #fff; }
.construction-scope-grid article:hover h3 { color: #fff; }

.construction-delivery {
    position: relative;
    overflow: hidden;
    padding: clamp(84px, 10vw, 142px) 0;
    background:
        radial-gradient(circle at 88% 12%, rgba(46, 145, 238, .16), transparent 28%),
        linear-gradient(145deg, #06111f 0%, #081b2e 100%);
    color: #fff;
}

.construction-delivery::before {
    position: absolute;
    top: -190px;
    right: -120px;
    width: 460px;
    height: 460px;
    border: 1px solid rgba(91, 174, 251, .13);
    border-radius: 50%;
    box-shadow: 0 0 0 70px rgba(91, 174, 251, .025), 0 0 0 140px rgba(91, 174, 251, .018);
    content: "";
    pointer-events: none;
}

.construction-delivery-grid {
    position: relative;
    z-index: 1;
}

.construction-delivery-grid > header {
    display: grid;
    grid-template-columns: 160px minmax(0, 1.25fr) minmax(280px, .65fr);
    gap: clamp(30px, 5vw, 72px);
    align-items: end;
    padding-bottom: clamp(42px, 5vw, 64px);
    border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.construction-delivery-grid > header .rail-section-kicker {
    align-self: start;
    padding-top: 8px;
}

.construction-delivery h2 {
    max-width: 720px;
    margin: 0;
    color: #fff;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1.06;
}

.construction-delivery header > p {
    max-width: 390px;
    margin: 0 0 4px;
    color: rgba(222,233,245,.67);
    font-size: 14px;
    line-height: 1.75;
}

.construction-delivery-steps {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 32px;
}

.construction-delivery-steps article {
    position: relative;
    display: flex;
    min-height: 238px;
    flex-direction: column;
    padding: 26px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.13);
    background: rgba(255,255,255,.045);
    transition: border-color .3s ease, background .3s ease, transform .3s ease;
}

.construction-delivery-steps article::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, #1992ff 0 34%, rgba(25,146,255,.12) 34% 100%);
    content: "";
}

.construction-delivery-steps article::after {
    position: absolute;
    top: 64px;
    right: 25px;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(85,173,255,.24);
    border-radius: 50%;
    content: "";
}

.construction-delivery-steps article:hover {
    border-color: rgba(85,173,255,.45);
    background: rgba(20,108,191,.16);
    transform: translateY(-5px);
}

.construction-delivery-steps article > span {
    color: #55adff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
}

.construction-delivery-steps article > div {
    display: block;
    margin-top: auto;
}

.construction-delivery-steps strong {
    display: block;
    color: #fff;
    font-size: clamp(18px, 1.7vw, 22px);
    font-weight: 600;
    line-height: 1.2;
}

.construction-delivery-steps small {
    display: block;
    max-width: 230px;
    margin-top: 12px;
    color: rgba(222,233,245,.58);
    font-size: 12px;
    line-height: 1.6;
    text-align: left;
}

.construction-standard {
    position: relative;
    overflow: hidden;
    padding: clamp(80px, 10vw, 136px) 0;
    background: #eef4fa;
}

.construction-standard::before {
    position: absolute;
    top: -170px;
    right: -120px;
    width: 540px;
    height: 540px;
    border: 1px solid rgba(8,121,239,.13);
    border-radius: 50%;
    box-shadow: 0 0 0 72px rgba(8,121,239,.035), 0 0 0 144px rgba(8,121,239,.022);
    content: "";
}

.construction-standard-row {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr) minmax(260px, .55fr);
    gap: clamp(38px, 6vw, 88px);
    align-items: end;
}

.construction-standard-row > span {
    align-self: start;
    color: #0879ef;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .14em;
}

.construction-standard-row h2 {
    margin: 0;
    color: #071526;
    font-size: clamp(38px, 4.7vw, 64px);
    font-weight: 600;
    line-height: 1.04;
    letter-spacing: -.05em;
}

.construction-standard-row h2 em { color: #0879ef; font-style: normal; }

.construction-standard-row p {
    margin: 0 0 5px;
    color: #5f6e80;
    font-size: 14px;
    line-height: 1.75;
}

@media (max-width: 1080px) {
    .construction-intro-grid { grid-template-columns: minmax(240px, .6fr) minmax(0, 1.4fr); gap: 60px; }
    .construction-scope-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .construction-scope-grid article:nth-child(-n+2) { border-bottom: 1px solid #d9e2ec; }
    .construction-delivery-grid { grid-template-columns: 1fr; }
    .construction-delivery-grid > header { grid-template-columns: 140px minmax(0, 1fr); }
    .construction-delivery-grid > header > p { grid-column: 2; }
    .construction-delivery-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .construction-standard-row { grid-template-columns: 150px minmax(0, 1fr); }
    .construction-standard-row p { grid-column: 2; }
}

@media (max-width: 820px) {
    body.construction-page { overflow-x: hidden; }
    .construction-rail-hero { min-height: 640px; }
    .construction-rail-hero > img { object-position: 64% center; }
    .construction-page .inner-rail-hero-content {
        box-sizing: border-box;
        width: 100vw;
        max-width: 100vw;
        margin: 0;
        padding-right: 16px;
        padding-left: 16px;
    }
    .construction-page .construction-intro > .container,
    .construction-page .construction-scopes > .container,
    .construction-page .construction-delivery > .container,
    .construction-page .construction-standard > .container,
    .construction-page .rail-inner-cta > .container {
        width: calc(100vw - 32px);
        max-width: calc(100vw - 32px);
    }
    .construction-intro { padding: 72px 0; }
    .construction-intro-grid { grid-template-columns: 1fr; gap: 46px; }
    .construction-discipline-card { min-height: 250px; }
    .construction-discipline-card > strong { margin-top: 42px; font-size: 88px; }
    .construction-intro article h2,
    .construction-scopes .rail-section-head h2,
    .construction-delivery h2 { font-size: clamp(32px, 10vw, 45px); overflow-wrap: anywhere; }
    .construction-scopes { padding: 72px 0; }
    .construction-scope-grid { grid-template-columns: 1fr; margin-top: 40px; }
    .construction-scope-grid article,
    .construction-scope-grid article:first-child { min-height: 270px; border-right: 1px solid #d9e2ec; border-bottom: 1px solid #d9e2ec; border-left: 1px solid #d9e2ec; }
    .construction-scope-grid article > i { margin-top: 35px; }
    .construction-delivery { padding: 72px 0; }
    .construction-delivery-grid { gap: 44px; }
    .construction-delivery-grid > header { display: block; }
    .construction-delivery-grid > header .rail-section-kicker { padding-top: 0; }
    .construction-delivery-grid > header h2 { margin-top: 18px; }
    .construction-delivery-grid > header > p { margin-top: 20px; }
    .construction-delivery-steps { grid-template-columns: 1fr; gap: 12px; }
    .construction-delivery-steps article { min-height: 205px; }
    .construction-delivery-steps article > div { display: block; }
    .construction-delivery-steps small { margin-top: 7px; text-align: left; }
    .construction-standard { padding: 72px 0; }
    .construction-standard-row { grid-template-columns: 1fr; gap: 26px; }
    .construction-standard-row p { grid-column: auto; }
}

@media (max-width: 520px) {
    .construction-rail-hero { min-height: 650px; }
    .construction-discipline-card { min-height: 220px; padding: 26px; }
    .construction-discipline-card > small { bottom: 26px; }
    .construction-scope-grid article { min-height: 245px; padding: 24px; }
}

/* Compact, consistent inner-page heroes. The home hero is intentionally excluded. */
.inner-rail-hero,
.inner-rail-hero-contact,
.inner-rail-hero-projects,
.construction-rail-hero {
    height: 320px;
    min-height: 320px;
    align-items: center;
}

.inner-rail-hero-content,
.projects-page .inner-rail-hero-content,
.construction-page .inner-rail-hero-content {
    box-sizing: border-box;
    padding-top: 92px;
    padding-bottom: 24px;
}

.inner-rail-hero h1 {
    max-width: 1000px;
    margin: 0;
    font-size: clamp(42px, 5vw, 66px);
    font-weight: 600;
    line-height: 1.04;
    letter-spacing: -.045em;
}

@media (max-width: 820px) {
    .inner-rail-hero,
    .inner-rail-hero-contact,
    .inner-rail-hero-projects,
    .construction-rail-hero {
        height: 250px;
        min-height: 250px;
    }

    .inner-rail-hero-content,
    .projects-page .inner-rail-hero-content,
    .construction-page .inner-rail-hero-content {
        padding-top: 78px;
        padding-bottom: 18px;
    }

    .inner-rail-hero h1 {
        font-size: clamp(34px, 9vw, 48px);
        line-height: 1.08;
    }
}

@media (max-width: 520px) {
    .inner-rail-hero,
    .inner-rail-hero-contact,
    .inner-rail-hero-projects,
    .construction-rail-hero {
        height: 220px;
        min-height: 220px;
    }

    .inner-rail-hero h1 {
        font-size: clamp(30px, 9.5vw, 40px);
        letter-spacing: -.035em;
    }
}

/* Homepage project rail */
.home-projects-section {
    padding: clamp(76px, 8vw, 112px) 0 clamp(82px, 9vw, 126px);
    overflow: hidden;
    background: linear-gradient(135deg, #f2f4fb 0%, #e9edf9 100%);
}

.home-projects-section .home-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 36px;
    align-items: end;
    margin-bottom: 42px;
}

.home-projects-section .home-section-title h2 {
    max-width: 900px;
    margin-bottom: 0;
    color: #10243f;
    font-size: clamp(38px, 4vw, 58px);
    line-height: 1.04;
    white-space: normal;
}

.home-project-head-actions {
    display: flex;
    align-items: center;
    gap: 18px;
}

.home-project-all-link {
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(16, 36, 63, .3);
    color: #10243f;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
}

.home-project-controls {
    display: flex;
    gap: 2px;
    padding: 5px;
    border-radius: 999px;
    background: #102746;
    box-shadow: 0 12px 30px rgba(16, 39, 70, .18);
}

.home-project-controls button {
    display: grid;
    width: 40px;
    height: 40px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    cursor: pointer;
    transition: background .2s ease, opacity .2s ease;
}

.home-project-controls button:hover:not(:disabled) {
    background: rgba(255, 255, 255, .12);
}

.home-project-controls button:disabled {
    opacity: .32;
    cursor: default;
}

.home-project-controls svg {
    width: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.home-project-carousel {
    width: 100vw;
    margin-left: calc((100vw - 100%) / -2);
    overflow: hidden;
}

.home-projects-section .home-project-grid {
    display: grid;
    grid-auto-columns: clamp(290px, 23vw, 380px);
    grid-auto-flow: column;
    grid-template-columns: none;
    gap: 18px;
    padding: 0 18px 18px 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
}

.home-projects-section .home-project-grid::-webkit-scrollbar {
    display: none;
}

.home-projects-section .home-project-card,
.home-projects-section .home-project-card:first-child,
.home-projects-section .home-project-card:not(:first-child) {
    display: block;
    min-height: 0;
    overflow: hidden;
    border: 0;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(37, 54, 86, .08);
    scroll-snap-align: start;
    transition: box-shadow .3s ease, transform .3s ease;
}

.home-projects-section .home-project-card:hover {
    border-color: transparent;
    box-shadow: 0 24px 48px rgba(37, 54, 86, .15);
    transform: translateY(-5px);
}

.home-project-card > a {
    display: grid;
    height: 100%;
    grid-template-rows: auto minmax(112px, 1fr);
}

.home-projects-section .home-project-card figure {
    aspect-ratio: 1.16 / 1;
    overflow: hidden;
}

.home-projects-section .home-project-overlay {
    background: linear-gradient(0deg, rgba(8, 23, 43, .18), transparent 55%);
}

.home-projects-section .home-project-content,
.home-projects-section .home-project-card:first-child .home-project-content {
    position: relative;
    display: block;
    padding: 22px 62px 24px 26px;
}

.home-projects-section .home-project-content > span {
    padding: 0;
    background: transparent;
    color: #6d7d91;
    font-size: 9px;
    letter-spacing: .11em;
}

.home-projects-section .home-project-content h3,
.home-projects-section .home-project-card:first-child h3 {
    display: -webkit-box;
    margin: 10px 0 0;
    overflow: hidden;
    color: #10243f;
    font-size: clamp(18px, 1.55vw, 22px);
    font-weight: 500;
    line-height: 1.18;
    letter-spacing: -.03em;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-project-content > i {
    position: absolute;
    right: 22px;
    bottom: 24px;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    background: #edf2f8;
    color: #102746;
    font-size: 13px;
    font-style: normal;
    transition: background .25s ease, color .25s ease, transform .25s ease;
}

.home-project-card:hover .home-project-content > i {
    background: #102746;
    color: #fff;
    transform: translate(2px, -2px);
}

@media (max-width: 820px) {
    .home-projects-section .home-section-head {
        grid-template-columns: 1fr;
        gap: 26px;
        align-items: start;
        margin-bottom: 32px;
    }

    .home-project-head-actions {
        width: 100%;
        justify-content: space-between;
    }

    .home-project-carousel {
        width: 100vw;
    }

    .home-projects-section .home-project-grid {
        grid-auto-columns: min(82vw, 340px);
        gap: 14px;
        padding-bottom: 12px;
    }

    .home-projects-section .home-project-card figure {
        aspect-ratio: 1.18 / 1;
    }
}

@media (max-width: 520px) {
    .home-projects-section {
        padding: 66px 0 76px;
    }

    .home-projects-section .home-section-title h2 {
        font-size: clamp(34px, 10vw, 44px);
    }

    .home-project-all-link {
        max-width: 125px;
        font-size: 10px;
    }

    .home-project-controls button {
        width: 37px;
        height: 37px;
    }

    .home-projects-section .home-project-content,
    .home-projects-section .home-project-card:first-child .home-project-content {
        padding: 20px 56px 22px 22px;
    }
}

/* Homepage rail-focused call to action */
.home-cta-section {
    padding: clamp(72px, 8vw, 108px) 0;
    background: #f4f6f8;
}

.home-cta-inner {
    position: relative;
    display: grid;
    min-height: 410px;
    grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
    gap: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(18, 53, 87, .16);
    border-radius: 26px;
    background: #061525;
    box-shadow: 0 30px 70px rgba(20, 42, 65, .16);
}

.home-cta-inner::before {
    position: absolute;
    bottom: -180px;
    left: -120px;
    z-index: 0;
    width: 420px;
    height: 420px;
    border: 1px solid rgba(53, 155, 255, .14);
    border-radius: 50%;
    box-shadow: 0 0 0 58px rgba(53, 155, 255, .025), 0 0 0 116px rgba(53, 155, 255, .018);
    content: "";
    pointer-events: none;
}

.home-cta-copy {
    position: relative;
    z-index: 2;
    display: flex;
    width: auto;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(42px, 5vw, 70px);
}

.home-cta-copy > span {
    margin-bottom: 20px;
    color: #58afff;
}

.home-cta-copy > span::before {
    background: #58afff;
}

.home-cta-copy h2 {
    max-width: 590px;
    color: #fff;
    font-size: clamp(40px, 4.3vw, 58px);
    line-height: 1.02;
    letter-spacing: -.05em;
}

.home-cta-copy p {
    width: min(540px, 100%);
    margin-top: 22px;
    color: rgba(225, 236, 247, .66);
    font-size: 14px;
    line-height: 1.7;
}

.home-cta-link {
    display: inline-flex;
    width: fit-content;
    min-width: 204px;
    min-height: 58px;
    flex: none;
    gap: 20px;
    margin-top: 32px;
    padding: 0 9px 0 22px;
    border: 0;
    border-radius: 999px;
    background: #168cf4;
    box-shadow: 0 12px 28px rgba(22, 140, 244, .25);
}

.home-cta-link svg {
    width: 40px;
    height: 40px;
    padding: 10px;
    border-radius: 50%;
    background: #fff;
    color: #0c3761;
}

.home-cta-link:hover {
    background: #0879ef;
    box-shadow: 0 16px 34px rgba(8, 121, 239, .34);
    transform: translateY(-3px);
}

.home-cta-visual {
    position: relative;
    min-width: 0;
    min-height: 410px;
    overflow: hidden;
}

.home-cta-visual::before {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, #061525 0%, rgba(6, 21, 37, .62) 15%, transparent 44%),
        linear-gradient(0deg, rgba(4, 15, 27, .58), transparent 55%);
    content: "";
}

.home-cta-visual::after {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    width: 1px;
    background: linear-gradient(transparent, rgba(88, 175, 255, .55), transparent);
    content: "";
}

.home-cta-visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 65% center;
    transition: transform .8s ease;
}

.home-cta-inner:hover .home-cta-visual img {
    transform: scale(1.025);
}

.home-cta-visual > span {
    position: absolute;
    right: 28px;
    bottom: 25px;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, .76);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .15em;
}

.home-cta-visual > span i {
    width: 32px;
    height: 1px;
    background: #58afff;
}

@media (max-width: 900px) {
    .home-cta-inner {
        min-height: 0;
        grid-template-columns: 1fr;
    }

    .home-cta-visual {
        min-height: 280px;
        order: -1;
    }

    .home-cta-visual::before {
        background: linear-gradient(0deg, #061525 0%, rgba(6, 21, 37, .12) 46%, transparent 70%);
    }

    .home-cta-visual::after {
        top: auto;
        right: 0;
        width: auto;
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(88, 175, 255, .55), transparent);
    }

    .home-cta-copy {
        padding: 42px;
    }

    .home-cta-link {
        width: fit-content;
        height: auto;
        min-height: 58px;
        flex: none;
    }
}

@media (max-width: 520px) {
    .home-cta-section {
        padding: 54px 0;
    }

    .home-cta-inner {
        border-radius: 19px;
    }

    .home-cta-visual {
        min-height: 220px;
    }

    .home-cta-copy {
        padding: 34px 24px 38px;
    }

    .home-cta-copy h2 {
        max-width: 100%;
        font-size: clamp(32px, 9.5vw, 38px);
        line-height: 1.06;
        overflow-wrap: anywhere;
    }

    .home-cta-copy p {
        font-size: 13px;
    }

    .home-cta-link {
        width: 100%;
        min-width: 0;
    }
}

/* Construction page — architectural layout v2 */
.construction-page .construction-intro {
    padding: clamp(78px, 9vw, 120px) 0;
    background: #f2f6f8;
}

.construction-page .construction-intro-grid {
    grid-template-columns: minmax(0, 1.06fr) minmax(420px, .94fr);
    gap: clamp(42px, 6vw, 86px);
    align-items: center;
}

.construction-intro-visual {
    position: relative;
    min-width: 0;
    min-height: 510px;
    margin: 0;
    overflow: hidden;
    border-radius: 24px;
    background: #061524;
    box-shadow: 0 24px 56px rgba(6, 31, 48, .17);
}

.construction-intro-visual::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(180deg, rgba(4, 16, 28, .02) 38%, rgba(4, 16, 28, .9));
}

.construction-intro-visual img {
    width: 100%;
    height: 100%;
    min-height: 510px;
    display: block;
    object-fit: cover;
    object-position: 69% center;
    transition: transform .8s ease;
}

.construction-intro-visual:hover img {
    transform: scale(1.025);
}

.construction-intro-visual figcaption {
    position: absolute;
    right: 30px;
    bottom: 29px;
    left: 30px;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    color: #fff;
}

.construction-intro-visual figcaption > span {
    color: #6fbdff;
    font-size: clamp(58px, 6vw, 86px);
    font-weight: 500;
    line-height: .8;
    letter-spacing: -.08em;
}

.construction-intro-visual figcaption div {
    display: grid;
    gap: 5px;
    text-align: right;
}

.construction-intro-visual figcaption strong {
    font-size: 11px;
    letter-spacing: .13em;
}

.construction-intro-visual figcaption small {
    color: rgba(255, 255, 255, .64);
    font-size: 9px;
    letter-spacing: .07em;
}

.construction-page .construction-intro article {
    padding: 0;
}

.construction-page .construction-intro article h2 {
    max-width: 650px;
    margin: 18px 0 25px;
    font-size: clamp(38px, 4.1vw, 57px);
}

.construction-page .construction-intro article p {
    max-width: 620px;
    font-size: 15px;
    line-height: 1.78;
}

.construction-page .construction-intro article > a {
    min-height: 48px;
    gap: 18px;
    margin-top: 30px;
    padding: 0 8px 0 18px;
    border: 1px solid rgba(11, 81, 120, .24);
    border-radius: 999px;
    color: #0b5178;
}

.construction-page .construction-intro article > a b {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #0b5178;
    color: #fff;
}

.construction-page .construction-scopes {
    padding: clamp(78px, 9vw, 120px) 0;
    background: #fff;
}

.construction-page .construction-scopes .rail-section-head {
    margin-bottom: 38px;
}

.construction-page .construction-scopes .rail-section-head h2 {
    max-width: 700px;
    font-size: clamp(36px, 4vw, 56px);
}

.construction-page .construction-scope-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 0;
    border: 0;
}

.construction-page .construction-scope-grid article,
.construction-page .construction-scope-grid article:first-child {
    min-height: 265px;
    display: flex;
    flex-direction: column;
    padding: 30px;
    border: 1px solid #dce5ea;
    border-radius: 20px;
    background: #f5f8fa;
    box-shadow: none;
    color: #071526;
    transform: none;
}

.construction-page .construction-scope-grid article:nth-child(1) {
    border-color: #0b5178;
    background: #0b5178;
    color: #fff;
}

.construction-page .construction-scope-grid article:nth-child(4) {
    background: #eaf2f6;
}

.construction-page .construction-scope-grid article::after {
    position: absolute;
    right: -44px;
    bottom: -62px;
    width: 170px;
    height: 170px;
    border: 1px solid rgba(11, 81, 120, .1);
    border-radius: 50%;
    content: "";
}

.construction-page .construction-scope-grid article:nth-child(1)::after {
    border-color: rgba(255, 255, 255, .14);
}

.construction-page .construction-scope-grid article:hover {
    border-color: #0b5178;
    background: #fff;
    color: #071526;
    transform: translateY(-4px);
    box-shadow: 0 18px 42px rgba(8, 37, 55, .1);
}

.construction-page .construction-scope-grid article:nth-child(1):hover {
    background: #0b5178;
    color: #fff;
}

.construction-scope-grid article > header {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.construction-scope-grid article > header span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(11, 81, 120, .18);
    border-radius: 50%;
    color: #0b5178;
    font-size: 10px;
    font-weight: 800;
}

.construction-scope-grid article:nth-child(1) > header span {
    border-color: rgba(255, 255, 255, .28);
    color: #fff;
}

.construction-scope-grid article > header i {
    position: relative;
    width: 64px;
    height: 34px;
    display: block;
    border-right: 1px solid rgba(11, 81, 120, .28);
    border-bottom: 1px solid rgba(11, 81, 120, .28);
    transform: skewX(-24deg);
}

.construction-scope-grid article:nth-child(1) > header i {
    border-color: rgba(255, 255, 255, .32);
}

.construction-page .construction-scope-grid h3 {
    position: relative;
    z-index: 1;
    margin: auto 0 12px;
    color: inherit;
    font-size: clamp(24px, 2.5vw, 32px);
}

.construction-page .construction-scope-grid p,
.construction-page .construction-scope-grid article:hover p,
.construction-page .construction-scope-grid article:hover h3 {
    position: relative;
    z-index: 1;
    max-width: 460px;
    color: #657384;
}

.construction-page .construction-scope-grid article:nth-child(1) p,
.construction-page .construction-scope-grid article:nth-child(1):hover p,
.construction-page .construction-scope-grid article:nth-child(1):hover h3 {
    color: rgba(255, 255, 255, .72);
}

.construction-page .construction-scope-grid article:nth-child(1) h3 {
    color: #fff;
}

.construction-page .construction-delivery {
    padding: clamp(76px, 9vw, 118px) 0;
    background: #061421;
}

.construction-page .construction-delivery::before {
    display: none;
}

.construction-page .construction-delivery-grid {
    display: grid;
    grid-template-columns: minmax(340px, .86fr) minmax(0, 1.14fr);
    gap: clamp(38px, 6vw, 82px);
    align-items: stretch;
}

.construction-delivery-visual {
    position: relative;
    min-width: 0;
    min-height: 660px;
    margin: 0;
    overflow: hidden;
    border-radius: 22px;
    background: #0b263a;
}

.construction-delivery-visual::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(180deg, transparent 48%, rgba(3, 17, 28, .82));
}

.construction-delivery-visual img {
    width: 100%;
    height: 100%;
    min-height: 660px;
    display: block;
    object-fit: cover;
}

.construction-delivery-visual figcaption {
    position: absolute;
    right: 27px;
    bottom: 26px;
    left: 27px;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: rgba(255, 255, 255, .74);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .13em;
}

.construction-delivery-visual figcaption strong {
    display: flex;
    align-items: center;
    gap: 12px;
}

.construction-delivery-visual figcaption strong::before {
    width: 46px;
    height: 1px;
    background: #59afff;
    content: "";
}

.construction-delivery-content {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.construction-page .construction-delivery-content > header {
    padding: 8px 0 30px;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.construction-page .construction-delivery-content > header h2 {
    max-width: 570px;
    margin: 17px 0 18px;
    font-size: clamp(38px, 4.1vw, 56px);
}

.construction-page .construction-delivery-content > header p {
    max-width: 590px;
    margin: 0;
}

.construction-page .construction-delivery-steps {
    grid-template-columns: 1fr;
    gap: 0;
    margin-top: auto;
}

.construction-page .construction-delivery-steps article {
    min-height: 0;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 23px 0;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    background: transparent;
    transform: none;
}

.construction-page .construction-delivery-steps article::before,
.construction-page .construction-delivery-steps article::after {
    display: none;
}

.construction-page .construction-delivery-steps article:hover {
    padding-left: 12px;
    border-color: rgba(89, 175, 255, .48);
    background: rgba(11, 81, 120, .18);
    transform: none;
}

.construction-page .construction-delivery-steps article > span {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(89, 175, 255, .32);
    border-radius: 50%;
    font-size: 9px;
}

.construction-page .construction-delivery-steps article > div {
    display: grid;
    grid-template-columns: minmax(160px, .6fr) minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    margin: 0;
}

.construction-page .construction-delivery-steps strong {
    font-size: 18px;
}

.construction-page .construction-delivery-steps small {
    max-width: none;
    margin: 0;
}

.construction-page .construction-standard {
    padding: clamp(70px, 8vw, 104px) 0;
    background: #eef4f7;
}

.construction-page .construction-standard::before {
    display: none;
}

.construction-page .construction-standard-row {
    min-height: 330px;
    grid-template-columns: 150px minmax(0, 1fr) minmax(240px, .48fr);
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
    padding: clamp(38px, 5vw, 68px);
    overflow: hidden;
    border-radius: 22px;
    background: #0b5178;
    color: #fff;
    box-shadow: 0 24px 52px rgba(6, 42, 64, .16);
}

.construction-page .construction-standard-row::after {
    position: absolute;
    right: -85px;
    bottom: -125px;
    width: 340px;
    height: 340px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 55px rgba(255, 255, 255, .035), 0 0 0 110px rgba(255, 255, 255, .02);
    content: "";
}

.construction-page .construction-standard-row > span,
.construction-page .construction-standard-row h2,
.construction-page .construction-standard-row p {
    position: relative;
    z-index: 1;
    color: #fff;
}

.construction-page .construction-standard-row h2 {
    font-size: clamp(36px, 4vw, 54px);
}

.construction-page .construction-standard-row h2 em {
    color: #8fceff;
}

.construction-page .construction-standard-row p {
    color: rgba(255, 255, 255, .7);
}

@media (max-width: 1080px) {
    .construction-page .construction-intro-grid {
        grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr);
        gap: 44px;
    }

    .construction-page .construction-delivery-grid {
        grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr);
        gap: 44px;
    }

    .construction-page .construction-standard-row {
        grid-template-columns: 120px minmax(0, 1fr);
    }

    .construction-page .construction-standard-row p {
        grid-column: 2;
    }
}

@media (max-width: 820px) {
    .construction-page .construction-intro-grid,
    .construction-page .construction-delivery-grid {
        grid-template-columns: 1fr;
    }

    .construction-intro-visual,
    .construction-intro-visual img {
        min-height: 430px;
    }

    .construction-page .construction-scope-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .construction-page .construction-scope-grid article,
    .construction-page .construction-scope-grid article:first-child {
        min-height: 250px;
    }

    .construction-delivery-visual,
    .construction-delivery-visual img {
        min-height: 480px;
    }

    .construction-page .construction-delivery-content > header {
        padding-top: 0;
    }

    .construction-page .construction-delivery-steps {
        margin-top: 20px;
    }
}

@media (max-width: 560px) {
    .construction-intro-visual,
    .construction-intro-visual img {
        min-height: 330px;
    }

    .construction-intro-visual figcaption {
        right: 20px;
        bottom: 20px;
        left: 20px;
    }

    .construction-page .construction-intro article h2,
    .construction-page .construction-scopes .rail-section-head h2,
    .construction-page .construction-delivery-content > header h2 {
        font-size: clamp(31px, 9vw, 39px);
    }

    .construction-page .construction-scope-grid {
        grid-template-columns: 1fr;
    }

    .construction-page .construction-scope-grid article,
    .construction-page .construction-scope-grid article:first-child {
        min-height: 230px;
        padding: 24px;
    }

    .construction-delivery-visual,
    .construction-delivery-visual img {
        min-height: 390px;
    }

    .construction-page .construction-delivery-steps article {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 13px;
    }

    .construction-page .construction-delivery-steps article > div {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .construction-page .construction-standard-row {
        min-height: 370px;
        grid-template-columns: 1fr;
        gap: 22px;
        align-content: center;
        padding: 34px 26px;
    }

    .construction-page .construction-standard-row p {
        grid-column: auto;
    }
}

/* Infrastructure service pages */
.infrastructure-service-page {
    --infra-accent: #f1a126;
    --infra-accent-rgb: 241, 161, 38;
    background: #f3f6fa;
}

.infrastructure-service-marine {
    --infra-accent: #38bfe8;
    --infra-accent-rgb: 56, 191, 232;
}

.infrastructure-service-rail {
    --infra-accent: #4d9ff5;
    --infra-accent-rgb: 77, 159, 245;
}

.infrastructure-service-page { overflow-x: hidden; }

.infrastructure-service-page .inner-rail-hero-content {
    width: min(1210px, calc(100% - 32px));
}

.infrastructure-hero {
    position: relative;
    min-height: clamp(650px, 78vh, 830px);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    isolation: isolate;
    background: #06111f;
    color: #fff;
}

.infrastructure-hero > img,
.infrastructure-visual-band > img {
    position: absolute;
    inset: 0;
    z-index: -3;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.infrastructure-hero-shade {
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(3, 11, 22, .96) 0%, rgba(4, 15, 29, .8) 42%, rgba(4, 15, 29, .22) 78%, rgba(3, 11, 22, .12) 100%),
        linear-gradient(0deg, rgba(2, 8, 17, .78), transparent 56%);
}

.infrastructure-hero::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    height: 4px;
    background: linear-gradient(90deg, var(--infra-accent) 0 36%, rgba(var(--infra-accent-rgb), .2) 36% 100%);
    content: "";
}

.infrastructure-hero-lines {
    position: absolute;
    inset: 0 max(20px, calc((100vw - 1180px) / 2));
    z-index: -1;
    border-right: 1px solid rgba(255, 255, 255, .11);
    border-left: 1px solid rgba(255, 255, 255, .11);
    pointer-events: none;
}

.infrastructure-hero-lines::after {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 66.66%;
    width: 1px;
    background: rgba(255, 255, 255, .09);
    content: "";
}

.infrastructure-hero-content {
    padding-top: 170px;
    padding-bottom: clamp(70px, 8vw, 105px);
}

.infrastructure-back {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: clamp(80px, 11vh, 130px);
    color: rgba(255, 255, 255, .72);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.infrastructure-back span { color: var(--infra-accent); font-size: 18px; }
.infrastructure-hero-copy { max-width: 930px; }

.infrastructure-hero-index,
.infrastructure-kicker {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--infra-accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.infrastructure-hero h1 {
    max-width: 1000px;
    margin: 18px 0 24px;
    color: #fff;
    font-size: clamp(58px, 8.5vw, 112px);
    font-weight: 600;
    line-height: .91;
    letter-spacing: -.065em;
}

.infrastructure-hero-copy > p {
    max-width: 720px;
    margin: 0;
    color: rgba(234, 241, 249, .78);
    font-size: clamp(15px, 1.35vw, 18px);
    line-height: 1.72;
}

.infrastructure-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 29px;
}

.infrastructure-hero-tags span {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(5, 16, 30, .4);
    color: rgba(255, 255, 255, .84);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .04em;
    backdrop-filter: blur(8px);
}

.infrastructure-intro {
    padding: clamp(80px, 10vw, 135px) 0;
    background: #f3f6fa;
}

.infrastructure-intro-grid {
    display: grid;
    grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr);
    gap: clamp(52px, 9vw, 130px);
    align-items: center;
}

.infrastructure-intro-mark {
    position: relative;
    min-height: 390px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 34px;
    overflow: hidden;
    background: linear-gradient(145deg, #06111f, #0b2949);
    color: #fff;
    box-shadow: 0 28px 70px rgba(7, 21, 38, .18);
}

.infrastructure-intro-mark::before {
    position: absolute;
    right: -70px;
    bottom: -70px;
    width: 230px;
    height: 230px;
    border: 1px solid rgba(var(--infra-accent-rgb), .45);
    border-radius: 50%;
    box-shadow: 0 0 0 34px rgba(var(--infra-accent-rgb), .06), 0 0 0 68px rgba(var(--infra-accent-rgb), .035);
    content: "";
}

.infrastructure-intro-mark small,
.infrastructure-intro-mark span {
    position: relative;
    z-index: 1;
    color: rgba(255, 255, 255, .62);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
}

.infrastructure-intro-mark strong {
    position: relative;
    z-index: 1;
    color: var(--infra-accent);
    font-size: clamp(100px, 10vw, 145px);
    font-weight: 500;
    line-height: .72;
    letter-spacing: -.1em;
}

.infrastructure-intro-copy .infrastructure-kicker i,
.infrastructure-section-head .infrastructure-kicker i,
.infrastructure-process-head .infrastructure-kicker i {
    width: 32px;
    height: 1px;
    background: currentColor;
}

.infrastructure-intro-copy h2 {
    max-width: 820px;
    margin: 20px 0 24px;
    color: #091829;
    font-size: clamp(38px, 5.1vw, 66px);
    font-weight: 600;
    line-height: 1.04;
    letter-spacing: -.055em;
}

.infrastructure-intro-copy p {
    max-width: 760px;
    margin: 0;
    color: #677587;
    font-size: 16px;
    line-height: 1.82;
}

.infrastructure-scope {
    padding: clamp(85px, 10vw, 135px) 0;
    overflow: hidden;
    background: #06111f;
    color: #fff;
}

.infrastructure-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, .62fr);
    gap: 70px;
    align-items: end;
    padding-bottom: 45px;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.infrastructure-section-head h2,
.infrastructure-process-head h2 {
    max-width: 720px;
    margin: 18px 0 0;
    color: #fff;
    font-size: clamp(38px, 5vw, 64px);
    font-weight: 600;
    line-height: 1.04;
    letter-spacing: -.05em;
}

.infrastructure-section-head > p {
    margin: 0;
    color: rgba(226, 235, 245, .58);
    font-size: 14px;
    line-height: 1.75;
}

.infrastructure-scope-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.infrastructure-scope-grid article {
    min-height: 330px;
    display: flex;
    flex-direction: column;
    padding: 30px;
    border-right: 1px solid rgba(255, 255, 255, .14);
    transition: background .3s ease, transform .3s ease;
}

.infrastructure-scope-grid article:first-child { border-left: 1px solid rgba(255, 255, 255, .14); }
.infrastructure-scope-grid article:hover { z-index: 1; background: rgba(var(--infra-accent-rgb), .12); transform: translateY(-6px); }
.infrastructure-scope-grid article header { display: flex; align-items: center; justify-content: space-between; color: var(--infra-accent); font-size: 11px; font-weight: 800; }
.infrastructure-scope-grid article header i { font-size: 20px; font-style: normal; font-weight: 400; }
.infrastructure-scope-grid h3 { margin: auto 0 16px; color: #fff; font-size: 24px; font-weight: 600; line-height: 1.25; }
.infrastructure-scope-grid small { color: rgba(255, 255, 255, .42); font-size: 9px; font-weight: 800; letter-spacing: .11em; }

.infrastructure-process {
    padding: clamp(85px, 10vw, 135px) 0;
    background: #fff;
}

.infrastructure-process-head {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 55px;
    align-items: start;
}

.infrastructure-process-head h2 { max-width: 880px; margin-top: 0; color: #091829; }
.infrastructure-process-head div > p { max-width: 700px; margin: 24px 0 0; color: #687687; line-height: 1.75; }

.infrastructure-process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 65px;
    border-top: 1px solid #dce3eb;
}

.infrastructure-process-grid article {
    min-height: 250px;
    padding: 28px;
    border-right: 1px solid #dce3eb;
}

.infrastructure-process-grid article:first-child { border-left: 1px solid #dce3eb; }
.infrastructure-process-grid article > span { display: block; margin-bottom: 62px; color: var(--infra-accent); font-size: 11px; font-weight: 800; }
.infrastructure-process-grid strong { display: block; margin-bottom: 12px; color: #101d2e; font-size: 20px; }
.infrastructure-process-grid p { margin: 0; color: #707d8c; font-size: 13px; line-height: 1.65; }

.infrastructure-visual-band {
    position: relative;
    min-height: clamp(520px, 58vw, 680px);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    isolation: isolate;
    color: #fff;
}

.infrastructure-visual-band > img { object-position: center; transform: scale(1.015); }
.infrastructure-visual-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(3, 11, 22, .94), rgba(3, 13, 26, .54) 58%, rgba(3, 11, 22, .2)); }
.infrastructure-visual-content { padding-bottom: clamp(60px, 8vw, 95px); }
.infrastructure-visual-content > span { color: var(--infra-accent); font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.infrastructure-visual-content h2 { margin: 17px 0 28px; color: #fff; font-size: clamp(40px, 6vw, 74px); font-weight: 600; line-height: 1; letter-spacing: -.055em; }
.infrastructure-visual-content h2 em { color: var(--infra-accent); font-style: normal; }
.infrastructure-visual-content a,
.infrastructure-cta-row > a { display: inline-flex; min-width: 195px; min-height: 56px; align-items: center; justify-content: space-between; gap: 25px; padding: 0 10px 0 21px; border-radius: 999px; background: #fff; color: #0b1b2d; font-size: 12px; font-weight: 800; }
.infrastructure-visual-content a b,
.infrastructure-cta-row > a b { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: #06111f; color: #fff; }

.infrastructure-cta { padding: 58px 0; background: var(--infra-accent); }
.infrastructure-cta-row { display: flex; min-height: 210px; align-items: center; justify-content: space-between; gap: 50px; }
.infrastructure-cta-row span { display: block; margin-bottom: 11px; color: rgba(5, 20, 35, .62); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.infrastructure-cta-row h2 { max-width: 770px; margin: 0; color: #071526; font-size: clamp(31px, 4vw, 49px); font-weight: 600; line-height: 1.08; letter-spacing: -.045em; }

.services-catalog-head {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 55px;
    margin-bottom: 55px;
    padding-bottom: 38px;
    border-bottom: 1px solid #dce3eb;
}

.services-catalog-head > span { color: #0879ef; font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.services-catalog-head > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); gap: 50px; align-items: end; }
.services-catalog-head h2 { margin: 0; color: #091829; font-size: clamp(34px, 4.5vw, 58px); font-weight: 600; line-height: 1.03; letter-spacing: -.05em; }
.services-catalog-head p { margin: 0; color: #687687; font-size: 14px; line-height: 1.7; }
.services-index-page .service-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.services-index-page .service-catalog-card { min-height: 390px; padding: 0 28px 28px; border-radius: 0; }
.services-index-page .service-catalog-media { height: 210px; margin: 0 -28px 25px; }
.services-index-page .service-catalog-card h2 { color: #101d2e; font-size: 25px; }
.services-index-page .service-catalog-card p { font-size: 13px; }
.nav-dropdown-services .mega-links { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1020px) {
    .infrastructure-scope-grid,
    .infrastructure-process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .infrastructure-scope-grid article:nth-child(-n+2),
    .infrastructure-process-grid article:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, .14); }

    .infrastructure-process-grid article:nth-child(-n+2) { border-bottom-color: #dce3eb; }

    .infrastructure-scope-grid article:nth-child(3),
    .infrastructure-process-grid article:nth-child(3) { border-left: 1px solid rgba(255, 255, 255, .14); }

    .infrastructure-process-grid article:nth-child(3) { border-left-color: #dce3eb; }

    .services-catalog-head,
    .infrastructure-process-head { grid-template-columns: 1fr; gap: 25px; }

    .services-catalog-head > div { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 820px) {
    .nav-dropdown-services .mega-links { grid-template-columns: 1fr; }
    .infrastructure-hero { min-height: 700px; }
    .infrastructure-hero > img { object-position: 62% center; }
    .infrastructure-hero-shade { background: linear-gradient(90deg, rgba(3, 11, 22, .96), rgba(4, 15, 29, .64) 78%, rgba(3, 11, 22, .42)); }
    .infrastructure-hero-content { padding-top: 125px; padding-bottom: 55px; }
    .infrastructure-back { margin-bottom: 105px; }
    .infrastructure-hero h1 { font-size: clamp(48px, 14vw, 68px); }
    .infrastructure-hero-copy > p { font-size: 14px; }
    .infrastructure-intro-grid { grid-template-columns: 1fr; gap: 46px; }
    .infrastructure-intro-mark { min-height: 300px; }
    .infrastructure-intro-copy h2 { font-size: clamp(35px, 10vw, 48px); }
    .infrastructure-section-head { grid-template-columns: 1fr; gap: 22px; }

    .infrastructure-scope-grid,
    .infrastructure-process-grid { grid-template-columns: 1fr; }

    .infrastructure-scope-grid article,
    .infrastructure-scope-grid article:first-child,
    .infrastructure-scope-grid article:nth-child(3) {
        min-height: 190px;
        border-right: 1px solid rgba(255, 255, 255, .14);
        border-bottom: 1px solid rgba(255, 255, 255, .14);
        border-left: 1px solid rgba(255, 255, 255, .14);
    }

    .infrastructure-process-grid article,
    .infrastructure-process-grid article:first-child,
    .infrastructure-process-grid article:nth-child(3) {
        min-height: 0;
        display: grid;
        grid-template-columns: 42px 1fr;
        padding: 24px 10px;
        border-right: 0;
        border-bottom: 1px solid #dce3eb;
        border-left: 0;
    }

    .infrastructure-process-grid article > span { margin-bottom: 0; }
    .infrastructure-scope-grid h3 { margin-top: 55px; }
    .infrastructure-visual-band { min-height: 560px; }
    .infrastructure-visual-band > img { object-position: 62% center; }
    .infrastructure-cta-row { min-height: 260px; align-items: flex-start; flex-direction: column; justify-content: center; }
    .services-index-page .service-catalog { grid-template-columns: 1fr; }
    .services-index-page .service-catalog-card { min-height: 0; }
}

@media (max-width: 560px) {
    .infrastructure-hero-lines { inset-inline: 16px; }
    .infrastructure-hero-tags span:nth-child(n+3) { display: none; }
    .infrastructure-intro-mark { min-height: 270px; padding: 28px; }
    .infrastructure-intro-copy p { font-size: 14px; }
    .infrastructure-section-head h2,
    .infrastructure-process-head h2 { font-size: 36px; }
    .infrastructure-visual-content h2 { font-size: 42px; }
    .services-index-page .service-catalog-media { height: 190px; }
}
