@import "https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;600;700&display=swap";

html {
    box-sizing: border-box
}

body {
    margin: 0;
    min-height: 100dvh;
    overflow-x: hidden;
    font-family: 'Inconsolata', monospace
}

.brand__bar {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5491 55%, #3d6aab 100%);
    padding: 20px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 100%;
    position: relative
}

.brand__identity {
    display: flex;
    align-items: center;
    gap: 20px
}

.brand__capsule {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    border-radius: 48px;
    padding: 10px 20px;
    border-right: 4px solid #507EBE;
    box-shadow: 0 2px 4px -1px #507ebe12 0 5px 18px -1px #507ebe1c 0 9px 36px -1px #507ebe24;
    min-width: 80px;
    min-height: 65px
}

.brand__capsule img {
    width: 65px;
    height: 65px;
    object-fit: contain;
    display: block
}

.brand__name {
    font-family: 'Inconsolata', monospace;
    font-size: 52px;
    font-weight: 700;
    line-height: 1.1;
    color: #fff;
    letter-spacing: -.03em;
    text-decoration: none
}

.brand__tagline {
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    color: #C9BBDC;
    letter-spacing: .04em;
    margin-top: 0
}

.brand__contact-strip {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px
}

.brand__contact-item {
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    color: #E3E7EC;
    text-decoration: none;
    transition: color .15s cubic-bezier(0.4, 0, 1, 1)
}

.brand__contact-item:hover,
.brand__contact-item:focus {
    color: #fff;
    background-color: #507ebe2e;
    outline: none;
    border-radius: 8px;
    padding: 0 10px
}

.menu__bar {
    background: #2d5491;
    border-top: 1px solid #c9bbdc26;
    padding: 0 40px;
    display: flex;
    align-items: center;
    max-width: 100%
}

.menu__list {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 10px;
    flex-wrap: wrap
}

.menu__item {
    position: relative
}

.menu__link {
    display: block;
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.6;
    color: #E3E7EC;
    text-decoration: none;
    padding: 10px 20px;
    border-radius: 8px;
    letter-spacing: .02em;
    transition: color .12s cubic-bezier(0.4, 0, 1, 1), background-color .12s cubic-bezier(0.4, 0, 1, 1);
    position: relative;
    overflow: hidden
}

.menu__link::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 100%;
    background-color: #507ebe59;
    border-radius: 8px;
    transition: width .16s cubic-bezier(0.4, 0, 1, 1);
    z-index: 0
}

.menu__link:hover::after,
.menu__link:focus::after {
    width: 100%;
    left: 0;
    right: auto
}

.menu__link:hover,
.menu__link:focus {
    color: #fff;
    outline: none;
    background-color: transparent
}

.menu__link span {
    position: relative;
    z-index: 1
}

.menu__link--active {
    color: #fff;
    background-color: #507ebe66
}

.footer__body {
    background: linear-gradient(160deg, #1a3057 0%, #243f6e 60%, #2d5491 100%);
    padding: 80px 40px 40px
}

.footer__grid {
    max-width: 1440px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap
}

.footer__contact-column {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1 1 280px
}

.footer__column-label {
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.1;
    color: #C9BBDC;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 10px
}

.footer__address {
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    color: #E3E7EC;
    font-style: normal
}

.footer__contact-link {
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    color: #C9BBDC;
    text-decoration: none;
    transition: color .13s cubic-bezier(0.4, 0, 1, 1);
    display: inline-block
}

.footer__contact-link:hover,
.footer__contact-link:focus {
    color: #fff;
    outline: none;
    background-color: #507ebe33;
    border-radius: 8px;
    padding: 0 10px
}

.footer__nav-column {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1 1 200px
}

.footer__nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.footer__nav-link {
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    color: #C9BBDC;
    text-decoration: none;
    transition: color .11s cubic-bezier(0.4, 0, 1, 1);
    display: inline-block;
    border-radius: 8px
}

.footer__nav-link:hover,
.footer__nav-link:focus {
    color: #fff;
    outline: none;
    background-color: #507ebe33;
    padding: 0 10px
}

.footer__brand-close {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding-top: 40px;
    border-top: 1px solid #c9bbdc26;
    margin-top: 40px;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto
}

.footer__logo-capsule {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    border-radius: 48px;
    padding: 10px 20px;
    box-shadow: 0 2px 4px -1px #507ebe12 0 5px 18px -1px #507ebe1c 0 9px 36px -1px #507ebe24;
    min-width: 80px;
    min-height: 65px
}

.footer__logo-capsule img {
    width: 65px;
    height: 65px;
    object-fit: contain;
    display: block
}

.footer__copyright {
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    color: #e3e7ec99;
    text-align: center
}

.cookie__tile {
    position: fixed;
    bottom: 20px;
    left: 20px;
    z-index: 8000;
    background: #fff;
    border-radius: 13px;
    box-shadow: 0 2px 4px -1px #507ebe12 0 5px 18px -1px #507ebe1c 0 9px 36px -1px #507ebe24;
    padding: 20px;
    max-width: 320px;
    width: calc(100vw - 40px);
    border: 1px solid #E3E7EC;
    transition: opacity .18s cubic-bezier(0.4, 0, 1, 1)
}

.cookie__description {
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    color: #1e3a5f;
    margin-bottom: 10px
}

.cookie__headline {
    font-family: 'Inconsolata', monospace;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.1;
    color: #1e3a5f;
    margin-bottom: 10px;
    letter-spacing: -.02em
}

.cookie__actions {
    display: flex;
    gap: 10px;
    margin-top: 10px
}

.cookie__accept-button {
    flex: 1;
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.6;
    color: #fff;
    background: #507EBE;
    border: none;
    border-radius: 8px;
    padding: 10px 20px;
    cursor: pointer;
    transition: background-color .13s cubic-bezier(0.4, 0, 1, 1);
    min-height: 44px;
    position: relative;
    overflow: hidden
}

.cookie__accept-button::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 100%;
    background-color: #3d6aab;
    transition: width .16s cubic-bezier(0.4, 0, 1, 1);
    z-index: 0
}

.cookie__accept-button:hover::after,
.cookie__accept-button:focus::after {
    width: 100%;
    left: 0;
    right: auto
}

.cookie__accept-button:hover,
.cookie__accept-button:focus {
    outline: none;
    background-color: #507EBE
}

.cookie__accept-button span {
    position: relative;
    z-index: 1
}

.cookie__decline-link {
    flex: 1;
    font-family: 'Inconsolata', monospace;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.6;
    color: #507EBE;
    background: transparent;
    border: 1px solid #507EBE;
    border-radius: 8px;
    padding: 10px 20px;
    cursor: pointer;
    text-align: center;
    transition: background-color .13s cubic-bezier(0.4, 0, 1, 1), color .13s cubic-bezier(0.4, 0, 1, 1);
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center
}

.cookie__decline-link:hover,
.cookie__decline-link:focus {
    background-color: #507ebe14;
    color: #2d5491;
    outline: none
}

.settings__trigger {
    position: fixed;
    bottom: 20px;
    left: 20px;
    z-index: 7999;
    background: #507EBE;
    border: none;
    border-radius: 48px;
    width: 44px;
    height: 44px;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px -1px #507ebe12 0 5px 18px -1px #507ebe1c;
    transition: background-color .13s cubic-bezier(0.4, 0, 1, 1)
}

.settings__trigger:hover,
.settings__trigger:focus {
    background-color: #3d6aab;
    outline: none
}

.settings__trigger svg {
    width: 20px;
    height: 20px;
    fill: #fff
}

@media (max-width: 768px) {
    .brand__bar {
        padding: 20px;
        flex-direction: column;
        align-items: flex-start;
        gap: 20px
    }

    .brand__contact-strip {
        align-items: flex-start
    }

    .brand__name {
        font-size: 52px
    }

    .menu__bar {
        padding: 0 20px
    }

    .footer__body {
        padding: 40px 20px
    }

    .footer__grid {
        flex-direction: column;
        gap: 40px
    }
}

.legal-content {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px 40px;
    color: #2c3a4f
}

.legal-content p {
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 20px;
    color: #2c3a4f
}

.legal-content em,
.legal-content i {
    font-style: italic;
    color: #3d5070
}

.legal-content a {
    color: #507EBE;
    text-decoration: underline;
    text-decoration-color: #507ebe66;
    text-underline-offset: 3px;
    transition: color .18s cubic-bezier(0.4, 0, 1, 1), text-decoration-color .14s ease-in
}

.legal-content a:hover {
    color: #3a62a0;
    text-decoration-color: #507ebee6
}

.legal-content a:visited {
    color: #7a5fa8;
    text-decoration-color: #7a5fa866
}

.legal-content table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 40px;
    font-size: 15px;
    line-height: 1.6;
    box-shadow: 0 2px 4px -1px #507ebe12 0 5px 18px -1px #507ebe1c;
    border-radius: 13px;
    overflow: hidden
}

