/* theme-www / AirPress 企业官网主题 */

:root {
    /* 语义层：映射到 --ds-* 设计令牌（定义见 blocks/_tokens.css）。
       品牌主色 --ap-primary 不在此定义：由 styles.tmpl 依据后台设置注入（默认 #003E6F）。 */
    --ap-primary-light: var(--ds-primary-fixed);
    --ap-secondary: var(--ds-secondary);
    --ap-deep-navy: var(--ds-deep-navy);
    --ap-text: var(--ds-on-surface);
    --ap-text-weak: var(--ds-on-surface-variant);
    --ap-text-light: var(--ds-outline);
    --ap-border: var(--ds-surface-border);
    --ap-bg: var(--ds-surface-container-lowest);
    --ap-bg-gray: var(--ds-surface-canvas);
    --ap-error: var(--ds-error);
    --ap-error-tint: rgba(186, 26, 26, .08);
    --ap-critical: var(--ds-critical-red);
    --ap-radius-sm: var(--ds-radius-sm);
    --ap-focus-ring: var(--ds-focus-ring);
    --ap-row-zebra: var(--ds-row-zebra);
    --ap-row-hover: var(--ds-row-hover);
    --ap-btn-primary-hover: var(--ds-btn-primary-hover);
    --ap-btn-primary-active: var(--ds-btn-primary-active);
    --ap-btn-secondary-hover-tint: var(--ds-btn-secondary-hover-tint);
    --ap-outline: var(--ds-outline);
    --ap-inverse-surface: var(--ds-inverse-surface);
    --ap-inverse-on-surface: var(--ds-inverse-on-surface);
    --ap-inverse-muted: var(--ds-inverse-muted);
    --ap-inverse-primary: var(--ds-inverse-primary);
    --ap-inverse-on-surface: var(--ds-inverse-on-surface);
    --ap-radius: var(--ds-radius);
    --ap-radius-lg: var(--ds-radius-lg);
    --ap-container: var(--ds-container-max); /* D4：1200px → 1440px */
    --ap-header-h: 72px;

    /* 主色透明度 tint：基于 --ds-primary (#003e6f) 推导；改后台主色时需同步本组 */
    --ap-primary-tint-04: rgba(0, 62, 111, .04);
    --ap-primary-tint-05: rgba(0, 62, 111, .05);
    --ap-primary-tint-06: rgba(0, 62, 111, .06);
    --ap-primary-tint-07: rgba(0, 62, 111, .07);
    --ap-primary-tint-08: rgba(0, 62, 111, .08);
    --ap-primary-tint-10: rgba(0, 62, 111, .1);
    --ap-primary-tint-12: rgba(0, 62, 111, .12);
    --ap-primary-tint-25: rgba(0, 62, 111, .25);
    --ap-primary-tint-40: rgba(0, 62, 111, .4);
    --ap-primary-tint-45: rgba(0, 62, 111, .45);
    --ap-primary-tint-50: rgba(0, 62, 111, .5);
    --ap-primary-tint-60: rgba(0, 62, 111, .6);
    --ap-secondary-tint-03: rgba(0, 99, 154, .03);

    /* 阴影三级（DESIGN.md Elevation：0 基面 / 1 卡片 hover / 2 浮层 / 3 吸附栏实底+边框） */
    --ap-shadow-btn: var(--ds-shadow-btn);
    --ap-shadow-card-hover: var(--ds-shadow-card-hover);
    --ap-shadow-dropdown: var(--ds-shadow-dropdown);

    /* 首页特效（v2.1 Home FX）：交替区块底色 / 首屏遮罩 / 装饰光晕 */
    --ap-section-alt: var(--ds-surface-section-alt);
    --ap-hero-mask-from: var(--ds-hero-mask-from);
    --ap-hero-mask-to: var(--ds-hero-mask-to);
    --ap-glow-primary: var(--ds-glow-primary);
    --ap-glow-secondary: var(--ds-glow-secondary);
    --ap-glow-inverse: var(--ds-glow-inverse);
    --ap-dark-chip-bg: var(--ds-dark-chip-bg);
    --ap-dark-chip-border: var(--ds-dark-chip-border);
    --ap-dark-chip-hover-bg: var(--ds-dark-chip-hover-bg);
    --ap-dark-chip-active-bg: var(--ds-dark-chip-active-bg);
    --ap-dark-chip-active-border: var(--ds-dark-chip-active-border);
    --ap-section-dark-from: var(--ds-surface-section-dark-from);
    --ap-section-dark-to: var(--ds-surface-section-dark-to);
}

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--ds-font-body);
    font-size: var(--ds-type-body-lg-size);
    line-height: 1.625;
    color: var(--ap-text);
    background: var(--ap-bg);
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease;
}

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

ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- 图标 ---------- */
.ap-icon {
    width: 1em;
    height: 1em;
    flex-shrink: 0;
    vertical-align: -0.125em;
}

