/* ==========================================================================
   首页 · 阳光中蓝版 v4
   主色：#1a6fc4（自信中蓝，活泼有光）
   点缀：#f59e0b（暖琥珀）——只给 CTA / 关键数字
   标题：无衬线（去掉公文感）
   结构保留 v3 改进（紧密度、高清图、深蓝 FAQ 卡、右侧 FAB）
   ========================================================================== */

.home-page {
    --hp-primary: #1a6fc4;
    --hp-primary-dark: #0f5496;
    --hp-primary-deep: #0a3d70;
    --hp-primary-light: #eaf3fc;
    --hp-accent: #f59e0b;
    --hp-accent-soft: #fbbf24;
    --hp-ink: var(--ink);
    --hp-muted: var(--muted);
    --hp-line: var(--line);
    --hp-line-2: #d7dfeb;
    --hp-bg: #ffffff;
    --hp-bg-soft: #f5f7fa;
    --hp-cream: var(--paper);
    background: #fff;
    color: var(--hp-ink);
    --font-head: var(--font-sans);
}

/* ---------- 通用区块 ---------- */
.hp-section { padding: 4.5rem 0; position: relative; }
.hp-section.tint { background: var(--hp-bg-soft); }
.hp-section.cream { background: var(--hp-cream); }
/* P3: 深色 section 用于就业保障，与 CTA 首尾呼应 */
.hp-section--dark {
    background: linear-gradient(135deg, var(--hp-primary-dark) 0%, #0c457a 100%) !important;
    color: rgba(255, 255, 255, .9);
}
.hp-section--dark .hp-kicker { color: var(--hp-accent-soft); }
.hp-section--dark h2,
.hp-section--dark .hp-head h2 { color: #fff; }
.hp-section--dark .hp-head p { color: rgba(255, 255, 255, .7); }
.hp-section--dark .hp-textlink { color: var(--hp-accent-soft); }
.hp-section--dark .hp-emp-actions .hp-textlink { color: var(--hp-accent-soft); }
.hp-section--dark .hp-emp-photo .tag strong,
.hp-section--dark .hp-emp-photo .tag span { color: #fff; }

.hp-kicker {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    font-family: var(--font-cond);
    font-weight: 600;
    font-size: .85rem;
    letter-spacing: .28em;
    color: var(--hp-primary);
    text-transform: uppercase;
    margin-bottom: 1rem;
}
.hp-kicker::before {
    content: "";
    width: 28px; height: 2px;
    background: var(--hp-primary);
    flex-shrink: 0;
}

.hp-head { margin-bottom: 2rem; }
.hp-head h2 {
    font-family: var(--font-head);
    font-size: clamp(1.65rem, 2.4vw, 2.2rem);
    font-weight: 700;
    line-height: 1.38;
    letter-spacing: .01em;
    color: var(--hp-ink);
    margin: 0;
}
.hp-head p {
    color: var(--hp-muted);
    font-size: .95rem;
    line-height: 1.95;
    margin: .8rem 0 0;
    max-width: 660px;
}

.hp-head-row {
    display: flex; flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1.2rem;
    margin-bottom: 1.4rem;
}
.hp-head-row .hp-head { margin-bottom: 0; }

.hp-textlink {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .88rem;
    color: var(--hp-primary);
    letter-spacing: .04em;
    border-bottom: 1px solid rgba(26, 111, 196, .35);
    padding-bottom: .18rem;
    transition: color .25s var(--ease), border-color .25s var(--ease);
}
.hp-textlink::after { content: "→"; transition: transform .3s var(--ease); }
.hp-textlink:hover { color: var(--hp-primary-dark); border-color: var(--hp-primary-dark); }
.hp-textlink:hover::after { transform: translateX(4px); }

/* ---------- 按钮 ---------- */
.hp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .75rem 1.6rem;
    border-radius: 4px;
    font-size: 1.1rem;
    letter-spacing: .08em;
    border: 1px solid transparent;
    transition: all .3s var(--ease);
    line-height: 1.4;
    text-decoration: none;
    font-family: var(--font-sans);
    font-weight: 500;
}
.hp-btn.primary {
    background: var(--hp-primary);
    border-color: var(--hp-primary);
    color: #fff;
}
.hp-btn.primary:hover {
    background: var(--hp-primary-dark);
    border-color: var(--hp-primary-dark);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px -12px rgba(26, 111, 196, .6);
}
/* 琥珀金只给 CTA 按钮 */
.hp-btn.gold {
    background: var(--hp-accent);
    border-color: var(--hp-accent);
    color: #2d1800;
    font-weight: 600;
}
.hp-btn.gold:hover {
    background: var(--hp-accent-soft);
    border-color: var(--hp-accent-soft);
    color: #2d1800;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px -12px rgba(245, 158, 11, .6);
}
.hp-btn.hp-ghost {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .55);
    color: #fff;
}
.hp-btn.hp-ghost:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

/* ---------- HERO BANNER + 自动轮播 ---------- */
.hp-hero-banner {
    position: relative;
    /* Hero 从视口顶端铺背景图，内容给 topbar + nav 让位 */
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    background-color: var(--hp-primary-dark);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    overflow: hidden;
}
/* Hero 内容区给 topbar + nav 让位 */
.hp-hero-inner {
    padding-top: calc(var(--topbar-h, 42px) + 72px);
    padding-bottom: 2rem;
}
/* 轮播背景层（cross-fade） */
.hp-hero-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 1.2s var(--ease), transform 6s linear;
    transform: scale(1.04);
    will-change: opacity;
    /* 原"高对比"按钮的效果，仅作用于通栏海报 */
    filter: contrast(1.28);
}
.hp-hero-slide.active {
    opacity: 1;
    transform: scale(1.08);
}
/* 遮罩 */
.hp-hero-mask {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        /* 主遮罩：左深蓝 → 右透，保证左侧文字可读 + 右侧保留海报光感 */
        linear-gradient(98deg,
            rgba(10, 61, 112, .68) 0%,
            rgba(10, 61, 112, .58) 22%,
            rgba(10, 61, 112, .4) 44%,
            rgba(10, 61, 112, .16) 72%,
            rgba(10, 61, 112, 0) 100%),
        /* 顶端额外暗条，专门给透明导航垫底 */
        linear-gradient(180deg,
            rgba(8, 30, 60, .45) 0%,
            rgba(8, 30, 60, .2) 8%,
            rgba(8, 30, 60, .05) 20%,
            rgba(8, 30, 60, 0) 35%),
        /* 底部暗条，CTA 可读 */
        linear-gradient(180deg,
            rgba(10, 61, 112, 0) 50%,
            rgba(10, 61, 112, .3) 100%);
}
/* 圆点指示器 */
.hp-hero-dots {
    position: absolute;
    bottom: 86px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    gap: 10px;
}
.hp-hero-dots .dot {
    width: 28px; height: 3px;
    border: 0;
    border-radius: 2px;
    background: rgba(255, 255, 255, .32);
    cursor: pointer;
    transition: background .3s var(--ease), width .4s var(--ease);
    padding: 0;
}
.hp-hero-dots .dot.active {
    background: var(--hp-accent);
    width: 44px;
}
.hp-hero-dots .dot:hover { background: rgba(255, 255, 255, .7); }
/* 自动播放进度条 */
.hp-hero-progress {
    position: absolute;
    bottom: 72px;
    left: 50%;
    transform: translateX(-50%);
    width: 160px;
    height: 2px;
    background: rgba(255, 255, 255, .18);
    border-radius: 2px;
    overflow: hidden;
    z-index: 3;
}
.hp-hero-progress span {
    display: block;
    height: 100%;
    background: var(--hp-accent);
    border-radius: 2px;
    width: 0;
}
/* 圆点激活时驱动进度条 */
.hp-hero-slider.sliding .hp-hero-progress span {
    animation: hp-hero-progress 5s linear forwards;
}
@keyframes hp-hero-progress {
    from { width: 0; }
    to   { width: 100%; }
}
/* 鼠标悬停暂停动画 */
.hp-hero-slider.paused .hp-hero-slide.active { animation-play-state: paused; }
.hp-hero-inner {
    position: relative;
    z-index: 2;
    /* 只写纵向，横向必须保留 .container 自带的 12px 内边距，否则移动端内容贴边 */
    padding-top: 4rem;
    padding-bottom: 4rem;
}
.hp-hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    font-family: var(--font-cond);
    font-weight: 600;
    font-size: .85rem;
    letter-spacing: .34em;
    color: var(--hp-accent-soft);
    text-transform: uppercase;
    margin-bottom: 1.4rem;
}
.hp-hero-kicker::before {
    content: "";
    width: 34px; height: 2px;
    background: var(--hp-accent);
}
/* Hero 大标题：无衬线 + 活泼比例 */
.hp-hero-title {
    font-family: var(--font-head);
    font-size: clamp(2.8rem, 5.4vw, 4.8rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.01em;
    color: #fff;
    margin: 0 0 1.3rem;
    text-shadow: 0 4px 24px rgba(0, 0, 0, .22);
}
/* 强调词：琥珀金，不加描边 */
.hp-hero-title span {
    color: var(--hp-accent);
}
.hp-hero-desc {
    color: rgba(255, 255, 255, .85);
    font-size: 1.1rem;
    line-height: 2;
    max-width: 540px;
    margin-bottom: 2.2rem;
}
.hp-hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2.8rem;
}
.hp-hero-trust {
    display: flex;
    list-style: none;
    padding: 1.1rem 0 0;
    margin: 0;
    border-top: 1px solid rgba(255, 255, 255, .2);
    max-width: 540px;
}
.hp-hero-trust li {
    flex: 1;
    padding-right: 1.2rem;
}
.hp-hero-trust li + li {
    padding-left: 1.2rem;
    border-left: 1px solid rgba(255, 255, 255, .2);
}
.hp-hero-trust strong {
    display: block;
    font-family: var(--font-cond);
    font-size: 2.1rem;
    font-weight: 700;
    color: var(--hp-accent-soft);
    line-height: 1.15;
    letter-spacing: .01em;
}
/* data-count 数字 span 显式兜底 font-size，防止被通用 .hp-hero-trust span 误伤 */
.hp-hero-trust strong .data-count {
    display: inline-block;
    font-family: var(--font-cond);
    font-size: 2.1rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
/* 描述文案用直接子选择器，只命中 li 下的直接 span，不碰 strong 里的 span */
.hp-hero-trust > li > span {
    display: block;
    font-size: .8rem;
    color: rgba(255, 255, 255, .6);
    letter-spacing: .06em;
    margin-top: .3rem;
}
.hp-hero-trust strong small {
    font-family: var(--font-cond);
    font-size: .85rem;
    font-weight: 500;
    letter-spacing: .06em;
    margin-left: .15rem;
    color: rgba(255, 255, 255, .7);
}
.hp-hero-scroll {
    position: absolute;
    left: 50%;
    bottom: 1.2rem;
    transform: translateX(-50%);
    font-family: var(--font-cond);
    font-weight: 600;
    font-size: .68rem;
    letter-spacing: .36em;
    color: rgba(255, 255, 255, .5);
    z-index: 2;
}
.hp-hero-scroll::after {
    content: "";
    display: block;
    width: 1px; height: 26px;
    background: rgba(255, 255, 255, .35);
    margin: .5rem auto 0;
}

/* ---------- 快捷入口条 ---------- */
.hp-quick {
    background: #fff;
    border-top: 1px solid rgba(10, 61, 112, .08);
    border-bottom: 1px solid rgba(10, 61, 112, .08);
}
.hp-quick .row > [class*="col-"] + [class*="col-"] .hp-quick-item {
    /* 原内部分割线已去掉，改为均匀留白 */
}
.hp-quick-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.3rem 1.6rem 1.4rem;
    height: 100%;
    color: var(--hp-ink);
    transition: background .3s var(--ease), transform .3s var(--ease);
    text-decoration: none;
}
.hp-quick-item:hover { background: var(--hp-primary-light); transform: translateY(-2px); }
.hp-quick-item .qi-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    flex-shrink: 0;
}
.hp-quick-item .qi-num {
    font-family: var(--font-cond);
    font-size: .9rem;
    font-weight: 700;
    color: var(--hp-primary);
    width: 30px; height: 30px;
    border-radius: 50%;
    background: rgba(26, 111, 196, .08);
    border: 1px solid rgba(26, 111, 196, .2);
    display: flex; align-items: center; justify-content: center;
    padding: 0;
    letter-spacing: .04em;
    transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.hp-quick-item:hover .qi-num {
    background: var(--hp-primary);
    color: #fff;
    border-color: var(--hp-primary);
}
.hp-quick-item .qi-ic {
    width: 22px; height: 22px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    opacity: .55;
    transition: opacity .25s var(--ease);
}
.hp-quick-item:hover .qi-ic { opacity: 1; }
.hp-quick-item .qi-ic-doc  { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a6fc4' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><path d='M14 2v6h6'/><path d='M16 13H8'/><path d='M16 17H8'/></svg>"); }
.hp-quick-item .qi-ic-edit { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a6fc4' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 20h9'/><path d='M16.5 3.5a2.12 2.12 0 1 1 3 3L7 19l-4 1 1-4Z'/></svg>"); }
.hp-quick-item .qi-ic-map  { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a6fc4' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s-8-7.58-8-13a8 8 0 1 1 16 0c0 5.42-8 13-8 13Z'/><circle cx='12' cy='9' r='2.5'/></svg>"); }
.hp-quick-item h3 {
    font-family: var(--font-head);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--hp-ink);
    margin: 0 0 .25rem;
}
.hp-quick-item p {
    font-size: .8rem;
    color: var(--hp-muted);
    margin: 0;
    line-height: 1.7;
}
.hp-quick-item .qi-arrow {
    margin-left: auto;
    color: #b9c1c9;
    font-size: .9rem;
    transition: transform .3s var(--ease), color .3s var(--ease);
    align-self: center;
}
.hp-quick-item:hover .qi-arrow { transform: translateX(4px); color: var(--hp-primary); }

/* ---------- 学校简介 ---------- */
.hp-figure {
    position: relative;
    margin: 0;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 26px 60px -36px rgba(15, 37, 60, .4);
}
.hp-figure img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}
.hp-figure figcaption {
    position: absolute;
    left: 1rem; bottom: 1rem;
    background: var(--hp-primary);
    color: #fff;
    font-family: var(--font-cond);
    font-weight: 600;
    font-size: .7rem;
    letter-spacing: .16em;
    padding: .4rem .8rem;
    border-radius: 2px;
}
.hp-prose p {
    font-size: .95rem;
    line-height: 2.05;
    color: var(--hp-muted);
    margin-bottom: .9rem;
}
.hp-prose p strong { color: var(--hp-ink); font-weight: 600; }
.hp-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin: 1.5rem 0 1.6rem;
    padding: 1.1rem 0;
    border-top: 1px solid rgba(10, 61, 112, .08);
    border-bottom: 1px solid rgba(10, 61, 112, .08);
}
.hp-facts .num {
    font-family: var(--font-cond);
    font-size: 1.55rem;
    font-weight: 700;
    color: var(--hp-primary);
    line-height: 1.2;
    letter-spacing: .01em;
}
.hp-facts .num small {
    font-family: var(--font-cond);
    font-size: .82rem;
    font-weight: 500;
    color: var(--hp-muted);
    margin-left: .1rem;
    letter-spacing: .04em;
}
.hp-facts .lbl {
    font-size: .8rem;
    color: var(--hp-muted);
    letter-spacing: .08em;
    margin-top: .25rem;
}

/* ---------- 专业卡片 ---------- */
.hp-major-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.2rem;
}
.hp-major {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    color: var(--hp-ink);
    transition: transform .4s var(--ease), box-shadow .4s var(--ease);
    text-decoration: none;
}
.hp-major:hover {
    color: var(--hp-ink);
    transform: translateY(-3px);
    box-shadow: 0 18px 36px -18px rgba(26, 111, 196, .5),
                0 4px 10px rgba(10, 40, 80, .08);
}
.hp-major .thumb {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #eceff2;
    position: relative;
}
.hp-major .thumb img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s var(--ease);
}
.hp-major:hover .thumb img { transform: scale(1.06); }
.hp-major .body {
    display: flex; flex-direction: column;
    flex: 1;
    padding: 1.1rem 1.15rem 1.2rem;
}
.hp-major .dir {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
}
.hp-major .dir h3 {
    font-family: var(--font-head);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--hp-ink);
    margin: 0;
    letter-spacing: .02em;
}
.hp-major .en {
    font-family: var(--font-cond);
    font-weight: 600;
    font-size: .76rem;
    letter-spacing: .2em;
    color: var(--hp-muted);
    white-space: nowrap;
}
.hp-major .subs {
    font-size: .88rem;
    line-height: 1.8;
    color: var(--hp-muted);
    margin: .45rem 0 1rem;
}
.hp-major .foot {
    margin-top: auto;
    padding-top: .8rem;
    border-top: 1px solid rgba(10, 61, 112, .08);
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: .9rem;
    color: var(--hp-muted);
}
.hp-major .foot strong { color: var(--hp-primary); font-weight: 600; }
.hp-major .foot .arrow {
    color: var(--hp-primary);
    transition: transform .3s var(--ease);
}
.hp-major:hover .foot .arrow { transform: translateX(4px); }