.legal-content thead {
    background-color: #507EBE;
    color: #fff
}

.legal-content thead th {
    padding: 20px;
    font-size: 15px;
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: -.01em;
    text-align: left;
    border: none
}

.legal-content tbody tr {
    background-color: #fff;
    transition: background-color .14s ease-in
}

.legal-content tbody tr:nth-child(even) {
    background-color: #c9bbdc1f
}

.legal-content tbody tr:hover {
    background-color: #507ebe12
}

.legal-content td {
    padding: 20px;
    font-size: 15px;
    line-height: 1.6;
    color: #2c3a4f;
    border-bottom: 1px solid #e3e7eccc;
    vertical-align: top
}

.legal-content tbody tr:last-child td {
    border-bottom: none
}

.legal-content th {
    padding: 20px;
    font-size: 15px;
    line-height: 1.6;
    vertical-align: top
}

.legal-content div {
    margin-bottom: 20px
}

.legal-content div+div {
    margin-top: 10px
}

@media (max-width: 768px) {
    .legal-content {
        padding: 40px 20px
    }

    .legal-content p {
        font-size: 15px
    }

    .legal-content table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border-radius: 8px
    }

    .legal-content thead th,
    .legal-content td {
        padding: 10px;
        font-size: 15px
    }
}

@media (max-width: 480px) {
    .legal-content {
        padding: 40px 10px
    }

    .legal-content table {
        font-size: 15px
    }
}

.opening {
    max-width: 1440px;
    margin: 0 auto;
    overflow-x: clip;
    position: relative
}

.opening .reveal {
    opacity: 0;
    transform: translateY(28px);
    animation: revealUp .18s cubic-bezier(0.4, 0, 1, 1) forwards
}

.opening .reveal--delay1 {
    animation-delay: .12s
}

.opening .reveal--delay2 {
    animation-delay: .22s
}

.opening .reveal--delay3 {
    animation-delay: .32s
}

.opening .reveal--delay4 {
    animation-delay: .44s
}

