/* Company layout, matched to the supplied October design. */
:root {
    --ink: #191919;
    --blue: #9db1ce;
    --line: #627183;
    --muted: #a8b6c7
}

.site-header {
    height: 80px;
    background: #0009;
    padding-inline: 12%;
    gap: 22px
}

.brand img {
    width: 230px
}

.main-nav {
    font-size: 15px;
    gap: 9px
}

.main-nav>a {
    background: none;
    padding: 7px 4px
}

.main-nav .product-link {
    font-size: 25px;
    border-inline: 1px solid #1640b5;
    padding-inline: 30px;
    margin-right: 40px
}

.language {
    font-size: 18px;
    margin-left: 3vw
}

.company-hero {
    height: 56.25vw;
    min-height: 550px
}

.hero-art {
    width: 58.333%;
    height: 91.667%;
    top: 8.333%;
    object-fit: fill;
    mask-image: linear-gradient(90deg, transparent, #000 12%)
}

.hero-copy {
    padding-top: 13.4vw;
    margin-left: 16.4%;
    width: 38%;
    z-index: 1
}

.hero-copy h1 {
    font-size: clamp(36px, 3.7vw, 72px);
    line-height: 1.12;
    letter-spacing: 0
}

.hero-copy h1 strong {
    display: inline-block;
    font-weight: 300;
    font-size: 1.65em;
    border-bottom: 3px solid #1459f8;
    padding-bottom: 9px
}

.hero-copy p {
    font-size: clamp(12px, .9vw, 17px);
    line-height: 1.55;
    margin-top: 3vw;
    width: auto;
    max-width: 500px;
    color:#fff
}

.hero-principles {
    position: absolute;
    bottom: 11%;
    left: 37%;
    right: 16%;
    display: flex;
    justify-content: space-between;
    font-size: clamp(10px, .7vw, 14px);
    color:#fff
}

.hero-principles span {
    position: relative
}

.hero-principles span:before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 9px;
    background: #205cff;
    margin-right: 10px
}

.leadership {
    padding: 3.4vw 1.56vw
}

.center-heading {
    display: flex;
    align-items: baseline;
    gap: 22px;
    text-align: left;
    padding-inline: 3.4vw
}

.center-heading h2,
.certifications .center-heading h2 {
    font-size: clamp(21px, 1.75vw, 34px);
    letter-spacing: .04em
}

.center-heading p,
.certifications .center-heading p {
    font-size: clamp(12px, .9vw, 17px);
    margin: 0
}

.leader-grid {
    margin-top: 1.7vw;
    gap: 1.25vw
}

.leader-grid img {
    aspect-ratio: 1;
    object-fit: cover
}

.team-section {
    padding: 4.2vw 1.56vw;
    display: grid;
    grid-template-columns: 61% 39%;
    background: #000
}

.team-section>img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.team-stats {
    background: #9db1ce;
    color:rgb(25,26,26);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 5vw 4vw
}

.team-stats>div {
    padding: 2.5vw 0
}

.team-stats>div+div {
    border-top: 2px solid #495361
}

.team-stats p {
    font-size: clamp(12px, 1.6vw, 30px);
    color: #56677d
}

.team-stats strong {
    font: 700 clamp(48px, 6.7vw, 130px)/1 DDIN;
    display: block
}

.history {
    background: #191919
}

.certifications {
    background: #000;
    padding: 3vw 0 4vw
}

.certificate-track {
    padding-top: 1.7vw;
    gap: 24px
}

.certificate-open {
    flex-basis: clamp(170px, 16vw, 300px)
}

.certificate-open img {
    height: clamp(220px, 18vw, 345px)
}

.certificate-caption {
    font-size: clamp(12px, .8vw, 16px);
    margin-top: 10px
}

.careers-hero {
    height: 37.76vw;
    min-height: 0
}

.careers-hero>img {
    width: 100%;
    height: 100%;
    object-fit: fill
}

.careers-hero>div {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    padding: 0;
    margin: 0
}