/* ---------- 就业 ---------- */
.hp-emp-photo {
    position: relative;
    height: 100%;
    min-height: 420px;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 26px 60px -36px rgba(15, 37, 60, .4);
}
.hp-emp-photo img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.hp-emp-photo .tag {
    position: absolute;
    left: 1rem; bottom: 1rem;
    background: var(--hp-primary);
    padding: .75rem 1rem;
    border-radius: 4px;
    max-width: 240px;
    box-shadow: 0 14px 30px -18px rgba(15, 37, 60, .4);
}
.hp-emp-photo .tag strong {
    display: block;
    font-family: var(--font-head);
    font-size: .95rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.5;
}
.hp-emp-photo .tag span {
    display: block;
    font-size: .7rem;
    font-family: var(--font-cond);
    font-weight: 500;
    letter-spacing: .06em;
    color: rgba(255, 255, 255, .78);
    margin-top: .2rem;
}
.hp-pay {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
}
.hp-pay th {
    font-family: var(--font-cond);
    font-weight: 600;
    font-size: .8rem;
    letter-spacing: .18em;
    color: var(--hp-muted);
    text-align: left;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(10, 61, 112, .1);
    text-transform: uppercase;
}
/* .hp-pay 旧就业表格残留，border 已淡化 */
.hp-pay th:last-child { text-align: right; }
.hp-pay td {
    padding: .9rem 0;
    border-bottom: 1px solid rgba(10, 61, 112, .08);
    font-size: .9rem;
    color: var(--hp-ink);
}
.hp-pay td:last-child {
    text-align: right;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--hp-primary);
    white-space: nowrap;
}
.hp-pay td:last-child small {
    font-family: var(--font-sans);
    font-weight: 400;
    font-size: .8rem;
    color: var(--hp-muted);
    margin-left: .15rem;
}
.hp-partners {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.2rem;
    padding: 1rem 0 0;
    margin-top: 1.2rem;  
    font-size: .76rem;
    color: var(--hp-muted);
    letter-spacing: .04em;
}
/* P0: 就业 icon 卡片网格 */
.hp-job-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .85rem;
    margin-top: 1.4rem;
}
.hp-job-card {
    display: flex;
    gap: .85rem;
    padding: 1rem 1.05rem;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 10px;
    transition: background .25s var(--ease),
                transform .25s var(--ease),
                border-color .25s var(--ease);
}
.hp-job-card:hover {
    background: rgba(255, 255, 255, .14);
    border-color: rgba(255, 255, 255, .28);
    transform: translateY(-2px);
}
.hp-job-card .hc-ic {
    width: 38px; height: 38px;
    flex-shrink: 0;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(255,255,255,.25), rgba(255,255,255,.08));
    background-size: 20px 20px;
    background-repeat: no-repeat;
    background-position: center;
}
.hp-job-card .hc-plane { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'><path d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/></svg>"); }
.hp-job-card .hc-ship  { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'><path d='M2 20c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 2 1 3.5 1s2.2-1 3.5-1c1.5 0 2 2 5 2 1 0 1.9-.4 2.5-1'/><path d='M19.38 20A11.6 11.6 0 0 0 21 14l-9-4-9 4c0 2.9.94 5.34 2.81 7.76'/><path d='M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6'/><path d='M12 10v4'/><path d='M12 2v3'/></svg>"); }
.hp-job-card .hc-train { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'><rect width='16' height='16' x='4' y='3' rx='2'/><path d='M4 11h16'/><path d='M12 3v8'/><path d='m8 19-2 3'/><path d='m16 19 2 3'/></svg>"); }
.hp-job-card .hc-gate { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'><path d='M3 21h18'/><path d='M5 21V7l7-4 7 4v14'/><path d='M9 21v-6h6v6'/><path d='M10 9h4v4h-4z'/></svg>"); }
.hp-job-card .hc-body { flex: 1; min-width: 0; }
.hp-job-card .hc-title {
    font-size: .9rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .88);
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hp-job-card .hc-pay {
    font-family: var(--font-cond);
    margin-top: .15rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--hp-accent-soft);
    letter-spacing: .01em;
    line-height: 1.1;
}
.hp-job-card .hc-pay strong { font-weight: 700; font-size: inherit; }
.hp-job-card .hc-pay span {
    font-size: .88rem;
    font-family: var(--font-sans);
    font-weight: 400;
    color: rgba(255, 255, 255, .55);
    margin-left: .15rem;
    letter-spacing: 0;
}
.hp-job-card .hc-unit {
    font-size: .78rem;
    color: rgba(255, 255, 255, .55);
    margin-top: .12rem;
}

/* P0: 合作单位 logo 瓦片（深色 section 上自适应白色+浅蓝双色） */
.hp-partner-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .5rem;
    margin-top: 1.3rem;
}
.hp-partner {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .3rem .6rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 6px;
    background: rgba(255, 255, 255, .04);
    font-size: .88rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .72);
    letter-spacing: .02em;
    text-align: center;
    transition: transform .22s var(--ease),
                background .22s var(--ease),
                border-color .22s var(--ease),
                color .22s var(--ease);
    cursor: default;
}
.hp-partner:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .36);
    color: #fff;
}