@keyframes revealUp {
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.opening .color-shift {
    animation: colorShift .16s cubic-bezier(0.4, 0, 1, 1) forwards;
    animation-delay: .08s
}

@keyframes colorShift {
    0% {
        color: #C9BBDC
    }

    100% {
        color: #1a2a4a
    }
}

.opening .rotate-shape {
    position: absolute;
    border-radius: 22px;
    opacity: .07;
    animation: slowRotate 28s linear infinite;
    pointer-events: none;
    z-index: 0
}

@keyframes slowRotate {
    from {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(360deg)
    }
}

.opening .char-reveal span {
    display: inline-block;
    opacity: 0;
    animation: charIn .1s ease-in forwards
}

.opening .char-reveal span:nth-child(1) {
    animation-delay: .05s
}

.opening .char-reveal span:nth-child(2) {
    animation-delay: .09s
}

.opening .char-reveal span:nth-child(3) {
    animation-delay: .13s
}

.opening .char-reveal span:nth-child(4) {
    animation-delay: .17s
}

.opening .char-reveal span:nth-child(5) {
    animation-delay: .21s
}

.opening .char-reveal span:nth-child(6) {
    animation-delay: .25s
}

.opening .char-reveal span:nth-child(7) {
    animation-delay: .29s
}

.opening .char-reveal span:nth-child(8) {
    animation-delay: .33s
}

.opening .char-reveal span:nth-child(9) {
    animation-delay: .37s
}

.opening .char-reveal span:nth-child(10) {
    animation-delay: .41s
}

.opening .char-reveal span:nth-child(11) {
    animation-delay: .45s
}

.opening .char-reveal span:nth-child(12) {
    animation-delay: .49s
}

.opening .char-reveal span:nth-child(13) {
    animation-delay: .53s
}

.opening .char-reveal span:nth-child(14) {
    animation-delay: .57s
}

.opening .char-reveal span:nth-child(15) {
    animation-delay: .61s
}

.opening .char-reveal span:nth-child(16) {
    animation-delay: .65s
}

.opening .char-reveal span:nth-child(17) {
    animation-delay: .69s
}

.opening .char-reveal span:nth-child(18) {
    animation-delay: .73s
}

.opening .char-reveal span:nth-child(19) {
    animation-delay: .77s
}

.opening .char-reveal span:nth-child(20) {
    animation-delay: .81s
}

.opening .char-reveal span:nth-child(21) {
    animation-delay: .85s
}

.opening .char-reveal span:nth-child(22) {
    animation-delay: .89s
}

.opening .char-reveal span:nth-child(23) {
    animation-delay: .93s
}

.opening .char-reveal span:nth-child(24) {
    animation-delay: .97s
}

.opening .char-reveal span:nth-child(25) {
    animation-delay: 1.01s
}

@keyframes charIn {
    to {
        opacity: 1
    }
}

.opening .band__selected::selection {
    background: linear-gradient(90deg, #507EBE, #C9BBDC);
    color: #1a2a4a
}

.opening .title-band {
    position: relative;
    padding: 80px 80px 40px;
    background: linear-gradient(127deg, #1a2a4a 0%, #507EBE 52%, #C9BBDC 100%);
    overflow: hidden
}

.opening .title-band__dots {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0
}

.opening .title-band__dot {
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 48px;
    background: #C9BBDC;
    opacity: .18
}

.opening .title-band__rotate {
    width: 340px;
    height: 340px;
    background: linear-gradient(127deg, #507EBE 0%, #1a2a4a 100%);
    top: -80px;
    right: -80px
}

.opening .title-band__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start
}

.opening .title-band__left {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.opening .title-band__label {
    display: inline-block;
    font-size: 15px;
    line-height: 1.6;
    color: #C9BBDC;
    letter-spacing: .08em;
    text-transform: uppercase
}

.opening .title-band__heading {
    font-size: 68px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #fff;
    margin: 0
}

.opening .title-band__description {
    font-size: 18px;
    line-height: 1.6;
    color: #ffffffd1;
    max-width: 480px;
    text-align: justify
}

.opening .title-band__actions {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: center;
    flex-wrap: wrap
}

.opening .btn-primary {
    position: relative;
    display: inline-block;
    padding: 20px 40px;
    font-size: 15px;
    line-height: 1.1;
    color: #fff;
    background: #507EBE;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    overflow: hidden;
    box-shadow: 0 5px 18px -1px #507ebe1c;
    transition: color .16s cubic-bezier(0.4, 0, 1, 1), box-shadow .16s cubic-bezier(0.4, 0, 1, 1);
    text-decoration: none
}

.opening .btn-primary::before {
    content: '';
    position: absolute;
    inset: 0;
    background: #1a2a4a;
    transform: translateX(100%);
    transition: transform .16s cubic-bezier(0.4, 0, 1, 1);
    z-index: 0
}

.opening .btn-primary:hover::before {
    transform: translateX(0)
}

.opening .btn-primary:hover {
    box-shadow: 0 9px 36px -1px #507ebe24
}

.opening .btn-primary span {
    position: relative;
    z-index: 1
}

.opening .btn-secondary {
    position: relative;
    display: inline-block;
    padding: 20px 40px;
    font-size: 15px;
    line-height: 1.1;
    color: #1a2a4a;
    background: #ffffff26;
    border-radius: 8px;
    border: 1px solid #ffffff59;
    cursor: pointer;
    overflow: hidden;
    text-decoration: none;
    transition: background .14s cubic-bezier(0.4, 0, 1, 1), color .14s cubic-bezier(0.4, 0, 1, 1)
}

.opening .btn-secondary:hover {
    background: #ffffff47;
    color: #1a2a4a
}

.opening .title-band__image-col {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 20px
}

.opening .title-band__photo-frame {
    width: 100%;
    max-width: 420px;
    aspect-ratio: 3/4;
    overflow: hidden;
    border-radius: 13px;
    box-shadow: 0 9px 36px -1px #507ebe24;
    filter: saturate(0.7) brightness(0.88) contrast(1.08)
}

.opening .title-band__photo-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

.opening .title-band__stat {
    position: absolute;
    bottom: 20px;
    left: -40px;
    background: #fffffff2;
    border-radius: 13px;
    padding: 20px;
    box-shadow: 0 5px 18px -1px #507ebe1c
}

.opening .title-band__stat-number {
    font-size: 52px;
    line-height: 1.1;
    color: #507EBE;
    letter-spacing: -.03em;
    display: block
}

.opening .title-band__stat-label {
    font-size: 15px;
    line-height: 1.6;
    color: #2c3a52
}

.opening .metrics-band {
    position: relative;
    padding: 80px;
    background: #fff
}

.opening .metrics-band__rotate {
    width: 260px;
    height: 260px;
    background: linear-gradient(160deg, #C9BBDC 0%, #507EBE 100%);
    bottom: -60px;
    left: -60px
}

.opening .metrics-band__heading-strip {
    display: inline-block;
    background: #E3E7EC;
    padding: 10px 20px;
    border-radius: 8px;
    margin-bottom: 40px
}

.opening .metrics-band__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #1a2a4a;
    margin: 0
}

.opening .metrics-band__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    position: relative;
    z-index: 1
}

.opening .metric-card {
    background: #fff;
    border-radius: 13px;
    padding: 40px 20px;
    box-shadow: 0 2px 4px -1px #507ebe12 0 5px 18px -1px #507ebe1c;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: box-shadow .15s cubic-bezier(0.4, 0, 1, 1), transform .15s cubic-bezier(0.4, 0, 1, 1)
}

.opening .metric-card:hover {
    box-shadow: 0 9px 36px -1px #507ebe24;
    transform: translateY(-4px)
}

.opening .metric-card__number {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.04em;
    color: #507EBE;
    display: block
}

.opening .metric-card__unit {
    font-size: 18px;
    color: #507EBE
}

.opening .metric-card__label {
    font-size: 15px;
    line-height: 1.6;
    color: #2c3a52
}

.opening .metric-card__bar {
    height: 3px;
    background: #E3E7EC;
    border-radius: 48px;
    margin-top: 10px;
    overflow: hidden
}

.opening .metric-card__bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #507EBE, #C9BBDC);
    border-radius: 48px;
    animation: barGrow .18s cubic-bezier(0.4, 0, 1, 1) forwards;
    animation-delay: .3s;
    width: 0
}

@keyframes barGrow {
    to {
        width: var(--bar-width, 70%)
    }
}

.opening .metrics-band__schedule {
    margin-top: 40px;
    position: relative;
    z-index: 1
}

.opening .metrics-band__schedule-title {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2a4a;
    margin-bottom: 20px;
    font-weight: 600
}

.opening .schedule-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px
}

.opening .schedule-item {
    background: #E3E7EC;
    border-radius: 13px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.opening .schedule-item__time {
    font-size: 15px;
    line-height: 1.1;
    color: #507EBE;
    font-weight: 700
}

.opening .schedule-item__event {
    font-size: 15px;
    line-height: 1.6;
    color: #1a2a4a
}

.opening .schedule-item__duration {
    font-size: 15px;
    line-height: 1.1;
    color: #6a7a90
}

.opening .conditions-band {
    position: relative;
    padding: 80px;
    background: #507EBE;
    overflow: hidden
}

.opening .conditions-band__pattern {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image: linear-gradient(#ffffff0f 1px, transparent 1px), linear-gradient(90deg, #ffffff0f 1px, transparent 1px);
    background-size: 28px 28px
}

.opening .conditions-band__rotate {
    width: 300px;
    height: 300px;
    background: linear-gradient(127deg, #1a2a4a 0%, #C9BBDC 100%);
    top: -80px;
    right: -60px
}

.opening .conditions-band__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 80px;
    align-items: start
}

.opening .conditions-band__aside {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.opening .conditions-band__heading-strip {
    display: inline-block;
    background: #ffffff26;
    padding: 10px 20px;
    border-radius: 8px
}

.opening .conditions-band__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #fff;
    margin: 0
}

.opening .conditions-band__note {
    font-size: 15px;
    line-height: 1.6;
    color: #ffffffb8
}

.opening .conditions-band__image-frame {
    border-radius: 13px;
    overflow: hidden;
    width: 100%;
    max-width: 320px;
    aspect-ratio: 4/3;
    box-shadow: 0 9px 36px -1px #507ebe24
}

.opening .conditions-band__image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    opacity: .18
}

.opening .conditions-band__list {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.opening .condition-step {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: flex-start;
    position: relative
}

.opening .condition-step::after {
    content: '';
    position: absolute;
    left: 19px;
    top: 40px;
    width: 2px;
    height: calc(100% + 20px);
    background: #fff3
}

.opening .condition-step:last-child::after {
    display: none
}

.opening .condition-step__number {
    width: 40px;
    height: 40px;
    border-radius: 48px;
    background: #ffffff2e;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    line-height: 1.1;
    color: #fff;
    font-weight: 700;
    flex-shrink: 0
}

.opening .condition-step__body {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.opening .condition-step__heading {
    font-size: 18px;
    line-height: 1.1;
    color: #fff;
    font-weight: 600;
    margin: 0
}

.opening .condition-step__text {
    font-size: 15px;
    line-height: 1.6;
    color: #fffc;
    text-align: justify
}

.opening .gap-band {
    position: relative;
    padding: 80px;
    background: #E3E7EC
}

.opening .gap-band__rotate {
    width: 220px;
    height: 220px;
    background: linear-gradient(160deg, #507EBE 0%, #1a2a4a 100%);
    top: -40px;
    right: 80px
}

.opening .gap-band__grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 80px;
    align-items: start;
    position: relative;
    z-index: 1
}

.opening .gap-band__main {
    display: flex;
    flex-direction: column;
    gap: 40px
}

.opening .gap-band__heading-strip {
    display: inline-block;
    background: #507EBE;
    padding: 10px 20px;
    border-radius: 8px
}

.opening .gap-band__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #fff;
    margin: 0
}

.opening .gap-band__columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.opening .gap-panel {
    background: #fff;
    border-radius: 13px;
    padding: 40px 20px;
    box-shadow: 0 2px 4px -1px #507ebe12;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.opening .gap-panel--before {
    border-top: 3px solid #C9BBDC
}

.opening .gap-panel--after {
    border-top: 3px solid #507EBE
}

.opening .gap-panel__label {
    font-size: 15px;
    line-height: 1.1;
    color: #6a7a90;
    text-transform: uppercase;
    letter-spacing: .08em
}

.opening .gap-panel__heading {
    font-size: 18px;
    line-height: 1.1;
    color: #1a2a4a;
    font-weight: 600;
    margin: 0
}

.opening .gap-panel__text {
    font-size: 15px;
    line-height: 1.6;
    color: #2c3a52;
    text-align: justify
}

.opening .gap-band__aside {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.opening .gap-band__image-texture {
    border-radius: 13px;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 3/4;
    box-shadow: 0 5px 18px -1px #507ebe1c;
    position: relative
}

.opening .gap-band__image-texture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    opacity: .14
}

.opening .gap-band__aside-note {
    font-size: 15px;
    line-height: 1.6;
    color: #2c3a52
}

.opening .experience-band {
    position: relative;
    padding: 80px;
    background: #fff
}

.opening .experience-band__rotate {
    width: 280px;
    height: 280px;
    background: linear-gradient(200deg, #C9BBDC 0%, #507EBE 100%);
    bottom: -60px;
    right: -40px
}

.opening .experience-band__heading-strip {
    display: inline-block;
    background: #C9BBDC;
    padding: 10px 20px;
    border-radius: 8px;
    margin-bottom: 40px
}

.opening .experience-band__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #1a2a4a;
    margin: 0
}

.opening .experience-band__layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    position: relative;
    z-index: 1
}

.opening .experience-card {
    background: #E3E7EC;
    border-radius: 22px;
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    box-shadow: 0 2px 4px -1px #507ebe12;
    transition: box-shadow .13s cubic-bezier(0.4, 0, 1, 1)
}

.opening .experience-card:hover {
    box-shadow: 0 9px 36px -1px #507ebe24
}

.opening .experience-card__portrait {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: flex-start
}

.opening .experience-card__photo {
    width: 80px;
    height: 106px;
    overflow: hidden;
    flex-shrink: 0
}

.opening .experience-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

.opening .experience-card__meta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 10px
}

.opening .experience-card__name {
    font-size: 18px;
    line-height: 1.1;
    color: #1a2a4a;
    font-weight: 700
}

.opening .experience-card__role {
    font-size: 15px;
    line-height: 1.6;
    color: #507EBE
}

.opening .experience-card__quote {
    font-size: 15px;
    line-height: 1.6;
    color: #2c3a52;
    text-align: justify
}

.opening .experience-card__detail {
    font-size: 15px;
    line-height: 1.6;
    color: #2c3a52;
    text-align: justify
}

.opening .experience-band__aside-text {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.opening .experience-band__aside-note {
    font-size: 15px;
    line-height: 1.6;
    color: #6a7a90
}

.opening .experience-band__aside-body {
    font-size: 15px;
    line-height: 1.6;
    color: #2c3a52;
    text-align: justify
}

.opening .longterm-band {
    position: relative;
    padding: 80px;
    background: #1a2a4a;
    overflow: hidden
}

.opening .longterm-band__rotate {
    width: 400px;
    height: 400px;
    background: linear-gradient(127deg, #507EBE 0%, #C9BBDC 100%);
    top: -100px;
    left: -80px
}

.opening .longterm-band__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 40px
}

.opening .longterm-band__heading-strip {
    display: inline-block;
    background: #c9bbdc2e;
    padding: 10px 20px;
    border-radius: 8px
}

.opening .longterm-band__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #fff;
    margin: 0
}

.opening .longterm-band__grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px
}