.job-list {
    background: #191919
}

.job-row summary {
    padding-block: 1.8vw
}

.job-title {
    font-size: clamp(16px, 1.25vw, 24px)
}

.job-row[open] .job-title,
.job-row:hover .job-title {
    text-decoration: underline;
    text-underline-offset: 6px
}

.job-apply>a {
    color:#fff
}

.job-apply {
    border-top: 0;
    padding-top: 0
}

.more-jobs {
    color:#fff
}

.office-grid {
    gap: 16px;
    width: 39%;
    margin-top: -6vw
}

.office-grid article {
    position: relative;
    border-radius: 0;
    background: #9db1ce;
    color:rgb(25,26,26);
    min-height: 245px;
    padding: 3vw 1.4vw 1.5vw;
    box-shadow: none
}

.office-grid article:after {
    content: '♧';
    position: absolute;
    right: 12px;
    top: 8px;
    font-size: 28px;
    color: #758eac
}

.office-grid address {
    color:rgb(25,26,26)
}

.office-grid h3 {
    font-size: clamp(23px, 1.7vw, 33px)
}

.company-footer {
    position: relative;
    padding: 8vw 12% 9vw;
    color:#fff
}

.company-footer>a>img {
    width: 250px;
    height: auto
}

.company-footer>a:first-child:after {
    content: '新 芯 航 途';
    display: block;
    letter-spacing: .35em;
    font-size: 25px;
    margin-top: 10px
}

.footer-bottom {
    align-items: end;
    margin-top: 45px
}

.footer-bottom>div {
    gap: 45px
}

.footer-bottom>div>a {
    line-height: 1.8
}

.footer-nav {
    display: flex;
    gap: 24px;
    margin: 24px 0 0 auto;
    border-top: 1px solid #b1c0ce;
    padding-top: 16px;
    width: 55%;
    font-size: 14px
}

.company-footer .footer-top {
    position: absolute;
    right: 12%;
    top: 9vw;
    width: 62px;
    height: 62px;
    background: #9db1ce;
    color:rgb(25,26,26);
    display: grid;
    place-items: center;
    font-size: 28px
}

.news-page main {
    padding-top: 80px
}

.news-page .news-row {
    min-height: 135px
}

.news-page .site-header {
    position: absolute
}

.news-page .company-footer {
    border-top: 1px solid #33404c
}

@media(max-width:1200px) {
    .site-header {
        padding-inline: 5%
    }

    .brand img {
        width: 180px
    }

    .main-nav {
        font-size: 13px;
        gap: 5px
    }

    .main-nav .product-link {
        font-size: 20px;
        padding-inline: 15px;
        margin-right: 10px
    }

    .language {
        margin-left: 12px
    }

    .office-grid article {
        min-height: 180px
    }

    .footer-bottom>div {
        gap: 20px
    }
}