/* ---------- 布局 ---------- */
.ap-container {
    width: 100%;
    max-width: var(--ap-container);
    margin: 0 auto;
    padding: 0 var(--ds-gutter);
}

.ap-section {
    padding: 72px 0;
}

.ap-section--gray {
    background: var(--ap-bg-gray);
}

/* 首页交替区块：冷调浅底 + 双角装饰光晕（仅 index.tmpl 使用） */
.ap-section--alt {
    background:
        radial-gradient(640px 320px at 6% 0%, var(--ap-glow-primary), transparent 70%),
        radial-gradient(720px 340px at 96% 100%, var(--ap-glow-secondary), transparent 70%),
        linear-gradient(180deg, var(--ap-section-alt) 0%, var(--ap-bg) 100%);
}

/* 首页深色区块：柔和藏青底 + 浅色装饰光晕（仅 index.tmpl 应用领域使用）。
   与核心业务浅底形成强对比，区块节奏 浅 → 深 → 灰；
   底色走 --ap-section-dark-from/to 双停点，比 inverse-surface→deep-navy 直铺更柔和、不刺眼 */
.ap-section--dark {
    background:
        radial-gradient(720px 360px at 92% 8%, var(--ap-glow-inverse), transparent 70%),
        linear-gradient(180deg, var(--ap-section-dark-from) 0%, var(--ap-section-dark-to) 100%);
}

.ap-section--dark .ap-section__title {
    color: var(--ap-inverse-on-surface);
}

.ap-section--dark .ap-section__title::after {
    background: var(--ap-inverse-primary);
}

.ap-section--dark .ap-section__desc {
    color: var(--ap-inverse-muted);
}

/* 区块标题组：对齐 analog.com/cn —— 标题与描述左对齐，装饰短线跟随左对齐；
   flex 左右分布：主标题组居左，「查看全部」贴右（仅首页新闻区块使用） */
.ap-section__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 40px;
    text-align: left;
}

.ap-section__head-main {
    min-width: 0;
}

/* 「查看全部」：主色链接 + 箭头（icon 模块 arrow-right），hover 箭头右移 */
.ap-section__more {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding-bottom: 2px;
    font-size: var(--ds-type-body-md-size);
    color: var(--ap-primary);
    white-space: nowrap;
}

.ap-section__more .ap-icon {
    width: 16px;
    height: 16px;
    transition: transform .2s ease;
}

.ap-section__more:hover .ap-icon {
    transform: translateX(4px);
}

.ap-section__title {
    margin: 0;
    font-size: var(--ds-type-headline-md-size);
    line-height: var(--ds-type-headline-md-lh);
    line-height: 1.4;
    font-weight: 600;
    color: var(--ap-text);
}

.ap-section__title::after {
    content: "";
    display: block;
    width: 40px;
    height: 3px;
    margin: 14px 0 0;
    background: var(--ap-primary);
    border-radius: 2px;
}

.ap-section__desc {
    margin: 12px 0 0;
    max-width: 720px;
    color: var(--ap-text-weak);
}

/* ---------- 头部 ---------- */
.ap-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
    border-bottom: 1px solid var(--ap-border);
    transition: box-shadow .25s ease;
}

/* 滚动后收起顶部条、压缩头部高度（对齐官网 120px → 70px）
   用高度过渡代替 display 切换：display 会让头部高度瞬间变化，过阈值时整页内容跟着跳，
   在临界点反复滚动就会看到闪动 */