.opening .longterm-item {
    background: #ffffff0f;
    border-radius: 13px;
    padding: 40px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    border: 1px solid #ffffff1a;
    transition: background .14s cubic-bezier(0.4, 0, 1, 1), border-color .14s cubic-bezier(0.4, 0, 1, 1)
}

.opening .longterm-item:hover {
    background: #ffffff1c;
    border-color: #c9bbdc59
}

.opening .longterm-item__number {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.04em;
    color: #C9BBDC
}

.opening .longterm-item__heading {
    font-size: 18px;
    line-height: 1.1;
    color: #fff;
    font-weight: 600;
    margin: 0
}

.opening .longterm-item__text {
    font-size: 15px;
    line-height: 1.6;
    color: #ffffffb8;
    text-align: justify
}

.opening .longterm-band__bottom {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 40px;
    align-items: center
}

.opening .longterm-band__closing {
    font-size: 18px;
    line-height: 1.6;
    color: #ffffffd1;
    text-align: justify
}

.opening .longterm-band__image-frame {
    border-radius: 13px;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 4/3
}

.opening .longterm-band__image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    opacity: .16
}

.opening .watercolor-divider {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    display: block
}

.opening .watercolor-divider svg {
    display: block;
    width: 100%
}

@media (max-width: 1100px) {

    .opening .title-band__grid,
    .opening .conditions-band__inner,
    .opening .gap-band__grid,
    .opening .experience-band__layout,
    .opening .longterm-band__bottom {
        grid-template-columns: 1fr
    }

    .opening .metrics-band__grid {
        grid-template-columns: 1fr 1fr
    }

    .opening .schedule-grid {
        grid-template-columns: 1fr 1fr
    }

    .opening .longterm-band__grid {
        grid-template-columns: 1fr 1fr
    }

    .opening .title-band__stat {
        position: static;
        align-self: flex-start
    }

    .opening .title-band__photo-frame {
        max-width: 100%
    }
}

@media (max-width: 720px) {

    .opening .title-band,
    .opening .metrics-band,
    .opening .conditions-band,
    .opening .gap-band,
    .opening .experience-band,
    .opening .longterm-band {
        padding: 40px 20px
    }

    .opening .title-band__heading {
        font-size: 52px
    }

    .opening .metrics-band__grid {
        grid-template-columns: 1fr
    }

    .opening .schedule-grid {
        grid-template-columns: 1fr
    }

    .opening .longterm-band__grid {
        grid-template-columns: 1fr
    }

    .opening .gap-band__columns {
        grid-template-columns: 1fr
    }
}

.about-us {
    max-width: 1440px;
    margin: 0 auto;
    overflow-x: clip
}

.about-us .reading__track {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto
}

.about-us .reading__annotation {
    flex: 0 0 160px;
    padding-top: 10px
}

.about-us .reading__annotation--label {
    font-size: 15px;
    line-height: 1.6;
    color: #507EBE;
    opacity: .72;
    writing-mode: horizontal-tb
}

.about-us .reading__body {
    flex: 1 1 0
}

@keyframes track-in {
    from {
        letter-spacing: -.04em;
        opacity: 0
    }

    to {
        letter-spacing: .01em;
        opacity: 1
    }
}

.about-us .manifesto__heading {
    font-size: 68px;
    line-height: 1.1;
    letter-spacing: .01em;
    animation: track-in .7s cubic-bezier(0.4, 0, 1, 1) both;
    color: #fff;
    margin: 0 0 40px
}

.about-us .manifesto__panel {
    position: relative;
    background: #507EBE;
    padding: 80px;
    overflow: hidden
}

.about-us .manifesto__panel::before {
    content: '';
    position: absolute;
    top: -60px;
    right: -60px;
    width: 320px;
    height: 320px;
    border: 2.5px solid #c9bbdc38;
    border-radius: 50%;
    pointer-events: none
}

.about-us .manifesto__panel::after {
    content: '';
    position: absolute;
    bottom: -80px;
    right: 80px;
    width: 200px;
    height: 200px;
    border: 2px solid #c9bbdc24;
    border-radius: 50%;
    pointer-events: none
}

.about-us .manifesto__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    min-height: 480px
}

.about-us .manifesto__text-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-right: 80px
}

.about-us .manifesto__image-col {
    position: relative
}

.about-us .manifesto__image-wrap {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 480px;
    border-radius: 13px;
    overflow: hidden
}

.about-us .manifesto__image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

.about-us .manifesto__image-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #507EBE 0%, #507ebe00 55%);
    border-radius: 13px
}

.about-us .manifesto__declaration {
    font-size: 18px;
    line-height: 1.6;
    color: #ffffffe0;
    text-align: justified;
    margin: 0 0 20px
}

.about-us .manifesto__dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #C9BBDC;
    margin-right: 10px;
    vertical-align: middle
}

.about-us .manifesto__label {
    font-size: 15px;
    line-height: 1.6;
    color: #ffffffa6;
    display: flex;
    flex-direction: row;
    align-items: center
}

.about-us .manifesto__arrow-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    margin-top: 40px
}

.about-us .manifesto__arrow {
    width: 48px;
    height: 2px;
    background: #c9bbdc80;
    position: relative
}

.about-us .manifesto__arrow::after {
    content: '';
    position: absolute;
    right: 0;
    top: -4px;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 8px solid #c9bbdc80
}

.about-us .curved-divider {
    width: 100%;
    line-height: 0;
    overflow: hidden
}

.about-us .curved-divider svg {
    display: block;
    width: 100%
}

.about-us .story__panel {
    background: #fff;
    padding: 80px 0 40px
}

.about-us .story__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 80px
}

.about-us .story__heading-strip {
    display: inline-block;
    background: #E3E7EC;
    padding: 10px 20px;
    border-radius: 8px;
    margin-bottom: 40px
}

.about-us .story__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #507EBE;
    margin: 0
}

.about-us .story__layout {
    display: grid;
    grid-template-columns: 160px 1fr 340px;
    gap: 40px;
    align-items: start
}

.about-us .story__aside {
    padding-top: 10px
}

.about-us .story__aside-label {
    font-size: 15px;
    line-height: 1.6;
    color: #507EBE;
    opacity: .6
}

.about-us .story__text p {
    font-size: 18px;
    line-height: 1.6;
    color: #2a3a52;
    text-align: justify;
    margin: 0 0 20px
}

.about-us .story__image-aside {
    position: relative
}

.about-us .story__image-frame {
    border-radius: 22px;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 3/4;
    box-shadow: 0 5px 18px -1px #507ebe1c
}

.about-us .story__image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

.about-us .story__image-caption {
    margin-top: 10px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px
}

.about-us .story__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #507EBE;
    flex-shrink: 0
}

.about-us .story__caption-text {
    font-size: 15px;
    line-height: 1.6;
    color: #507EBE;
    opacity: .7
}

.about-us .metrics__panel {
    background: #E3E7EC;
    padding: 80px 0;
    position: relative
}

.about-us .metrics__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 80px
}

.about-us .metrics__heading-strip {
    display: inline-block;
    background: #C9BBDC;
    padding: 10px 20px;
    border-radius: 8px;
    margin-bottom: 40px
}

.about-us .metrics__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #2a3a52;
    margin: 0
}

.about-us .metrics__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 40px
}

.about-us .metric__card {
    background: #fff;
    border-radius: 13px;
    padding: 40px 20px 20px;
    box-shadow: 0 2px 4px -1px #507ebe12;
    transition: box-shadow .18s cubic-bezier(0.4, 0, 1, 1), transform .14s cubic-bezier(0.4, 0, 1, 1);
    position: relative;
    overflow: hidden
}

.about-us .metric__card:hover {
    box-shadow: 0 9px 36px -1px #507ebe24;
    transform: translateY(-4px)
}

.about-us .metric__card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #507EBE, #C9BBDC);
    border-radius: 13px 13px 0 0
}

.about-us .metric__figure {
    font-size: 52px;
    line-height: 1.1;
    color: #507EBE;
    letter-spacing: -.03em;
    margin-bottom: 10px
}

.about-us .metric__label {
    font-size: 15px;
    line-height: 1.6;
    color: #507EBE;
    margin-bottom: 10px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.about-us .metric__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #C9BBDC;
    flex-shrink: 0
}

.about-us .metric__narrative {
    font-size: 15px;
    line-height: 1.6;
    color: #4a5a72;
    text-align: justify;
    margin: 0
}

.about-us .metrics__image-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px
}

.about-us .metrics__image-item {
    border-radius: 13px;
    overflow: hidden;
    aspect-ratio: 4/3;
    box-shadow: 0 2px 4px -1px #507ebe12
}

