/*
 * WEB-P13C Homepage V3 — scoped to .vc-home-v3 / body.vc-home-v3-page.
 * Does not alter global buttons or inner pages.
 */
body.vc-home-v3-page .ast-article-single,
body.vc-home-v3-page #primary,
body.vc-home-v3-page .site-content .ast-container {
    max-width: none;
    width: 100%;
    padding: 0;
    margin: 0;
}
body.vc-home-v3-page .entry-header,
body.vc-home-v3-page .ast-archive-description {
    display: none;
}
body.vc-home-v3-page .site-content {
    padding-top: 0;
    padding-bottom: 0;
}

.vc-home-v3 {
    color: var(--vc-bx-graphite, #18232d);
    background: #fff;
    overflow-x: hidden;
}
.vc-h3-contain {
    width: min(1200px, calc(100% - 40px));
    margin-inline: auto;
}
.vc-h3-kicker {
    margin: 0 0 12px;
    color: var(--vc-bx-gold, #d9ad22);
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.vc-h3-kicker--gold { color: var(--vc-bx-gold, #d9ad22); }
.vc-h3-display {
    margin: 0 0 20px;
    color: #fff;
    font-size: clamp(2.75rem, 1.05rem + 5vw, 6rem);
    font-weight: 650;
    letter-spacing: -0.046em;
    line-height: 0.92;
    max-width: 11ch;
}
.vc-h3-display--dark { color: var(--vc-bx-navy, #0b1f33); }
.vc-h3-h2 {
    margin: 0 0 12px;
    color: var(--vc-bx-navy, #0b1f33);
    font-size: clamp(1.7rem, 1.15rem + 1.8vw, 2.75rem);
    font-weight: 650;
    letter-spacing: -0.034em;
    line-height: 1.08;
    max-width: 18ch;
}
.vc-h3-h3 {
    margin: 0 0 8px;
    color: var(--vc-bx-navy, #0b1f33);
    font-size: 1.25rem;
    font-weight: 650;
}
.vc-h3-lede,
.vc-h3-body {
    margin: 0 0 22px;
    max-width: 32em;
    font-size: 1.06rem;
    line-height: 1.55;
    color: rgba(255,255,255,.84);
}
.vc-h3-body { color: var(--vc-bx-steel, #4f6475); }
.vc-h3-sectionhead { padding: clamp(48px, 7vw, 88px) 0 28px; }
.vc-h3-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.vc-h3-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    font-weight: 650;
    text-decoration: none;
    letter-spacing: 0.01em;
}
.vc-h3-btn--gold { background: var(--vc-bx-gold, #d9ad22); color: var(--vc-bx-navy, #0b1f33); }
.vc-h3-btn--gold:hover { background: #e8c44a; color: var(--vc-bx-navy, #0b1f33); }
.vc-h3-btn--ghost {
    background: transparent;
    color: #fff;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,.5);
    padding: 0 2px 8px;
    min-height: 44px;
    border-radius: 0;
}
.vc-h3-btn--ghost:hover { border-bottom-color: var(--vc-bx-gold, #d9ad22); color: var(--vc-bx-gold, #d9ad22); }
.vc-h3-btn--navy { background: var(--vc-bx-navy, #0b1f33); color: #fff; }
.vc-h3-textlink {
    color: var(--vc-bx-navy, #0b1f33);
    font-weight: 650;
    text-decoration: none;
    border-bottom: 1px solid var(--vc-bx-gold, #d9ad22);
}
.vc-h3-textlink::after { content: " →"; color: var(--vc-bx-gold, #d9ad22); }
.vc-h3-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vc-h3-ph { display: block; min-height: 280px; background: var(--vc-bx-navy, #0b1f33); }

/* Hero */
.vc-h3-hero {
    position: relative;
    min-height: min(92vh, 920px);
    display: grid;
    align-items: end;
    color: #fff;
    background: #071521;
}
.vc-h3-hero__media,
.vc-h3-hero__slide,
.vc-h3-hero__video,
.vc-h3-hero__wash,
.vc-h3-hero__tech {
    position: absolute;
    inset: 0;
}
.vc-h3-hero__media { overflow: hidden; }
.vc-h3-hero__slide {
    opacity: 0;
    transition: opacity 1.8s ease;
}
.vc-h3-hero__slide.is-on { opacity: 1; z-index: 1; }
.vc-h3-hero__img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.vc-h3-hero__slide--2 .vc-h3-hero__img { object-position: center 38%; }
.vc-h3-hero__slide--3 .vc-h3-hero__img { object-position: center 58%; }
.vc-h3-hero__video { z-index: 1; width: 100%; height: 100%; object-fit: cover; }
.vc-h3-hero__wash {
    z-index: 2;
    background:
        linear-gradient(90deg, rgba(7,21,33,.90) 0%, rgba(7,21,33,.42) 38%, rgba(7,21,33,.12) 72%, rgba(7,21,33,.28) 100%),
        linear-gradient(180deg, rgba(7,21,33,.08) 0%, rgba(7,21,33,.55) 100%);
}
.vc-h3-hero__tech { z-index: 3; width: 100%; height: 100%; opacity: .28; pointer-events: none; }
.vc-h3-hero__copy {
    position: relative;
    z-index: 4;
    width: min(1200px, calc(100% - 40px));
    margin: 0 auto;
    padding: 132px 0 80px;
}
.vc-h3-hero__ctrls {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 28px;
}
.vc-h3-iconbtn {
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid rgba(255,255,255,.35);
    background: transparent;
    color: #fff;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
}
.vc-h3-iconbtn:focus-visible,
.vc-h3-btn:focus-visible,
.vc-h3-textlink:focus-visible {
    outline: 2px solid var(--vc-bx-gold, #d9ad22);
    outline-offset: 3px;
}
.vc-h3-hero__status { font-size: 0.75rem; letter-spacing: 0.12em; color: rgba(255,255,255,.65); }

/* Positioning */
.vc-h3-position {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    min-height: 78vh;
    background: var(--vc-bx-stone, #e6e1d6);
    position: relative;
    z-index: 2;
}
.vc-h3-position .vc-h3-display { max-width: 14ch; }
.vc-h3-position__copy { padding: clamp(40px, 7vw, 96px) clamp(20px, 5vw, 72px); }
.vc-h3-position__media { position: relative; min-height: 420px; overflow: hidden; }
.vc-h3-position__media .vc-h3-img { height: 100%; object-position: 62% 28%; }
.vc-h3-crop {
    position: absolute;
    right: 16px;
    bottom: 16px;
    width: 56px;
    height: 56px;
    background: var(--vc-bx-gold, #d9ad22);
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

/* Service stories */
.vc-h3-story {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    min-height: 68vh;
    background: #fff;
}
.vc-h3-story--construction { min-height: 78vh; }
.vc-h3-story--controls,
.vc-h3-story--engineering { grid-template-columns: 0.82fr 1.18fr; }
.vc-h3-story--controls .vc-h3-story__copy,
.vc-h3-story--engineering .vc-h3-story__copy { order: -1; }
.vc-h3-story__media { position: relative; display: block; min-height: 360px; overflow: hidden; background: #071521; }
.vc-h3-story__media .vc-h3-img { height: 100%; }
.vc-h3-story--construction .vc-h3-img { object-position: center 42%; }
.vc-h3-story--commercial .vc-h3-img { object-position: center 28%; }
.vc-h3-story--engineering .vc-h3-img { object-position: center 78%; }
.vc-h3-story--controls .vc-h3-img { object-position: center 55%; }
.vc-h3-story__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7,21,33,.2) 0%, transparent 46%);
    pointer-events: none;
}
.vc-h3-story--controls .vc-h3-story__media::after,
.vc-h3-story--engineering .vc-h3-story__media::after {
    background: linear-gradient(270deg, rgba(7,21,33,.2) 0%, transparent 46%);
}
.vc-h3-story__overlay {
    position: absolute;
    inset: auto 0 0 0;
    height: 28%;
    display: block;
    opacity: .32;
    pointer-events: none;
}
.vc-h3-story__overlay svg,
.vc-h3-whisper { display: block; width: 100%; height: 100%; }
.vc-h3-story__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 5vw, 72px); }
.vc-h3-story__copy p { color: var(--vc-bx-steel, #4f6475); max-width: 36em; }
.vc-h3-more { padding: 32px 0 72px; }

/* Markets mosaic */
.vc-h3-markets { padding-bottom: 0; }
.vc-h3-mosaic {
    display: grid;
    grid-template-columns: 1.55fr 1fr 1fr;
    grid-template-rows: 340px 260px;
    gap: 6px;
    padding: 0;
}
.vc-h3-tile .vc-h3-img { transition: transform 7s ease; }
.vc-h3-tile:hover .vc-h3-img { transform: scale(1.045); }
.vc-h3-tile {
    position: relative;
    display: block;
    overflow: hidden;
    min-height: 180px;
    color: #fff;
    text-decoration: none;
}
.vc-h3-tile:first-child { grid-row: 1 / span 2; }
.vc-h3-tile__label {
    position: absolute;
    left: 16px;
    bottom: 16px;
    z-index: 2;
    font-weight: 650;
    letter-spacing: -0.02em;
}
.vc-h3-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(7,21,33,.72));
}

/* Clients */
.vc-h3-clients { padding: 56px 0 72px; border-top: 1px solid #cfd7de; }
.vc-h3-clientlist {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 28px;
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
}
.vc-h3-clientlist a { color: var(--vc-bx-navy, #0b1f33); text-decoration: none; font-weight: 650; }

/* Control band */
.vc-h3-control {
    position: relative;
    min-height: 52vh;
    background: var(--vc-bx-navy, #0b1f33);
    color: #fff;
    overflow: hidden;
}
.vc-h3-control__art {
    position: absolute;
    inset: 8% 0 auto auto;
    width: min(62%, 760px);
    opacity: .18;
    pointer-events: none;
}
.vc-h3-control__art svg {
    display: block;
    width: 100%;
    height: auto;
}
.vc-h3-control__copy { position: relative; z-index: 1; padding: clamp(56px, 8vw, 110px) 0; }
.vc-h3-control .vc-h3-lede { color: rgba(255,255,255,.8); }

/* Why */
.vc-h3-index { margin: 0; padding: 0 0 80px; list-style: none; }
.vc-h3-index li {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr);
    gap: 16px;
    padding: 20px 0;
    border-top: 1px solid #cfd7de;
}
.vc-h3-index__n {
    color: var(--vc-bx-gold, #d9ad22);
    font-family: ui-monospace, Consolas, monospace;
    font-size: 0.85rem;
    letter-spacing: 0.12em;
}
.vc-h3-index p { margin: 0; color: var(--vc-bx-steel, #4f6475); }

/* Secondary + insights */
.vc-h3-secondary { background: var(--vc-bx-mist, #f4f6f8); padding: 72px 0; }
.vc-h3-split { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.vc-h3-insights { padding-bottom: 72px; }
.vc-h3-insights__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; }
.vc-h3-feature__media {
    display: block;
    overflow: hidden;
    min-height: 220px;
    margin: 0 0 18px;
    background: #071521;
}
.vc-h3-feature__media .vc-h3-img { height: 280px; }
.vc-h3-control .vc-h3-display,
.vc-h3-cta .vc-h3-display { max-width: 16ch; }
.vc-h3-inslist { margin: 0; padding: 0; list-style: none; }
.vc-h3-inslist li { border-top: 1px solid #cfd7de; }
.vc-h3-inslist a {
    display: block;
    padding: 16px 0;
    color: var(--vc-bx-navy, #0b1f33);
    font-weight: 650;
    text-decoration: none;
}

/* Final CTA */
.vc-h3-cta { position: relative; min-height: 70vh; color: #fff; overflow: hidden; background: #071521; margin: 0; }
.vc-h3-cta__media { position: absolute; inset: 0; }
.vc-h3-cta__media .vc-h3-img { object-position: center 22%; transform: scale(1.04); }
.vc-h3-cta__wash {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7,21,33,.92) 0%, rgba(7,21,33,.5) 55%, rgba(7,21,33,.35) 100%);
}
.vc-h3-cta__copy { position: relative; z-index: 1; padding: clamp(64px, 10vw, 120px) 0; }
.vc-h3-cta__mark {
    display: block;
    width: 48px;
    height: 48px;
    margin-bottom: 20px;
    background: var(--vc-bx-gold, #d9ad22);
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.vc-h3-reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.vc-h3-reveal.is-in { opacity: 1; transform: none; }

body.vc-home-v3-page .site-footer,
body.vc-home-v3-page .elementor-location-footer,
body.vc-home-v3-page .vc-footer-v2 {
    margin-top: 0;
}

@media (min-width: 1361px) {
    .vc-h3-contain,
    .vc-h3-hero__copy { width: min(1340px, calc(100% - 72px)); }
    .vc-h3-hero { min-height: min(94vh, 980px); }
    .vc-h3-mosaic { grid-template-rows: 400px 300px; }
}

@media (max-width: 1360px) {
    .vc-h3-hero { min-height: min(86vh, 820px); }
    .vc-h3-mosaic { grid-template-rows: 280px 220px; }
}
@media (max-width: 1024px) {
    .vc-h3-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: none; }
    .vc-h3-tile:first-child { grid-row: auto; min-height: 320px; }
    .vc-h3-control__art { opacity: .14; width: 100%; }
}
@media (max-width: 767px) {
    .vc-h3-position,
    .vc-h3-story,
    .vc-h3-story--controls,
    .vc-h3-story--engineering,
    .vc-h3-split,
    .vc-h3-insights__grid { grid-template-columns: 1fr; }
    .vc-h3-story--controls .vc-h3-story__copy,
    .vc-h3-story--engineering .vc-h3-story__copy { order: 0; }
    .vc-h3-hero { min-height: 78vh; }
    .vc-h3-hero__copy { padding: 96px 0 36px; }
    .vc-h3-hero__tech { display: none; }
    .vc-h3-hero__video { display: none; }
    .vc-h3-hero__img,
    .vc-h3-hero__slide--2 .vc-h3-hero__img,
    .vc-h3-hero__slide--3 .vc-h3-hero__img { object-position: 68% 18%; }
    .vc-h3-mosaic { grid-template-columns: 1fr; }
    .vc-h3-index li { grid-template-columns: 3rem 1fr; }
    .vc-h3-display { max-width: 12ch; font-size: clamp(2.2rem, 10vw, 3.1rem); }
    .vc-h3-hero__ctrls { opacity: .7; }
    .vc-h3-story__overlay { display: none; }
    .vc-h3-control__art { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .vc-h3-hero__slide,
    .vc-h3-reveal,
    .vc-h3-tile .vc-h3-img { transition: none; }
    .vc-h3-reveal { opacity: 1; transform: none; }
    .vc-h3-tile:hover .vc-h3-img { transform: none; }
}