.ap-header__top {
    height: 0;
    opacity: 0;
    overflow: hidden;
    background: var(--ap-bg-gray);
    font-size: 12px;
    color: var(--ap-text-weak);
    transition: height .25s ease, opacity .18s ease;
}

.ap-header.is-sticky .ap-header__top {
    height: 0;
    opacity: 0;
}

.ap-header.is-sticky .ap-header__main-inner {
    height: 60px;
}

.ap-header__top-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 36px;
}

.ap-header__main-inner {
    display: flex;
    align-items: center;
    height: var(--ap-header-h);
    transition: height .25s ease;
    gap: 24px;
}

.ap-logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    font-size: 20px;
    font-weight: 600;
    color: var(--ap-text);
}

.ap-logo img {
    height: 36px;
    width: auto;
    object-fit: contain;
}

.ap-nav {
    display: flex;
    align-items: center;
    flex: 1;
    gap: 4px;
}

.ap-nav__item {
    position: relative;
}

.ap-nav__item > a {
    display: block;
    padding: 8px 14px;
    font-size: 15px;
    color: var(--ap-text-weak);
    white-space: nowrap;
}

.ap-nav__item > a:hover,
.ap-nav__item.is-active > a {
    color: var(--ap-primary);
}

.ap-nav__item.has-child > a::after {
    content: "";
    display: inline-block;
    margin-left: 6px;
    vertical-align: middle;
    border: 4px solid transparent;
    border-top-color: currentColor;
    transform: translateY(2px);
}

.ap-nav__dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 160px;
    padding: 8px 0;
    background: #fff;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-dropdown);
}

.ap-nav__item:hover .ap-nav__dropdown {
    display: block;
}

.ap-nav__dropdown a {
    display: block;
    padding: 8px 20px;
    font-size: 14px;
    color: var(--ap-text-weak);
    white-space: nowrap;
}

.ap-nav__dropdown a:hover {
    background: var(--ap-primary-light);
    color: var(--ap-primary);
}

.ap-header__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

/* ---------- 按钮 ---------- */
.ap-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 0 20px;
    font-size: 14px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: #fff;
    color: var(--ap-text);
    cursor: pointer;
    transition: all .2s ease;
}

.ap-btn:hover {
    border-color: var(--ap-primary);
    color: var(--ap-primary);
    background: var(--ap-btn-secondary-hover-tint);
}

.ap-btn--primary {
    background: var(--ap-primary);
    border-color: var(--ap-primary);
    color: #fff;
    box-shadow: var(--ap-shadow-btn);
}

.ap-btn--primary:hover {
    background: var(--ap-btn-primary-hover);
    border-color: var(--ap-btn-primary-hover);
    color: #fff;
}

.ap-btn--primary:active {
    background: var(--ap-btn-primary-active);
    border-color: var(--ap-btn-primary-active);
    color: #fff;
}

.ap-btn--ghost {
    background: transparent;
    border-color: rgba(255, 255, 255, .6);
    color: #fff;
}

.ap-btn--ghost:hover {
    background: #fff;
    color: var(--ap-primary);
}

.ap-btn--lg {
    height: 46px;
    padding: 0 32px;
    font-size: 15px;
}

/* ---------- 首屏 ---------- */


/* ---------- 卡片 ---------- */
.ap-grid {
    display: grid;
    gap: 24px;
}

.ap-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

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

.ap-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ap-card {
    display: block;
    height: 100%;
    background: #fff;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-lg);
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.ap-card:hover {
    transform: translateY(-4px);
    border-color: transparent;
    box-shadow: var(--ap-shadow-card-hover);
}

.ap-card__thumb {
    position: relative;
    padding-top: 56%;
    background: var(--ap-bg-gray);
    overflow: hidden;
}

.ap-card__thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

.ap-card:hover .ap-card__thumb img {
    transform: scale(1.05);
}

/* 图片加载失败（如 CDN 图被删）时的占位：灰底 + 型号文字，不留破图 */
.ap-card__thumb.is-broken {
    background: linear-gradient(135deg, var(--ap-bg-gray) 0%, var(--ap-border) 100%);
}

.ap-card__thumb.is-broken::after {
    content: attr(data-ap-alt);
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    color: var(--ap-text-light);
    font-size: 14px;
    letter-spacing: .5px;
    text-align: center;
}

.ap-card__body {
    padding: 18px 20px 22px;
}

.ap-card__title {
    margin: 0;
    font-size: var(--ds-type-title-md-size);
    line-height: var(--ds-type-title-md-lh);
    font-weight: 600;
    text-align: center;
}

.ap-card:hover .ap-card__title {
    color: var(--ap-primary);
}

.ap-card__desc {
    margin: 8px 0 0;
    font-size: var(--ds-type-body-md-size);
    color: var(--ap-text-weak);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ap-card__more {
    margin-top: 12px;
    font-size: var(--ds-type-label-md-size);
    color: var(--ap-primary);
}

/* ---------- 核心业务 ---------- */
.ap-feature {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 58px 24px;
    height: 100%;
    background: #fff;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    transition: all .25s ease;
}

.ap-feature:hover {
    border-color: var(--ap-primary);
    box-shadow: var(--ap-shadow-card-hover);
}

.ap-feature__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--ap-primary-light);
    color: var(--ap-primary);
}