.about-us .metrics__image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .18s cubic-bezier(0.4, 0, 1, 1)
}

.about-us .metrics__image-item:hover img {
    transform: scale(1.04)
}

.about-us .metrics__image-item--pan img {
    animation: pan-lr 14s linear infinite alternate
}

@keyframes pan-lr {
    from {
        object-position: left center
    }

    to {
        object-position: right center
    }
}

.about-us .contact__panel {
    background: #fff;
    padding: 80px 0
}

.about-us .contact__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 80px
}

.about-us .contact__layout {
    display: grid;
    grid-template-columns: 1fr 520px;
    gap: 80px;
    align-items: start
}

.about-us .contact__left {
    display: flex;
    flex-direction: column;
    gap: 40px
}

.about-us .contact__heading-strip {
    display: inline-block;
    background: #E3E7EC;
    padding: 10px 20px;
    border-radius: 8px;
    margin-bottom: 0
}

.about-us .contact__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #507EBE;
    margin: 0
}

.about-us .contact__description p {
    font-size: 18px;
    line-height: 1.6;
    color: #2a3a52;
    text-align: justify;
    margin: 0 0 20px
}

.about-us .contact__portrait-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px
}

.about-us .contact__portrait {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 5px 18px -1px #507ebe1c
}

.about-us .contact__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

.about-us .contact__person-info {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.about-us .contact__person-name {
    font-size: 18px;
    line-height: 1.6;
    color: #2a3a52
}

.about-us .contact__person-role {
    font-size: 15px;
    line-height: 1.6;
    color: #507EBE;
    opacity: .72
}

.about-us .contact__form-panel {
    background: #E3E7EC;
    border-radius: 22px;
    padding: 40px;
    box-shadow: 0 5px 18px -1px #507ebe1c
}

.about-us .form__group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px
}

.about-us .form__label {
    font-size: 15px;
    line-height: 1.6;
    color: #2a3a52
}

.about-us .form__input {
    background: #fff;
    border: 1.5px solid #507ebe38;
    border-radius: 8px;
    padding: 10px 20px;
    font-size: 15px;
    line-height: 1.6;
    color: #2a3a52;
    outline: none;
    transition: border-color .16s cubic-bezier(0.4, 0, 1, 1), box-shadow .16s cubic-bezier(0.4, 0, 1, 1);
    width: 100%;
    box-sizing: border-box
}

.about-us .form__input::placeholder {
    color: #2a3a5261
}

.about-us .form__input:focus {
    border-color: #507EBE;
    box-shadow: 0 2px 4px -1px #507ebe12
}

.about-us .form__select {
    background: #fff;
    border: 1.5px solid #507ebe38;
    border-radius: 8px;
    padding: 10px 20px;
    font-size: 15px;
    line-height: 1.6;
    color: #2a3a52;
    outline: none;
    transition: border-color .16s cubic-bezier(0.4, 0, 1, 1);
    width: 100%;
    box-sizing: border-box;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 7L11 1' stroke='%23507EBE' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 20px center;
    cursor: pointer
}

.about-us .form__select:focus {
    border-color: #507EBE
}

.about-us .form__privacy {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 20px
}

.about-us .form__privacy-checkbox {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
    accent-color: #507EBE;
    cursor: pointer
}

.about-us .form__privacy-text {
    font-size: 15px;
    line-height: 1.6;
    color: #4a5a72
}

.about-us .form__privacy-text a {
    color: #507EBE;
    text-decoration: underline;
    transition: opacity .12s cubic-bezier(0.4, 0, 1, 1)
}

.about-us .form__privacy-text a:hover {
    opacity: .72
}

.about-us .form__submit {
    position: relative;
    overflow: hidden;
    background: #507EBE;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 40px;
    font-size: 18px;
    line-height: 1.6;
    cursor: pointer;
    width: 100%;
    transition: color .16s cubic-bezier(0.4, 0, 1, 1);
    z-index: 0
}

.about-us .form__submit::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 100%;
    background: #2a3a52;
    transition: left .16s cubic-bezier(0.4, 0, 1, 1);
    z-index: -1
}

.about-us .form__submit:hover::before {
    left: 0
}

.about-us .form__submit:focus {
    outline: 2px solid #507EBE;
    outline-offset: 3px
}

.about-us .form__submit:active {
    opacity: .88
}

