/* 页面基础变量直接对应 Figma 的主色、正文色和分隔线颜色。 */
:root { --primary: #165c91; --text: #333333; --muted: #999999; --line: #dddddd; }
* { box-sizing: border-box; }
html { overflow-x: hidden; background: #ffffff; }
body { margin: 0; color: var(--text); background: #ffffff; font-family: "PingFang SC", "Microsoft YaHei", Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

/* 桌面端保留 Figma 1920px 宽度，页面高度跟随服务内容自然撑开。 */
.page-stage { width: 100%; height: auto; overflow: visible; }
.page-canvas { position: relative; width: 1920px; height: auto; zoom: calc(100vw / 1920px); }

/* 头部尺寸、Logo 坐标和导航间距与 talent-recruitment.html 保持一致。 */
.site-header { position: relative; z-index: 20; display: grid; width: 1920px; height: 120px; padding: 0 60px; grid-template-columns: minmax(0, 1fr) auto; column-gap: 150px; align-items: center; background: #ffffff; }
.brand { display: flex; width: 804px; align-items: center; }
.brand-school { width: 222px; height: 60px; object-fit: contain; }
.brand-divider { flex: 0 0 1px; width: 1px; height: 60px; margin: 0 29px; background: #d6d6d6; }
.brand-department { width: 522px; height: 60px; object-fit: contain; }
.main-nav { display: flex; flex: 0 0 auto; height: 100%; align-items: center; gap: 40px; font-size: 18px; }
.nav-item { position: relative; display: grid; height: 100%; align-items: center; }
.nav-link { position: relative; z-index: 0; display: grid; height: 100%; align-items: center; white-space: nowrap; }
.nav-link::before, .nav-link::after { position: absolute; left: 50%; z-index: -1; background-position: center; background-repeat: no-repeat; background-size: contain; content: ""; opacity: 0; pointer-events: none; transform: translateX(-50%); transition: opacity .18s ease; }
.nav-link::before { top: 0; width: 126px; height: 42px; background-image: url("../img/figma/nav-decoration-top.png"); }
.nav-link::after { bottom: 0; width: 80px; height: 42px; background-image: url("../img/figma/nav-decoration.png"); }
.nav-item:hover .nav-link::before, .nav-item:hover .nav-link::after, .nav-item:focus-within .nav-link::before, .nav-item:focus-within .nav-link::after, .nav-item.is-current .nav-link::before, .nav-item.is-current .nav-link::after { opacity: 1; }
.sub-nav { position: absolute; z-index: 3; top: 100%; left: 50%; visibility: hidden; min-width: 170px; padding: 8px; border: 1px solid rgba(0, 0, 0, .08); border-radius: 8px; background: rgba(255, 255, 255, .96); box-shadow: 0 10px 30px rgba(0, 0, 0, .12); opacity: 0; transform: translate(-50%, -8px); transition: opacity .18s ease, transform .18s ease, visibility .18s; backdrop-filter: blur(16px); }
.sub-nav a { display: block; padding: 9px 14px; border-radius: 6px; font-size: 16px; line-height: 24px; text-align: center; white-space: nowrap; }
.sub-nav a:hover, .sub-nav a:focus-visible { color: var(--primary); background: #f1f6fa; }
.nav-item:hover .sub-nav, .nav-item:focus-within .sub-nav { visibility: visible; opacity: 1; transform: translate(-50%, 0); }
.mobile-navigation { display: none; }

/* 横幅从页面 y=120 开始，栏目牌和二级导航使用设计稿绝对尺寸。 */
.service-hero { position: relative; width: 1920px; height: 550px; }
.service-banner { width: 1920px; height: 550px; object-fit: cover; }
.service-hero-shell { position: absolute; top: 0; left: 120px; width: 1680px; height: 550px; pointer-events: none; }
.service-title { position: absolute; z-index: 2; top: 250px; left: 0; width: 280px; height: 380px; color: #ffffff; text-align: center; pointer-events: auto; }
.service-title-panel { position: absolute; inset: 0; width: 280px; height: 380px; }
.service-title-icon { position: relative; width: 40px; height: 40px; margin: 96px auto 0; object-fit: contain; }
.service-title h1 { position: relative; margin: 15px 0 0; font-size: 24px; font-weight: 400; line-height: 34px; }
.service-tabs { position: absolute; z-index: 3; top: 470px; left: 0; display: grid; width: 1680px; height: 100px; padding-left: 280px; grid-template-columns: repeat(2, 700px); align-items: center; pointer-events: auto; }
.service-tabs-bg { position: absolute; inset: 0; z-index: -2; width: 1680px; height: 100px; }
.service-tabs-mask { position: absolute; bottom: 0; left: 0; z-index: -1; width: 280px; height: 100px; object-fit: cover; }
.service-tabs a { position: relative; display: grid; width: 700px; height: 100px; place-items: center; font-size: 18px; white-space: nowrap; }
.service-tabs a + a::before { position: absolute; top: 40px; left: 0; width: 1px; height: 20px; background: var(--line); content: ""; }
.service-tabs a.is-active, .service-tabs a:hover, .service-tabs a:focus-visible { color: var(--primary); }
.service-tabs a.is-active::after, .service-tabs a:hover::after, .service-tabs a:focus-visible::after { position: absolute; bottom: 20px; left: 50%; width: 100px; height: 4px; background: var(--primary); content: ""; transform: translateX(-50%); }

.content-shell { width: 1680px; margin-right: auto; margin-left: auto; }
.breadcrumb { position: relative; height: 78px; margin-top: 82px; }
.breadcrumb::after { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; height: 2px; background: var(--primary); content: ""; }
.breadcrumb p { position: absolute; bottom: 18px; left: 0; margin: 0; font-size: 14px; line-height: 20px; white-space: nowrap; }
.breadcrumb p span { color: var(--muted); }
.breadcrumb img { position: absolute; right: 10px; bottom: 0; z-index: 1; width: 210px; height: 78px; object-fit: contain; }

/* 桌面端服务分类按卡片行数自动撑开，保持原有卡片尺寸并避免内容溢出。 */
.service-categories { display: grid; width: 1679px; height: auto; margin-top: 80px; grid-template-columns: repeat(4, 380px); grid-template-rows: repeat(2, 200px); column-gap: 53px; row-gap: 40px; }
.service-categories a { position: relative; display: block; width: 380px; height: 200px; border-radius: 20px; isolation: isolate; }
.service-categories a::before { position: absolute; z-index: -2; top: 20px; left: 20px; width: 360px; height: 180px; border-radius: 20px; background: #f5fafd; content: ""; }
.service-categories a::after { position: absolute; z-index: -1; top: 0; left: 0; width: 360px; height: 180px; border: 1px solid var(--line); border-radius: 20px; background: #ffffff; content: ""; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
/* 所有分类默认保持白色，鼠标悬停或键盘聚焦时切换为设计稿的浅蓝激活状态。 */
.service-categories a:hover::after, .service-categories a:focus-visible::after { border-color: #a9c9df; background: #f5fafd; box-shadow: 0 10px 24px rgba(22, 92, 145, .12); }
/* 服务入口图标按 Figma 固定为 60px，并与卡片左侧保留 25px 间距。 */
.service-categories img { position: absolute; top: 60px; left: 25px; width: 60px; height: 60px; object-fit: contain; }
.service-categories span { position: absolute; top: 40px; left: 120px; width: 200px; font-size: 18px; line-height: 25px; white-space: nowrap; }
/* 描述文字沿用首页服务指南模块的浅灰色两行排版。 */
.service-categories p { position: absolute; top: 85px; left: 120px; width: 200px; margin: 0; color: var(--muted); font-size: 16px; line-height: 30px; }

/* 常见问题整体从 y=1360 开始，浅灰背景位于 y=1440。 */
.faq-section { position: relative; width: 1920px; height: 480px; margin-top: 30px; background: linear-gradient(to bottom, transparent 80px, #f7f7f7 80px); }
.faq-inner { position: relative; width: 1680px; height: 480px; margin: 0 auto; }
.faq-content { position: absolute; top: 140px; left: 0; width: 982px; }
.faq-content h2, .quick-section h2, .policy-section h2 { margin: 0; font-size: 24px; font-weight: 400; line-height: 34px; }
.faq-columns { display: grid; margin-top: 36px; grid-template-columns: repeat(2, 382px); column-gap: 218px; }
.faq-columns ul { position: relative; display: grid; height: 240px; margin: 0; padding: 24px 0 0 40px; align-content: start; row-gap: 15px; list-style: none; }
.faq-columns ul::before { position: absolute; top: 0; bottom: 0; left: 2px; width: 1px; background: var(--line); content: ""; }
.faq-columns li { position: relative; width: 342px; height: 25px; font-size: 18px; line-height: 25px; white-space: nowrap; }
.faq-columns li::before { position: absolute; top: 10px; left: -40px; width: 5px; height: 5px; border-radius: 50%; background: var(--primary); content: ""; }
.faq-columns a:hover, .faq-columns a:focus-visible, .faq-columns .faq-question:hover, .faq-columns .faq-question:focus-visible { color: var(--primary); }
.ai-assistant { position: absolute; top: 0; right: 0; display: block; width: 480px; height: 480px; }
.ai-badge { position: absolute; top: 0; left: 25px; width: 160px; height: 160px; }
.ai-assistant strong { position: absolute; top: 180px; left: 57px; font-size: 24px; font-weight: 400; line-height: 34px; }
.ai-robot { position: absolute; top: 251px; left: 0; width: 210px; height: 172px; object-fit: contain; }
.ai-dialog { position: absolute; top: 200px; right: 0; width: 260px; height: 120px; }
.ai-assistant span { position: absolute; top: 232px; right: 39px; color: #666666; font-size: 16px; line-height: 30px; white-space: nowrap; }

/* 便捷入口标题位于 y=1900，完整图片按 300×100 显示并隐藏图片自带文字。 */
.quick-section { margin-top: 60px; }
.section-rule { display: block; width: 140px; height: 4px; margin: 15px 0 40px 1px; background: var(--primary); }
.quick-grid { display: grid; height: 248px; grid-template-columns: repeat(5, 300px); grid-template-rows: repeat(2, 100px); column-gap: 45px; row-gap: 40px; }
.quick-grid a { position: relative; display: block; width: 300px; height: 100px; overflow: hidden; }
.quick-grid img { width: 300px; height: 100px; object-fit: cover; }
.quick-grid span { position: absolute; top: 38px; left: 120px; z-index: 1; padding-right: 8px; background: #f5f5f5; font-size: 18px; line-height: 25px; white-space: nowrap; }
.quick-grid a:nth-child(9) { transform: translateY(8px); }
.quick-grid a:hover, .quick-grid a:focus-visible { filter: drop-shadow(0 8px 12px rgba(22, 92, 145, .14)); transform: translateY(-2px); }

/* 常用政策标题位于 y=2301，条目高度为 85px，两列间距为 99px。 */
/* 政策条目按行填充，保证每行先显示左侧和右侧各一条。 */
.policy-section { margin-top: 60px; }
.policy-section .section-rule { margin-bottom: 10px; }
.policy-grid { display: grid; grid-auto-flow: row; grid-template-columns: repeat(2, 790px); grid-template-rows: repeat(3, 85px); column-gap: 99px; }
.policy-grid a { display: flex; width: 790px; height: 85px; align-items: flex-start; justify-content: space-between; gap: 24px; padding-top: 30px; border-bottom: 1px solid var(--line); font-size: 18px; line-height: 25px; }
.policy-grid a:hover span, .policy-grid a:focus-visible span { color: var(--primary); }
.policy-grid span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.policy-grid time { flex: 0 0 auto; color: var(--muted); font-size: 16px; line-height: 22px; }

/* 手机端取消固定画布和桌面横幅，内容按页面顺序纵向展示。 */
.is-mobile .page-stage { height: auto; overflow: visible; }
.is-mobile .page-canvas { width: 100%; height: auto; min-height: 0; zoom: 1; }
.is-mobile .site-header { width: 100%; height: 72px; padding: 0 16px; grid-template-columns: minmax(0, 1fr) 44px; column-gap: 10px; }
.is-mobile .brand { width: 100%; min-width: 0; }
.is-mobile .brand-school { width: 96px; height: 36px; }
.is-mobile .brand-divider { height: 34px; margin: 0 10px; }
.is-mobile .brand-department { width: min(190px, calc(100% - 117px)); height: 36px; }
.is-mobile .main-nav { display: none; }
.is-mobile .mobile-navigation { position: relative; display: block; width: 44px; height: 44px; }
.is-mobile .mobile-navigation summary { display: block; width: 44px; height: 44px; padding: 10px; list-style: none; cursor: pointer; }
.is-mobile .mobile-navigation summary::-webkit-details-marker { display: none; }
.is-mobile .mobile-navigation summary span { display: block; width: 24px; height: 2px; margin: 5px 0; background: var(--primary); transition: transform .2s ease, opacity .2s ease; }
.is-mobile .mobile-navigation[open] summary span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.is-mobile .mobile-navigation[open] summary span:nth-child(2) { opacity: 0; }
.is-mobile .mobile-navigation[open] summary span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.is-mobile .mobile-navigation nav { position: absolute; top: 52px; right: 0; z-index: 30; display: grid; width: calc(100vw - 24px); max-height: calc(100vh - 88px); padding: 8px; overflow-y: auto; border: 1px solid rgba(0, 0, 0, .08); border-radius: 8px; background: rgba(255, 255, 255, .97); box-shadow: 0 12px 32px rgba(0, 0, 0, .14); backdrop-filter: blur(16px); }
.is-mobile .mobile-navigation nav a { display: flex; min-height: 48px; padding: 0 14px; align-items: center; border-radius: 6px; font-size: 16px; }

.is-mobile .service-hero { width: 100%; height: 100px; background: #ffffff; }
.is-mobile .service-banner, .is-mobile .service-title { display: none; }
.is-mobile .service-hero-shell { position: static; width: 100%; height: 60px; pointer-events: auto; }
.is-mobile .service-tabs { position: static; display: flex; width: 100%; height: 60px; padding: 0 16px; overflow-x: auto; overflow-y: hidden; background: rgba(255, 255, 255, .96); box-shadow: 0 4px 12px rgba(0, 0, 0, .06); scrollbar-width: none; }
.is-mobile .service-tabs::-webkit-scrollbar { display: none; }
.is-mobile .service-tabs-bg, .is-mobile .service-tabs-mask { display: none; }
.is-mobile .service-tabs a { flex: 0 0 auto; width: auto; height: 60px; padding: 0 24px; font-size: 16px; }
.is-mobile .service-tabs a + a::before { top: 20px; }
.is-mobile .service-tabs a.is-active::after, .is-mobile .service-tabs a:hover::after, .is-mobile .service-tabs a:focus-visible::after { bottom: 0; width: 40px; height: 3px; }

.is-mobile .content-shell { width: calc(100% - 32px); }
.is-mobile .breadcrumb { display: flex; height: 58px; margin-top: 0; align-items: center; }
.is-mobile .breadcrumb p { position: static; font-size: 13px; line-height: 20px; white-space: normal; }
.is-mobile .breadcrumb img { display: none; }
/* 手机端服务入口改为单列，保证卡片内容按纵向顺序完整展示。 */
.is-mobile .service-categories { width: 100%; height: auto; margin-top: 60px; grid-template-columns: 1fr; grid-template-rows: none; gap: 14px; }
.is-mobile .service-categories a { display: grid; width: 100%; height: 138px; padding: 0; place-items: center; align-content: center; gap: 12px; border: 1px solid var(--line); border-radius: 8px; background: #ffffff; }
.is-mobile .service-categories a::before, .is-mobile .service-categories a::after { display: none; }
.is-mobile .service-categories img { position: static; width: 46px; height: 46px; }
.is-mobile .service-categories span { position: static; width: auto; max-width: calc(100% - 16px); font-size: 15px; line-height: 22px; text-align: center; white-space: normal; }
.is-mobile .service-categories p { position: static; width: auto; max-width: calc(100% - 16px); margin: 0; font-size: 13px; line-height: 20px; text-align: center; }

.is-mobile .faq-section { width: 100%; height: auto; margin-top: 42px; background: #f7f7f7; }
.is-mobile .faq-inner { width: calc(100% - 32px); height: auto; padding: 30px 0; }
.is-mobile .faq-content { position: static; width: 100%; }
.is-mobile .faq-content h2, .is-mobile .quick-section h2, .is-mobile .policy-section h2 { font-size: 20px; line-height: 28px; }
.is-mobile .faq-columns { margin-top: 20px; grid-template-columns: 1fr; column-gap: 0; row-gap: 0; }
.is-mobile .faq-columns ul { width: 100%; height: auto; padding: 0 0 0 20px; row-gap: 8px; }
.is-mobile .faq-columns ul + ul { margin-top: 8px; }
.is-mobile .faq-columns li { width: 100%; height: auto; overflow: hidden; font-size: 14px; line-height: 22px; text-overflow: ellipsis; }
.is-mobile .faq-columns li::before { top: 8px; left: -20px; }
.is-mobile .ai-assistant { position: relative; top: auto; right: auto; width: 100%; height: 220px; margin-top: 20px; }
.is-mobile .ai-badge { top: 0; left: 0; width: 86px; height: 86px; }
.is-mobile .ai-assistant strong { top: 30px; left: 92px; font-size: 20px; line-height: 28px; }
.is-mobile .ai-robot { top: 70px; left: 0; width: 145px; height: 120px; }
.is-mobile .ai-dialog { top: 85px; right: 0; width: 180px; height: auto; }
.is-mobile .ai-assistant span { top: 112px; right: 14px; font-size: 12px; line-height: 20px; }

.is-mobile .quick-section, .is-mobile .policy-section { margin-top: 38px; }
.is-mobile .section-rule { width: 100px; height: 3px; margin: 12px 0 22px; }
.is-mobile .quick-grid { display: grid; height: auto; grid-template-columns: 1fr; grid-template-rows: none; row-gap: 10px; }
.is-mobile .quick-grid a { width: 100%; height: 60px; border-radius: 8px; background: #f5f5f5; }
.is-mobile .quick-grid img { width: 180px; height: 60px; object-fit: cover; object-position: left center; }
.is-mobile .quick-grid span { top: 19px; left: 72px; padding-right: 6px; font-size: 15px; line-height: 22px; }
.is-mobile .quick-grid a:nth-child(9) { transform: none; }
.is-mobile .policy-section { padding-bottom: 40px; }
.is-mobile .policy-grid { grid-auto-flow: row; grid-template-columns: 1fr; grid-template-rows: none; }
.is-mobile .policy-grid a { width: 100%; height: 58px; padding-top: 16px; font-size: 14px; line-height: 20px; }
.is-mobile .policy-grid time { font-size: 12px; line-height: 18px; }