.hp-emp-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
    margin-top: 1.6rem;
}

/* ---------- 校园生活 ---------- */
.hp-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 180px;
    gap: .75rem;
}
.hp-gallery a {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 6px;
    background: #e9edf1;
    color: #fff;
    text-decoration: none;
}
.hp-gallery a.big { grid-column: span 2; grid-row: span 2; }
.hp-gallery a.wide { grid-column: span 2; }
.hp-gallery img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .7s var(--ease);
}
.hp-gallery a:hover img { transform: scale(1.05); }
/* P2: hover 遮罩底部滑入 + 标题浮起 */
.hp-gallery a::before {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 55%;
    background: linear-gradient(transparent, rgba(10, 40, 80, .85));
    transform: translateY(100%);
    opacity: 0;
    transition: transform .45s var(--ease), opacity .4s var(--ease);
    pointer-events: none;
    z-index: 1;
}
.hp-gallery a:hover::before {
    transform: translateY(0);
    opacity: 1;
}
.hp-gallery .cap {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 2rem 1rem .75rem;
    background: linear-gradient(transparent, rgba(10, 61, 112, .72));
    font-size: .9rem;
    letter-spacing: .04em;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .8rem;
    pointer-events: none;
    transition: transform .4s var(--ease), opacity .3s var(--ease);
    transform: translateY(6px);
    opacity: .85;
    z-index: 2;
}
.hp-gallery a:hover .cap {
    transform: translateY(0);
    opacity: 1;
}
.hp-gallery .cap small {
    font-family: var(--font-cond);
    font-weight: 500;
    font-size: .68rem;
    letter-spacing: .2em;
    opacity: .7;
    white-space: nowrap;
}
.hp-gallery .big .cap {
    font-size: .95rem;
    padding-bottom: 1rem;
}