@media (max-width: 1024px) {
    .about-us .manifesto__grid {
        grid-template-columns: 1fr
    }

    .about-us .manifesto__image-col {
        display: none
    }

    .about-us .manifesto__panel {
        padding: 80px 40px
    }

    .about-us .manifesto__text-col {
        padding-right: 0
    }

    .about-us .story__layout {
        grid-template-columns: 1fr
    }

    .about-us .story__aside {
        display: none
    }

    .about-us .story__image-aside {
        display: none
    }

    .about-us .story__container {
        padding: 0 40px
    }

    .about-us .metrics__grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .about-us .metrics__container {
        padding: 0 40px
    }

    .about-us .metrics__image-row {
        grid-template-columns: 1fr 1fr
    }

    .about-us .contact__layout {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .about-us .contact__container {
        padding: 0 40px
    }
}

@media (max-width: 640px) {
    .about-us .manifesto__heading {
        font-size: 52px
    }

    .about-us .manifesto__panel {
        padding: 40px 20px
    }

    .about-us .metrics__grid {
        grid-template-columns: 1fr
    }

    .about-us .metrics__image-row {
        grid-template-columns: 1fr
    }

    .about-us .story__container {
        padding: 0 20px
    }

    .about-us .metrics__container {
        padding: 0 20px
    }

    .about-us .contact__container {
        padding: 0 20px
    }

    .about-us .contact__form-panel {
        padding: 20px
    }

    .about-us .story__heading-strip h2,
    .about-us .metrics__heading-strip h2,
    .about-us .contact__heading-strip h2 {
        font-size: 36px
    }
}

.learning-program {
    max-width: 1440px;
    margin: 0 auto;
    overflow-x: clip
}

.learning-program *,
.learning-program ::before,
.learning-program ::after {
    box-sizing: border-box
}

.learning-program ::selection {
    background: linear-gradient(90deg, #507ebe59, #c9bbdc59);
    color: #1a2a3a
}

@keyframes blur-to-sharp {
    from {
        filter: blur(6px);
        opacity: 0
    }

    to {
        filter: blur(0);
        opacity: 1
    }
}

.learning-program .reveal-1 {
    animation: blur-to-sharp .55s cubic-bezier(0.4, 0, 1, 1) both
}

.learning-program .reveal-2 {
    animation: blur-to-sharp .55s cubic-bezier(0.4, 0, 1, 1) .12s both
}

.learning-program .reveal-3 {
    animation: blur-to-sharp .55s cubic-bezier(0.4, 0, 1, 1) .24s both
}

.learning-program .title-block {
    background-color: #2a3d5c;
    padding: 80px;
    position: relative
}

.learning-program .title-block__grid-bg {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(#507ebe12 1px, transparent 1px), linear-gradient(90deg, #507ebe12 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none
}

.learning-program .title-block__vignette {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 20% 50%, transparent 40%, #141e328c 100%);
    pointer-events: none
}

.learning-program .title-block__layout {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 80px;
    position: relative;
    z-index: 1
}

.learning-program .title-block__primary {
    flex: 2
}

.learning-program .title-block__support {
    flex: 1;
    padding-top: 20px
}

.learning-program .title-block__label {
    display: inline-block;
    font-size: 15px;
    line-height: 1.6;
    color: #C9BBDC;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: 20px
}

.learning-program .title-block__heading {
    font-size: 68px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #f0ecf8;
    margin: 0 0 20px
}

.learning-program .title-block__heading span {
    display: inline;
    background: linear-gradient(135deg, #507EBE 0%, #8a6fb5 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.learning-program .title-block__sub {
    font-size: 18px;
    line-height: 1.6;
    color: #c8d4e8;
    max-width: 540px;
    text-align: justify;
    margin: 0 0 40px
}

.learning-program .title-block__cta {
    display: inline-block;
    font-size: 15px;
    line-height: 1.6;
    font-weight: 600;
    color: #fff;
    background: #507EBE;
    border: none;
    padding: 10px 40px;
    border-radius: 8px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color .16s cubic-bezier(0.4, 0, 1, 1);
    box-shadow: 0 5px 18px -1px #507ebe1c;
    text-decoration: none
}

.learning-program .title-block__cta::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #3a6aab;
    transform: translateX(100%);
    transition: transform .14s cubic-bezier(0.4, 0, 1, 1);
    z-index: 0
}

.learning-program .title-block__cta:hover::after {
    transform: translateX(0)
}

.learning-program .title-block__cta-text {
    position: relative;
    z-index: 1
}

.learning-program .title-block__stat-stack {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.learning-program .title-block__stat {
    background: #507ebe1f;
    border-radius: 13px;
    padding: 20px;
    border: 1px solid #c9bbdc2e
}

.learning-program .title-block__stat-number {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #C9BBDC;
    display: block
}

.learning-program .title-block__stat-desc {
    font-size: 15px;
    line-height: 1.6;
    color: #9bacc8;
    display: block;
    margin-top: 10px
}

.learning-program .title-block__lines {
    position: absolute;
    bottom: 40px;
    right: 80px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    pointer-events: none;
    opacity: .25
}

.learning-program .title-block__lines span {
    display: block;
    height: 1px;
    background: #C9BBDC
}

.learning-program .scallop-divider {
    width: 100%;
    line-height: 0;
    overflow: hidden
}

.learning-program .scallop-divider svg {
    display: block;
    width: 100%
}

.learning-program .program-details {
    background: #f4f1f9;
    padding: 80px;
    position: relative
}

.learning-program .program-details__vignette {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 80% 50%, transparent 45%, #507ebe0f 100%);
    pointer-events: none
}

.learning-program .program-details__layout {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 40px;
    position: relative;
    z-index: 1;
    max-width: 1100px
}

.learning-program .program-details__aside {
    padding-top: 10px
}

.learning-program .program-details__aside-note {
    font-size: 15px;
    line-height: 1.6;
    color: #507EBE;
    border-top: 2px solid #507EBE;
    padding-top: 10px
}

.learning-program .program-details__body {
    display: flex;
    flex-direction: column;
    gap: 40px
}

.learning-program .program-details__heading-strip {
    display: inline-block;
    background: #C9BBDC;
    padding: 4px 20px;
    border-radius: 8px;
    margin-bottom: 20px
}

.learning-program .program-details__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #2a3d5c;
    margin: 0
}

.learning-program .program-details__paragraph {
    font-size: 18px;
    line-height: 1.6;
    color: #2e3a4e;
    text-align: justify;
    margin: 0
}

.learning-program .program-details__image-wrap {
    border-radius: 13px;
    overflow: hidden;
    box-shadow: 0 9px 36px -1px #507ebe24;
    position: relative
}

.learning-program .program-details__image-wrap img {
    width: 100%;
    height: 340px;
    object-fit: cover;
    object-position: center;
    display: block;
    filter: saturate(1);
    transition: filter .18s cubic-bezier(0.4, 0, 1, 1)
}

.learning-program .program-details__image-wrap:hover img {
    filter: saturate(0)
}

.learning-program .program-details__image-vignette {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, #141e3261 0%, transparent 45%);
    pointer-events: none
}

.learning-program .program-details__steps {
    display: flex;
    flex-direction: column;
    gap: 0
}

.learning-program .program-details__step {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    padding: 20px 0;
    position: relative
}

.learning-program .program-details__step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 19px;
    top: 52px;
    bottom: -20px;
    width: 2px;
    background: linear-gradient(to bottom, #507EBE, #507ebe26)
}

.learning-program .program-details__step-num {
    width: 40px;
    height: 40px;
    border-radius: 48px;
    background: #507EBE;
    color: #fff;
    font-size: 15px;
    line-height: 1.6;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 2px 4px -1px #507ebe12
}

.learning-program .program-details__step-content {
    flex: 1;
    padding-top: 10px
}

.learning-program .program-details__step-heading {
    font-size: 18px;
    line-height: 1.6;
    font-weight: 700;
    color: #2a3d5c;
    margin: 0 0 10px
}

.learning-program .program-details__step-text {
    font-size: 15px;
    line-height: 1.6;
    color: #3d4e66;
    text-align: justify;
    margin: 0
}

.learning-program .program-details__dec-lines {
    position: absolute;
    top: 80px;
    right: 80px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    pointer-events: none;
    opacity: .18
}

.learning-program .program-details__dec-lines span {
    display: block;
    height: 1px;
    background: #507EBE
}

.learning-program .scallop-divider--light svg {
    fill: #f4f1f9
}

.learning-program .outcomes {
    background: #fff;
    padding: 80px;
    position: relative
}

.learning-program .outcomes__vignette {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 15% 80%, transparent 40%, #c9bbdc1f 100%);
    pointer-events: none
}

.learning-program .outcomes__layout {
    display: flex;
    flex-direction: row;
    gap: 80px;
    align-items: flex-start;
    position: relative;
    z-index: 1
}

.learning-program .outcomes__left {
    flex: 3;
    display: flex;
    flex-direction: column;
    gap: 40px
}

.learning-program .outcomes__right {
    flex: 2;
    display: flex;
    flex-direction: column;
    gap: 40px
}

.learning-program .outcomes__heading-strip {
    display: inline-block;
    background: #507ebe1f;
    padding: 4px 20px;
    border-radius: 8px;
    margin-bottom: 20px
}

.learning-program .outcomes__heading-strip h2 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #2a3d5c;
    margin: 0
}

.learning-program .outcomes__paragraph {
    font-size: 18px;
    line-height: 1.6;
    color: #2e3a4e;
    text-align: justify;
    margin: 0
}

.learning-program .outcomes__rings {
    display: flex;
    flex-direction: row;
    gap: 40px;
    flex-wrap: wrap
}

.learning-program .outcomes__ring-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px
}

.learning-program .outcomes__ring-svg {
    width: 100px;
    height: 100px
}

.learning-program .outcomes__ring-label {
    font-size: 15px;
    line-height: 1.6;
    color: #3d4e66;
    text-align: center;
    max-width: 100px
}

@keyframes ring-fill {
    from {
        stroke-dashoffset: 220
    }
}

.learning-program .outcomes__ring-circle {
    animation: ring-fill 1s cubic-bezier(0.4, 0, 1, 1) both
}

.learning-program .outcomes__ring-circle--1 {
    animation-delay: .1s
}

.learning-program .outcomes__ring-circle--2 {
    animation-delay: .22s
}

.learning-program .outcomes__ring-circle--3 {
    animation-delay: .34s
}

.learning-program .outcomes__image-card {
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 9px 36px -1px #507ebe24;
    position: relative
}

.learning-program .outcomes__image-card img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    object-position: center;
    display: block;
    filter: saturate(1);
    transition: filter .16s cubic-bezier(0.4, 0, 1, 1)
}

.learning-program .outcomes__image-card:hover img {
    filter: saturate(0)
}

.learning-program .outcomes__image-vignette {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #141e326b 0%, transparent 50%);
    pointer-events: none
}

.learning-program .outcomes__profiles {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.learning-program .outcomes__profile-heading {
    font-size: 18px;
    line-height: 1.6;
    font-weight: 700;
    color: #2a3d5c;
    margin: 0 0 10px
}

.learning-program .outcomes__profile-card {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    background: #f4f1f9;
    border-radius: 13px;
    padding: 20px;
    box-shadow: 0 2px 4px -1px #507ebe12;
    transition: box-shadow .14s cubic-bezier(0.4, 0, 1, 1)
}

.learning-program .outcomes__profile-card:hover {
    box-shadow: 0 5px 18px -1px #507ebe1c
}

.learning-program .outcomes__portrait {
    width: 80px;
    height: 103px;
    border-radius: 13px;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 2px 4px -1px #c9bbdc12
}

.learning-program .outcomes__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

.learning-program .outcomes__profile-text {
    flex: 1
}

.learning-program .outcomes__profile-name {
    font-size: 15px;
    line-height: 1.6;
    font-weight: 700;
    color: #2a3d5c;
    margin: 0 0 10px
}

.learning-program .outcomes__profile-role {
    font-size: 15px;
    line-height: 1.6;
    color: #507EBE;
    margin: 0 0 10px
}

.learning-program .outcomes__profile-quote {
    font-size: 15px;
    line-height: 1.6;
    color: #3d4e66;
    text-align: justify;
    margin: 0
}

.learning-program .outcomes__dec-lines {
    position: absolute;
    bottom: 80px;
    left: 80px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    pointer-events: none;
    opacity: .15
}

.learning-program .outcomes__dec-lines span {
    display: block;
    height: 1px;
    background: #507EBE
}

@media (max-width: 1024px) {
    .learning-program .title-block {
        padding: 80px 40px
    }

    .learning-program .title-block__layout {
        flex-direction: column;
        gap: 40px
    }

    .learning-program .title-block__heading {
        font-size: 52px
    }

    .learning-program .program-details {
        padding: 80px 40px
    }

    .learning-program .program-details__layout {
        grid-template-columns: 1fr
    }

    .learning-program .program-details__aside {
        display: none
    }

    .learning-program .outcomes {
        padding: 80px 40px
    }

    .learning-program .outcomes__layout {
        flex-direction: column;
        gap: 40px
    }
}

@media (max-width: 640px) {
    .learning-program .title-block {
        padding: 40px 20px
    }

    .learning-program .title-block__heading {
        font-size: 52px
    }

    .learning-program .program-details {
        padding: 40px 20px
    }

    .learning-program .outcomes {
        padding: 40px 20px
    }

    .learning-program .outcomes__rings {
        gap: 20px
    }

    .learning-program .title-block__lines {
        right: 20px;
        bottom: 20px
    }
}

.contact-us {
    max-width: 1440px;
    margin: 0 auto;
    overflow-x: clip
}

.contact-us .reach__panel {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 40px;
    padding: 80px 80px 40px;
    background: #fff;
    position: relative
}

.contact-us .reach__panel::before {
    content: "";
    position: absolute;
    top: 20px;
    left: 40px;
    right: 40px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #507EBE 30%, #C9BBDC 70%, transparent);
    pointer-events: none
}

.contact-us .reach__panel::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 40px;
    right: 40px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #507EBE 30%, #C9BBDC 70%, transparent);
    pointer-events: none
}

