@font-face {
    font-family: HelveticaNeue-Light;
    font-weight: 400;
    src: url("../fonts/HelveticaNeueLTW05-45Light.woff2") format("woff2");
}

@font-face {
    font-family: HelveticaNeue-Bold;
    font-weight: 700;
    src: url("../fonts/HelveticaNeueLTW05-75Bold.woff2") format("woff2");
}

@font-face {
    font-family: Palatino-Roman;
    font-weight: 400;
    src: url("../fonts/PalatinoLTPro-Roman.woff2") format("woff2");
}

.vsg-home {
    --vsg-ink: #0c1c2f;
    --vsg-muted: #465160;
    --vsg-paper: #f4f1ea;
    --vsg-panel: #ffffff;
    --vsg-navy: #0b223b;
    --vsg-blue: #183a5a;
    --vsg-gold: #bd8b3b;
    --vsg-red: #9f3030;
    --vsg-green: #586e5b;
    --vsg-line: #d7cdbb;
    --vsg-shadow: 0 28px 90px rgba(12, 28, 47, 0.16);
    --vsg-display: Palatino-Roman, Georgia, "Times New Roman", serif;
    --vsg-body: HelveticaNeue-Light, "Segoe UI", Arial, sans-serif;
    --vsg-bold: HelveticaNeue-Bold, "Segoe UI", Arial, sans-serif;
    --vsg-page: clamp(20px, 5vw, 72px);
    overflow: hidden;
    font-family: var(--vsg-body);
    font-size: 16px;
    line-height: 1.7;
    color: var(--vsg-ink);
    background: var(--vsg-paper);
}

.vsg-home * {
    box-sizing: border-box;
}

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

.vsg-home a {
    color: inherit;
}

.vsg-home .vsg-kicker {
    margin: 0 0 16px;
    font-family: var(--vsg-bold);
    font-size: 12px;
    line-height: 1.4;
    color: var(--vsg-red);
    letter-spacing: 0;
    text-transform: uppercase;
}

.vsg-home h1,
.vsg-home h2,
.vsg-home h3,
.vsg-home p {
    margin-top: 0;
}

.vsg-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: clamp(440px, 58vh, 560px);
    isolation: isolate;
    color: #fff;
    background: var(--vsg-navy);
}

.vsg-hero__media {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.vsg-hero__media img {
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.vsg-hero::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(7, 23, 42, 0.95) 0%, rgba(7, 23, 42, 0.76) 42%, rgba(7, 23, 42, 0.28) 100%),
        linear-gradient(0deg, rgba(7, 23, 42, 0.78), rgba(7, 23, 42, 0.1));
    content: "";
}

.vsg-hero__content {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: clamp(64px, 7vw, 92px) 0 96px;
}

.vsg-hero__content .vsg-kicker {
    color: #f0d5a1;
}

.vsg-hero h1 {
    max-width: 650px;
    margin-bottom: 18px;
    font-family: var(--vsg-display);
    font-size: clamp(36px, 4.9vw, 68px);
    font-weight: 400;
    line-height: 1.03;
    letter-spacing: 0;
}

.vsg-hero p {
    max-width: 520px;
    margin-bottom: 0;
    font-size: clamp(17px, 1.55vw, 22px);
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.88);
}

.vsg-hero__panel {
    position: absolute;
    right: var(--vsg-page);
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(130px, 1fr));
    width: min(700px, calc(100% - 40px));
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(11, 34, 59, 0.82);
    backdrop-filter: blur(14px);
}

.vsg-hero__panel div {
    padding: 18px 22px;
    border-right: 1px solid rgba(255, 255, 255, 0.18);
}

.vsg-hero__panel div:last-child {
    border-right: 0;
}

.vsg-hero__panel span {
    display: block;
    margin-bottom: 8px;
    font-family: var(--vsg-bold);
    font-size: 11px;
    color: #f0d5a1;
    text-transform: uppercase;
}

.vsg-hero__panel strong {
    display: block;
    font-family: var(--vsg-display);
    font-size: clamp(28px, 3.2vw, 40px);
    font-weight: 400;
    line-height: 1;
}

.vsg-statement {
    display: grid;
    grid-template-columns: 80px minmax(240px, 0.85fr) minmax(320px, 1fr);
    gap: clamp(28px, 5vw, 70px);
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: clamp(76px, 9vw, 126px) 0;
}

.vsg-statement__rule {
    width: 1px;
    min-height: 100%;
    background: var(--vsg-red);
}

.vsg-statement h2,
.vsg-platform h2,
.vsg-section-head h2,
.vsg-research h2,
.vsg-engine h2,
.vsg-partner h2,
.vsg-promise h2 {
    margin-bottom: 0;
    font-family: var(--vsg-display);
    font-size: clamp(34px, 5vw, 72px);
    font-weight: 400;
    line-height: 1.04;
    letter-spacing: 0;
    color: var(--vsg-ink);
}

.vsg-statement > p,
.vsg-platform p,
.vsg-research p,
.vsg-engine p,
.vsg-advantages p,
.vsg-partner p,
.vsg-promise p {
    margin-bottom: 0;
    font-size: clamp(17px, 1.35vw, 19px);
    line-height: 1.82;
    color: var(--vsg-muted);
}