/* ---------- 新闻（更紧凑） ---------- */
.hp-newslist { border-top: 1px solid rgba(10, 61, 112, .08); }
.hp-newsitem {
    display: grid;
    grid-template-columns: 64px 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: .72rem 0;
    border-bottom: 1px solid rgba(10, 61, 112, .06);
    color: var(--hp-ink);
    text-decoration: none;
}
.hp-newsitem:hover { color: var(--hp-ink); }
.hp-newsitem .date {
    text-align: center;
    padding-right: .75rem;
}
.hp-newsitem .date .d {
    font-family: var(--font-sans);
    font-size: 1.28rem;
    font-weight: 800;
    color: var(--hp-primary);
    line-height: 1.1;
}
.hp-newsitem .date .ym {
    font-family: var(--font-cond);
    font-weight: 500;
    font-size: .64rem;
    color: var(--hp-muted);
    letter-spacing: .1em;
    margin-top: .1rem;
}
.hp-newsitem h3 {
    font-family: var(--font-sans);
    font-size: .98rem;
    font-weight: 500;
    line-height: 1.55;
    color: var(--hp-ink);
    margin: 0;
    transition: color .25s var(--ease);
}
.hp-newsitem:hover h3 { color: var(--hp-primary); }
.hp-newsitem .go {
    color: var(--hp-primary);
    font-size: .92rem;
    opacity: 0;
    transform: translateX(-5px);
    transition: all .3s var(--ease);
}
.hp-newsitem:hover .go { opacity: 1; transform: none; }