.contact-us .reach__left {
    flex: 0 0 340px;
    display: flex;
    flex-direction: column;
    gap: 40px
}

.contact-us .reach__label {
    display: inline-block;
    background: #507EBE;
    color: #fff;
    font-size: 15px;
    line-height: 1.1;
    letter-spacing: .08em;
    padding: 10px 20px;
    border-radius: 8px;
    text-transform: uppercase
}

.contact-us .reach__heading {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #1b2a3e;
    margin: 0
}

.contact-us .reach__note {
    font-size: 15px;
    line-height: 1.6;
    color: #3a4a5c;
    text-align: justify;
    margin: 0
}

.contact-us .reach__aside {
    font-size: 15px;
    line-height: 1.6;
    color: #507EBE;
    border-top: 2px solid #C9BBDC;
    padding-top: 20px;
    margin: 0
}

.contact-us .reach__right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.contact-us .detail__card {
    background: #E3E7EC;
    border-radius: 13px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 2px 4px -1px #507ebe12;
    transition: box-shadow .18s cubic-bezier(0.4, 0, 1, 1), transform .14s cubic-bezier(0.4, 0, 1, 1)
}

.contact-us .detail__card:hover {
    box-shadow: 0 5px 18px -1px #507ebe1c;
    transform: translateY(-2px)
}

.contact-us .detail__card--accent {
    background: linear-gradient(148deg, #507EBE 0%, #3a6aad 100%)
}

.contact-us .detail__card--accent .detail__label,
.contact-us .detail__card--accent .detail__value,
.contact-us .detail__card--accent .detail__link {
    color: #fff
}

.contact-us .detail__label {
    font-size: 15px;
    line-height: 1.1;
    letter-spacing: .06em;
    color: #507EBE;
    text-transform: uppercase
}

.contact-us .detail__value {
    font-size: 18px;
    line-height: 1.6;
    color: #1b2a3e;
    margin: 0
}

.contact-us .detail__link {
    font-size: 18px;
    line-height: 1.6;
    color: #1b2a3e;
    text-decoration: none;
    transition: color .14s cubic-bezier(0.4, 0, 1, 1)
}

.contact-us .detail__link:hover {
    color: #507EBE
}

.contact-us .detail__card--accent .detail__link:hover {
    color: #C9BBDC
}

.contact-us .cards__row {
    display: flex;
    flex-direction: row;
    gap: 20px
}

.contact-us .cards__row .detail__card {
    flex: 1
}

.contact-us .form__band {
    position: relative;
    padding: 80px;
    background: #E3E7EC;
    overflow: hidden
}

.contact-us .form__band--bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(148deg, #507EBE 0%, #C9BBDC 60%, #E3E7EC 100%);
    opacity: .13;
    pointer-events: none
}

.contact-us .form__band--line-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #507EBE 0%, #C9BBDC 60%, transparent 100%);
    pointer-events: none
}

.contact-us .form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
    position: relative
}

.contact-us .form__info {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.contact-us .form__info-heading {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #1b2a3e;
    margin: 0
}

.contact-us .form__info-strip {
    display: inline-block;
    background: #C9BBDC;
    padding: 10px 20px;
    border-radius: 8px;
    font-size: 15px;
    line-height: 1.1;
    color: #1b2a3e;
    letter-spacing: .04em
}

.contact-us .form__info-text {
    font-size: 15px;
    line-height: 1.6;
    color: #3a4a5c;
    text-align: justify;
    margin: 0
}

.contact-us .form__metrics {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 20px
}

.contact-us .metric__item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    padding: 10px 20px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 4px -1px #507ebe12
}

.contact-us .metric__number {
    font-size: 52px;
    line-height: 1.1;
    font-weight: 700;
    color: #507EBE;
    letter-spacing: -.04em;
    flex: 0 0 auto
}

.contact-us .metric__desc {
    font-size: 15px;
    line-height: 1.6;
    color: #3a4a5c;
    margin: 0
}

.contact-us .form__card {
    background: #fff;
    border-radius: 22px;
    padding: 40px;
    box-shadow: 0 9px 36px -1px #507ebe24;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.contact-us .form__card-heading {
    font-size: 18px;
    line-height: 1.1;
    color: #1b2a3e;
    margin: 0;
    letter-spacing: -.01em
}

.contact-us .field__group {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.contact-us .field__label {
    font-size: 15px;
    line-height: 1.1;
    color: #3a4a5c;
    display: block
}

.contact-us .field__input {
    width: 100%;
    padding: 10px 20px;
    border: 1.5px solid #C9BBDC;
    border-radius: 8px;
    font-size: 15px;
    line-height: 1.6;
    color: #1b2a3e;
    background: #fff;
    box-sizing: border-box;
    transition: border-color .14s cubic-bezier(0.4, 0, 1, 1), box-shadow .14s cubic-bezier(0.4, 0, 1, 1);
    outline: none
}

.contact-us .field__input::placeholder {
    color: #8fa5b8
}

.contact-us .field__input:focus {
    border-color: #507EBE;
    box-shadow: 0 0 0 2px #507ebe21
}

.contact-us .check__group {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.contact-us .check__group-label {
    font-size: 15px;
    line-height: 1.1;
    color: #3a4a5c;
    display: block
}

.contact-us .check__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px
}

.contact-us .check__item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 8px;
    background: #E3E7EC;
    cursor: pointer;
    transition: background .14s cubic-bezier(0.4, 0, 1, 1)
}

.contact-us .check__item:hover {
    background: #C9BBDC
}

.contact-us .check__item input[type="checkbox"] {
    accent-color: #507EBE;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    cursor: pointer
}

.contact-us .check__item-text {
    font-size: 15px;
    line-height: 1.1;
    color: #1b2a3e
}

.contact-us .privacy__row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
    padding: 10px;
    background: #E3E7EC;
    border-radius: 8px
}

.contact-us .privacy__row input[type="checkbox"] {
    accent-color: #507EBE;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin-top: 2px;
    cursor: pointer
}

.contact-us .privacy__text {
    font-size: 15px;
    line-height: 1.6;
    color: #3a4a5c;
    margin: 0
}

.contact-us .privacy__text a {
    color: #507EBE;
    text-decoration: underline;
    transition: color .14s cubic-bezier(0.4, 0, 1, 1)
}

.contact-us .privacy__text a:hover {
    color: #3a6aad
}

.contact-us .submit__btn {
    display: block;
    width: 100%;
    padding: 20px;
    background: #507EBE;
    color: #fff;
    font-size: 18px;
    line-height: 1.1;
    letter-spacing: .03em;
    border: none;
    border-radius: 13px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color .16s cubic-bezier(0.4, 0, 1, 1);
    box-shadow: 0 5px 18px -1px #507ebe1c
}

.contact-us .submit__btn::after {
    content: "";
    position: absolute;
    inset: 0;
    background: #3a6aad;
    transform: translateX(100%);
    transition: transform .16s cubic-bezier(0.4, 0, 1, 1);
    border-radius: 13px
}

.contact-us .submit__btn:hover::after {
    transform: translateX(0)
}

.contact-us .submit__btn:focus {
    outline: 3px solid #C9BBDC;
    outline-offset: 2px
}

.contact-us .submit__btn span {
    position: relative;
    z-index: 1
}

.contact-us .map__band {
    padding: 40px 80px 80px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 40px;
    position: relative
}