.vsg-platform {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.9fr);
    width: min(1280px, calc(100% - 40px));
    margin: 0 auto clamp(64px, 7vw, 96px);
    background: var(--vsg-navy);
    box-shadow: var(--vsg-shadow);
}

.vsg-platform__image {
    overflow: hidden;
    min-height: clamp(360px, 43vw, 440px);
}

.vsg-platform__image img {
    height: 100%;
    object-fit: cover;
    transform: scale(1);
    transition: transform 700ms ease;
}

.vsg-platform__image:hover img,
.vsg-platform__image:focus-within img {
    transform: scale(1.06);
}

.vsg-platform__copy {
    display: grid;
    align-content: center;
    gap: 18px;
    padding: clamp(32px, 4.2vw, 52px);
}

.vsg-platform h2 {
    font-size: clamp(30px, 3.8vw, 54px);
    line-height: 1.08;
}

.vsg-platform h2,
.vsg-platform p {
    color: #fff;
}

.vsg-platform p {
    font-size: clamp(16px, 1.2vw, 18px);
    line-height: 1.65;
}

.vsg-platform .vsg-kicker {
    color: #f0d5a1;
}

.vsg-platform blockquote {
    margin: 6px 0 0;
    padding-left: 18px;
    border-left: 3px solid var(--vsg-gold);
    font-family: var(--vsg-display);
    font-size: clamp(22px, 2.2vw, 32px);
    line-height: 1.18;
    color: #f0d5a1;
}

.vsg-values,
.vsg-research,
.vsg-engine,
.vsg-advantages,
.vsg-partner,
.vsg-promise {
    padding: clamp(74px, 9vw, 128px) var(--vsg-page);
}

.vsg-section-head {
    display: grid;
    grid-template-columns: minmax(260px, 0.8fr) minmax(320px, 1fr);
    gap: clamp(30px, 6vw, 90px);
    width: min(1180px, 100%);
    margin: 0 auto clamp(34px, 5vw, 62px);
}

.vsg-value-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: min(1180px, 100%);
    margin: 0 auto;
    border-top: 1px solid rgba(12, 28, 47, 0.22);
    border-left: 1px solid rgba(12, 28, 47, 0.22);
}

.vsg-value-grid article {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 300px;
    padding: clamp(24px, 3vw, 38px);
    border-right: 1px solid rgba(12, 28, 47, 0.22);
    border-bottom: 1px solid rgba(12, 28, 47, 0.22);
    background: rgba(255, 255, 255, 0.48);
}

.vsg-value-grid article::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--vsg-red), var(--vsg-gold));
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left;
    transition: opacity 220ms ease, transform 220ms ease;
    content: "";
}

.vsg-value-grid article:hover::before {
    opacity: 1;
    transform: scaleX(1);
}

.vsg-value-grid span {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: clamp(42px, 5vw, 58px);
    font-family: var(--vsg-display);
    font-size: clamp(46px, 4.8vw, 64px);
    font-weight: 400;
    line-height: 0.9;
    color: rgba(168, 27, 21, 0.92);
}

.vsg-value-grid span::before {
    position: absolute;
    top: -18px;
    left: -12px;
    z-index: -1;
    width: 72px;
    height: 72px;
    border: 1px solid rgba(191, 158, 93, 0.42);
    border-radius: 50%;
    content: "";
}

.vsg-value-grid span::after {
    flex: 1;
    height: 1px;
    min-width: 54px;
    background: linear-gradient(90deg, rgba(168, 27, 21, 0.65), rgba(191, 158, 93, 0.08));
    content: "";
}

.vsg-value-grid h3,
.vsg-engine__list h3,
.vsg-advantage-row h3 {
    margin-bottom: 12px;
    font-family: var(--vsg-display);
    font-size: clamp(26px, 2.8vw, 38px);
    font-weight: 400;
    line-height: 1.08;
    color: var(--vsg-ink);
}

.vsg-value-grid p,
.vsg-engine__list p,
.vsg-advantage-row p {
    margin-bottom: 0;
    color: var(--vsg-muted);
}

.vsg-research {
    background: #fff;
}

.vsg-research {
    display: grid;
    grid-template-columns: minmax(320px, 0.9fr) minmax(360px, 1.1fr);
    gap: clamp(34px, 6vw, 90px);
    align-items: end;
}

.vsg-research__copy {
    display: grid;
    gap: 22px;
}

.vsg-research__matrix {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--vsg-line);
    border-left: 1px solid var(--vsg-line);
}

.vsg-research__matrix span {
    min-height: 116px;
    padding: 24px;
    border-right: 1px solid var(--vsg-line);
    border-bottom: 1px solid var(--vsg-line);
    font-family: var(--vsg-bold);
    color: var(--vsg-ink);
    background:
        linear-gradient(135deg, rgba(189, 139, 59, 0.1), rgba(255, 255, 255, 0));
}

.vsg-research__matrix span:last-child {
    grid-column: 1 / -1;
}