@media(max-width:700px) {
    .site-header {
        height: 72px;
        padding-inline: 22px
    }

    .brand img {
        width: 155px
    }

    .language {
        font-size: 14px;
        margin-left: auto
    }

    .main-nav .product-link {
        border: 0;
        margin: 0;
        padding: 12px
    }

    .company-hero {
        height: 700px;
        min-height: 0
    }

    .hero-art {
        width: 100%;
        height: 70%;
        top: 30%;
        object-fit: cover;
        opacity: .65;
        mask-image: linear-gradient(180deg, transparent, #000 25%)
    }

    .hero-copy {
        padding-top: 130px;
        margin-left: 8%;
        width: 84%;
        isolation: auto
    }

    .hero-copy:before {
        display: none
    }

    .hero-copy h1 {
        font-size: 37px
    }

    .hero-copy p {
        font-size: 13px;
        max-width: none;
        margin-top: 25px
    }

    .hero-principles {
        left: 8%;
        right: 8%;
        bottom: 6%;
        font-size: 10px
    }

    .hero-principles span:before {
        margin-right: 5px;
        width: 4px
    }

    .center-heading {
        display: block;
        padding: 0
    }

    .center-heading h2,
    .certifications .center-heading h2 {
        font-size: 25px
    }

    .center-heading p,
    .certifications .center-heading p {
        font-size: 13px;
        margin-top: 9px
    }

    .leadership {
        padding: 35px 20px
    }

    .leader-grid {
        margin-top: 25px;
        gap: 15px
    }

    .team-section {
        padding: 25px 20px;
        grid-template-columns: 1fr
    }

    .team-stats {
        flex-direction: row;
        padding: 24px 14px;
        gap: 22px
    }

    .team-stats>div {
        flex: 1;
        padding: 10px 0
    }

    .team-stats>div+div {
        border: 0;
        border-left: 1px solid #53627a;
        padding-left: 20px
    }

    .team-stats p {
        font-size: 11px
    }

    .team-stats strong {
        font-size: 55px
    }

    .certifications {
        padding: 35px 20px
    }

    .certificate-track {
        padding: 25px 0 12px
    }

    .careers-hero {
        height: 340px
    }

    .careers-hero>img {
        object-fit: cover;
        object-position: right;
        width: 170%;
        max-width: none;
        opacity: .8
    }

    .careers-hero>div {
        position: relative;
        width: auto;
        height: auto;
        clip: auto;
        overflow: visible;
        margin-left: 25px;
        padding-top: 110px
    }

    .careers-hero h2 {
        font-size: 40px
    }

    .job-row summary {
        padding-block: 24px
    }

    .office-grid {
        width: auto;
        margin: -25px 25px 0;
        gap: 12px
    }

    .office-grid article {
        min-height: 0;
        padding: 24px;
        border-radius: 0
    }

    .office-grid address {
        font-size: 13px
    }

    .company-footer {
        padding: 65px 25px
    }

    .company-footer>a>img {
        width: 180px
    }

    .company-footer>a:first-child:after {
        font-size: 19px
    }

    .company-footer .footer-top {
        right: 25px;
        top: 65px;
        width: 45px;
        height: 45px
    }

    .footer-bottom {
        align-items: start
    }

    .footer-nav {
        width: 100%;
        flex-wrap: wrap;
        gap: 14px;
        font-size: 12px
    }

    .news-page main {
        padding-top: 72px
    }

    .news-page .news-row {
        min-height: 0
    }
}

.hero-art {
    mask-image: linear-gradient(90deg, transparent, #000 12%), linear-gradient(180deg, #000 74%, transparent 86%);
    mask-composite: intersect
}

.office-grid article:after {
    content: '';
    width: 24px;
    height: 30px;
    border: 1px solid #7b91ac;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    right: 17px;
    top: 17px
}

.office-grid article:before {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    border: 1px solid #7b91ac;
    border-radius: 50%;
    right: 25px;
    top: 25px
}

@media(max-width:700px) {
    .hero-art {
        mask-image: linear-gradient(180deg, transparent, #000 25%, #000 74%, transparent 86%)
    }

    .careers-hero>img {
        content: url('assets/company-revision/careers.jpg');
        width: 100%;
        object-fit: cover
    }
}

.contact-banner {
    height: 31.25vw;
    min-height: 300px;
    overflow: hidden
}

.contact-banner>img {
    content: url('assets/company-revision/contact-banner.jpg');
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center
}

.contact-banner .banner-accessible {
    position: absolute;
    inset: 0;
    width: auto;
    height: auto;
    clip: auto;
    white-space: normal;
    margin: 0;
    overflow: visible;
    text-align: left;
    padding: 10vw 14% 0
}

.contact-banner h2 {
    font-size: clamp(31px, 4.1vw, 78px)
}

.contact-banner p {
    font-size: clamp(15px, 1.55vw, 30px);
    margin-top: 12px;
    color:#fff
}

.company-footer>a>img {
    filter: invert(85%) sepia(15%) saturate(400%) hue-rotate(165deg)
}

.office-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}

.office-grid address {
    white-space: normal;
    overflow-wrap: anywhere
}

.footer-bottom p,
.footer-bottom>div {
    color:#fff
}

@media(max-width:700px) {
    .contact-banner .banner-accessible {
        padding: 90px 25px 0
    }

    .contact-banner>img {
        transform: none;
        opacity: .7
    }

    .office-grid {
        grid-template-columns: 1fr
    }

    .contact-banner h2 {
        font-size: 31px
    }
}

/* Editable labels over portraits. The original raster labels are excluded from display. */
.leader-card {
    position: relative;
    background: #000
}

.leader-card>img {
    clip-path: polygon(0 0, 100% 0, 100% 15%, 78% 15%, 78% 48%, 100% 48%, 100% 100%, 0 100%)
}

.leader-card:hover>img {
    transform: none
}

.leader-caption {
    position: absolute;
    top: 18%;
    right: 8%;
    width: 15%;
    height: 29%;
    color:#fff
}

.leader-mark {
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    width: 22%;
    aspect-ratio: 1;
    background: #1c2023;
    box-shadow: -1.4em 0 #1c2023, 0 1.4em #1c2023;
    font-size: .65vw
}

.leader-name {
    position: absolute;
    top: 18%;
    right: 40%;
    writing-mode: vertical-rl;
    font-size: clamp(17px, 1.8vw, 35px);
    line-height: 1.2;
    letter-spacing: .06em;
    white-space: nowrap
}

.leader-role {
    position: absolute;
    right: 0;
    top: 32%;
    writing-mode: vertical-rl;
    font-size: clamp(11px, .94vw, 18px);
    line-height: 1.25;
    white-space: nowrap
}

/* History artwork, marker and text are independent responsive layers. */
.history-live {
    height: 53.65vw;
    min-height: 430px;
    position: relative;
    overflow: hidden;
    background: #191919
}

.history-planet {
    position: absolute;
    left: -15%;
    top: 37.5%;
    width: 130%;
    height: 180%;
    border-radius: 50%;
    background: #191919;
    box-shadow: inset 0 12px 12px -4px #165bff, inset 0 30px 30px -9px #0744df, inset 0 65px 48px -26px #092650;
    pointer-events: none
}

.history-milestone {
    position: absolute;
    top: 6.5%;
    left: 0;
    width: 100%;
    text-align: center
}

.history-date {
    display: block;
    font-size: clamp(37px, 4.4vw, 84px);
    line-height: 1.35
}

.history-milestone p {
    font-size: clamp(20px, 2.35vw, 45px);
    color:#fff;
    margin-top: 6px
}

.history-marker {
    position: absolute;
    top: 25.5%;
    height: 24%;
    left: 50%;
    width: 5%;
    transform: translateX(-50%)
}

.history-dashes {
    position: absolute;
    left: 50%;
    top: 0;
    height: 100%;
    border-left: 1px dashed #a9bac380
}

.history-marker>img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 64%;
    height: auto;
    max-width: 64px
}

.history-copy {
    position: absolute;
    top: 62%;
    left: 5%;
    width: 90%;
    text-align: center
}

.history-copy h2 {
    font-size: clamp(30px, 4.15vw, 80px);
    letter-spacing: .035em;
    line-height: 1.4
}

.history-copy p {
    font-size: clamp(14px, 1.65vw, 31px);
    color:#fff;
    margin-top: 14px;
    letter-spacing: .08em
}

.careers-hero>img {
    content: normal;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 1
}

.careers-hero>.careers-copy {
    position: absolute;
    left: 12%;
    top: 31%;
    width: auto;
    height: auto;
    clip: auto;
    overflow: visible;
    margin: 0;
    padding: 0
}

.careers-copy h2 {
    font-size: clamp(38px, 4.1vw, 80px);
    letter-spacing: .06em
}

.careers-copy p {
    font-size: clamp(15px, 1.5vw, 29px);
    line-height: 1.5;
    color:#fff;
    margin-top: 15px
}

@media(max-width:700px) {
    .leader-name {
        font-size: 26px
    }

    .leader-role {
        font-size: 14px
    }

    .leader-mark {
        font-size: 7px
    }

    .history-live {
        height: 440px;
        background: #191919
    }

    .history-marker {
        width: 60px
    }

    .history-copy {
        top: 65%
    }

    .history-copy h2 {
        font-size: 28px
    }

    .history-copy p {
        font-size: 13px
    }

    .history-date {
        font-size: 38px
    }

    .history-milestone p {
        font-size: 20px
    }

    .careers-hero>.careers-copy {
        left: 25px;
        top: 30%
    }

    .careers-copy h2 {
        font-size: 40px
    }

    .careers-copy p {
        font-size: 16px
    }
}

.leader-card>img {
    clip-path: polygon(0 0, 100% 0, 100% 15%, 78% 15%, 78% 55%, 100% 55%, 100% 100%, 0 100%)
}

.leader-mark {
    width: .85em;
    height: .85em;
    aspect-ratio: auto;
    font-size: 1.1vw;
    box-shadow: -1.3em 0 #1c2023, 0 1.3em #1c2023
}

@media(max-width:700px) {
    .leader-mark {
        font-size: 12px
    }
}

/* Contact and footer annotation refinements. */
.contact-banner .banner-accessible p {
    color: #fff
}

.office-grid article,
.office-grid article h3,
.office-grid article address {
    color:rgb(25,26,26)
}

.office-grid article h3 {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .2em
}

.company-footer,
.company-footer .footer-bottom,
.company-footer .footer-bottom>p,
.company-footer .footer-bottom>div,
.company-footer .footer-nav {
    color:#fff
}

.company-footer .footer-nav {
    border-top-color: #e1f6fb
}

.company-footer .footer-bottom {
    display: grid;
    grid-template-columns: minmax(0, 45%) minmax(0, 55%);
    gap: 0;
    align-items: start
}

.company-footer .footer-bottom>p {
    min-width: 0;
    padding-right: 28px
}

.company-footer .footer-bottom>div {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 20px;
    min-width: 0;
    white-space: normal;
    justify-content: start;
    text-align: left
}

.company-footer .footer-bottom>div>a {
    min-width: 0;
    overflow-wrap: anywhere
}

.company-footer>a:first-child {
    position: relative;
    display: inline-block
}

.company-footer>a:first-child>img {
    visibility: hidden
}

.company-footer>a:first-child:before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: calc(100% - 45px);
    background: #e1f6fb;
    mask: url('assets/xheart-wordmark.png') left center/100% auto no-repeat
}