.ap-feature__icon svg {
    width: 28px;
    height: 28px;
}

.ap-feature__title {
    margin: 18px 0 0;
    font-size: var(--ds-type-title-md-size);
    line-height: var(--ds-type-title-md-lh);
    font-weight: 600;
}

.ap-feature__desc {
    margin: 8px 0 0;
    font-size: var(--ds-type-body-md-size);
    color: var(--ap-text-weak);
}

/* ---------- 增值服务 ---------- */
.ap-promo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 36px 40px;
    border-radius: var(--ap-radius-lg);
    background: linear-gradient(120deg, var(--ap-primary) 0%, var(--ap-secondary) 100%);
    color: #fff;
}

.ap-promo__title {
    margin: 0;
    font-size: var(--ds-type-headline-sm-size);
    line-height: var(--ds-type-headline-sm-lh);
    font-weight: 600;
}

.ap-promo__desc {
    margin: 8px 0 0;
    font-size: var(--ds-type-body-md-size);
    color: rgba(255, 255, 255, .85);
}

/* ---------- 新闻列表 ---------- */
.ap-news {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ap-news__item {
    display: flex;
    gap: 16px;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-lg);
    transition: all .25s ease;
}

.ap-news__item:hover {
    border-color: var(--ap-primary);
    box-shadow: var(--ap-shadow-card-hover);
}

.ap-news__date {
    flex-shrink: 0;
    width: 62px;
    text-align: center;
    padding-right: 16px;
    border-right: 1px solid var(--ap-border);
}

.ap-news__day {
    display: block;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--ap-primary);
}

.ap-news__month {
    display: block;
    font-size: 12px;
    color: var(--ap-text-light);
}