.vsg-engine {
    background: var(--vsg-blue);
}

.vsg-engine__top {
    display: grid;
    grid-template-columns: minmax(320px, 0.95fr) minmax(320px, 1fr);
    gap: clamp(30px, 6vw, 90px);
    width: min(1180px, 100%);
    margin: 0 auto clamp(34px, 5vw, 62px);
}

.vsg-engine__top h2,
.vsg-engine__top p {
    color: #fff;
}

.vsg-engine .vsg-kicker {
    color: #f0d5a1;
}

.vsg-engine__layout {
    display: grid;
    grid-template-columns: minmax(0, 0.94fr) minmax(320px, 1.06fr);
    gap: clamp(24px, 4vw, 56px);
    width: min(1180px, 100%);
    margin: 0 auto;
    align-items: stretch;
}

.vsg-engine__image {
    overflow: hidden;
    min-height: 520px;
    box-shadow: 0 28px 90px rgba(0, 0, 0, 0.22);
}

.vsg-engine__image img {
    height: 100%;
    object-fit: cover;
    transform: scale(1);
    transition: transform 700ms ease;
}

.vsg-engine__image:hover img,
.vsg-engine__image:focus-within img {
    transform: scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
    .vsg-platform__image img,
    .vsg-engine__image img {
        transition: none;
    }

    .vsg-platform__image:hover img,
    .vsg-platform__image:focus-within img,
    .vsg-engine__image:hover img,
    .vsg-engine__image:focus-within img {
        transform: none;
    }
}

.vsg-engine__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: rgba(255, 255, 255, 0.22);
}

.vsg-engine__list article {
    display: grid;
    align-content: space-between;
    min-height: 250px;
    padding: clamp(24px, 3vw, 38px);
    background: #fff;
}

.vsg-advantage-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    width: min(1180px, 100%);
    margin: 0 auto;
}

.vsg-advantage-row article {
    min-height: 300px;
    padding: clamp(28px, 4vw, 44px);
    background: #fff;
    box-shadow: var(--vsg-shadow);
}

.vsg-partner {
    display: grid;
    grid-template-columns: minmax(320px, 0.92fr) minmax(320px, 1.08fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: center;
    background:
        linear-gradient(rgba(244, 241, 234, 0.9), rgba(244, 241, 234, 0.9)),
        url("../getContentAsset/e812f6bc-7715-470e-822f-9cf4f7d5592a/33625549-0e29-4393-872f-57c883e29d53/iStock-514933979_1400x816.jpg");
    background-size: cover;
    background-position: center;
}

.vsg-partner__copy {
    padding: clamp(30px, 5vw, 54px);
    background: rgba(255, 255, 255, 0.9);
    box-shadow: var(--vsg-shadow);
}

.vsg-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    border-top: 1px solid var(--vsg-line);
    border-left: 1px solid var(--vsg-line);
    background: #fff;
    box-shadow: var(--vsg-shadow);
}

.vsg-facts div {
    min-height: 150px;
    padding: clamp(20px, 3vw, 30px);
    border-right: 1px solid var(--vsg-line);
    border-bottom: 1px solid var(--vsg-line);
}

.vsg-facts dt {
    margin-bottom: 10px;
    font-family: var(--vsg-bold);
    font-size: 12px;
    color: var(--vsg-red);
    text-transform: uppercase;
}

.vsg-facts dd {
    margin: 0;
    font-family: var(--vsg-display);
    font-size: clamp(28px, 4vw, 52px);
    line-height: 1;
    color: var(--vsg-ink);
}

.vsg-promise {
    width: min(980px, calc(100% - 40px));
    margin: 0 auto;
    text-align: center;
}

.vsg-promise p:last-child {
    width: min(720px, 100%);
    margin: 24px auto 0;
}

@media (max-width: 980px) {
    .vsg-statement,
    .vsg-platform,
    .vsg-section-head,
    .vsg-research,
    .vsg-engine__top,
    .vsg-engine__layout,
    .vsg-partner {
        grid-template-columns: 1fr;
    }

    .vsg-value-grid,
    .vsg-advantage-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vsg-statement__rule {
        width: 100%;
        min-height: 1px;
    }

    .vsg-platform__image,
    .vsg-engine__image {
        min-height: 360px;
    }
}

@media (max-width: 640px) {
    .vsg-hero__content {
        width: calc(100% - 32px);
        padding-bottom: 220px;
    }

    .vsg-hero__panel,
    .vsg-value-grid,
    .vsg-research__matrix,
    .vsg-engine__list,
    .vsg-advantage-row,
    .vsg-facts {
        grid-template-columns: 1fr;
    }

    .vsg-hero__panel {
        right: 16px;
        left: 16px;
        width: auto;
    }

    .vsg-hero__panel div {
        padding: 18px;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    }

    .vsg-hero__panel div:last-child {
        border-bottom: 0;
    }

    .vsg-values,
    .vsg-research,
    .vsg-engine,
    .vsg-advantages,
    .vsg-partner,
    .vsg-promise {
        padding-right: 20px;
        padding-left: 20px;
    }
}