@media(max-width:700px) {
    .company-footer .footer-bottom {
        grid-template-columns: 1fr;
        gap: 30px
    }

    .company-footer .footer-bottom>p {
        padding-right: 0
    }

    .company-footer .footer-bottom>div {
        grid-template-columns: 1fr;
        gap: 20px
    }

    .company-footer .footer-nav {
        width: 100%
    }

    .company-footer>a:first-child:before {
        height: calc(100% - 37px)
    }
}

/* User-supplied contact icons and compact address lines. */
.office-grid article:before {
    content: none
}

.office-grid article:after {
    content: '';
    width: 25px;
    height: 35px;
    top: 14px;
    right: 14px;
    border: 0;
    border-radius: 0;
    transform: none;
    background: url('assets/company-revision/hotpot.svg') center/contain no-repeat
}

.office-grid article {
    container-type: inline-size
}

.office-grid article address {
    font-size: clamp(8px, 5.9cqi, 12px);
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
    letter-spacing: 0;
    line-height: 1.9
}

.company-footer .footer-top {
    background: transparent;
    padding: 0
}

.company-footer .footer-top>img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: none
}

@media(max-width:700px) {
    .office-grid article address {
        font-size: clamp(10px, 4.6cqi, 12px)
    }
}

/* Larger office details and a tighter footer contact group. */
.office-grid article:after {
    width: 50px;
    height: 70px;
    top: 10px;
    right: 10px
}