/* ---------- 问答卡（更紧凑 + flex-grow 撑满） ---------- */
.hp-ask {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--hp-primary-dark);
    color: rgba(255, 255, 255, .9);
    border-radius: 6px;
    padding: 1.4rem 1.6rem 1.3rem;
}
.hp-ask .hp-kicker { color: var(--hp-accent-soft); }
.hp-ask h3 {
    font-family: var(--font-head);
    font-size: 1.28rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 .25rem;
    line-height: 1.35;
}
.hp-ask .sub {
    font-size: .93rem;
    color: rgba(255, 255, 255, .62);
    margin-bottom: .85rem;
}
.hp-ask-list {
    flex: 1 1 auto;
    list-style: none; padding: 0; margin: 0 0 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
}
.hp-ask-list li { border-bottom: 1px solid rgba(255, 255, 255, .14); }
.hp-ask-list a {
    display: flex;
    gap: .75rem;
    padding: .52rem 0;
    font-size: .9rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, .9);
    text-decoration: none;
    transition: color .2s var(--ease);
}
.hp-ask-list a:hover { color: var(--hp-accent-soft); }
.hp-ask-list .n {
    font-family: var(--font-cond);
    font-weight: 700;
    font-size: .7rem;
    color: var(--hp-accent);
    padding-top: .15rem;
    flex-shrink: 0;
}
.hp-ask-contact {
    margin-top: auto;
    padding-top: 1rem;  
}
.hp-ask-contact .tel-label {
    font-family: var(--font-cond);
    font-weight: 500;
    font-size: .66rem;
    letter-spacing: .22em;
    color: var(--hp-accent-soft);
    text-transform: uppercase;
}
.hp-ask-contact .tel {
    font-family: var(--font-head);
    font-size: 1.35rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.5;
    letter-spacing: .01em;
}
.hp-ask-contact .tel-note {
    font-size: .8rem;
    color: rgba(255, 255, 255, .5);
    margin-bottom: .9rem;
}

