/*
Theme Name: Sunway
Theme URI: https://sunway.joowp.com
Author: Sixe teams
Author URI: https://www.sixe.cn
Description: 深圳市桑威科技有限公司官方主题。轻量、响应式，专为 Elementor 页面构建：页面主体交由 Elementor 全宽渲染，主题负责站点导航与页脚，保证迁移后的页面不被容器挤压。由 Sixe teams（北京六翼信息技术有限公司）开发维护。
Version: 1.0.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sunway
Requires PHP: 7.4
Tags: custom-menu, custom-logo, featured-images, translation-ready, blog, one-column, full-width-template
*/

/* ---------- Variables ---------- */
:root {
  --sunway-primary: #1257d6;
  --sunway-primary-dark: #0e44aa;
  --sunway-ink: #1f2937;
  --sunway-muted: #6b7280;
  --sunway-bg: #ffffff;
  --sunway-soft: #f5f7fa;
  --sunway-border: #e5e7eb;
  --sunway-footer: #0f172a;
  --sunway-container: 1200px;
  --sunway-header-h: 72px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--sunway-bg);
  color: var(--sunway-ink);
  font-family: "Microsoft YaHei", "微软雅黑", "PingFang SC", "Hiragino Sans GB", sans-serif;
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
/* Content images migrated from Joomla are inline by intent (logo walls,
   consecutive <img> in one paragraph) — do not force them onto separate lines. */
.elementor-widget-text-editor img,
.entry-content img { display: inline-block; vertical-align: middle; }
a { color: var(--sunway-primary); text-decoration: none; }
a:hover { color: var(--sunway-primary-dark); }
h1, h2, h3, h4, h5, h6 { color: var(--sunway-ink); line-height: 1.35; margin: 0 0 .6em; font-weight: 600; }
h1 { font-size: 2rem; } h2 { font-size: 1.6rem; } h3 { font-size: 1.25rem; }
p { margin: 0 0 1.1em; }
ul, ol { margin: 0 0 1.1em 1.4em; }