.office-grid article address {
    font-size: clamp(9px, 7cqi, 14px)
}

.company-footer .footer-bottom>div {
    grid-template-columns: repeat(3, max-content);
    gap: clamp(28px, 3vw, 56px);
    font-size: clamp(11px, .85vw, 16px)
}

@media(max-width:700px) {
    .office-grid article address {
        font-size: clamp(11px, 5.2cqi, 14px)
    }

    .company-footer .footer-bottom>div {
        grid-template-columns: 1fr;
        gap: 14px;
        font-size: 13px
    }
}

/* Floating navigation stays visible while scrolling on company and news pages. */
.company-page .site-header,
.news-page .site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: rgba(0, 0, 0, .6);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px)
}

html {
    scroll-padding-top: 96px
}

@media(max-width:700px) {
    html {
        scroll-padding-top: 84px
    }
}/* Use the supplied complete bilingual footer logo. */
.company-footer>a:first-child:before,.company-footer>a:first-child:after{content:none}
.company-footer>a:first-child>img{visibility:visible;display:block;height:auto;filter:none}




/* Expanded jobs: description in the middle, application alongside on the right. */
.job-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: end;
    gap: 2vw;
    margin-left: 38.4%;
    padding: 1.8vw 4vw 2vw 0;
    position: relative;
    pointer-events: none;
}
.job-content .job-description {
    margin: 0;
    padding: 0 0 24px;
    min-width: 0;
    border-bottom: 1px solid #50627a;
}
.job-content .job-apply {
    margin: 0;
    padding: 0;
    border-top: 0;
    font-size: clamp(14px, 1.05vw, 20px);
    pointer-events: auto;
}
.job-content .job-apply > a {
    font-size: clamp(16px, 1.35vw, 26px);
    white-space: nowrap;
}
@media (max-width: 800px) {
    .job-content {
        grid-template-columns: minmax(0, 1fr);
        margin-left: 0;
        padding: 0 18px 28px;
        gap: 24px;
    }
    .job-content .job-apply { justify-self: end; }
}