/* ---------- 底部转化 ---------- */
.hp-cta {
    position: relative;
    min-height: 400px;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
    background-color: var(--hp-primary);
    /* 防止 ::after 径向光效在窄屏溢出造成横向滚动 */
    overflow: hidden;
}
.hp-cta::before {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(90deg,
        var(--hp-primary-deep) 0%,
        rgba(10, 61, 112, .92) 30%,
        rgba(10, 61, 112, .7) 52%,
        rgba(10, 61, 112, .25) 72%,
        rgba(10, 61, 112, 0) 100%);
}
/* P2: 径向中心光效，让 CTA 聚焦感更强 */
.hp-cta::after {
    content: "";
    position: absolute;
    left: 18%;
    top: 50%;
    transform: translateY(-50%);
    width: 620px;
    height: 420px;
    background: radial-gradient(ellipse at center,
        rgba(255, 200, 120, .18) 0%,
        rgba(26, 111, 196, .22) 35%,
        rgba(10, 40, 80, 0) 70%);
    pointer-events: none;
    z-index: 1;
}
.hp-cta-panel {
    position: relative;
    z-index: 2;
    max-width: 540px;
    padding: 3.5rem 0;
    color: #fff;
}
.hp-cta-panel .hp-kicker { color: var(--hp-accent-soft); }
.hp-cta-panel h2 {
    font-family: var(--font-head);
    font-size: clamp(1.6rem, 2.6vw, 2.2rem);
    font-weight: 700;
    line-height: 1.4;
    color: #fff;
    margin: 0 0 .8rem;
}
.hp-cta-panel p {
    font-size: 1.1rem;
    line-height: 1.95;
    color: rgba(255, 255, 255, .8);
    margin-bottom: 1.8rem;
    max-width: 440px;
}
.hp-cta-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}
.hp-cta-actions .tel-box {
    font-size: .8rem;
    font-family: var(--font-cond);
    letter-spacing: .12em;
    color: rgba(255, 255, 255, .6);
    text-transform: uppercase;
    line-height: 1.5;
}
.hp-cta-actions .tel-box strong {
    display: block;
    font-family: var(--font-head);
    letter-spacing: normal;
    font-size: 1.1rem;
    color: #fff;
    text-transform: none;
}

/* ---------- 右侧悬浮快捷咨询（纯色 + 透明底图标） ---------- */
.hp-side-fab {
    position: fixed;
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 90;
    display: flex;
    flex-direction: column;
    gap: 0;
    /* 纯色，不要渐变 */
    background: var(--hp-primary);
    border-radius: 14px;
    box-shadow: 0 18px 40px -18px rgba(26, 111, 196, .55);
    width: 76px;
    font-size: .82rem;
    text-align: center;
    transition: opacity .3s var(--ease), transform .3s var(--ease);
    border: 1px solid rgba(255, 255, 255, .22);
}
/* 首尾按钮自带圆角，替代 overflow:hidden（否则会裁掉弹出面板） */
.hp-side-fab > .sf-item:first-of-type { border-radius: 13px 13px 0 0; }
.hp-side-fab > .sf-item:last-of-type { border-radius: 0 0 13px 13px; }
.hp-side-fab .sf-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 1rem .45rem .85rem;
    color: rgba(255, 255, 255, .92);
    text-decoration: none;
    border: 0;
    background: transparent;
    cursor: pointer;
    transition: background .2s var(--ease), color .2s var(--ease);
}
.hp-side-fab .sf-item:hover {
    background: var(--hp-primary-dark);
    color: #fff;
}
/* 图标容器透明底，不要独立色块 */
.hp-side-fab .sf-ic {
    width: 32px; height: 32px;
    display: inline-block;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
}
.hp-side-fab .sf-lbl {
    font-family: var(--font-cond);
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1.2;
    color: inherit;
    font-size: .8rem;
}
.hp-side-fab .sf-divider {
    height: 1px;
    background: rgba(255, 255, 255, .18);
    margin: 0 14px;
}
/* 返回顶部：始终占位，未滚动时置灰禁用，滚动后点亮 */
.hp-side-fab #sfTop { opacity: .38; pointer-events: none; filter: grayscale(.4); }
.hp-side-fab.show-top #sfTop { opacity: 1; pointer-events: auto; filter: none; }