.ap-news__title {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ap-news__meta {
    margin-top: 8px;
    font-size: 12px;
    color: var(--ap-text-light);
}

/* ---------- 面包屑 ---------- */
.ap-breadcrumb {
    padding: 20px 0;
    font-size: 13px;
    color: var(--ap-text-light);
    border-bottom: 1px solid var(--ap-border);
    background: #fff;
}

.ap-breadcrumb a:hover {
    color: var(--ap-primary);
}

.ap-breadcrumb__sep {
    margin: 0 8px;
}

/* ---------- 页面内容 ---------- */
.ap-page {
    padding: 30px 0 72px;
    min-height: 380px;
}

.ap-page__title {
    margin: 0 0 12px;
    font-size: var(--ds-type-headline-lg-size);
    line-height: var(--ds-type-headline-lg-lh);
    font-weight: 600;
    line-height: 1.4;
}

.ap-page__meta {
    font-size: 13px;
    color: var(--ap-text-light);
    padding-bottom: 20px;
    border-bottom: 1px solid var(--ap-border);
}

.ap-page__meta span {
    margin-right: 18px;
}

.ap-content {
    padding-top: 24px;
    font-size: var(--ds-type-body-lg-size);
    line-height: 1.9;
    color: var(--ap-text);
    word-break: break-word;
}

.ap-content img {
    max-width: 100%;
    height: auto;
    margin: 12px 0;
    border-radius: var(--ap-radius-lg);
}

.ap-content h1, .ap-content h2, .ap-content h3, .ap-content h4 {
    font-weight: 600;
    line-height: 1.5;
}

.ap-content h1 {
    font-size: 26px;
}

.ap-content h2 {
    font-size: 22px;
}

.ap-content h3 {
    font-size: 18px;
}

.ap-content p {
    margin: 14px 0;
}

.ap-content a {
    color: var(--ap-primary);
    text-decoration: underline;
}

.ap-content ul, .ap-content ol {
    margin: 14px 0;
    padding-left: 24px;
}

.ap-content ul {
    list-style: disc;
}

.ap-content ol {
    list-style: decimal;
}

.ap-content li {
    margin: 6px 0;
}

.ap-content blockquote {
    margin: 16px 0;
    padding: 12px 18px;
    background: var(--ap-bg-gray);
    border-left: 3px solid var(--ap-primary);
    color: var(--ap-text-weak);
}

.ap-content table {
    width: 100%;
    margin: 16px 0;
    border-collapse: collapse;
}

.ap-content th, .ap-content td {
    padding: 10px 12px;
    border: 1px solid var(--ap-border);
}

.ap-content th {
    background: var(--ap-bg-gray);
}

.ap-content pre {
    margin: 16px 0;
    padding: 16px;
    overflow-x: auto;
    background: var(--ap-bg-gray);
    border-radius: var(--ap-radius-lg);
}

.ap-content code {
    padding: 2px 6px;
    background: var(--ap-bg-gray);
    border-radius: 4px;
    font-size: 13px;
}

.ap-content pre code {
    padding: 0;
    background: none;
}

/* ---------- 标签云 ---------- */
.ap-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ap-tag {
    display: inline-block;
    padding: 4px 14px;
    font-size: 13px;
    color: var(--ap-text-weak);
    background: var(--ap-bg-gray);
    border: 1px solid var(--ap-border);
    border-radius: 20px;
}

.ap-tag:hover {
    color: #fff;
    background: var(--ap-primary);
    border-color: var(--ap-primary);
}

/* ---------- 友情链接 ---------- */
.ap-links {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ap-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: #fff;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    transition: all .25s ease;
}

.ap-link:hover {
    border-color: var(--ap-primary);
    box-shadow: var(--ap-shadow-card-hover);
}

.ap-link img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
}

.ap-link__name {
    font-size: 15px;
    font-weight: 500;
}

.ap-link__desc {
    font-size: 12px;
    color: var(--ap-text-light);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---------- 图库 ---------- */
.ap-photos {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ap-photo {
    border-radius: var(--ap-radius-lg);
    overflow: hidden;
    background: var(--ap-bg-gray);
}

.ap-photo img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    transition: transform .4s ease;
}

.ap-photo:hover img {
    transform: scale(1.05);
}

.ap-photo__name {
    padding: 10px 14px;
    font-size: 14px;
}

/* ---------- 动态 ---------- */
.ap-journals {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.ap-journal {
    padding: 18px 20px;
    background: #fff;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-lg);
}

.ap-journal__time {
    font-size: 12px;
    color: var(--ap-text-light);
}

.ap-journal__content {
    margin-top: 8px;
    color: var(--ap-text);
}

/* ---------- 分页 ---------- */
.ap-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.ap-pagination__item {
    min-width: 38px;
    height: 40px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: var(--ap-text-weak);
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: #fff;
}

.ap-pagination__item:hover {
    color: var(--ap-primary);
    border-color: var(--ap-primary);
}

.ap-pagination__item.is-current {
    color: #fff;
    background: var(--ap-primary);
    border-color: var(--ap-primary);
}

.ap-pagination__info {
    margin-left: 8px;
    font-size: 13px;
    color: var(--ap-text-light);
}

/* ---------- 空状态 ---------- */
.ap-empty {
    padding: 64px 0;
    text-align: center;
    color: var(--ap-text-light);
}

/* ---------- 页脚 ---------- */
.ap-footer {
    background: var(--ap-deep-navy);
    color: var(--ap-inverse-muted);
    font-size: 14px;
    padding: 80px 0 30px;
}

.ap-footer__main {
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 60px;
}

.ap-footer__logo {
    display: inline-flex;
    align-items: center;
    font-size: 18px;
    font-weight: 600;
    color: #fff;
}

.ap-footer__logo img {
    height: 32px;
}

.ap-footer__slogan {
    margin: 16px 0 0;
    max-width: 320px;
    font-size: 13px;
    line-height: 1.8;
}

.ap-footer__desc {
    margin: 0 0 20px;
    color: var(--ap-inverse-muted);
    line-height: 1.6;
}

.ap-footer__contact {
    font-size: 14px;
}

.ap-footer__contact li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
    color: var(--ap-inverse-muted);
}

.ap-footer__contact .ap-icon {
    width: 18px;
    height: 18px;
    color: var(--ap-inverse-primary);
}

.ap-footer__contact a:hover {
    color: var(--ap-inverse-primary);
}

.ap-footer__title {
    margin: 0 0 20px;
    padding-bottom: 10px;
    position: relative;
    font-size: 20px;
    font-weight: 600;
    color: #fff;
}

.ap-footer__title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 30px;
    height: 2px;
    background: var(--ap-inverse-primary);
}