.team-slideshow{position:relative;min-width:0;overflow:hidden;aspect-ratio:1150 / 833;background:#101113}
.team-slideshow>img{display:block;width:100%;height:100%;object-fit:cover}
.team-shutters{position:absolute;inset:0;pointer-events:none}
.team-shutter{position:absolute;top:0;bottom:0;overflow:hidden;pointer-events:none;contain:paint}
.team-shutter>img{position:absolute;top:0;max-width:none;object-fit:cover;display:block}
.team-slideshow-toggle{position:absolute;right:12px;bottom:12px;padding:5px 10px;border:1px solid #ffffff55;background:#10111399;color:#fff;font:12px inherit;cursor:pointer;z-index:1}
.team-slideshow-toggle:focus-visible{outline:2px solid #e1f6fb;outline-offset:3px}

/* Full-frame artwork supplied for the company hero. */
.company-hero>.hero-art{inset:0;width:100%;height:100%;object-fit:cover;object-position:center;mask-image:none;-webkit-mask-image:none;opacity:1}

/* Tablet portraits: keep the label and its dark cutout below the face. */
@media (min-width:701px) and (max-width:1180px) {
    .leader-card > img {
        clip-path: polygon(0 0,100% 0,100% 62%,78% 62%,78% 98%,100% 98%,100% 100%,0 100%);
    }
    .leader-card .leader-caption { top:65%; height:29%; }
}

/* Tablet and phone contact cards: balanced gutters and compact location icons. */
@media (max-width:1180px) {
    .contact-section .office-grid { width:90%; margin-left:auto; margin-right:auto; gap:14px; }
    .contact-section .office-grid article { padding:42px 18px 24px; min-width:0; }
    .contact-section .office-grid article:after { width:24px; height:34px; top:12px; right:14px; }
    .contact-section .office-grid article address { font-size:clamp(9px,5.6cqi,14px); }
}

@media (max-width:1180px) {
    .company-footer .footer-bottom > div { align-self:end; }
    .company-footer .footer-nav { margin-top:10px; }
}
