/*
功能描述：
CaspiaSupply 网站前台统一字体与字号体系。

字体：
1. 中文使用 Noto Sans SC；
2. 英文、俄文、哈萨克文使用 Noto Sans；
3. 字体加载失败时回退到系统字体。

字重：
400 正文
500 标签和辅助信息
600 按钮、小标题
700 主标题
*/

:root {
    --font-latin:
        "Noto Sans",
        "Noto Sans SC",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;

    --font-chinese:
        "Noto Sans SC",
        "Noto Sans",
        -apple-system,
        BlinkMacSystemFont,
        "PingFang SC",
        "Microsoft YaHei",
        sans-serif;

    --font-body-size: 15px;
    --font-body-line-height: 1.65;
}


/* =====================================
   全站基础字体
   ===================================== */

html,
body {
    font-family: var(--font-latin) !important;
    font-size: var(--font-body-size);
    font-weight: 400;
    line-height: var(--font-body-line-height);
    letter-spacing: 0;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html[lang^="zh"],
html[lang^="zh"] body,
html[lang^="zh"] button,
html[lang^="zh"] input,
html[lang^="zh"] textarea,
html[lang^="zh"] select {
    font-family: var(--font-chinese) !important;
}

button,
input,
textarea,
select,
option,
optgroup {
    font-family: inherit !important;
}

button,
input,
textarea,
select {
    font-size: 14px;
}

p {
    line-height: 1.7;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: inherit;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.025em;
}

html[lang^="zh"] h1,
html[lang^="zh"] h2,
html[lang^="zh"] h3,
html[lang^="zh"] h4,
html[lang^="zh"] h5,
html[lang^="zh"] h6 {
    letter-spacing: -.035em;
}


/* =====================================
   顶部区域和导航
   ===================================== */

.site-header,
.header,
.header-main,
.header-top,
.header-navbar,
.topbar,
.main-nav,
.site-nav,
.navigation,
.nav-menu {
    font-family: inherit !important;
}

.site-header a,
.header a,
.header-main a,
.header-navbar a,
.main-nav a,
.site-nav a,
.navigation a,
.nav-menu a {
    font-size: 14px;
    font-weight: 500;
    letter-spacing: -.01em;
}

.top-strip,
.header-top,
.header-meta {
    font-size: 12px;
    font-weight: 400;
}

.search-input,
.header-search input,
.search-form input {
    font-size: 13.5px !important;
    font-weight: 400;
}

.search-button,
.header-search button,
.search-form button {
    font-size: 13px;
    font-weight: 600;
}

.language-item,
.language-switcher a,
.language-switcher button,
.lang-item,
.lang-button {
    font-size: 11px;
    font-weight: 600;
}


/* =====================================
   Hero 区域
   ===================================== */

.hero-grid .entry-subtitle {
    font-size: 12.5px !important;
    font-weight: 600 !important;
    line-height: 1.4;
    letter-spacing: .035em;
}

.banner-large .entry-title {
    font-size: clamp(42px, 3.7vw, 58px) !important;
    font-weight: 700 !important;
    line-height: 1.13 !important;
    letter-spacing: -.045em;
}

.banner-small .entry-title {
    font-size: clamp(27px, 2.15vw, 34px) !important;
    font-weight: 700 !important;
    line-height: 1.18 !important;
    letter-spacing: -.035em;
}

.banner-large .entry-excerpt {
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.75 !important;
    letter-spacing: 0;
}

.banner-small .entry-excerpt {
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.65 !important;
}

.hero-grid .shop-button {
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: -.01em;
}

/*
Noto 字形比旧字体更饱满，
将之前较重的描边减弱，保留浅色背景可读性。
*/
.hero-managed-banner.has-managed-image
.entry-title {
    -webkit-text-stroke:
        .55px rgba(4, 7, 14, .78) !important;

    paint-order:
        stroke fill;

    text-shadow:
        0 2px 5px rgba(0, 0, 0, .62),
        0 7px 18px rgba(0, 0, 0, .28) !important;
}

.banner-small.hero-managed-banner.has-managed-image
.entry-title {
    -webkit-text-stroke:
        .45px rgba(4, 7, 14, .76) !important;
}

.hero-managed-banner.has-managed-image
.entry-subtitle,
.hero-managed-banner.has-managed-image
.entry-excerpt {
    -webkit-text-stroke:
        .18px rgba(4, 7, 14, .72) !important;

    text-shadow:
        0 1px 2px rgba(0, 0, 0, .82),
        0 3px 8px rgba(0, 0, 0, .42) !important;
}

/* 俄文、哈萨克文通常较长，稍微缩小 */
html[lang^="ru"] .banner-large .entry-title,
html[lang^="kk"] .banner-large .entry-title {
    font-size: clamp(39px, 3.35vw, 54px) !important;
    letter-spacing: -.035em;
}

html[lang^="ru"] .banner-small .entry-title,
html[lang^="kk"] .banner-small .entry-title {
    font-size: clamp(25px, 1.95vw, 31px) !important;
    letter-spacing: -.025em;
}


/* =====================================
   工厂视频介绍区
   ===================================== */

.factory-video-eyebrow {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: .06em !important;
}

.factory-video-title {
    font-size: clamp(30px, 2.65vw, 44px) !important;
    font-weight: 700 !important;
    line-height: 1.22 !important;
    letter-spacing: -.04em;
}

.factory-video-desc {
    font-size: 15px !important;
    font-weight: 400;
    line-height: 1.8 !important;
}

.factory-video-note {
    font-size: 13px !important;
    font-weight: 400;
    line-height: 1.7 !important;
}

.factory-video-placeholder strong {
    font-size: clamp(22px, 1.8vw, 28px) !important;
    font-weight: 700 !important;
}

.factory-video-placeholder span {
    font-size: 13px !important;
    font-weight: 400;
}

.factory-video-thumb strong {
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.4;
}


/* =====================================
   四个分类展示模块
   ===================================== */

.secondary-card-eyebrow {
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.4;
    letter-spacing: .025em;
}

.secondary-card-title {
    font-weight: 700 !important;
    line-height: 1.16 !important;
    letter-spacing: -.04em;
}

.secondary-card-left .secondary-card-title,
.secondary-card-right .secondary-card-title {
    font-size: clamp(29px, 2.35vw, 38px) !important;
}

.secondary-card-mid-top .secondary-card-title,
.secondary-card-mid-bottom .secondary-card-title {
    font-size: clamp(24px, 1.85vw, 30px) !important;
}

.secondary-card-desc {
    font-size: 14px !important;
    font-weight: 400;
    line-height: 1.7 !important;
}

.secondary-card-link {
    font-size: 14px !important;
    font-weight: 600 !important;
}


/* =====================================
   热门商品
   ===================================== */

.popular-picks-title {
    font-size: clamp(25px, 2vw, 30px) !important;
    font-weight: 700 !important;
    line-height: 1.3;
    letter-spacing: -.035em;
}

.popular-category-tabs button,
.popular-category-tab {
    font-size: 13px !important;
    font-weight: 500 !important;
}

.popular-card-category {
    font-size: 12px !important;
    font-weight: 400;
    line-height: 1.5;
}

.popular-card-title {
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    letter-spacing: -.02em;
}

.popular-card-meta {
    font-size: 12px !important;
    font-weight: 400;
    line-height: 1.65 !important;
}

.popular-card-badge {
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: .03em;
}

.popular-card a,
.popular-card button {
    font-weight: 600;
}

.popular-card-actions a,
.popular-card-actions button,
.popular-card-button {
    font-size: 12.5px !important;
}


/* =====================================
   新闻资讯
   ===================================== */

.home-news-section > h2,
.home-news-title,
.home-news-head h2 {
    font-size: clamp(25px, 2vw, 30px) !important;
    font-weight: 700 !important;
    letter-spacing: -.035em;
}

.home-news-section h3,
.home-news-card-title,
.news-card-title {
    font-size: clamp(18px, 1.4vw, 22px) !important;
    font-weight: 700 !important;
    line-height: 1.42 !important;
    letter-spacing: -.025em;
}

.home-news-section p,
.home-news-card-desc,
.news-card-desc {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.75;
}

.home-news-section time,
.home-news-meta,
.news-card-meta,
.home-news-category {
    font-size: 12px !important;
    font-weight: 400;
}


/* =====================================
   商品列表和详情页通用字体
   ===================================== */

.product-card-title,
.product-name,
.products-page h3 {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: -.02em;
}

.product-card-desc,
.product-summary,
.product-description {
    font-size: 14px;
    line-height: 1.75;
}

.product-detail-title,
.product-page-title {
    font-size: clamp(28px, 3vw, 42px);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.04em;
}


/* =====================================
   页脚
   ===================================== */

.site-footer,
.footer-v2,
.footer-contact-strip,
.footer-main,
.footer-bottom {
    font-family: inherit !important;
}

.footer-contact-strip {
    font-size: 13px;
}

.footer-main {
    font-size: 13.5px;
    line-height: 1.7;
}

.footer-main h3,
.footer-main h4,
.footer-title,
.footer-column-title {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -.015em;
}

.footer-main a {
    font-size: 13px;
    font-weight: 400;
}

.footer-bottom {
    font-size: 11.5px;
    line-height: 1.6;
}


/* =====================================
   网页客服窗口
   ===================================== */

.caca-chat-panel,
.caca-chat-launcher {
    font-family: inherit !important;
}

.caca-chat-title {
    font-size: 15px !important;
    font-weight: 700 !important;
}

.caca-chat-subtitle {
    font-size: 12px !important;
    font-weight: 400;
}

.caca-chat-bubble {
    font-size: 13.5px !important;
    font-weight: 400;
    line-height: 1.65 !important;
}

.caca-chat-time {
    font-size: 10.5px !important;
}

.caca-chat-input {
    font-size: 14px !important;
}

.caca-chat-send {
    font-size: 13px !important;
    font-weight: 600 !important;
}

.caca-chat-label,
.caca-chat-hint {
    font-weight: 600 !important;
}


/* =====================================
   手机和平板
   ===================================== */

@media (max-width: 900px) {
    :root {
        --font-body-size: 14.5px;
    }

    .banner-large .entry-title {
        font-size: clamp(35px, 7.5vw, 46px) !important;
        line-height: 1.15 !important;
    }

    .banner-small .entry-title {
        font-size: clamp(27px, 5.6vw, 34px) !important;
    }

    html[lang^="ru"] .banner-large .entry-title,
    html[lang^="kk"] .banner-large .entry-title {
        font-size: clamp(33px, 7vw, 43px) !important;
    }

    .factory-video-title {
        font-size: clamp(29px, 6vw, 38px) !important;
    }

    .secondary-card-left .secondary-card-title,
    .secondary-card-right .secondary-card-title,
    .secondary-card-mid-top .secondary-card-title,
    .secondary-card-mid-bottom .secondary-card-title {
        font-size: clamp(25px, 5vw, 32px) !important;
    }
}

@media (max-width: 680px) {
    :root {
        --font-body-size: 14px;
    }

    .site-header a,
    .header a,
    .main-nav a,
    .site-nav a {
        font-size: 13.5px;
    }

    .hero-grid .entry-subtitle {
        font-size: 11.5px !important;
    }

    .banner-large .entry-title {
        font-size: clamp(32px, 9.5vw, 41px) !important;
    }

    .banner-small .entry-title {
        font-size: clamp(25px, 7.5vw, 31px) !important;
    }

    .banner-large .entry-excerpt,
    .banner-small .entry-excerpt {
        font-size: 13.5px !important;
        line-height: 1.7 !important;
    }

    .factory-video-title {
        font-size: clamp(27px, 8vw, 34px) !important;
    }

    .factory-video-desc {
        font-size: 14px !important;
    }

    .popular-picks-title,
    .home-news-title,
    .home-news-head h2 {
        font-size: 24px !important;
    }

    .home-news-section h3,
    .home-news-card-title,
    .news-card-title {
        font-size: 18px !important;
    }

    .footer-main {
        font-size: 13px;
    }
}