.ap-footer__list li {
    margin-bottom: 12px;
}

.ap-footer__list a {
    color: var(--ap-inverse-muted);
    transition: color .3s ease;
}

.ap-footer__list a:hover {
    color: var(--ap-inverse-primary);
}

.ap-footer__copyright {
    padding-top: 30px;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, .1);
    color: var(--ap-inverse-muted);
    font-size: 14px;
}

.ap-footer__copyright p {
    margin: 5px 0;
}

@media (max-width: 768px) {
    .ap-footer {
        padding: 30px 0;
    }

    .ap-footer__main {
        gap: 20px;
        margin-bottom: 30px;
    }

    .ap-footer__title {
        margin-bottom: 10px;
    }
}

/* ---------- 悬浮工具 ---------- */
.ap-float {
    position: fixed;
    right: 20px;
    bottom: 24px;
    z-index: 90;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ap-float__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: var(--ap-text-weak);
    box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
    cursor: pointer;
    transition: all .2s ease;
}

.ap-float__btn:hover {
    color: #fff;
    background: var(--ap-primary);
}

.ap-float__btn svg {
    width: 20px;
    height: 20px;
}

.ap-float__qr {
    display: none;
    position: absolute;
    right: 56px;
    bottom: 0;
    padding: 8px;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
}

.ap-float__wechat:hover .ap-float__qr {
    display: block;
}

.ap-float__qr img {
    width: 110px;
    height: 110px;
}

/* ---------- 移动端联系弹窗（源站 .contact-trigger / .contact-popup，仅移动端） ---------- */
.ap-contact-trigger {
    display: none; /* PC 端隐藏，768px 以下由媒体查询打开 */
    position: fixed;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 95;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    background: var(--ap-inverse-surface);
    color: var(--ap-inverse-on-surface);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .3);
    cursor: pointer;
    overflow: visible; /* 让波形不被裁剪 */
}

.ap-contact-trigger svg {
    width: 22px;
    height: 22px;
}

/* 波形动画：双环交替扩散（源站 wavePulse） */
.ap-contact-trigger::before,
.ap-contact-trigger::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    transform: translate(-50%, -50%) scale(1);
    border: 2px solid var(--ap-inverse-on-surface);
    animation: apWavePulse 2s ease-out infinite;
    pointer-events: none;
    will-change: transform, opacity;
}

.ap-contact-trigger::after {
    animation-delay: 1s; /* 第二个环延迟，形成交替效果 */
}

@keyframes apWavePulse {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: .7;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.6);
        opacity: 0;
    }
}

/* 仅移动端显示（源站 768px 断点） */
@media (max-width: 768px) {
    .ap-contact-trigger {
        display: flex;
    }
}

.ap-contact-popup {
    display: none;
    position: fixed;
    right: 10px;
    top: 30%;
    z-index: 96;
    width: 260px;
    background: var(--ap-inverse-surface);
    border-radius: 8px;
    box-shadow: var(--ap-shadow-dropdown);
    color: var(--ap-inverse-on-surface);
}

.ap-contact-popup.is-open {
    display: block;
}

.ap-contact-popup__head {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 10px 15px 0 0;
}