.contact-us .map__band::before {
    content: "";
    position: absolute;
    top: 0;
    left: 80px;
    right: 80px;
    height: 1px;
    background: linear-gradient(90deg, #507EBE 0%, #C9BBDC 50%, transparent 100%);
    pointer-events: none
}

.contact-us .map__heading-strip {
    display: inline-block;
    background: #E3E7EC;
    padding: 10px 20px;
    border-radius: 8px
}

.contact-us .map__heading {
    font-size: 18px;
    line-height: 1.1;
    color: #1b2a3e;
    margin: 0;
    letter-spacing: -.01em
}

.contact-us .map__layout {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
    align-items: start
}

.contact-us .address__visual {
    grid-column: 1 / 3;
    border-radius: 22px;
    background: linear-gradient(148deg, #507EBE 0%, #C9BBDC 100%);
    min-height: 280px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 40px;
    position: relative;
    box-shadow: 0 9px 36px -1px #507ebe24;
    overflow: hidden
}

.contact-us .address__visual--geo {
    position: absolute;
    inset: 0;
    pointer-events: none
}

.contact-us .address__visual--geo svg {
    width: 100%;
    height: 100%;
    opacity: .18
}

.contact-us .address__visual-label {
    font-size: 52px;
    line-height: 1.1;
    color: #fff;
    letter-spacing: -.04em;
    font-weight: 700;
    position: relative;
    z-index: 1
}

.contact-us .address__visual-sub {
    font-size: 15px;
    line-height: 1.6;
    color: #ffffffd9;
    margin: 0;
    position: relative;
    z-index: 1
}

.contact-us .address__details {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.contact-us .address__block {
    background: #E3E7EC;
    border-radius: 13px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 2px 4px -1px #507ebe12;
    transition: box-shadow .18s cubic-bezier(0.4, 0, 1, 1), transform .14s cubic-bezier(0.4, 0, 1, 1)
}

.contact-us .address__block:hover {
    box-shadow: 0 5px 18px -1px #507ebe1c;
    transform: translateY(-2px)
}

.contact-us .address__block-label {
    font-size: 15px;
    line-height: 1.1;
    color: #507EBE;
    text-transform: uppercase;
    letter-spacing: .06em
}

.contact-us .address__block-value {
    font-size: 15px;
    line-height: 1.6;
    color: #1b2a3e;
    margin: 0
}

.contact-us .address__block-link {
    font-size: 15px;
    line-height: 1.6;
    color: #1b2a3e;
    text-decoration: none;
    transition: color .14s cubic-bezier(0.4, 0, 1, 1)
}

.contact-us .address__block-link:hover {
    color: #507EBE
}

.contact-us .divider__band {
    height: 40px;
    background: linear-gradient(180deg, #E3E7EC 0%, transparent 100%)
}

@keyframes pan-bg {
    0% {
        background-position: 0 50%
    }

    100% {
        background-position: 100% 50%
    }
}

.contact-us .reach__panel {
    background: linear-gradient(120deg, #fff 0%, #f0f4f9 50%, #e8eef6 100%);
    background-size: 300% 100%;
    animation: pan-bg 18s linear infinite alternate
}

@media (max-width: 1024px) {
    .contact-us .reach__panel {
        flex-direction: column;
        padding: 40px
    }

    .contact-us .reach__left {
        flex: none;
        width: 100%
    }

    .contact-us .form__band {
        padding: 40px
    }

    .contact-us .form__grid {
        grid-template-columns: 1fr
    }

    .contact-us .map__band {
        padding: 40px
    }

    .contact-us .map__layout {
        grid-template-columns: 1fr
    }

    .contact-us .address__visual {
        grid-column: auto
    }
}

@media (max-width: 640px) {
    .contact-us .reach__panel {
        padding: 20px
    }

    .contact-us .reach__heading {
        font-size: 52px
    }

    .contact-us .cards__row {
        flex-direction: column
    }

    .contact-us .form__band {
        padding: 20px
    }

    .contact-us .form__card {
        padding: 20px
    }

    .contact-us .check__row {
        grid-template-columns: 1fr
    }

    .contact-us .map__band {
        padding: 20px
    }

    .contact-us .address__visual {
        min-height: 200px;
        padding: 20px
    }

    .contact-us .address__visual-label {
        font-size: 52px
    }

    .contact-us .form__info-heading {
        font-size: 52px
    }
}

.success-page {
    min-height: 80vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
    background-color: #f5f7fa
}

.success-page .confirmation-card {
    max-width: 600px;
    width: 100%;
    background: #fff;
    border-radius: 22px;
    padding: 80px 40px;
    box-shadow: 0 5px 18px -1px #507ebe1c 0 9px 36px -1px #507ebe24;
    text-align: center
}

.success-page .confirmation-card .icon-wrapper {
    width: 80px;
    height: 80px;
    border-radius: 48px;
    background: linear-gradient(160deg, #507EBE, #C9BBDC);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin: 0 auto 40px;
    box-shadow: 0 2px 4px -1px #507ebe12 0 5px 18px -1px #507ebe1c
}

.success-page .confirmation-card .icon-wrapper svg {
    width: 36px;
    height: 36px;
    display: block
}

.success-page .confirmation-card .heading-strip {
    display: inline-block;
    background-color: #E3E7EC;
    padding: 10px 20px;
    border-radius: 8px;
    margin-bottom: 20px
}

.success-page .confirmation-card .heading-strip h1 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #507EBE;
    margin: 0
}

.success-page .confirmation-card .confirmation-message {
    font-size: 18px;
    line-height: 1.6;
    color: #3a4a5c;
    margin: 0 0 40px;
    text-align: justified
}

.success-page .confirmation-card .detail-block {
    background-color: #f5f7fa;
    border-radius: 13px;
    padding: 20px 40px;
    margin-bottom: 40px;
    text-align: left
}

.success-page .confirmation-card .detail-block .detail-label {
    font-size: 15px;
    line-height: 1.6;
    color: #6e7e94;
    margin: 0 0 10px;
    display: block
}

.success-page .confirmation-card .detail-block .detail-value {
    font-size: 15px;
    line-height: 1.6;
    color: #2c3a4a;
    margin: 0
}

.success-page .confirmation-card .action-group {
    display: flex;
    flex-direction: row;
    gap: 20px;
    justify-content: center;
    flex-wrap: wrap
}

.success-page .confirmation-card .button-primary {
    display: inline-block;
    padding: 10px 40px;
    background-color: #507EBE;
    color: #fff;
    font-size: 15px;
    line-height: 1.6;
    border-radius: 13px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color .18s cubic-bezier(0.4, 0, 1, 1), box-shadow .15s cubic-bezier(0.4, 0, 1, 1);
    box-shadow: 0 2px 4px -1px #507ebe12
}

.success-page .confirmation-card .button-primary::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, #3a6aaa, #507EBE);
    transform: translateX(100%);
    transition: transform .15s cubic-bezier(0.4, 0, 1, 1);
    border-radius: 13px;
    z-index: 0
}

.success-page .confirmation-card .button-primary:hover::before {
    transform: translateX(0)
}

.success-page .confirmation-card .button-primary:hover {
    box-shadow: 0 5px 18px -1px #507ebe1c
}

.success-page .confirmation-card .button-primary:focus {
    outline: 2px solid #507EBE;
    outline-offset: 3px
}

.success-page .confirmation-card .button-primary:active {
    box-shadow: 0 2px 4px -1px #507ebe12
}

.success-page .confirmation-card .button-primary span {
    position: relative;
    z-index: 1
}

.success-page .confirmation-card .button-secondary {
    display: inline-block;
    padding: 10px 40px;
    background-color: #E3E7EC;
    color: #2c3a4a;
    font-size: 15px;
    line-height: 1.6;
    border-radius: 13px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color .13s cubic-bezier(0.4, 0, 1, 1), box-shadow .13s cubic-bezier(0.4, 0, 1, 1);
    box-shadow: 0 2px 4px -1px #c9bbdc12
}

.success-page .confirmation-card .button-secondary::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #C9BBDC;
    transform: translateX(100%);
    transition: transform .13s cubic-bezier(0.4, 0, 1, 1);
    border-radius: 13px;
    z-index: 0
}

.success-page .confirmation-card .button-secondary:hover::before {
    transform: translateX(0)
}

.success-page .confirmation-card .button-secondary:hover {
    box-shadow: 0 5px 18px -1px #c9bbdc1c
}

.success-page .confirmation-card .button-secondary:focus {
    outline: 2px solid #507EBE;
    outline-offset: 3px
}

.success-page .confirmation-card .button-secondary span {
    position: relative;
    z-index: 1
}

.success-page .confirmation-card .contact-note {
    margin-top: 40px;
    font-size: 15px;
    line-height: 1.6;
    color: #6e7e94
}

.success-page .confirmation-card .contact-note a {
    color: #507EBE;
    text-decoration: underline;
    transition: color .1s cubic-bezier(0.4, 0, 1, 1)
}

.success-page .confirmation-card .contact-note a:hover {
    color: #3a6aaa
}

@media (max-width: 600px) {
    .success-page {
        padding: 40px 10px
    }

    .success-page .confirmation-card {
        padding: 40px 20px
    }

    .success-page .confirmation-card .heading-strip h1 {
        font-size: 52px
    }

    .success-page .confirmation-card .action-group {
        flex-direction: column;
        align-items: center
    }

    .success-page .confirmation-card .button-primary,
    .success-page .confirmation-card .button-secondary {
        width: 100%;
        text-align: center
    }

    .success-page .confirmation-card .detail-block {
        padding: 20px
    }
}