/* Chinese typography. Keep vendor and original Hudson styles unchanged. */
:root {
    --font-1: "Public Sans", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
    --font-2: "Castoro", "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;
}
html[lang="zh-CN"] body { line-height: 1.8; }
.s-header__logo .brand-wordmark {
    color: white;
    font-family: var(--font-2);
    font-size: 2.7rem;
    font-weight: 400;
    letter-spacing: .04em;
    line-height: 1;
    white-space: nowrap;
}
.brand-wordmark em {
    font-size: 1.6rem;
    margin-left: .75rem;
    letter-spacing: .03em;
    color: rgba(255,255,255,.62);
}
.s-header__menu-links a { letter-spacing: .05em; }
.s-intro__content-pretitle { letter-spacing: .12em; font-size: 1.35rem; }
.greeting-rotator {
    display: inline-block;
    width: 12em;
    max-width: 100%;
    height: 1.8em;
    overflow: hidden;
    vertical-align: middle;
}
.greeting-rotator__track {
    display: block;
    animation: greeting-scroll 36s cubic-bezier(.65, 0, .35, 1) infinite;
}
.greeting-rotator__word {
    display: block;
    width: max-content;
    max-width: 100%;
    height: 1.8em;
    line-height: 1.8;
    white-space: nowrap;
}
.greeting-rotator__word:lang(ar),
.greeting-rotator__word:lang(hi) { letter-spacing: normal; }
/* Keep the original fade, without the template's 0.9 second loading delay. */
.ss-loaded #preloader { transition: opacity .24s ease-out, visibility .24s step-end; }
.ss-show .s-header__inner { transition-delay: .15s; }
/* Twelve greetings, three seconds each; repeat the first for a seamless loop. */
@keyframes greeting-scroll {
    0%, 5.833% { transform: translateY(0); }
    8.333%, 14.167% { transform: translateY(-1.8em); }
    16.667%, 22.5% { transform: translateY(-3.6em); }
    25%, 30.833% { transform: translateY(-5.4em); }
    33.333%, 39.167% { transform: translateY(-7.2em); }
    41.667%, 47.5% { transform: translateY(-9em); }
    50%, 55.833% { transform: translateY(-10.8em); }
    58.333%, 64.167% { transform: translateY(-12.6em); }
    66.667%, 72.5% { transform: translateY(-14.4em); }
    75%, 80.833% { transform: translateY(-16.2em); }
    83.333%, 89.167% { transform: translateY(-18em); }
    91.667%, 97.5% { transform: translateY(-19.8em); }
    100% { transform: translateY(-21.6em); }
}
@media (prefers-reduced-motion: reduce), print {
    .greeting-rotator__track { animation: none; }
}
.s-intro__content-title {
    font-size: clamp(3.8rem, 4.4vw, 7.2rem);
    line-height: 1.3;
    letter-spacing: -.025em;
}
.s-intro__specialty {
    font-size: 1.55rem;
    letter-spacing: .06em;
    line-height: 1.9;
    color: var(--color-text-light);
    margin: 0;
}
.s-intro__content-btns { margin-top: var(--vspace-1_25); }
.btn { font-family: var(--font-1); letter-spacing: .09em; }
.section-caption {
    margin: 1.5rem 0 0;
    font-family: var(--font-1);
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: .15em;
    color: var(--color-1);
}
.attention-getter { line-height: 1.9; letter-spacing: .02em; }
.s-about .attention-getter,
.s-footer__about .attention-getter { text-indent: 2em; }
.s-about__list { font-family: var(--font-1); }
.s-about__list li { font-family: inherit; line-height: 1.6; }
.s-about__list span { line-height: 1.8; }
.entry__title { line-height: 1.45; letter-spacing: .02em; }
.entry__cat { letter-spacing: .04em; }
.works-intro { margin: calc(var(--vspace-1_5) * -1) 0 var(--vspace-2); color: var(--color-text-light); }
.gslide-title { font-family: var(--font-2); line-height: 1.5; }
.gslide-desc { font-family: var(--font-1); line-height: 1.9; }
.s-numbers .num { font-family: var(--font-2); }
.s-numbers h5 { letter-spacing: .06em; }
.s-numbers p { line-height: 1.9; }
.contact-value { font-size: 1.6rem; overflow-wrap: anywhere; }
.contact-label { font-family: var(--font-1); font-size: 1.6rem; white-space: nowrap; }
.s-footer .attention-getter { color: rgba(255,255,255,.72); }
.btn[aria-disabled="true"] { opacity: .45; cursor: default; }
.footer-identity { font-family: var(--font-2); font-size: 2rem; color: white; margin: 0; }
.footer-identity small { font-family: var(--font-1); font-size: 1.2rem; color: rgba(255,255,255,.55); margin-left: 1rem; }
@media screen and (max-width: 1080px) {
    .s-intro__content-text { max-width: 82vw; }
    .s-intro__content-title { font-size: clamp(3.8rem, 7vw, 7.2rem); }
    .s-intro__content-title br { display: block; }
    .s-intro__specialty { color: rgba(255,255,255,.8); }
}
@media screen and (max-width: 800px) {
    .section-header { display: block; }
    .s-intro__content-title { font-size: clamp(3.8rem, 7.2vw, 5.6rem); }
    .s-intro__specialty { font-size: 1.4rem; }
    .section-caption { font-size: 1.3rem; }
}
@media screen and (max-width: 400px) {
    .s-intro__content-title { font-size: clamp(2.6rem, 8.5vw, 3.6rem); }
    .s-intro__content-pretitle { font-size: 1.1rem; letter-spacing: .06em; }
    .s-intro__specialty { font-size: 1.2rem; letter-spacing: .02em; }
    .s-header__logo .brand-wordmark { font-size: 2.4rem; }
    .brand-wordmark em { font-size: 1.4rem; }
}