.ap-contact-popup__head button {
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.ap-contact-popup__body {
    padding: 15px;
    padding-bottom: 50px;
}

.ap-contact-popup__body .ap-contact-item {
    margin-bottom: 20px;
}

.ap-contact-popup__body .ap-contact-item:last-child {
    margin-bottom: 0;
}

/* 标签（源站 .contact-label）：浅灰 + 下方 2px 分隔线 */
.ap-contact-label {
    position: relative;
    margin-bottom: 8px;
    color: var(--ap-inverse-on-surface);
    font-size: 18px;
    font-weight: 500;
    line-height: 26px;
}

.ap-contact-label::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -6px;
    width: 100%;
    height: 2px;
    background: var(--ap-deep-navy);
    border-radius: 16px;
}

/* 值（源站 .contact-value） */
.ap-contact-popup .ap-contact-value {
    display: flex;
    align-items: center;
    color: var(--ap-inverse-on-surface);
    font-size: 18px;
    font-weight: 500;
    line-height: 30px;
    text-decoration: none;
    word-break: break-all;
}

.ap-contact-popup .ap-contact-value + .ap-contact-value {
    margin-top: 4px;
}

.ap-contact-popup .ap-contact-value:hover {
    color: #fff;
}

/* ---------- 移动端抽屉 ---------- */
.ap-drawer {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: none;
}

.ap-drawer.is-open {
    display: block;
}

.ap-drawer__mask {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .45);
}

.ap-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: 78%;
    max-width: 320px;
    height: 100%;
    padding: 24px;
    overflow-y: auto;
    background: #fff;
}

.ap-drawer__close {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 16px;
}

.ap-drawer__close button {
    border: 0;
    background: none;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    color: var(--ap-text-weak);
}

.ap-drawer__item > a {
    display: block;
    padding: 12px 0;
    font-size: 16px;
    border-bottom: 1px solid var(--ap-border);
}

.ap-drawer__sub.is-collapsed {
    display: none;
}

.ap-drawer__sub a {
    display: block;
    padding: 8px 0 8px 16px;
    font-size: 14px;
    color: var(--ap-text-weak);
}

.ap-header__toggle {
    display: none;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: #fff;
    cursor: pointer;
}

.ap-header__toggle span {
    display: block;
    width: 18px;
    height: 2px;
    background: var(--ap-text);
    position: relative;
}

.ap-header__toggle span::before,
.ap-header__toggle span::after {
    content: "";
    position: absolute;
    left: 0;
    width: 18px;
    height: 2px;
    background: var(--ap-text);
}

.ap-header__toggle span::before {
    top: -6px;
}

.ap-header__toggle span::after {
    top: 6px;
}

/* ---------- 动画 ---------- */
.ap-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s ease, transform .6s ease;
}

.ap-reveal.is-visible {
    opacity: 1;
    transform: none;
}

/* ---------- 响应式 ---------- */
@media (min-width: 993px) {
    .ap-header__top {
        height: 36px;
        opacity: 1;
    }
}

@media (max-width: 992px) {
    .ap-nav {
        display: none;
    }

    .ap-header__toggle {
        display: flex;
    }

    .ap-grid--4, .ap-grid--3, .ap-news, .ap-links, .ap-photos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ap-footer__main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

@media (max-width: 640px) {
    .ap-grid--4, .ap-grid--3, .ap-grid--2, .ap-news, .ap-links, .ap-photos {
        grid-template-columns: minmax(0, 1fr);
    }

    .ap-footer__main {
        grid-template-columns: minmax(0, 1fr);
    }

    .ap-promo {
        flex-direction: column;
        align-items: flex-start;
        padding: 24px;
    }

    .ap-page__title {
        font-size: 24px;
    }

    .ap-float {
        right: 12px;
        bottom: 16px;
    }
}

/* 移动端触控目标：按钮 44px（DESIGN.md Components / Buttons） */
@media (max-width: 768px) {
    .ap-btn { height: 44px; }
    .ap-btn--lg { height: 48px; }
}

/* 移动端栅格槽 16px（DESIGN.md Layout & Spacing） */
@media (max-width: 768px) {
    .ap-container { padding: 0 var(--ds-gutter-m); }
}

/* 移动端区块标题组：「查看全部」换到标题组下方 */
@media (max-width: 768px) {
    .ap-section__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .ap-section__more {
        padding-bottom: 0;
    }
}
}