/* ---------- Contact Form 7 ---------- */
.wpcf7-form label { display: block; margin-bottom: 14px; font-size: .95rem; color: var(--sunway-ink); }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea {
  display: block; width: 100%; max-width: 480px; margin-top: 6px;
  padding: 10px 12px; font-size: .95rem; color: var(--sunway-ink);
  background: #fff; border: 1px solid var(--sunway-border); border-radius: 4px;
}
.wpcf7-form input:focus, .wpcf7-form textarea:focus {
  outline: none; border-color: var(--sunway-primary);
  box-shadow: 0 0 0 2px rgba(18, 87, 214, .15);
}
.wpcf7-form input.wpcf7-not-valid { border-color: #dc2626; }
.wpcf7-form .wpcf7-not-valid-tip { font-size: .85rem; color: #dc2626; }
.wpcf7-form .wpcf7-submit {
  display: inline-block; margin-top: 4px; padding: 11px 34px;
  font-size: 1rem; color: #fff; background: var(--sunway-primary);
  border: none; border-radius: 4px; cursor: pointer; transition: background .2s;
}
.wpcf7-form .wpcf7-submit:hover { background: var(--sunway-primary-dark); }
.wpcf7 .wpcf7-response-output {
  margin: 14px 0 0; padding: 10px 14px; font-size: .9rem;
  border: 1px solid var(--sunway-border); border-radius: 4px; background: var(--sunway-soft);
}

/* ---------- Layout ---------- */
.sunway-container {
  width: 100%;
  max-width: var(--sunway-container);
  margin: 0 auto;
  padding: 0 24px;
}
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link:focus {
  position: static !important; display: inline-block;
  width: auto; height: auto; margin: 8px; padding: 10px 16px;
  background: var(--sunway-primary); color: #fff; border-radius: 6px; z-index: 100;
}

/* ---------- Header ---------- */
.site-header {
  background: #fff;
  border-bottom: 1px solid var(--sunway-border);
  position: sticky; top: 0; z-index: 999;
}
.site-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  min-height: var(--sunway-header-h); gap: 24px;
}
.site-branding { display: flex; align-items: center; gap: 12px; min-width: 0; }
.site-branding img { max-height: 44px; width: auto; }
.site-title {
  font-size: 1.15rem; font-weight: 700; color: var(--sunway-ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.site-title:hover { color: var(--sunway-primary); }
.site-tagline { margin: 0; font-size: .75rem; color: var(--sunway-muted); line-height: 1.2; }

.main-navigation ul {
  display: flex; align-items: center; gap: 4px;
  list-style: none; margin: 0; padding: 0;
}
.main-navigation li { position: relative; }
.main-navigation a {
  display: block; padding: 10px 14px; font-size: .95rem;
  color: var(--sunway-ink); border-radius: 6px; transition: color .2s, background .2s;
}
.main-navigation a:hover { color: var(--sunway-primary); background: var(--sunway-soft); }
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a { color: var(--sunway-primary); font-weight: 600; }

/* Mobile toggle */
.menu-toggle {
  display: none; background: none; border: 1px solid var(--sunway-border);
  border-radius: 6px; width: 42px; height: 38px; padding: 9px 10px; cursor: pointer;
}
.menu-toggle span {
  display: block; width: 100%; height: 2px; background: var(--sunway-ink);
  border-radius: 2px; transition: transform .25s, opacity .2s;
}
.menu-toggle span + span { margin-top: 5px; }
body.sunway-menu-open .menu-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.sunway-menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
body.sunway-menu-open .menu-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Elementor pages: full width, no squeeze ---------- */
.sunway-elementor > .elementor { margin: 0; }
.sunway-content { padding: 48px 24px; }
.entry-header { margin-bottom: 24px; }
.entry-title { margin: 0; }

/* ---------- Posts ---------- */
.sunway-post { padding: 48px 24px; max-width: 820px; margin: 0 auto; }
.entry-meta { color: var(--sunway-muted); font-size: .875rem; margin-bottom: 20px; }
.entry-footer { margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--sunway-border); font-size: .9rem; }
.post-navigation { display: flex; justify-content: space-between; gap: 16px; margin-top: 32px; }

.sunway-post-list { padding: 48px 24px; max-width: 900px; margin: 0 auto; }
.sunway-post-item { padding: 24px 0; border-bottom: 1px solid var(--sunway-border); }
.sunway-post-item:first-of-type { padding-top: 0; }
.sunway-post-item h2 { margin-bottom: 8px; font-size: 1.35rem; }
.archive-title { padding: 40px 24px 0; max-width: 900px; margin: 0 auto; }

/* ---------- Footer ---------- */
.site-footer { background: var(--sunway-footer); color: #cbd5e1; margin-top: 64px; }
.site-footer a { color: #e2e8f0; }
.site-footer a:hover { color: #fff; }
.site-footer__inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 24px; padding: 48px 24px;
}
.site-footer__name { font-size: 1.1rem; font-weight: 700; color: #fff; }
.site-footer__brand p { margin: 6px 0 0; font-size: .875rem; color: #94a3b8; }
.footer-menu { display: flex; flex-wrap: wrap; gap: 18px; list-style: none; margin: 0; padding: 0; }
.footer-menu a { font-size: .9rem; }
.site-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); }
.site-footer__bottom .sunway-container {
  padding: 18px 24px; display: flex; flex-wrap: wrap; gap: 8px;
  justify-content: space-between; font-size: .82rem; color: #94a3b8;
}

/* ---------- Comments / forms ---------- */
input, textarea, select, button { font: inherit; }
.search-form { display: flex; gap: 8px; }
.search-form input[type="search"] {
  flex: 1; padding: 10px 14px; border: 1px solid var(--sunway-border);
  border-radius: 6px; background: #fff;
}
.search-submit, .sunway-button {
  padding: 10px 18px; border: 0; border-radius: 6px; cursor: pointer;
  background: var(--sunway-primary); color: #fff;
}
.search-submit:hover, .sunway-button:hover { background: var(--sunway-primary-dark); color: #fff; }

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
  .menu-toggle { display: block; }
  .main-navigation {
    display: none; width: 100%; order: 3;
    border-top: 1px solid var(--sunway-border); padding: 8px 0 16px;
  }
  body.sunway-menu-open .main-navigation { display: block; }
  .site-header__inner { flex-wrap: wrap; min-height: 60px; padding-top: 10px; padding-bottom: 10px; }
  .main-navigation ul { flex-direction: column; align-items: stretch; gap: 0; }
  .main-navigation a { padding: 12px 8px; border-radius: 0; }
  .site-footer__inner { flex-direction: column; align-items: flex-start; }
}

/* Elementor editor preview: keep canvas clean */
.elementor-editor-active .site-header { position: relative; }
/* ===== sunway 迁移内容层 (批1 rhjj 样式轮, 2026-09-04) =====
   源站权威: body 15px #222222; h6(痛点小标题)16px lh 1.1 紧凑; 正文段距小 */
.sunway-elementor,
.sunway-elementor .elementor-widget-html,
.sunway-elementor .elementor-widget-text-editor {
	font-size: 15px;
	color: #222222;
	line-height: 1.73; /* 15px * 1.73 ≈ 26px 实测源站 p 行高 */
}
.sunway-elementor p {
	font-size: 15px;
	color: #222222;
	margin: 0 0 6px;
	line-height: 1.73;
}
.sunway-elementor h6 {
	font-size: 16px !important;
	font-weight: normal;
	color: #222222;
	margin: 8px 0 0;
	line-height: 1.1; /* 源站实测 17.6px */
}
/* 左侧产品中心导航 (源站 .category-module) */
.sunway-elementor ul.sunway-side-nav {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 16px;
}

/* Elementor heading 字体: 对齐源站雅黑系 (禁 google fonts 后仍需显式栈) */
.elementor-heading-title,
.sunway-elementor .elementor-widget-heading .elementor-heading-title {
	font-family: "Microsoft YaHei", "微软雅黑", -apple-system, BlinkMacSystemFont,
	             "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", Arial, sans-serif !important;
}
/* ===== header 迁移还原 (源站 Helix: 白底 90px / 菜单黑字 active 金 #dbb300 / 右端黄色搜索) ===== */
:root {
	--sunway-header-h: 90px;
}
.site-header {
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}
.site-branding img { max-height: 48px; width: auto; }
.main-navigation ul { gap: 0; }
.main-navigation a {
	padding: 6px 22px;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.5px;
	color: #000000;
	border-radius: 0;
}
.main-navigation a:hover { color: #dbb300; background: transparent; }
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
	color: #dbb300;
	font-weight: 600;
}
/* 搜索按钮 (details 展开, 无 JS) */
.sunway-search { position: relative; }
.sunway-search__btn {
	list-style: none;
	display: flex; align-items: center; justify-content: center;
	width: 40px; height: 40px;
	cursor: pointer;
	color: #f2d044; /* 源站 fa-search 实测色 */
}
.sunway-search__btn::-webkit-details-marker { display: none; }
.sunway-search__btn:hover { color: #dbb300; }
.sunway-search__panel {
	position: absolute; top: calc(100% + 6px); right: 0;
	width: 300px; padding: 12px;
	background: #fff; border-radius: 4px;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
	z-index: 999;
}
.sunway-search__panel .search-form { display: flex; margin: 0; }
.sunway-search__panel .search-field {
	flex: 1; min-width: 0; padding: 8px 12px;
	border: 1px solid #ddd; border-right: none; border-radius: 2px 0 0 2px;
	font-size: 14px; color: #222;
}
.sunway-search__panel .search-submit {
	padding: 8px 16px; border: none; cursor: pointer;
	background: #dbb300; color: #fff; font-size: 14px;
	border-radius: 0 2px 2px 0;
}
@media (max-width: 860px) {
	.sunway-search__panel { width: 240px; }
}
/* ===== footer 迁移还原 (源站 Helix: #sp-bottom 白底五栏 + #sp-footer 黑底版权行) ===== */
.sunway-footer-top {
	background: #ffffff;
	padding: 60px 0;
}
.sunway-footer-grid {
	display: grid;
	grid-template-columns: 3fr 2fr 2fr 3fr 2fr;
	gap: 40px;
	align-items: start;
}
.sunway-footer-title {
	font-size: 16px;
	font-weight: 500;
	color: #000000;
	letter-spacing: -0.5px;
	text-transform: uppercase;
	margin: 0 0 22px;
	line-height: 1.2;
}
.sunway-footer-hotline {
	margin: 0 0 14px;
	font-size: 18px;
	font-weight: 600;
	color: #000;
}
.sunway-footer-desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: #555555;
}
.sunway-footer-links {
	list-style: none;
	margin: 0;
	padding: 0;
}
.sunway-footer-links li { margin: 0; }
.sunway-footer-links a {
	display: block;
	padding: 0;
	font-size: 14px;
	line-height: 34px;
	color: #222222;
	letter-spacing: -0.5px;
	text-decoration: none;
	transition: color .2s;
}
.sunway-footer-links a:hover { color: #dbb300; }
.sunway-footer-qr {
	max-width: 120px;
	height: auto;
	display: block;
}
.sunway-footer-copy {
	background: #000000;
	color: #ffffff;
	text-align: center;
	padding: 40px 0;
	position: relative;
	font-size: 14px;
}
.sunway-footer-copy .sunway-container {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 14px;
	align-items: center;
	justify-content: center;
}
.sunway-footer-copy a { color: #f2f2f2; text-decoration: none; }
.sunway-footer-copy a:hover { text-decoration: underline; }
.sunway-footer-copy .sunway-footer-sixe { color: #666666; }
@media (max-width: 992px) {
	.sunway-footer-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
}
@media (max-width: 600px) {
	.sunway-footer-grid { grid-template-columns: 1fr; }
}
/* ==========================================================================
   sunway ACF 页面构建 (sw-*) — TASK-FRONTEND-03 2026-09-05
   正文骨架(灰底 #f3f5f7 + 25/75 双栏 + 白卡)+ style-spec 实测值精修
   权威数值: acf-plan/style-spec/00-03 + STYLE-ROUND2 + wk 源站实测(rhjj 1440)
   Elementor 期样式保留不删。
   ========================================================================== */

/* ---------- ACF 页面容器 ---------- */
.sw-page { background: #ffffff; }
.sw-container {
	width: 100%;
	max-width: 1170px;   /* 源站 .container @1440 */
	margin: 0 auto;
	padding: 0 15px;     /* 源站 bootstrap 15px */
	box-sizing: border-box;
}

/* ---------- 页头 Banner (源站 sp-page-title) ---------- */
.sw-hero {
	position: relative;
	display: block;
	text-align: center;
	padding: 202px 0 152px;          /* 实测 202/152; +72 lh = 426 高 */
	background-color: #2d3e50;       /* 无图兜底(源站底色透明,13 方案页均有图) */
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-attachment: fixed;    /* 源站 attachment=fixed */
}
.sw-hero__overlay {
	position: absolute;
	inset: 0;
	background: #000;
	pointer-events: none;
}
.sw-hero__inner {
	position: relative;
	z-index: 2;
	max-width: 1170px;
	margin: 0 auto;
	padding: 0 15px;
}
.sw-hero__title {
	margin: 0;
	font-size: 36px;
	font-weight: 500;      /* 实测 500(custom.css 未设,继承 bootstrap 500) */
	line-height: 72px;     /* 实测 lh72,参与构成 banner 426 高 */
	letter-spacing: 4px;   /* 实测 4px */
	color: #ffffff;
}

/* ---------- 正文容器(源站 #sp-main-body 灰底白卡两栏骨架) ---------- */
.sw-body {
	background: #f3f5f7;             /* 实测 rgb(243,245,247) */
	padding: 100px 0;                /* 源站 #sp-main-body padding 100px 0 */
}
.sw-body__inner {
	width: 1170px;
	max-width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
	box-sizing: border-box;
}
/* 左 25% 方案导航(源站 col-sm-3: 292.5px,内容内缩 15) */
.sw-body__inner.has-side .sw-body__side {
	flex: 0 0 292.5px;
	width: 292.5px;
	box-sizing: border-box;
	padding: 0 15px;
}
/* 右 75% 白卡(源站 col-sm-9 内容宽 848;左缘与源站 article 卡 x442.5 一致) */
.sw-body__inner.has-side .sw-body__main {
	flex: 0 0 848px;
	width: 848px;
	box-sizing: border-box;
	margin-left: 15px;
}
/* 白色 article 卡 = 源站 .article-info-wrap */
.sw-body__main {
	flex: 1 1 auto;
	min-width: 0;
	box-sizing: border-box;
	background: #ffffff;
	border-radius: 0 0 4px 4px;      /* 源站 radius 0 0 4px 4px */
	padding: 28px 30px 24px;         /* 源站 28/30/24(卡内容起 x472.5,宽 788) */
}
/* 主列内行模块容器改为流式(卡宽已定,不再限宽/双侧内距) */
.sw-body__main .sw-container { max-width: none; padding: 0; }

/* ---------- 文章标题 (源站 entry-header h2, 32/#000) ---------- */
.sw-entry--main { margin: 0; padding: 0; }
.sw-entry__title {
	margin: 10px 0 23px;             /* 实测 mt10/mb23 → 标题顶 y654、下一节 709 */
	font-size: 32px;
	font-weight: 500;                /* 实测 computed 500(与 banner h2 同源) */
	line-height: 32px;               /* 实测 lh32 */
	color: #000000;
}

/* ---------- 标题 + 富文本 (page_content) ---------- */
.sw-section { box-sizing: border-box; }
.sw-content,
.sw-richtext {
	padding: 46px 0;
	text-align: left;
}
.sw-content--center { text-align: center; }
.sw-content--center .sw-content__title { text-align: center; }
.sw-content__title {
	margin: 0 0 24px;
	font-size: 22px;                 /* 节标题 实测 22/600/#000 */
	font-weight: 600;
	line-height: 1.1;                /* 22px ×1.1 ≈ 24.2px */
	color: #000000;
}
/* 正文(实测 14px/#333/lh26 体系;spec-02 说明 15px/#222 为页面 style 假值) */
.sw-content__body,
.sw-richtext__body {
	font-size: 14px;
	font-weight: 400;
	line-height: 26px;
	color: #333333;
}
.sw-content__body p,
.sw-richtext__body p { margin: 0 0 10px; }
.sw-content__body h1, .sw-content__body h2, .sw-content__body h3,
.sw-content__body h4, .sw-content__body h5,
.sw-richtext__body h1, .sw-richtext__body h2, .sw-richtext__body h3,
.sw-richtext__body h4, .sw-richtext__body h5 {
	color: #333333;
	margin: 18px 0 8px;
	line-height: 1.4;
}
.sw-content__body h6,
.sw-richtext__body h6 {
	font-size: 12px;                 /* 卡内彩小标题 实测 12/500/lh13.2 */
	font-weight: 500;
	line-height: 13.2px;
	color: #333333;
	margin: 10px 0;
}
.sw-content__body ul, .sw-content__body ol,
.sw-richtext__body ul, .sw-richtext__body ol {
	margin: 0 0 10px;
	padding-left: 40px;              /* 实测 bootstrap disc/40px */
	list-style: disc outside;
}
/* 源站 SPPB 列表形态 = ul>li+裸文本(无 p);迁移数据为 li+p 时去 p 段距对齐 */
.sw-content__body ul p, .sw-content__body ul li p,
.sw-richtext__body ul p, .sw-richtext__body ul li p,
.sw-card__body ul p, .sw-card__body ul li p { margin: 0; }
.sw-content__body ol, .sw-richtext__body ol { list-style: decimal outside; }
.sw-content__body a, .sw-richtext__body a { color: #337ab7; }  /* 实测链接蓝 */
.sw-content__body a:hover, .sw-richtext__body a:hover { color: #23527c; text-decoration: none; }
.sw-content__body img, .sw-richtext__body img { display: inline-block; vertical-align: middle; }
.sw-content__body table, .sw-richtext__body table { border-collapse: collapse; margin: 12px 0; }
.sw-content__body td, .sw-content__body th,
.sw-richtext__body td, .sw-richtext__body th { border: 1px solid #ddd; padding: 6px 10px; }

/* 正文容器主列内的行距(源站节=行,节间零间隙,间距由各行自身 padding 承担) */
.sw-body__main .sw-section { margin: 0; }
.sw-body__main .sw-content { padding: 0; }
.sw-body__main .sw-content.has-title { padding: 50px 0; }   /* 标题行 pt/pb 50(实测) */
.sw-body__main .sw-richtext { padding: 0; }
.sw-body__main .sw-content__title { margin: 20px 0 10px; }  /* h3 类默认 mt20/mb10 */

/* style 变体: light / navy / white(白卡) */
.sw-content--light,
.sw-richtext--light {
	background: #f3f5f7;
	padding: 60px 0;
}
.sw-content--navy,
.sw-richtext--navy {
	background: #2d3e50;
	padding: 60px 0;
}
.sw-content--navy .sw-content__title,
.sw-content--navy .sw-content__body,
.sw-content--navy .sw-content__body p,
.sw-content--navy .sw-content__body h1,
.sw-content--navy .sw-content__body h2,
.sw-content--navy .sw-content__body h3,
.sw-content--navy .sw-content__body h4,
.sw-content--navy .sw-content__body h5,
.sw-content--navy .sw-content__body h6,
.sw-richtext--navy .sw-richtext__body,
.sw-richtext--navy .sw-richtext__body p,
.sw-richtext--navy .sw-richtext__body h1,
.sw-richtext--navy .sw-richtext__body h2,
.sw-richtext--navy .sw-richtext__body h3,
.sw-richtext--navy .sw-richtext__body h4,
.sw-richtext--navy .sw-richtext__body h5,
.sw-richtext--navy .sw-richtext__body h6 { color: #ffffff; }
.sw-content--navy .sw-content__body a,
.sw-richtext--navy .sw-richtext__body a { color: #f2d044; }
.sw-content--white { background: #f3f5f7; padding: 60px 0; }
.sw-content__card {
	background: #ffffff;
	padding: 44px 48px;
	box-shadow: 0 2px 14px rgba(0, 0, 0, .05);
}

/* ---------- 富文本兜底对齐 ---------- */
.sw-richtext { text-align: left; }

/* ---------- 图片 (page_image) ---------- */
.sw-image { padding: 24px 0 46px; text-align: center; }
.sw-image--left { text-align: left; }
.sw-image--full img { width: 100%; height: auto; }
.sw-image__title {
	margin: 0 0 20px;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.1;
	color: #000000;
	text-align: left;
}
.sw-image__figure { margin: 0; line-height: 0; }

.sw-image__figure img {
	display: inline-block;
	max-width: 100%;
	height: auto;
}
/* 主列内图节: 标题距行顶 67.5(47 pad + 20 h3 mt),图后 57 间隔(实测) */
.sw-body__main .sw-image { padding: 47px 0 57px; }
.sw-body__main .sw-image__title { margin: 20px 0 10px; }

/* ---------- 多列彩卡 (page_cards) ---------- */
.sw-cards { padding: 46px 0; }
.sw-cards__title {
	margin: 0 0 30px;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.1;
	color: #000000;
	text-align: center;
}
.sw-cards__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;                       /* 实测两卡间隙 30 */
}
.sw-cards--c3 .sw-cards__grid { grid-template-columns: repeat(3, 1fr); }
.sw-cards--c4 .sw-cards__grid { grid-template-columns: repeat(4, 1fr); }
/* 卡: 内容内缩 30(源站 addon padding);背景色由 bg_color 行内样式覆盖 */
.sw-card {
	box-sizing: border-box;
	padding: 30px;
	background: #ececec;
	text-align: left;
	min-width: 0;
}
.sw-card__media { margin-bottom: 10px; }
.sw-card__icon { max-width: 48px; height: auto; }
.sw-card__title {
	margin: 20px 0 30px;             /* 卡顶 30 + mt20 = 标题距卡顶 50;mb30(卡实例实测) */
	font-size: 22px;
	font-weight: 600;
	line-height: 1.1;
	color: #000000;
}
.sw-card__body {
	font-size: 14px;
	font-weight: 400;
	line-height: 26px;
	color: #333333;
}
.sw-card__body p { margin: 0 0 10px; }
.sw-card__body h1, .sw-card__body h2, .sw-card__body h3,
.sw-card__body h4, .sw-card__body h5 {
	color: #333333;
	margin: 8px 0 4px;
	line-height: 1.4;
}
.sw-card__body h6 {
	font-size: 12px;
	font-weight: 500;
	line-height: 13.2px;
	color: #333333;
	margin: 10px 0;
}
.sw-card__body ul, .sw-card__body ol {
	margin: 0 0 10px;
	padding-left: 40px;
	list-style: disc outside;
}
.sw-card__body a { color: #337ab7; }
.sw-card__body a:hover { color: #23527c; text-decoration: none; }
/* 主列内卡节紧贴(源站卡节 pad 0) */
.sw-body__main .sw-cards { padding: 0; }

/* ---------- 左栏方案导航(源站 #sp-left category-module) ---------- */
.sw-side-nav__list {
	list-style: none;
	margin: 0;
	padding: 18px 0;                 /* 实测 ul 上下各 18(首 a 634 = 列顶 616+18) */
}
.sw-side-nav__item { padding: 10px 30px 9px 30px; }
.sw-side-nav__item:first-child { padding: 0 30px 10px; }
.sw-side-nav__link {
	display: block;
	padding: 2px 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;               /* 实测 lh24 */
	color: #4a4a4a;                  /* 实测 #4a4a4a */
	text-decoration: none;
}
.sw-side-nav__link:hover { color: #4a4a4a; }
.sw-side-nav__link.is-current { color: #4a4a4a; font-weight: 400; } /* 源站 active 无高亮 */

/* ---------- 轮播 (page_slideshow) ---------- */
.sw-slideshow {
	position: relative;
	overflow: hidden;
	min-height: 560px;
	background: #1b2a38;
}
.sw-slideshow__module-title {
	position: absolute;
	top: 0; left: 0;
	z-index: 6;
	margin: 0;
	padding: 14px 22px;
	background: rgba(0, 0, 0, .35);
	color: #fff;
	font-size: 15px;
	font-weight: 400;
}
.sw-slideshow__slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity .8s ease;
	background-color: #1b2a38;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.sw-slideshow__slide.is-active { opacity: 1; }
.sw-slideshow__inner {
	max-width: 1170px;
	padding: 0 15px;
	text-align: center;
	color: #ffffff;
}
.sw-slideshow__heading {
	margin: 0 0 18px;
	font-size: 44px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 2px;
	color: #ffffff;
}
.sw-slideshow__heading p { margin: 0; }
.sw-slideshow__text {
	margin: 0 auto 30px;
	max-width: 720px;
	font-size: 18px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .92);
}
.sw-slideshow__text p { margin: 0; }
.sw-slideshow__cta {
	display: inline-block;
	padding: 12px 42px;
	font-size: 16px;
	color: #fff;
	background: #dbb300;
	border-radius: 2px;
	transition: background .2s;
}
.sw-slideshow__cta:hover { background: #c8a200; color: #fff; }
.sw-slideshow__dots {
	position: absolute;
	left: 0; right: 0; bottom: 26px;
	z-index: 5;
	display: flex;
	justify-content: center;
	gap: 10px;
}
.sw-slideshow__dot {
	width: 12px; height: 12px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .5);
	cursor: pointer;
	transition: background .2s;
}
.sw-slideshow__dot.is-active { background: #fff; }

/* ---------- Logo 墙 (page_logos) ---------- */
.sw-logos { padding: 46px 0; }
.sw-logos__title {
	margin: 0 0 30px;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.1;
	color: #000000;
	text-align: center;
}
.sw-logos__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 20px;
}
.sw-logos__item { flex: 0 0 auto; }
.sw-logos__link { display: inline-flex; align-items: center; justify-content: center; }
.sw-logos__link img {
	max-height: 60px;
	max-width: 200px;
	width: auto;
	height: auto;
	opacity: .85;
	transition: opacity .2s;
}
.sw-logos__link:hover img { opacity: 1; }

/* ---------- 全宽 CTA (page_cta) ---------- */
.sw-cta {
	position: relative;
	padding: 90px 0;
	text-align: center;
	color: #ffffff;
	background-color: #2d3e50;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.sw-cta__overlay {
	position: absolute;
	inset: 0;
	background: #000;
	pointer-events: none;
}
.sw-cta__inner { position: relative; z-index: 2; }
.sw-cta__title {
	margin: 0 0 16px;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.4;
	color: #ffffff;
}
.sw-cta__text {
	margin: 0 auto;
	max-width: 760px;
	font-size: 16px;
	line-height: 1.7;
	color: rgba(255, 255, 255, .92);
}
.sw-cta__btn {
	display: inline-block;
	margin-top: 28px;
	padding: 12px 46px;
	font-size: 16px;
	color: #fff;
	background: #dbb300;
	border-radius: 2px;
	transition: background .2s;
}
.sw-cta__btn:hover { background: #c8a200; color: #fff; }

/* ---------- 短代码 (page_shortcode) ---------- */
.sw-shortcode { padding: 46px 0; }

/* ---------- 响应式(源站 template.css 断点值) ---------- */
@media (max-width: 1199px) {
	.sw-hero { padding: 170px 0 115px; }
	.sw-hero__title { letter-spacing: 0; line-height: 1.2; }
	.sw-body { padding: 80px 0; }
	.sw-body__inner { width: auto; padding: 0 15px; }
	.sw-body__inner.has-side .sw-body__side { flex-basis: 292.5px; }
}
@media (max-width: 991px) {
	/* 源站 <768 起列堆叠;此处提前让侧栏换行横排更稳 */
	.sw-body__inner { flex-wrap: wrap; }
	.sw-body__inner.has-side .sw-body__side,
	.sw-body__inner.has-side .sw-body__main {
		flex: 1 1 auto;
		width: 100%;
		margin-left: 0;
		padding: 0;
	}
	.sw-body__side { margin-bottom: 30px; }
	.sw-side-nav__list { display: flex; flex-wrap: wrap; gap: 4px 22px; }
	.sw-cards--c4 .sw-cards__grid,
	.sw-cards--c3 .sw-cards__grid { grid-template-columns: repeat(2, 1fr); }
	.sw-hero { padding: 120px 0 80px; }
	.sw-slideshow { min-height: 420px; }
	.sw-slideshow__heading { font-size: 32px; }
}
@media (max-width: 767px) {
	.sw-hero { padding: 150px 0 100px; }
	.sw-cards--c4 .sw-cards__grid,
	.sw-cards--c3 .sw-cards__grid,
	.sw-cards--c2 .sw-cards__grid { grid-template-columns: 1fr; }
	.sw-body { padding: 60px 0; }
	.sw-content__card { padding: 28px 22px; }
}

/* case 副语 (style-spec 02: 16/400/白/lh24, 650 居中, 位于标题下) */
.sw-hero__sub {
	font-size: 16px; font-weight: 400; line-height: 24px; color: #ffffff;
	margin: 0 auto; max-width: 650px;
}

/* ============================================================
 * TASK-FRONTEND-04 追加 (勿移动上方已还原段)
 * 1) 轮播左右箭头(源站 RevSlider navigationArrows "solo",圆钮)
 * 2) 首页图卡变体 page_cards --fig(flipbox 整图卡 / 行业客户图卡)
 * ============================================================ */

/* ---------- 轮播箭头 (sw-slideshow__arrow) ---------- */
.sw-slideshow__arrow {
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	z-index: 6;
	display: -webkit-flex;
	display: flex;
	-webkit-align-items: center;
	align-items: center;
	-webkit-justify-content: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .3);
	color: #ffffff;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	opacity: .85;
	-webkit-transition: background .2s, opacity .2s;
	transition: background .2s, opacity .2s;
}
.sw-slideshow__arrow span { display: block; margin-top: -2px; }
.sw-slideshow__arrow:hover { background: rgba(255, 255, 255, .55); opacity: 1; }
.sw-slideshow__arrow--prev { left: 20px; }
.sw-slideshow__arrow--next { right: 20px; }

/* ---------- 图卡行基础(fig): 图片型卡行 ---------- */
.sw-cards--fig .sw-cards__grid { -webkit-align-items: stretch; align-items: stretch; }
/* 通用覆写: 图卡不吃彩卡内距/底色 */
.sw-cards--fig .sw-card,
.sw-cards--fig .sw-card--figflip,
.sw-cards--fig .sw-card--figclient {
	box-sizing: border-box;
	padding: 0;
	background: none;
	text-align: left;
	border-radius: 0;
}

/* ---------- flipbox 图卡(sw-cards--flip,首页 3 安全卡) ----------
   源站: sppb-flipbox-panel 高 280 / 背景图 cover / 图上白字标题(底部区)
   数据: title=图上标题; content=底部链接文字(剥标签纯文本,可空) */
.sw-cards--flip .sw-cards__grid { gap: 0; }          /* 源站 no-gutter 无缝 */
.sw-cards--flip .sw-card--figflip {
	position: relative;
	display: -webkit-flex;
	display: flex;
	-webkit-align-items: flex-end;
	align-items: flex-end;
	min-height: 280px;
	overflow: hidden;
	background-color: #1b2a38;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	-webkit-transition: -webkit-filter .3s ease;
	transition: filter .3s ease;
}
.sw-cards--flip .sw-card--figflip:hover { -webkit-filter: brightness(1.08); filter: brightness(1.08); }
.sw-cards--flip .sw-card__figbody {
	position: relative;
	z-index: 2;
	width: 100%;
	padding: 24px 26px 22px;
	box-sizing: border-box;
	text-align: left;
}
.sw-cards--flip .sw-card__figtitle {
	margin: 0;
	font-size: 22px;
	font-weight: 500;
	line-height: 1.3;
	color: #ffffff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, .7);
}
.sw-cards--flip .sw-card__figtitle p { margin: 0; }
.sw-cards--flip .sw-card__figlinks {
	margin-top: 4px;
	font-size: 15px;
	line-height: 1.5;
	color: rgba(255, 255, 255, .92);
	text-shadow: 0 1px 2px rgba(0, 0, 0, .7);
}
.sw-cards--flip .sw-card__figlinks p { margin: 0; }

/* ---------- 行业客户图卡(sw-cards--client,首页"我们的客户" 4 卡) ----------
   源站: 大图(single-image)+ 底部半透明深条(header addon rgba(0,0,0,.8))白字标题,整卡可点
   结构: a.sw-card--figclient > img.sw-card__figimg + span.sw-card__figcap */
.sw-cards--client .sw-card__grid,
.sw-cards--client .sw-cards__grid { gap: 30px; }      /* 源站 col 15px 间距 */
.sw-cards--client .sw-card--figclient {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
	line-height: 0;
}
.sw-cards--client .sw-card--figclient:hover .sw-card__figimg {
	-webkit-filter: brightness(1.06);
	filter: brightness(1.06);
}
.sw-cards--client .sw-card__figimg {
	display: block;
	width: 100%;
	height: auto;
	-webkit-transition: -webkit-filter .3s ease;
	transition: filter .3s ease;
}
.sw-cards--client .sw-card__figcap {
	display: block;
	box-sizing: border-box;
	width: 100%;
	padding: 9px 7px 10px;
	background: rgba(0, 0, 0, .8);       /* 源站 rgba(0,0,0,.8) */
	color: #ffffff;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	text-align: center;
}

/* 响应式: 源站 flipbox 行带 sppb-hidden-sm/xs,<768 整行隐藏(见 spec 00 §5) */
@media (max-width: 767px) {
	.sw-cards--flip { display: none; }
	.sw-slideshow__arrow { width: 36px; height: 36px; font-size: 16px; }
	.sw-slideshow__arrow--prev { left: 10px; }
	.sw-slideshow__arrow--next { right: 10px; }
}

/* ============================================================
 * /products 方案列表页 (TASK-FRONTEND-05, 源站 /products 分类列表)
 * 结构: hero(.sw-hero 复用) + .sw-body 灰底两栏:
 *   左 .sw-body__side 13 方案链(复用 .sw-side-nav);
 *   右 .sw-body__main--list = 灰底(非白卡), 每篇独立白卡 .sw-plist__item
 *   + 白底分页条 .sw-plist__pagination。
 * 数值源: wk 实测源站 1440 (card x442.5 w847.5; title y=card顶+18 24/500/lh1.4;
 *   intro 14/#333/lh26; more 16/#000; 卡间 margin-bottom 30 → 标题距≈205.6)
 * ========================================================== */
.sw-body__main--list {
	background: transparent;
	border-radius: 0;
	padding: 0;
}
.sw-plist__item {
	box-sizing: border-box;
	background: #ffffff;
	border-radius: 0 0 4px 4px;
	padding: 10px 40px 24px 50px;   /* 实测 左50 右40 上10(标题 mt8 → 距卡顶 18) */
	margin: 0 0 30px;
}
.sw-plist__item:last-child { margin-bottom: 0; }
.sw-plist__title {
	margin: 8px 0 0;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.4;               /* 实测 lh33.6 */
	color: #000000;
}
.sw-plist__title a { color: #000000; text-decoration: none; }
.sw-plist__title a:hover { color: #23527c; }
.sw-plist__intro {
	margin: 18px 0 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 26px;
	color: #333333;
}
.sw-plist__intro p { margin: 0; }
.sw-plist__more {
	display: inline-block;
	margin: 22px 0 10px;            /* 实测 more 顶 ≈ intro 底 + 22; 底 10 参与卡高 */
	font-size: 16px;
	font-weight: 400;
	line-height: 22.86px;           /* bootstrap btn 1.428(实测 22.8) */
	letter-spacing: -0.5px;
	color: #000000;
	text-decoration: none;
}
.sw-plist__more:hover { color: #4a4a4a; }
/* 分页条(源站 .pagination-wrapper: 白底 mt30 数字圆钮) */
.sw-plist__pagination {
	margin-top: 30px;
	background: #ffffff;
	border-radius: 0 0 4px 4px;
	padding: 24px 50px 22px;
	text-align: center;
	line-height: 1;
	position: relative;
	box-sizing: border-box;
}
.sw-plist__pagination .page-numbers {
	list-style: none;
	margin: 0;
	padding: 0;
}
.sw-plist__pagination li { display: inline-block; margin: 0 5px; vertical-align: middle; }
.sw-plist__pagination .page-numbers.current,
.sw-plist__pagination a.page-numbers {
	display: inline-block;
	box-sizing: border-box;
	width: 32px;
	height: 32px;
	line-height: 30px;
	border-radius: 50%;
	text-align: center;
	font-size: 14px;
	font-weight: 400;
	text-decoration: none;
}
.sw-plist__pagination a.page-numbers { color: #333333; background: #ffffff; border: 1px solid #e8e8e8; }
.sw-plist__pagination a.page-numbers:hover { border-color: #337ab7; color: #337ab7; }
.sw-plist__pagination .page-numbers.current { background: #337ab7; color: #ffffff; border: 1px solid #337ab7; }
.sw-plist__pagination .prev,
.sw-plist__pagination .next,
.sw-plist__pagination a.prev,
.sw-plist__pagination a.next {
	position: absolute;
	top: 24px;
	width: auto !important;
	height: auto !important;
	line-height: 1 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: rgba(51, 51, 51, 0.23) !important;
	font-size: 24px;
	font-weight: 400;
}
.sw-plist__pagination .prev:hover,
.sw-plist__pagination .next:hover { color: #337ab7 !important; background: transparent !important; }
.sw-plist__pagination .prev { left: 50px; }
.sw-plist__pagination .next { right: 50px; }
@media (max-width: 767px) {
	.sw-plist__pagination { padding: 18px 15px 16px; }
	.sw-plist__pagination .prev { left: 15px; }
	.sw-plist__pagination .next { right: 15px; }
}