/* SVG 图标尺寸同步放大 */
.hp-side-fab .sf-ic-edit::before,
.hp-side-fab .sf-ic-tel::before,
.hp-side-fab .sf-ic-wechat::before,
.hp-side-fab .sf-ic-map::before,
.hp-side-fab .sf-ic-top::before {
    content: "";
    display: block;
    width: 22px; height: 22px;
    margin: auto;
}
.hp-side-fab .sf-ic-edit::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 20h9'/><path d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z'/></svg>");
    background-repeat: no-repeat; background-position: center; background-size: contain;
}
.hp-side-fab .sf-ic-tel::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
    background-repeat: no-repeat; background-position: center; background-size: contain;
}
.hp-side-fab .sf-ic-wechat::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z'/></svg>");
    background-repeat: no-repeat; background-position: center; background-size: contain;
}
.hp-side-fab .sf-ic-map::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>");
    background-repeat: no-repeat; background-position: center; background-size: contain;
}
.hp-side-fab .sf-ic-top::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='18 15 12 9 6 15'/></svg>");
    background-repeat: no-repeat; background-position: center; background-size: contain;
}

/* ---------- FAB Popover（每个按钮 hover 浮出的信息面板） ---------- */
.hp-side-fab .sf-item { position: relative; }
.hp-side-fab .sf-pop {
    position: absolute;
    right: calc(100% + 14px);
    top: 50%;
    transform: translateY(-50%) translateX(10px);
    min-width: 172px;
    padding: 1rem 1.1rem;
    background: #fff;
    color: var(--hp-ink);
    border-radius: 10px;
    box-shadow:
        0 22px 44px -22px rgba(10, 40, 80, .45),
        0 4px 10px rgba(10, 40, 80, .08);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s var(--ease),
                transform .25s cubic-bezier(.22,.61,.36,1),
                visibility .2s;
    z-index: 100;
    white-space: nowrap;
}
/* 右侧三角尾巴 */
.hp-side-fab .sf-pop::after {
    content: "";
    position: absolute;
    right: -6px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 10px; height: 10px;
    background: #fff;
    box-shadow: 2px -2px 4px rgba(10, 40, 80, .08);
}
/* 命中桥：把面板的可悬浮区域延伸过 14px 空隙，避免鼠标横移时闪断 */
.hp-side-fab .sf-pop::before {
    content: "";
    position: absolute;
    right: -16px;
    top: -6px;
    bottom: -6px;
    width: 18px;
    background: transparent;
}
.hp-side-fab .sf-item:hover .sf-pop {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50%) translateX(0);
    pointer-events: auto;
}
/* 防闪烁：从 item 到 pop 有 12px gap，进 pop 持续显示 */
.hp-side-fab .sf-item { transition-delay: 0s; }

/* pop 面板内部 */
.hp-side-fab .sp-title {
    display: block;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--hp-primary-dark);
    margin-bottom: .25rem;
    white-space: normal;
    line-height: 1.35;
}
.hp-side-fab .sp-tel {
    display: block;
    font-family: var(--font-head);
    font-size: 1.28rem;
    font-weight: 800;
    color: var(--hp-primary);
    letter-spacing: .02em;
    line-height: 1.2;
    margin-bottom: .3rem;
}
.hp-side-fab .sp-sub {
    display: block;
    font-size: .82rem;
    color: var(--hp-muted);
    line-height: 1.6;
    white-space: normal;
    margin-bottom: .75rem;
}
.hp-side-fab .sp-btn {
    display: inline-block;
    font-size: .76rem;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(135deg, #1a6fc4 0%, #0c5d9e 100%);
    padding: .42rem .95rem;
    border-radius: 999px;
    letter-spacing: .04em;
    transition: transform .2s var(--ease), box-shadow .2s var(--ease);
    box-shadow: 0 6px 14px -6px rgba(26, 111, 196, .5);
}
.hp-side-fab .sp-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 20px -8px rgba(26, 111, 196, .55);
}

/* 微信二维码面板：面板更紧凑，qr 占位图 */
.hp-side-fab .sf-pop .sp-qr {
    display: block;
    width: 128px;
    height: 128px;
    margin: 0 auto .8rem;
    border-radius: 4px;
    background: linear-gradient(135deg, #f5f7fb, #e2e8f2);
    border: 1px solid #d8dfe9;
}
.hp-side-fab .sf-pop .sp-qr .qr-pholder {
    display: block;
    width: 100%; height: 100%;
    color: var(--hp-muted);
    font-size: .8rem;
    font-family: var(--font-cond);
    letter-spacing: .1em;
    text-align: center;
    padding-top: 46px;
    box-sizing: border-box;
    line-height: 1.6;
}

/* ---------- Reveal 动效 ---------- */
.hp-section .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.hp-section .reveal.in { opacity: 1; transform: none; }
.hp-section .reveal[data-delay="1"] { transition-delay: .08s; }
.hp-section .reveal[data-delay="2"] { transition-delay: .16s; }
.hp-section .reveal[data-delay="3"] { transition-delay: .24s; }

/* ---------- 响应式 ---------- */
@media (max-width: 1199.98px) {
    .hp-major-grid { grid-template-columns: repeat(2, 1fr); }
    .hp-gallery { grid-auto-rows: 160px; }
}
@media (max-width: 991.98px) {
    .hp-section { padding: 3.5rem 0; }
    .hp-hero-banner { min-height: auto; padding-top: 1rem; padding-bottom: 1rem; }
    .hp-hero-inner { padding-top: 3.5rem; padding-bottom: 3.5rem; }
    .hp-hero-title { font-size: clamp(2.4rem, 7vw, 3.4rem); }
    .hp-quick .row > [class*="col-"] + [class*="col-"] .hp-quick-item { border-left: 0; border-top: 1px solid rgba(10, 61, 112, .08); }
    .hp-emp-photo { min-height: 340px; }
    .hp-gallery { grid-auto-rows: 160px; }
    .hp-cta-panel { padding: 3rem 0; }
    .hp-side-fab { right: 12px; top: auto; bottom: 16px; flex-direction: row; width: auto; gap: 0; border-radius: 6px; }
    .hp-side-fab > .sf-item:first-of-type { border-radius: 5px 0 0 5px; }
    .hp-side-fab > .sf-item:last-of-type { border-radius: 0 5px 5px 0; }
    .hp-side-fab .sf-divider { width: 1px; height: auto; margin: 6px 0; }
    .hp-side-fab .sf-item { padding: .5rem .45rem .5rem; }
    .hp-side-fab .sf-item .sf-lbl { display: none; }
    .hp-side-fab .sf-item#sfTop { order: -1; }
}
@media (max-width: 767.98px) {
    .hp-section { padding: 2.8rem 0; }
    /* 通栏海报：移动端恢复满屏气势，svh 规避手机浏览器地址栏抖动 */
    .hp-hero-banner { min-height: 88vh; min-height: 88svh; align-items: flex-end; }
    .hp-hero-inner { padding-top: 6rem; padding-bottom: 5.5rem; }
    /* 移动端改为纵向遮罩：顶部给透明导航垫底，底部给文字与指示器可读性 */
    .hp-hero-mask {
        background:
            linear-gradient(180deg,
                rgba(8, 30, 60, .5) 0%,
                rgba(8, 30, 60, .18) 26%,
                rgba(10, 61, 112, .32) 55%,
                rgba(10, 61, 112, .78) 100%);
    }
    .hp-hero-title { font-size: 2.2rem; }
    .hp-hero-desc { font-size: 1.1rem; }
    .hp-hero-actions { flex-direction: column; align-items: flex-start; gap: .6rem; }
    .hp-hero-trust { max-width: none; }
    .hp-hero-trust li { padding-right: .8rem; }
    .hp-hero-trust li + li { padding-left: .8rem; }
    .hp-hero-trust strong { font-size: 1.6rem; }
    .hp-hero-trust strong .data-count { font-size: 1.6rem; }
    .hp-hero-trust strong small { font-size: .8rem; }
    /* 指示器下移让位内容，隐藏桌面端滚动提示 */
    .hp-hero-dots { bottom: 26px; }
    .hp-hero-progress { bottom: 14px; }
    .hp-hero-scroll { display: none; }
    .hp-facts { grid-template-columns: repeat(2, 1fr); gap: 1rem 0; }
    .hp-major-grid { grid-template-columns: 1fr; }
    .hp-gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 140px; }
    .hp-gallery a.big { grid-column: span 2; grid-row: span 2; }
    .hp-gallery a.wide { grid-column: span 2; }
    .hp-newsitem { grid-template-columns: 60px 1fr; gap: .8rem; }
    .hp-newsitem .go { display: none; }
    .hp-ask { padding: 1.4rem 1.3rem; }
    /* 就业保障：图片按 4:3 自适应，不再撑 420px 死高 */
    .hp-emp-photo { min-height: 0; height: auto; aspect-ratio: 4 / 3; }
    /* 岗位卡片单列，标题允许换行避免被截断 */
    .hp-job-grid { grid-template-columns: 1fr; }
    .hp-job-card .hc-title { white-space: normal; }
    /* 合作单位 5 列改 3 列，避免瓦片过窄文字挤压 */
    .hp-partner-grid { grid-template-columns: repeat(3, 1fr); }
    .hp-partner { font-size: .8rem; }
    .hp-emp-actions { gap: .9rem 1rem; }
    /* 移动端快捷咨询栏只保留「返回顶部」，其余入口（报名/电话/微信/路线）隐藏 */
    .hp-side-fab .sf-item:not(#sfTop),
    .hp-side-fab .sf-divider { display: none; }
    .hp-side-fab #sfTop { border-radius: 6px; padding: .55rem .6rem; }
    .hp-cta { min-height: 0; align-items: flex-end; }
    .hp-cta::before {
        background: linear-gradient(180deg,
            rgba(10, 61, 112, .75) 0%,
            rgba(10, 61, 112, .9) 60%,
            rgba(10, 61, 112, .92) 100%);
    }
    /* 径向光效收敛到容器内，不再用固定 620px 宽度 */
    .hp-cta::after {
        left: 0;
        top: 0;
        transform: none;
        width: 100%;
        height: 100%;
        background: radial-gradient(ellipse at 50% 100%,
            rgba(255, 200, 120, .16) 0%,
            rgba(26, 111, 196, .2) 45%,
            rgba(10, 40, 80, 0) 75%);
    }
    .hp-cta-panel { padding: 2.8rem 0 3rem; max-width: none; }
}
