/**
 * China Advisory — 板块组件、交互与动画样式
 * 基础层（重置/排版/按钮/页头页脚）见 style.css
 */

/* ==========================================================================
   1. Hero
   ========================================================================== */

.ca-hero {
	position: relative;
	overflow: hidden;
	padding-block: 76px 92px;
	background: var(--ca-bg);
}
/*
 * 带照片的 Hero：文字压在左侧局部渐变上，右半侧保持日光照片本色。
 * 深蓝只作为文字底衬，不铺满整幅（最终说明第一 / 第二条）。
 */
.ca-hero__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(96deg,
			rgba(16, 41, 75, .93) 0%,
			rgba(16, 41, 75, .86) 22%,
			rgba(16, 41, 75, .60) 40%,
			rgba(16, 41, 75, .18) 55%,
			rgba(16, 41, 75, 0) 68%),
		linear-gradient(to top, rgba(16, 41, 75, .30) 0%, rgba(16, 41, 75, 0) 34%);
}
.ca-hero--has-bg > .ca-container { position: relative; z-index: 2; }
/* 照片版：文字占左侧一栏，天际线在右侧保持可见 */
.ca-hero--photo .ca-hero__grid { grid-template-columns: minmax(0, 1fr); }
.ca-hero--photo .ca-hero__content { max-width: 620px; }

.ca-hero--has-bg { color: #fff; }
.ca-hero--has-bg h1,
.ca-hero--has-bg .ca-hero__title { color: #fff; }
.ca-hero--has-bg .ca-hero__lead,
.ca-hero--has-bg .ca-checklist li { color: rgba(255, 255, 255, .88); }
.ca-hero--has-bg .ca-eyebrow { color: var(--ca-blue-light); }

.ca-hero__decor {
	display: none;
	position: absolute;
	z-index: 0;
	pointer-events: none;
	border-radius: 50%;
	filter: blur(2px);
	opacity: .5;
}
.ca-hero__decor--a {
	width: 520px; height: 520px;
	right: -160px; top: -190px;
	background: radial-gradient(circle at 30% 30%, rgba(60, 106, 180, .16), rgba(60, 106, 180, 0) 68%);
}
.ca-hero__decor--b {
	width: 420px; height: 420px;
	left: -190px; bottom: -200px;
	background: radial-gradient(circle at 60% 40%, rgba(55, 165, 240, .14), rgba(55, 165, 240, 0) 70%);
}

.ca-hero__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: 64px;
	align-items: start;
}
.ca-hero--centered .ca-hero__grid { grid-template-columns: minmax(0, 1fr); text-align: center; max-width: 900px; margin-inline: auto; }
.ca-hero--centered .ca-btn-group { justify-content: center; }
.ca-hero--centered .ca-checklist { display: inline-block; text-align: left; }

.ca-hero__title { margin-bottom: .38em; }
.ca-hero__sub {
	margin-bottom: 22px;
	color: var(--ca-link);
	font-family: var(--ca-font-heading);
	font-size: clamp(1.1rem, .95rem + .6vw, 1.42rem);
	font-weight: 400;
	line-height: 1.38;
}
.ca-hero__sub::after {
	content: "";
	display: block;
	width: var(--ca-rule-w);
	height: var(--ca-rule);
	margin-top: .75em;
	background: var(--ca-blue);
}
.ca-hero--has-bg .ca-hero__sub { color: var(--ca-blue-light); }
.ca-hero__lead { margin-bottom: 26px; font-size: 1.1rem; line-height: 1.72; }
.ca-hero__note {
	margin-top: 26px;
	padding-top: 22px;
	border-top: 1px solid var(--ca-border);
	color: var(--ca-muted);
	font-size: .96rem;
	font-style: italic;
}
.ca-hero--has-bg .ca-hero__note { border-top-color: rgba(255, 255, 255, .2); color: rgba(255, 255, 255, .74); }

.ca-hero__media { position: relative; }
.ca-hero__media img { width: 100%; border-radius: 0; box-shadow: none; }

.ca-hero__badge {
	position: absolute;
	left: -26px; bottom: 34px;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 26px;
	background: #fff;
	border-top: 3px solid var(--ca-blue);
	border-radius: 0;
	box-shadow: var(--ca-shadow);
}
.ca-hero__badge strong {
	display: block;
	color: var(--ca-navy);
	font-family: var(--ca-font-heading);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
}
.ca-hero__badge span { color: var(--ca-muted); font-size: .86rem; line-height: 1.35; }

/* Hero 询盘卡片 */
.ca-leadform {
	padding: 36px;
	background: var(--ca-surface);
	border: 1px solid var(--ca-border);
	border-top: 3px solid var(--ca-blue);
	border-radius: 0;
	box-shadow: none;
}
.ca-leadform__head { margin-bottom: 24px; }
.ca-leadform__head h2,
.ca-leadform__head .ca-leadform__title {
	margin-bottom: 8px;
	font-family: var(--ca-font-heading);
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ca-navy);
}
.ca-leadform__head p { margin: 0; color: var(--ca-muted); font-size: .94rem; }
.ca-leadform__topics {
	margin: 4px 0 18px;
	padding: 18px 20px;
	background: #fff;
	border: 1px solid var(--ca-border);
	border-radius: 0;
}
.ca-leadform__topics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 16px; }

/* ==========================================================================
   2. 数据条 / Stats
   ========================================================================== */

.ca-stats { padding-block: 74px; border-top: 1px solid var(--ca-border); }
.ca-stats__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 40px 32px;
	text-align: left;
}
.ca-stat { padding-top: 26px; border-top: var(--ca-rule) solid var(--ca-blue); }
.ca-stat__value {
	display: block;
	color: var(--ca-navy);
	font-family: var(--ca-font-heading);
	font-size: clamp(2.9rem, 1.8rem + 3.4vw, 4.6rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -.01em;
}
/* “20+” 里的加号用品牌青色，与手册一致 */
.ca-stat__value .ca-stat__suffix { color: var(--ca-blue); }

/*
 * 递增动画：真实数字（HTML 内容）保持不动，只是在动画期间隐形；
 * 过程中的数字由 ::after 伪元素绘制，绝对定位盖在它上面，动画结束即消失。
 *
 * 用伪元素而不是真实子元素，是为了让抓取渲染后 DOM 的爬虫在任意一帧读到的
 * textContent 都只有最终数字 —— 伪元素的 content 不进入 DOM 树。
 *
 * 等宽数字避免过程中宽度跳动；右对齐让递增中的数字紧贴 “+” 后缀，与最终形态一致。
 */
[data-ca-count] { position: relative; display: inline-block; font-variant-numeric: tabular-nums; }
[data-ca-count].is-counting { color: transparent; }
[data-ca-count].is-counting::after {
	content: attr(data-ca-ghost);
	position: absolute;
	inset: 0;
	text-align: right;
	color: var(--ca-navy);
}
.ca-section--dark [data-ca-count].is-counting::after { color: #fff; }
.ca-stat__label {
	display: block;
	margin-top: 14px;
	color: var(--ca-navy);
	font-family: var(--ca-font-body);
	font-size: .84rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	line-height: 1.4;
}
.ca-stat__desc { margin-top: 10px; color: var(--ca-muted); font-size: .9rem; line-height: 1.5; }
.ca-section--dark .ca-stat__value,
.ca-section--dark .ca-stat__label { color: #fff; }
.ca-section--dark .ca-stat__desc { color: rgba(255, 255, 255, .66); }

/* 波浪分隔 */
/* 品牌手册用一条青色实线分隔，不用波浪 */
.ca-wave { display: block; width: 100%; height: 3px; background: var(--ca-wave-color, #2aa3dc); line-height: 0; }
.ca-wave svg { display: none; }

/* ==========================================================================
   3. 通用卡片 / Cards
   ========================================================================== */

.ca-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 32px;
	background: #fff;
	border: 1px solid var(--ca-border);
	border-radius: var(--ca-radius-lg);
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.ca-card:hover { border-color: var(--ca-blue); }
.ca-card__title {
	margin-bottom: .5em;
	font-family: var(--ca-font-body);
	font-size: 1.06rem;
	font-weight: 700;
	line-height: 1.4;
}
.ca-card__title a { color: inherit; }
.ca-card__title a:hover { color: var(--ca-blue); }
.ca-card p { color: var(--ca-text); font-size: .98rem; line-height: 1.68; }
.ca-card__foot { margin-top: auto; padding-top: 18px; }

.ca-card--surface { background: var(--ca-surface); border-color: transparent; }

/* 品牌手册式：顶部青线 + 编号，不用方框 */
.ca-card--rule {
	padding: 26px 0 0;
	background: none;
	border: 0;
	border-top: var(--ca-rule) solid var(--ca-blue);
	border-radius: 0;
}
.ca-card--rule:hover { border-top-color: var(--ca-navy); }
.ca-card--rule .ca-card__num {
	display: block;
	margin-bottom: 14px;
	color: var(--ca-blue);
	font-family: var(--ca-font-heading);
	font-size: 1.6rem;
	line-height: 1;
}
.ca-card--rule .ca-card__title {
	font-size: .84rem;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--ca-navy);
	margin-bottom: 1em;
}
.ca-card--rule p { font-size: .95rem; line-height: 1.65; }
.ca-card--rule .ca-icon { width: 36px; height: 36px; margin-bottom: 20px; }
.ca-card--rule .ca-icon svg { width: 34px; height: 34px; }
.ca-card--flat { border: 0; padding: 0; background: none; }
.ca-card--flat:hover { border-color: transparent; }

.ca-section--dark .ca-card {
	background: rgba(255, 255, 255, .05);
	border-color: rgba(255, 255, 255, .12);
}
.ca-section--dark .ca-card p { color: rgba(255, 255, 255, .76); }

/*
 * 图标 —— 与 Company Profile 宣传册同一套视觉语言：
 * 描边、直角、深蓝主体，每个图标里一处品牌天蓝点缀。
 * 主体颜色走 currentColor，点缀走 .ca-icon-accent，两者在深色底上分别换色。
 */
.ca-icon {
	display: grid;
	place-items: center;
	width: 46px; height: 46px;
	margin-bottom: 22px;
	background: none;
	border-radius: 0;
	color: var(--ca-navy);
	flex: 0 0 auto;
	transition: color .28s ease;
}
.ca-icon svg { width: 36px; height: 36px; }
.ca-card:hover .ca-icon { color: var(--ca-link); }
.ca-section--dark .ca-icon { background: none; color: #fff; }

/* 点缀色：描边图标用 stroke，实心图标（社交等）用 fill */
.ca-icon-accent { stroke: var(--ca-blue); }
.ca-section--dark .ca-icon-accent,
.ca-founder__stat-icon .ca-icon-accent { stroke: #7fcdf0; }

.ca-icon--sm { width: 32px; height: 32px; margin-bottom: 14px; }
.ca-icon--sm svg { width: 28px; height: 28px; }


/* 带媒体图的卡片 */
.ca-card--media { padding: 0; overflow: hidden; }
.ca-card--media .ca-card__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--ca-surface-alt); }
.ca-card--media .ca-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ca-card--media:hover .ca-card__media img { transform: scale(1.05); }
.ca-card--media .ca-card__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 28px; }

/* ==========================================================================
   4. 服务板块 / Services
   ========================================================================== */

.ca-service {
	position: relative;
	padding: 28px 0 0;
	background: none;
	border: 0;
	border-top: var(--ca-rule) solid var(--ca-blue);
	border-radius: 0;
	display: flex;
	flex-direction: column;
	height: 100%;
	transition: border-color .28s ease;
}
.ca-service:hover { border-top-color: var(--ca-navy); }
.ca-service__title {
	margin-bottom: .5em;
	font-family: var(--ca-font-body);
	font-size: 1.06rem;
	font-weight: 700;
	line-height: 1.4;
}
.ca-service__title a { color: inherit; }
.ca-service__title a:hover { color: var(--ca-blue); }
.ca-service__desc { margin-bottom: 16px; color: var(--ca-text); font-size: .95rem; line-height: 1.65; }
.ca-service__foot { margin-top: auto; padding-top: 16px; }

/* 服务详解（左右交替长条） */
.ca-servicerow {
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr);
	gap: 26px;
	padding: 34px 0;
	border-bottom: 1px solid var(--ca-border);
}
.ca-servicerow:last-child { border-bottom: 0; }
.ca-servicerow__title { margin-bottom: .3em; font-size: 1.36rem; }
.ca-servicerow__sub { margin-bottom: 14px; color: var(--ca-blue); font-family: var(--ca-font-heading); font-weight: 600; font-size: 1rem; }
.ca-servicerow__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 32px; margin-top: 14px; }

/* ==========================================================================
   5. 流程时间线 / Approach timeline
   ========================================================================== */

.ca-steps { position: relative; display: grid; gap: 30px; }
.ca-steps--h { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.ca-steps--h::before { display: none; }
.ca-step { position: relative; z-index: 1; text-align: left; padding-top: 24px; border-top: var(--ca-rule) solid var(--ca-blue); }
.ca-step__dot {
	display: block;
	margin: 0 0 14px;
	background: none;
	border: 0;
	color: var(--ca-blue);
	font-family: var(--ca-font-heading);
	font-size: 1.85rem;
	font-weight: 400;
	line-height: 1;
}
.ca-step__title {
	margin-bottom: .7em;
	font-family: var(--ca-font-body);
	font-size: .84rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--ca-navy);
}
.ca-step p { color: var(--ca-text); font-size: .93rem; line-height: 1.6; }
.ca-section--surface .ca-step__dot { background: #fff; }

/* 纵向时间线（Founder journey） */
.ca-timeline { position: relative; margin: 0; padding: 0 0 0 34px; list-style: none; }
.ca-timeline::before {
	content: "";
	position: absolute;
	left: 8px; top: 8px; bottom: 8px;
	width: 2px;
	background: linear-gradient(180deg, var(--ca-blue), rgba(60, 106, 180, .12));
}
.ca-timeline li { position: relative; margin: 0 0 30px; }
.ca-timeline li:last-child { margin-bottom: 0; }
.ca-timeline li::before {
	content: "";
	position: absolute;
	left: -33px; top: 8px;
	width: 12px; height: 12px;
	background: #fff;
	border: 3px solid var(--ca-blue);
	border-radius: 50%;
}
.ca-timeline__year {
	display: block;
	color: var(--ca-blue);
	font-family: var(--ca-font-heading);
	font-size: 1.14rem;
	font-weight: 700;
	margin-bottom: 4px;
}
.ca-timeline p { margin: 0; color: var(--ca-text); }

/* ==========================================================================
   6. 案例 / Case studies
   ========================================================================== */

.ca-case {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var(--ca-border);
	border-radius: 0;
	overflow: hidden;
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.ca-case:hover { border-color: var(--ca-blue); }
.ca-case__media { position: relative; aspect-ratio: 16 / 10; background: var(--ca-surface-alt); overflow: hidden; }
.ca-case__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ca-case:hover .ca-case__media img { transform: scale(1.05); }
.ca-case__media--empty {
	display: grid;
	place-items: center;
	background: var(--ca-surface);
	color: rgba(16, 41, 75, .18);
}
/* 无封面时的占位图标同样是描边图标，不要强制填充 */
.ca-case__media--empty svg { width: 62px; height: 62px; }

.ca-case__industry {
	position: absolute;
	left: 0; top: 16px;
	padding: 7px 14px;
	background: var(--ca-navy);
	border-radius: 0;
	color: #fff;
	font-family: var(--ca-font-body);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.ca-case__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 28px; }
.ca-case__title {
	margin-bottom: .55em;
	font-family: var(--ca-font-heading);
	font-size: 1.16rem;
	font-weight: 700;
	line-height: 1.35;
}
.ca-case__title a { color: inherit; }
.ca-case__title a:hover { color: var(--ca-blue); }
.ca-case__excerpt { margin-bottom: 18px; color: var(--ca-text); font-size: .96rem; }
.ca-case__foot { margin-top: auto; }

/* 案例结构块 Challenge → Approach → Implementation → Outcome */
.ca-cs-flow { display: grid; gap: 22px; margin: 40px 0; }
.ca-cs-block {
	position: relative;
	padding: 30px 0 0;
	background: none;
	border-radius: 0;
	border-top: 1px solid var(--ca-border);
}
.ca-cs-block--outcome { border-top: var(--ca-rule) solid var(--ca-blue); }
.ca-cs-block__label {
	display: block;
	margin-bottom: 10px;
	color: var(--ca-blue-deep);
	font-family: var(--ca-font-body);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.ca-cs-block h3 { margin-bottom: .5em; font-size: 1.35rem; font-family: var(--ca-font-heading); font-weight: 700; }
.ca-cs-block > *:last-child { margin-bottom: 0; }

.ca-cs-meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 26px;
	padding: 30px 34px;
	margin-bottom: 40px;
	background: var(--ca-navy);
	border-radius: 0;
	color: #fff;
}
.ca-cs-meta dt {
	margin-bottom: 8px;
	color: var(--ca-blue);
	font-family: var(--ca-font-body);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.ca-cs-meta dd { margin: 0; font-family: var(--ca-font-heading); font-size: 1.05rem; font-weight: 400; line-height: 1.4; }

/* ==========================================================================
   7. 行业 / Industries
   ========================================================================== */

.ca-industry {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 24px 0 0;
	background: none;
	border: 0;
	border-top: 1px solid var(--ca-border);
	border-radius: 0;
	height: 100%;
	transition: border-color .26s ease;
}
.ca-industry:hover { border-top-color: var(--ca-blue); }
.ca-industry .ca-icon { margin-bottom: 0; width: 32px; height: 32px; }
.ca-industry .ca-icon svg { width: 30px; height: 30px; }
.ca-industry__title {
	margin-bottom: .5em;
	font-family: var(--ca-font-body);
	font-size: .84rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ca-navy);
	line-height: 1.45;
}
.ca-industry p { margin: 0; color: var(--ca-muted); font-size: .93rem; line-height: 1.6; }

/* 城市标签（China experience） */
.ca-cities { display: flex; flex-wrap: wrap; gap: 12px; }
.ca-city {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 10px 18px;
	background: #fff;
	border: 1px solid var(--ca-border);
	border-radius: 0;
	color: var(--ca-navy);
	font-family: var(--ca-font-body);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	transition: background-color .22s ease, color .22s ease, border-color .22s ease, transform .22s ease;
}
.ca-city::before {
	content: "";
	width: 8px; height: 8px;
	background: var(--ca-blue-light);
	border-radius: 50%;
}
.ca-city:hover { background: var(--ca-navy); border-color: var(--ca-navy); color: #fff; transform: translateY(-2px); }
.ca-section--dark .ca-city { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .16); color: #fff; }

/* ==========================================================================
   8. FAQ 手风琴 / Accordion
   ========================================================================== */

.ca-faq { display: grid; gap: 0; border-top: 1px solid var(--ca-border); }
.ca-faq__item {
	background: none;
	border: 0;
	border-bottom: 1px solid var(--ca-border);
	border-radius: 0;
	overflow: hidden;
	transition: border-color .24s ease;
}
.ca-faq__item.is-open { border-bottom-color: var(--ca-blue); }
.ca-faq__q {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	width: 100%;
	margin: 0;
	padding: 24px 8px 24px 0;
	background: none;
	border: 0;
	color: var(--ca-navy);
	font-family: var(--ca-font-heading);
	font-size: 1.12rem;
	font-weight: 700;
	line-height: 1.45;
	text-align: left;
	cursor: pointer;
}
.ca-faq__q:hover { color: var(--ca-blue); }
.ca-faq__icon {
	position: relative;
	flex: 0 0 auto;
	width: 22px; height: 22px;
	margin-top: 3px;
}
.ca-faq__icon::before,
.ca-faq__icon::after {
	content: "";
	position: absolute;
	left: 50%; top: 50%;
	background: var(--ca-blue);
	border-radius: 2px;
	transform: translate(-50%, -50%);
	transition: transform .28s ease, opacity .28s ease;
}
.ca-faq__icon::before { width: 14px; height: 2px; }
.ca-faq__icon::after { width: 2px; height: 14px; }
.ca-faq__item.is-open .ca-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }
.ca-faq__a {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .32s ease;
}
.ca-faq__item.is-open .ca-faq__a { grid-template-rows: 1fr; }
.ca-faq__a-inner { overflow: hidden; }
.ca-faq__a-inner > div { padding: 0 40px 26px 0; color: var(--ca-text); }
.ca-faq__a-inner p:last-child { margin-bottom: 0; }

.ca-faq-cats { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.ca-faq-cat {
	padding: 10px 18px;
	background: #fff;
	border: 1px solid var(--ca-border);
	border-radius: 0;
	color: var(--ca-navy);
	font-family: var(--ca-font-body);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .22s ease, color .22s ease, border-color .22s ease;
}
.ca-faq-cat:hover { border-color: var(--ca-blue); color: var(--ca-blue); }
.ca-faq-cat.is-active { background: var(--ca-navy); border-color: var(--ca-navy); color: #fff; }

/* ==========================================================================
   9. 引用 / Founder quote
   ========================================================================== */

.ca-quote {
	position: relative;
	padding: 50px 56px;
	background: var(--ca-navy);
	border-radius: 0;
	border-top: 3px solid var(--ca-blue);
	color: #fff;
	overflow: hidden;
}
.ca-quote::before {
	content: "\201C";
	position: absolute;
	right: 30px; top: -18px;
	color: rgba(255, 255, 255, .08);
	font-family: Georgia, serif;
	font-size: 13rem;
	line-height: 1;
	pointer-events: none;
}
.ca-quote__text {
	position: relative;
	margin-bottom: 26px;
	font-family: var(--ca-font-heading);
	font-size: clamp(1.15rem, 1rem + .7vw, 1.55rem);
	font-weight: 400;
	line-height: 1.55;
}
.ca-quote__by { display: flex; align-items: center; gap: 16px; }
.ca-quote__by img { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; }
.ca-quote__name { display: block; color: #fff; font-family: var(--ca-font-heading); font-weight: 600; }
.ca-quote__role { display: block; color: rgba(255, 255, 255, .66); font-size: .9rem; }

/* ==========================================================================
   8b. 联系页 —— 渠道表 + 三级地理（Final Design Lock 七）
   ========================================================================== */

.ca-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 300px);
	gap: clamp(28px, 3.4vw, 60px);
	align-items: start;
}
.ca-channels { margin: 0; padding: 0; list-style: none; }
.ca-channel {
	display: grid;
	grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
	gap: 6px 28px;
	padding: 20px 0;
	border-top: 1px solid var(--ca-border);
}
.ca-channel:last-child { border-bottom: 1px solid var(--ca-border); }
.ca-channel__label {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--ca-muted);
	font-family: var(--ca-font-body);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.ca-channel__icon { display: inline-flex; color: var(--ca-blue); }
.ca-channel__icon svg { width: 18px; height: 18px; }
.ca-channel__value {
	grid-column: 2;
	color: var(--ca-heading);
	font-family: var(--ca-font-heading);
	font-size: 1.16rem;
	font-weight: 700;
	word-break: break-word;
}
.ca-channel__note { grid-column: 2; color: var(--ca-muted); font-size: .88rem; }

/* 未填真实数据时的占位样式，避免被误当成已上线信息 */
.is-placeholder {
	color: var(--ca-muted);
	font-weight: 400;
	letter-spacing: .04em;
}

.ca-qr { padding: 26px; background: var(--ca-surface); }
.ca-qr__label {
	display: block;
	margin-bottom: 16px;
	color: var(--ca-muted);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.ca-qr__frame {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 136px;
	height: 136px;
	background: #fff;
	border: 1px solid var(--ca-border);
}
.ca-qr__frame.is-placeholder { color: var(--ca-muted); font-size: .8rem; letter-spacing: .06em; }
.ca-qr__frame img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ca-qr__note { margin: 16px 0 0; color: var(--ca-muted); font-size: .84rem; line-height: 1.6; }

.ca-geo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); }
.ca-geo__tier { padding-top: 22px; border-top: var(--ca-rule) solid var(--ca-border); }
.ca-geo__tier.is-l1 { border-top-color: var(--ca-navy); }
.ca-geo__tier.is-l2 { border-top-color: var(--ca-link); }
.ca-geo__tier.is-l3 { border-top-color: var(--ca-blue); }
.ca-geo__kicker {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
	color: var(--ca-muted);
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.ca-geo__mark { width: 9px; height: 9px; border-radius: 50%; background: var(--ca-blue); }
.ca-geo__tier.is-l1 .ca-geo__mark { width: 15px; height: 15px; background: var(--ca-navy); }
.ca-geo__tier.is-l2 .ca-geo__mark { width: 12px; height: 12px; background: var(--ca-link); }
.ca-geo__tier h3 { margin-bottom: .5em; font-size: clamp(1.15rem, 1rem + .5vw, 1.42rem); }
.ca-geo__tier p { color: var(--ca-text); font-size: .95rem; line-height: 1.7; }
.ca-geo__addr { font-weight: 600; }

@media (max-width: 991px) {
	.ca-contact-grid { grid-template-columns: minmax(0, 1fr); }
	.ca-geo { grid-template-columns: minmax(0, 1fr); gap: 30px; }
}
@media (max-width: 767px) {
	.ca-channel { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 18px 0; }
	.ca-channel__value,
	.ca-channel__note { grid-column: 1; }
}

/* ==========================================================================
   9a. China Coverage Map — 浅色底覆盖地图（Final Design Lock 四 / 五）
   ========================================================================== */

.ca-map {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 300px);
	gap: clamp(28px, 3.4vw, 56px);
	align-items: center;
}

.ca-map__canvas {
	padding: clamp(14px, 1.8vw, 28px);
	/* 浅色底：白 / 冷调蓝灰。按第四条，不得改回 Deep Navy */
	background: linear-gradient(160deg, #ffffff 0%, var(--ca-surface) 100%);
	border: 1px solid var(--ca-border);
}
.ca-map__svg { display: block; width: 100%; height: auto; }

.ca-map__land path {
	fill: #dde5f0;
	stroke: #ffffff;
	stroke-width: 1.4;
	stroke-linejoin: round;
}

/* 标记：三级层次，城市之间不画任何连接线（不是物流路线图） */
.ca-map__halo { fill: var(--ca-navy); opacity: .12; }
.ca-map__dot.is-l1 { fill: var(--ca-navy); stroke: #fff; stroke-width: 2.4; }
.ca-map__dot.is-l2 { fill: var(--ca-link); stroke: #fff; stroke-width: 2; }
.ca-map__dot.is-l3 { fill: var(--ca-blue); opacity: .72; }

.ca-map__label {
	fill: var(--ca-heading);
	font-family: var(--ca-font-body);
	font-size: 15px;
	font-weight: 600;
	paint-order: stroke;
	stroke: rgba(255, 255, 255, .92);
	stroke-width: 3.5px;
	stroke-linejoin: round;
}
.ca-map__label.is-l1 { font-size: 19px; font-weight: 700; letter-spacing: .02em; }
.ca-map__label.is-l2 { font-size: 16.5px; font-weight: 700; }

.ca-map__side { align-self: center; }
.ca-map__stat {
	margin: 0 0 22px;
	color: var(--ca-heading);
	font-family: var(--ca-font-heading);
	font-size: clamp(1.5rem, 1.15rem + 1.2vw, 2.1rem);
	font-weight: 700;
	line-height: 1.16;
}
.ca-map__stat::after {
	content: "";
	display: block;
	width: var(--ca-rule-w);
	height: var(--ca-rule);
	margin-top: .6em;
	background: var(--ca-blue);
}

.ca-map__legend { margin: 0 0 22px; padding: 0; list-style: none; }
.ca-map__legend li {
	display: flex;
	align-items: flex-start;
	gap: 13px;
	margin-bottom: 18px;
	line-height: 1.45;
}
.ca-map__legend-mark {
	flex: 0 0 auto;
	margin-top: 5px;
	border-radius: 50%;
	background: var(--ca-blue);
	opacity: .72;
	width: 9px; height: 9px;
}
.ca-map__legend li.is-l1 .ca-map__legend-mark {
	width: 20px; height: 20px; margin-top: 0;
	background: var(--ca-navy); opacity: 1;
	box-shadow: 0 0 0 5px rgba(16, 41, 75, .12);
}
.ca-map__legend li.is-l2 .ca-map__legend-mark {
	width: 14px; height: 14px; margin-top: 2px;
	background: var(--ca-link); opacity: 1;
}
.ca-map__legend-label {
	display: block;
	color: var(--ca-heading);
	font-family: var(--ca-font-body);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.ca-map__legend-sub { display: block; margin-top: 4px; color: var(--ca-muted); font-size: .9rem; }

.ca-map__note {
	margin: 0;
	padding-top: 18px;
	border-top: 1px solid var(--ca-border);
	color: var(--ca-muted);
	font-size: .88rem;
	line-height: 1.6;
}

/*
 * 可抓取的城市清单（第五条）。视觉上克制 —— 它是内容，不是装饰，
 * 但也不能变成关键词堆砌，所以用小字号 + 分栏 + 与图例一致的层级标记。
 */
.ca-map__cities { margin-top: clamp(38px, 3.6vw, 62px); padding-top: clamp(26px, 2.4vw, 38px); border-top: 1px solid var(--ca-border); }
.ca-map__cities-title {
	margin: 0 0 26px;
	color: var(--ca-heading);
	font-family: var(--ca-font-body);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.ca-map__cities-grid {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.6fr);
	gap: clamp(24px, 2.6vw, 44px);
}
.ca-map__tier-label {
	display: flex;
	align-items: center;
	gap: 11px;
	color: var(--ca-heading);
	font-family: var(--ca-font-body);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.ca-map__tier-mark {
	flex: 0 0 auto;
	width: 9px; height: 9px;
	border-radius: 50%;
	background: var(--ca-blue);
	opacity: .72;
}
.ca-map__tier.is-l1 .ca-map__tier-mark { width: 15px; height: 15px; background: var(--ca-navy); opacity: 1; box-shadow: 0 0 0 4px rgba(16, 41, 75, .12); }
.ca-map__tier.is-l2 .ca-map__tier-mark { width: 12px; height: 12px; background: var(--ca-link); opacity: 1; }
.ca-map__tier-cities {
	margin: 14px 0 0;
	color: var(--ca-heading);
	font-size: .92rem;
	line-height: 1.85;
}
.ca-map__tier-note { margin: 10px 0 0; color: var(--ca-muted); font-size: .84rem; line-height: 1.6; }

@media (max-width: 991px) {
	.ca-map { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.ca-map__side { max-width: 640px; }
	.ca-map__cities-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}

@media (max-width: 767px) {
	/* 手机端只保留主要 label（第二十条），小点全部保留 */
	.ca-map__label.is-desktop-only { display: none; }
	.ca-map__label { font-size: 26px; stroke-width: 6px; }
	.ca-map__label.is-l1 { font-size: 32px; }
	.ca-map__label.is-l2 { font-size: 29px; }
	.ca-map__dot.is-l3 { r: 5; }
	.ca-map__land path { stroke-width: 2.2; }
	.ca-map__canvas { padding: 10px; }
	.ca-map__legend li { margin-bottom: 20px; }
}

/* ==========================================================================
   9b. 创始人 / Founder — 左图右文 editorial 构图
   《Website Final Revision Instructions》二：PHOTO ON THE LEFT / TEXT ON THE RIGHT。
   照片为去背人像，直接站在页面底色上（不再是一块贴上去的矩形），
   身后只有一层极淡的冷蓝灰光晕，底部渐隐 —— 与全站 navy / white 体系融为一体。
   ========================================================================== */

.ca-founder {
	/* 照片宽度与其倒数由 inc/founder.php 按「创始人照片占比」写入行内样式 */
	--ca-founder-media-w: 48%;
	--ca-founder-text-inv: 1.9231; /* 100 / (100 - 48)，把文字栏宽度换算回整段宽度 */
	--ca-founder-pad-y: clamp(56px, 5.4vw, 96px);
	/*
	 * 照片高度占照片列的比例。原图是横构图（950×623），照片列比它更竖，
	 * object-fit: cover 的缩放倍数因此由「列高」决定 —— 只改列宽人物不会变小。
	 * 客户 2026-08-01 要求「照片再缩小 10%–15%，先看文字再看人」，
	 * 所以这里连同列宽一起压一档：88% 列高 ≈ 人物缩小 12%。
	 */
	--ca-founder-photo-h: 88%;
	position: relative;
	background: var(--ca-bg);
}

/*
 * 右侧文字要和全站 .ca-container 的右内容边缘对齐。
 * 文字栏是网格列，百分比内边距按「列宽」解析，所以先用 --ca-founder-text-inv
 * 把列宽换算回整段宽度，再套用容器的居中公式。
 * 全程只用 %，不碰 100vw —— 既不受滚动条宽度影响，也不会加载后横向跳动。
 */
.ca-founder__head,
.ca-founder__body {
	--ca-founder-inset: max(
		var(--ca-gutter),
		calc((100% * var(--ca-founder-text-inv) - var(--ca-container)) / 2 + var(--ca-gutter))
	);
}
.ca-founder--no-media { --ca-founder-text-inv: 1; }

.ca-founder__inner {
	display: grid;
	grid-template-columns: var(--ca-founder-media-w) minmax(0, 1fr);
	grid-template-areas:
		"media head"
		"media body";
	align-content: center;
	min-height: clamp(520px, 44vw, 700px);
}
.ca-founder--no-media .ca-founder__inner {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "head" "body";
	min-height: 0;
}

.ca-founder__head { grid-area: head; padding-top: var(--ca-founder-pad-y); }
.ca-founder__body { grid-area: body; padding-bottom: var(--ca-founder-pad-y); }
.ca-founder__head,
.ca-founder__body {
	padding-right: var(--ca-founder-inset);
	padding-left: clamp(28px, 4.2vw, 76px);
}
.ca-founder--no-media .ca-founder__head,
.ca-founder--no-media .ca-founder__body {
	padding-left: var(--ca-founder-inset);
}

/*
 * 左文右图（客户参考图 / V2.1 设计稿的构图，默认）。
 * 只镜像栅格与内边距，其余层级、比例、留白与左图右文完全一致。
 */
.ca-founder--media-right .ca-founder__inner {
	grid-template-columns: minmax(0, 1fr) var(--ca-founder-media-w);
	grid-template-areas:
		"head media"
		"body media";
}
.ca-founder--media-right .ca-founder__head,
.ca-founder--media-right .ca-founder__body {
	padding-left: var(--ca-founder-inset);
	padding-right: clamp(28px, 4.2vw, 76px);
}

/* --- 文字层级 --- */

.ca-founder__crumbs { margin-bottom: 26px; }
.ca-founder__crumbs .ca-breadcrumbs { margin: 0; }

.ca-founder__head .ca-eyebrow { margin-bottom: 20px; }
.ca-founder__head .ca-eyebrow::after {
	content: "";
	display: block;
	width: 54px;
	height: var(--ca-rule);
	margin-top: 13px;
	background: var(--ca-blue);
}

.ca-founder__name {
	margin: 0 0 .16em;
	color: var(--ca-heading);
	font-size: clamp(2.3rem, 1.35rem + 3.1vw, 4rem);
	line-height: 1.04;
}
.ca-caps-headings .ca-founder__name { text-transform: uppercase; letter-spacing: .005em; }

.ca-founder__role {
	margin: 0;
	color: var(--ca-link);
	font-family: var(--ca-font-body);
	font-size: clamp(.95rem, .84rem + .34vw, 1.16rem);
	font-weight: 700;
	letter-spacing: .07em;
	line-height: 1.35;
	text-transform: uppercase;
}

.ca-founder__meta {
	margin: 22px 0 0;
	padding-left: 15px;
	border-left: var(--ca-rule) solid var(--ca-blue);
	color: var(--ca-heading);
	font-family: var(--ca-font-heading);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: .01em;
	line-height: 1.4;
}

.ca-founder__bio {
	margin: 0 0 30px;
	max-width: 54ch;
	font-size: clamp(1rem, .95rem + .22vw, 1.12rem);
	line-height: 1.78;
}
.ca-founder__head + .ca-founder__body .ca-founder__bio { margin-top: 26px; }

.ca-founder__points { margin-bottom: 0; max-width: 54ch; }
.ca-founder__points li { margin-bottom: .62em; }

.ca-founder__quote {
	margin: 28px 0 0;
	padding-left: 20px;
	max-width: 54ch;
	border-left: 2px solid var(--ca-border);
	color: var(--ca-heading);
	font-family: var(--ca-font-heading);
	font-size: 1.04rem;
	font-style: italic;
	line-height: 1.62;
}

.ca-founder__cta { margin-top: 32px; }

/* 首屏关键数字条只服务手机端，桌面端由资历一行 + 深蓝数据条承担 */
.ca-founder__keys { display: none; }

/* --- 左侧照片：去背人像，满出到视口左边缘 --- */

.ca-founder__media {
	position: relative;
	grid-area: media;
	align-self: stretch;
	min-height: 100%;
	/* 光晕与底片都按百分比外扩，这里兜住，避免整页出现横向滚动 */
	overflow: hidden;
}

/*
 * 人像身后的光晕。不是一块矩形色板 —— 是一片没有边界的冷蓝灰光，
 * 越靠外越透明，四周都化在页面底色里，所以照片看上去是「长在背景上」的。
 */
.ca-founder__media::before {
	content: "";
	position: absolute;
	inset: -6% 0 0 -18%;
	background:
		radial-gradient(72% 58% at 52% 40%, rgba(180, 201, 224, .58), rgba(210, 224, 238, .22) 46%, rgba(244, 247, 251, 0) 72%),
		radial-gradient(48% 34% at 44% 74%, rgba(29, 43, 72, .10), rgba(29, 43, 72, 0) 70%);
	pointer-events: none;
}

/* 可选的柔焦底片：由「创始人照片背景」设置注入，默认没有 */
.ca-founder__plate {
	position: absolute;
	/* 显式给全 top/left/width/height：替换元素若留 auto 会退回 1500px 原始宽度 */
	top: -8%;
	left: -16%;
	width: 132%;
	height: 104%;
	object-fit: cover;
	opacity: .5;
	filter: saturate(.72) brightness(1.06);
	-webkit-mask-image: radial-gradient(54% 52% at 50% 44%, #000 20%, rgba(0, 0, 0, .4) 52%, transparent 78%);
	        mask-image: radial-gradient(54% 52% at 50% 44%, #000 20%, rgba(0, 0, 0, .4) 52%, transparent 78%);
	pointer-events: none;
}

/*
 * 人像本体。去背 PNG/WebP，贴底对齐，底部与页面底色渐隐相接，
 * 既没有硬边矩形，也不会出现「悬空剪贴画」的廉价感。
 */
.ca-founder__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: 50% 100%;
	/* 略微收敛饱和与对比，让人像贴近全站冷调蓝灰体系 */
	filter: saturate(.92) contrast(.98) drop-shadow(0 26px 44px rgba(29, 43, 72, .13));
	-webkit-mask-image: linear-gradient(to bottom, #000 0 68%, rgba(0, 0, 0, .82) 86%, rgba(0, 0, 0, 0) 100%);
	        mask-image: linear-gradient(to bottom, #000 0 68%, rgba(0, 0, 0, .82) 86%, rgba(0, 0, 0, 0) 100%);
}

/*
 * fill = 保留照片自身背景（客户参考图的做法，也是默认）。
 * 照片铺满整根照片列并满出到视口左边缘，只在贴近文字的那一侧
 * 做一道很轻的渐隐，让它与右侧文字区的底色自然接上 —— 不做去背。
 */
/*
 * 首屏整块（不含下方深蓝数据条）用同一个冷调浅底。
 * 参考图里文字区本来就不是纯白，而是一层很淡的蓝灰；更关键的是：
 * 只要文字区和照片列底色不同，照片再怎么羽化，交界处都会留下一条硬台阶。
 * 统一底色之后，照片是真的化进背景里，而不是压在另一块色板上。
 */
.ca-founder--fill .ca-founder__inner { background: var(--ca-surface); }
.ca-founder--fill .ca-founder__media { overflow: hidden; background: transparent; }
.ca-founder--fill .ca-founder__media::before { content: none; }
/*
 * 贴着文字那一侧的羽化。
 * 多加几个色标去逼近缓入曲线：只用「实→透」两个点，
 * 线性插值在中段会留下一条隐约可见的直线带，反而不平滑。
 * 羽化区约占照片宽度的 30%，与参考图里那道过渡的观感一致。
 */
.ca-founder--fill .ca-founder__img {
	object-fit: cover;
	object-position: 62% 24%;
	filter: saturate(.94) contrast(.98);
	-webkit-mask-image: linear-gradient(to right, #000 0 70%, rgba(0, 0, 0, .96) 76%, rgba(0, 0, 0, .87) 81%, rgba(0, 0, 0, .72) 86%, rgba(0, 0, 0, .52) 90%, rgba(0, 0, 0, .3) 94%, rgba(0, 0, 0, .12) 97%, rgba(0, 0, 0, 0) 100%);
	        mask-image: linear-gradient(to right, #000 0 70%, rgba(0, 0, 0, .96) 76%, rgba(0, 0, 0, .87) 81%, rgba(0, 0, 0, .72) 86%, rgba(0, 0, 0, .52) 90%, rgba(0, 0, 0, .3) 94%, rgba(0, 0, 0, .12) 97%, rgba(0, 0, 0, 0) 100%);
}
/*
 * 照片在右时镜像过来：羽化挪到左缘（贴着文字那一侧），
 * 取景也左移一点，让落地窗与天际线留在靠近文字的一侧 —— 与参考图一致。
 */
.ca-founder--fill.ca-founder--media-right .ca-founder__img {
	object-position: 52% 22%;
	-webkit-mask-image: linear-gradient(to left, #000 0 70%, rgba(0, 0, 0, .96) 76%, rgba(0, 0, 0, .87) 81%, rgba(0, 0, 0, .72) 86%, rgba(0, 0, 0, .52) 90%, rgba(0, 0, 0, .3) 94%, rgba(0, 0, 0, .12) 97%, rgba(0, 0, 0, 0) 100%);
	        mask-image: linear-gradient(to left, #000 0 70%, rgba(0, 0, 0, .96) 76%, rgba(0, 0, 0, .87) 81%, rgba(0, 0, 0, .72) 86%, rgba(0, 0, 0, .52) 90%, rgba(0, 0, 0, .3) 94%, rgba(0, 0, 0, .12) 97%, rgba(0, 0, 0, 0) 100%);
}

/*
 * 照片贴住板块下沿、顶部让出一档。
 * 让出来的这一档正好落在标题一侧，标题因此先入眼，照片退到第二位。
 */
.ca-founder--fill .ca-founder__img {
	top: auto;
	bottom: 0;
	height: var(--ca-founder-photo-h);
}
/*
 * 上沿因此会露出一条硬边。与手机端同一个做法：用一层与底色同色的渐变盖住，
 * 而不是再叠一层 mask + mask-composite —— 后者在旧浏览器上不生效会整张图消失。
 */
.ca-founder--fill .ca-founder__media::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(
		to bottom,
		var(--ca-surface) 0,
		var(--ca-surface) calc(100% - var(--ca-founder-photo-h)),
		rgba(242, 246, 250, 0) calc(100% - var(--ca-founder-photo-h) + 96px)
	);
}

/* --- 深蓝数据条 --- */

.ca-founder__band { padding-bottom: clamp(52px, 4.8vw, 88px); background: var(--ca-bg); }
/* 数据条自带下留白，紧随其后的板块不再重复整段 padding */
.ca-founder--banded + .ca-section { padding-top: clamp(44px, 3.6vw, 64px); }
.ca-founder__band-inner {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 2fr);
	gap: clamp(30px, 3.6vw, 60px);
	align-items: center;
	padding: clamp(36px, 3.8vw, 56px) clamp(26px, 3.2vw, 50px);
	background: var(--ca-navy);
}

.ca-founder__band-title {
	margin: 0;
	color: #fff;
	font-family: var(--ca-font-heading);
	font-size: clamp(1.3rem, 1.05rem + .95vw, 1.8rem);
	font-weight: 700;
	line-height: 1.22;
}
.ca-founder__band-title::after {
	content: "";
	display: block;
	width: 72px;
	height: var(--ca-rule);
	margin-top: 20px;
	background: var(--ca-blue);
}
.ca-founder__band-desc {
	margin: 20px 0 0;
	color: rgba(255, 255, 255, .72);
	font-size: .95rem;
	line-height: 1.7;
}

.ca-founder__band-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ca-founder__stat {
	padding: 0 clamp(14px, 1.8vw, 30px);
	border-left: 1px solid rgba(255, 255, 255, .16);
	text-align: center;
}
.ca-founder__stat-icon { display: block; margin-bottom: 14px; color: var(--ca-blue-light); }
.ca-founder__stat-icon svg { width: 34px; height: 34px; }
.ca-founder__stat-value {
	display: block;
	color: #fff;
	font-family: var(--ca-font-heading);
	font-size: clamp(1.9rem, 1.35rem + 1.7vw, 2.85rem);
	font-weight: 700;
	line-height: 1;
}
.ca-founder__stat-label {
	display: block;
	margin-top: 10px;
	color: var(--ca-blue-light);
	font-family: var(--ca-font-body);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .14em;
	line-height: 1.4;
	text-transform: uppercase;
}
.ca-founder__stat-desc {
	display: block;
	margin-top: 12px;
	color: rgba(255, 255, 255, .66);
	font-size: .85rem;
	line-height: 1.55;
}

/* --- 平板 / 手机：上下排列，照片居中，层级不变 --- */

/*
 * 手机 / 平板：照片与「20+ / 500+」关键数字并排放在姓名下方，
 * 让人物形象和核心信息在第一屏同时出现（客户 2026-07-31 反馈），
 * 简介与要点留在下方，不再是「照片一屏、文字一屏」。
 */
@media (max-width: 1023px) {
	.ca-founder__inner {
		grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
		grid-template-areas:
			"head  head"
			"media keys"
			"body  body";
		align-items: stretch;
		min-height: 0;
	}
	/* 手机端左右顺序跟随「照片位置」设置，与桌面端保持同一条规则 */
	.ca-founder--media-right .ca-founder__inner {
		grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
		grid-template-areas:
			"head  head"
			"keys  media"
			"body  body";
	}
	.ca-founder__head,
	.ca-founder__body {
		width: 100%;
		max-width: var(--ca-container);
		margin-inline: auto;
		padding-left: var(--ca-gutter);
		padding-right: var(--ca-gutter);
	}
	.ca-founder__head { padding-top: clamp(38px, 5.6vw, 64px); padding-bottom: 26px; }
	.ca-founder__body { padding-top: 32px; padding-bottom: clamp(46px, 7vw, 72px); }
	/* 资历一行在手机端由右侧关键数字条承担，避免同屏重复 */
	.ca-founder__keys + .ca-founder__body .ca-founder__bio { margin-top: 0; }
	.ca-founder__head .ca-founder__meta { display: none; }

	.ca-founder__media {
		grid-area: media;
		aspect-ratio: 3 / 3.6;
		min-height: 0;
	}
	.ca-founder__media::before { inset: -4% 4% 0; }
	.ca-founder__plate { top: -4%; left: 0; width: 100%; height: 104%; }
	.ca-founder__img { object-position: 50% 100%; }
	.ca-founder--fill .ca-founder__img {
		object-position: 56% 16%;
		-webkit-mask-image: linear-gradient(to right, #000 0 88%, rgba(0, 0, 0, .6) 96%, rgba(0, 0, 0, 0) 100%);
		        mask-image: linear-gradient(to right, #000 0 88%, rgba(0, 0, 0, .6) 96%, rgba(0, 0, 0, 0) 100%);
	}
	.ca-founder--fill.ca-founder--media-right .ca-founder__img {
		object-position: 50% 16%;
		-webkit-mask-image: linear-gradient(to left, #000 0 66%, rgba(0, 0, 0, .95) 73%, rgba(0, 0, 0, .84) 79%, rgba(0, 0, 0, .66) 85%, rgba(0, 0, 0, .42) 90%, rgba(0, 0, 0, .2) 95%, rgba(0, 0, 0, 0) 100%);
		        mask-image: linear-gradient(to left, #000 0 66%, rgba(0, 0, 0, .95) 73%, rgba(0, 0, 0, .84) 79%, rgba(0, 0, 0, .66) 85%, rgba(0, 0, 0, .42) 90%, rgba(0, 0, 0, .2) 95%, rgba(0, 0, 0, 0) 100%);
	}
	/*
	 * 手机端照片是一块浮在版面里的图，上下两条边会露出来。
	 * 横向羽化已由 mask 完成，这里再用一层与底色同色的上下渐变盖住上下缘 ——
	 * 用叠加层而不是多层 mask + mask-composite，是为了兼容旧版 Chrome / Safari，
	 * 那两个属性在老浏览器上不生效会直接让整张图消失。
	 */
	.ca-founder--fill .ca-founder__media::after {
		content: "";
		position: absolute;
		inset: 0;
		pointer-events: none;
		background:
			linear-gradient(to bottom, var(--ca-surface) 0%, rgba(242, 246, 250, 0) 15%),
			linear-gradient(to top, var(--ca-surface) 0%, rgba(242, 246, 250, 0) 13%);
	}
	.ca-founder--media-right .ca-founder__keys {
		padding-right: clamp(16px, 4.4vw, 28px);
		padding-left: var(--ca-gutter);
	}

	.ca-founder__keys {
		display: flex;
		grid-area: keys;
		flex-direction: column;
		justify-content: center;
		gap: clamp(20px, 4.6vw, 34px);
		padding-right: var(--ca-gutter);
		padding-left: clamp(16px, 4.4vw, 28px);
	}
	.ca-founder__key { border-left: var(--ca-rule) solid var(--ca-blue); padding-left: 14px; }
	.ca-founder__key-value {
		display: block;
		color: var(--ca-navy);
		font-family: var(--ca-font-heading);
		font-size: clamp(2rem, 1.15rem + 3.6vw, 2.9rem);
		font-weight: 400;
		line-height: 1;
		letter-spacing: -.01em;
	}
	.ca-founder__key-label {
		display: block;
		margin-top: 9px;
		color: var(--ca-navy);
		font-family: var(--ca-font-body);
		font-size: clamp(.68rem, .56rem + .5vw, .78rem);
		font-weight: 700;
		letter-spacing: .11em;
		line-height: 1.35;
		text-transform: uppercase;
	}

	.ca-founder__bio,
	.ca-founder__points,
	.ca-founder__quote { max-width: 62ch; }

	.ca-founder__band-inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 34px;
	}
	.ca-founder__band-title { text-align: left; }
}

@media (max-width: 719px) {
	.ca-founder__media { aspect-ratio: 3 / 3.9; }
	.ca-founder__meta { margin-top: 18px; }
	.ca-founder__cta { margin-top: 28px; }
	.ca-founder__cta .ca-btn { width: 100%; min-height: 52px; }

	.ca-founder__band-stats { grid-template-columns: minmax(0, 1fr); gap: 26px; }
	.ca-founder__stat {
		padding: 24px 0 0;
		border-left: 0;
		border-top: 1px solid rgba(255, 255, 255, .16);
	}
	.ca-founder__stat:first-child { padding-top: 0; border-top: 0; }
	.ca-founder__stat-icon { margin-bottom: 10px; }
}

/* ==========================================================================
   10. 文章列表 / Posts
   ========================================================================== */

.ca-post {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var(--ca-border);
	border-radius: 0;
	overflow: hidden;
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.ca-post:hover { border-color: var(--ca-blue); }
.ca-post__media { aspect-ratio: 16 / 9; background: var(--ca-surface-alt); overflow: hidden; }
.ca-post__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ca-post:hover .ca-post__media img { transform: scale(1.05); }
.ca-post__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 26px; }
.ca-post__cat {
	margin-bottom: 12px;
	color: var(--ca-blue-deep);
	font-family: var(--ca-font-body);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.ca-post__title {
	margin-bottom: .55em;
	font-family: var(--ca-font-heading);
	font-size: 1.16rem;
	font-weight: 700;
	line-height: 1.35;
}
.ca-post__title a { color: inherit; }
.ca-post__title a:hover { color: var(--ca-blue); }
.ca-post__excerpt { margin-bottom: 16px; color: var(--ca-text); font-size: .95rem; }
.ca-post__meta { margin-top: auto; padding-top: 14px; color: var(--ca-muted); font-size: .86rem; display: flex; flex-wrap: wrap; gap: 6px 16px; }

.ca-post--wide { flex-direction: row; align-items: stretch; }
.ca-post--wide .ca-post__media { flex: 0 0 300px; aspect-ratio: auto; }
.ca-post--wide .ca-post__body { padding: 30px 32px; }

/* 单篇文章 */
.ca-article-head { padding-block: 56px 40px; background: var(--ca-surface); }
.ca-article-head h1 { max-width: 900px; margin-bottom: .4em; }
.ca-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; color: var(--ca-muted); font-size: .92rem; }
.ca-article-meta a { color: var(--ca-blue); }
.ca-article__thumb { margin: -40px 0 44px; border-radius: var(--ca-radius-lg); overflow: hidden; box-shadow: var(--ca-shadow); }

.ca-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; }

/* 目录 */
.ca-toc {
	padding: 28px;
	background: var(--ca-surface);
	border-radius: 0;
	border-top: var(--ca-rule) solid var(--ca-blue);
}
.ca-toc h2, .ca-toc .ca-toc__title {
	margin-bottom: 16px;
	font-family: var(--ca-font-body);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ca-navy);
}
.ca-toc ol { margin: 0; padding-left: 1.2em; }
.ca-toc li { margin-bottom: .5em; font-size: .92rem; line-height: 1.45; }
.ca-toc a { color: var(--ca-text); }
.ca-toc a:hover { color: var(--ca-blue); }

.ca-sidebar { position: sticky; top: calc(var(--ca-header-h) + 24px); display: grid; gap: 26px; }
/* 侧栏较窄，表单强制单列，避免大写标签换行 */
.ca-sidebar .ca-field-row { grid-template-columns: minmax(0, 1fr); }
.ca-sidebar .ca-leadform { padding: 26px 22px; }
.ca-widget {
	padding: 28px;
	background: #fff;
	border: 1px solid var(--ca-border);
	border-radius: 0;
}
.ca-widget__title {
	margin-bottom: 16px;
	font-family: var(--ca-font-body);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ca-navy);
}
.ca-widget ul { margin: 0; padding: 0; list-style: none; }
.ca-widget li { margin-bottom: .6em; font-size: .95rem; line-height: 1.5; }
.ca-widget li:last-child { margin-bottom: 0; }
.ca-widget--cta { background: var(--ca-navy); border-color: transparent; color: rgba(255, 255, 255, .82); }
.ca-widget--cta .ca-widget__title { color: #fff; }

/* 相关内容（Topic cluster 内链） */
.ca-related { display: grid; gap: 0; border-top: 1px solid var(--ca-border); }
.ca-related__item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 20px 20px 20px 0;
	background: none;
	border-bottom: 1px solid var(--ca-border);
	border-radius: 0;
	transition: border-color .22s ease;
}
.ca-related__item:hover { border-bottom-color: var(--ca-blue); }
/* 客户要求：SERVICE / CASE / ARTICLE 三种标签的矩形必须完全一致——同色、同尺寸、同样式。
   所以不再按类型区分底色，宽度也用 min-width 锁死（否则字数不同会长短不一）。 */
.ca-related__kind {
	flex: 0 0 auto;
	min-width: 7.4em;
	padding: 4px 10px;
	background: var(--ca-blue-deep);
	border-radius: 0;
	color: #fff;
	font-family: var(--ca-font-body);
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
	margin-top: 3px;
}
.ca-related__title { color: var(--ca-navy); font-family: var(--ca-font-heading); font-weight: 700; font-size: 1.02rem; line-height: 1.4; }

/* 面包屑 */
.ca-breadcrumbs { padding: 16px 0; font-size: .88rem; color: var(--ca-muted); }
.ca-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ca-breadcrumbs li { margin: 0; display: flex; align-items: center; gap: 6px; }
.ca-breadcrumbs li:not(:last-child)::after { content: "/"; color: var(--ca-border); }
.ca-breadcrumbs a { color: var(--ca-muted); }
.ca-breadcrumbs a:hover { color: var(--ca-blue); }
.ca-breadcrumbs [aria-current] { color: var(--ca-navy); font-weight: 600; }

/* 分页 */
.ca-pagination { margin-top: 52px; }
.ca-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ca-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 44px; height: 44px;
	padding: 0 12px;
	background: #fff;
	border: 1px solid var(--ca-border);
	border-radius: var(--ca-radius);
	color: var(--ca-navy);
	font-family: var(--ca-font-heading);
	font-weight: 600;
	font-size: .95rem;
}
.ca-pagination .page-numbers:hover { border-color: var(--ca-blue); color: var(--ca-blue); }
.ca-pagination .page-numbers.current { background: var(--ca-navy); border-color: var(--ca-navy); color: #fff; }

.ca-postnav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 52px; }
.ca-postnav__item { padding: 22px 26px; background: var(--ca-surface); border-radius: var(--ca-radius-lg); }
.ca-postnav__item--next { text-align: right; }
.ca-postnav__label { display: block; margin-bottom: 6px; color: var(--ca-muted); font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; }
.ca-postnav__title { color: var(--ca-navy); font-family: var(--ca-font-heading); font-weight: 600; line-height: 1.45; }
.ca-postnav a:hover .ca-postnav__title { color: var(--ca-blue); }

/* ==========================================================================
   11. CTA 板块 / Newsletter
   ========================================================================== */

.ca-cta {
	position: relative;
	padding: 78px 60px;
	background: var(--ca-navy);
	border-top: 3px solid var(--ca-blue);
	border-radius: 0;
	color: #fff;
	overflow: hidden;
	text-align: center;
}
.ca-cta::before,
.ca-cta::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}
.ca-cta::before,
.ca-cta::after { display: none; }
.ca-cta > * { position: relative; z-index: 1; }
.ca-cta h2 { color: #fff; margin-bottom: .4em; }
.ca-cta p { max-width: 780px; margin-inline: auto; margin-bottom: 34px; color: rgba(255, 255, 255, .82); font-size: 1.05rem; }
.ca-cta .ca-eyebrow { color: var(--ca-blue); }
.ca-cta .ca-btn { background: var(--ca-blue-deep); border-color: var(--ca-blue-deep); }
.ca-cta .ca-btn:hover { background: #fff; border-color: #fff; color: var(--ca-navy); }
.ca-cta .ca-btn--ghost { background: transparent; border-color: rgba(255,255,255,.5); }
.ca-cta .ca-btn--ghost:hover { background: #fff; border-color: #fff; color: var(--ca-navy); }
.ca-cta--flush { border-radius: 0; }

.ca-newsletter { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; max-width: 540px; margin-inline: auto; }
.ca-newsletter input[type="email"] { border-color: transparent; }

/* ==========================================================================
   12. 悬浮联系 / Floating social
   ========================================================================== */

.ca-float {
	position: fixed;
	bottom: 26px;
	z-index: 70;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.ca-float--right { right: 22px; align-items: flex-end; }
.ca-float--left { left: 22px; align-items: flex-start; }

.ca-float__btn {
	position: relative;
	display: grid;
	place-items: center;
	width: 50px; height: 50px;
	background: var(--ca-float-bg, #10294b);
	border: 0;
	border-radius: 0;
	color: var(--ca-float-color, #fff);
	box-shadow: 0 8px 22px rgba(29, 43, 72, .26);
	cursor: pointer;
	transition: transform .24s ease, background-color .24s ease, box-shadow .24s ease;
}
.ca-float--round .ca-float__btn { border-radius: 50%; }
.ca-float__btn:hover { transform: translateY(-3px) scale(1.05); color: var(--ca-float-color, #fff); box-shadow: 0 12px 28px rgba(29, 43, 72, .34); }
.ca-float__btn svg { width: 23px; height: 23px; fill: currentColor; }

.ca-float__tip {
	position: absolute;
	top: 50%;
	transform: translateY(-50%) scale(.9);
	padding: 8px 14px;
	background: var(--ca-navy);
	border-radius: var(--ca-radius);
	color: #fff;
	font-size: .84rem;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.ca-float--right .ca-float__tip { right: calc(100% + 12px); }
.ca-float--left .ca-float__tip { left: calc(100% + 12px); }
.ca-float__btn:hover .ca-float__tip { opacity: 1; visibility: visible; transform: translateY(-50%) scale(1); }

.ca-float__top { opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s, transform .24s ease; }
.ca-float__top.is-visible { opacity: 1; visibility: visible; }

.ca-qr-modal {
	position: fixed;
	inset: 0;
	z-index: 95;
	display: grid;
	place-items: center;
	padding: 24px;
	background: rgba(23, 32, 52, .6);
	opacity: 0;
	visibility: hidden;
	transition: opacity .26s ease, visibility .26s;
}
.ca-qr-modal.is-open { opacity: 1; visibility: visible; }
.ca-qr-modal__inner {
	position: relative;
	max-width: 320px;
	padding: 30px;
	background: #fff;
	border-radius: var(--ca-radius-lg);
	text-align: center;
	transform: scale(.94);
	transition: transform .26s ease;
}
.ca-qr-modal.is-open .ca-qr-modal__inner { transform: scale(1); }
.ca-qr-modal img { width: 100%; border-radius: var(--ca-radius); }
.ca-qr-modal p { margin: 16px 0 0; color: var(--ca-muted); font-size: .92rem; }
.ca-qr-modal__close {
	position: absolute;
	right: 10px; top: 8px;
	width: 34px; height: 34px;
	background: none; border: 0;
	color: var(--ca-muted);
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}

/* ==========================================================================
   13. 404 / 搜索 / 归档头
   ========================================================================== */

.ca-page-head { padding-block: 74px 60px; background: var(--ca-surface); border-bottom: 1px solid var(--ca-border); }
.ca-page-head--dark { background: var(--ca-navy); border-bottom: 3px solid var(--ca-blue); }
.ca-page-head--dark h1 { color: #fff; }
.ca-page-head--dark p { color: rgba(255, 255, 255, .78); }
.ca-page-head--dark .ca-breadcrumbs,
.ca-page-head--dark .ca-breadcrumbs a { color: rgba(255, 255, 255, .6); }
.ca-page-head--dark .ca-breadcrumbs [aria-current] { color: #fff; }
.ca-page-head h1 { margin-bottom: .35em; }
.ca-page-head p { max-width: 760px; color: var(--ca-muted); font-size: 1.06rem; }

.ca-404 { padding-block: 110px; text-align: center; }
.ca-404__code {
	display: block;
	margin-bottom: 8px;
	background: linear-gradient(120deg, var(--ca-navy), var(--ca-blue-light));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-family: var(--ca-font-heading);
	font-size: clamp(5rem, 3rem + 9vw, 9rem);
	font-weight: 700;
	line-height: 1;
}
.ca-404 .search-form { max-width: 440px; margin: 30px auto 0; }

.ca-empty { padding: 60px 40px; background: var(--ca-surface); border-radius: var(--ca-radius-lg); text-align: center; }

/* ==========================================================================
   14. 滚动动画 / Reveal
   ========================================================================== */

/* 只有确认 JS 可用时才隐藏，否则禁用 JS 的访客会看到空白页面 */
.ca-js .ca-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .62s cubic-bezier(.22, .68, .36, 1), transform .62s cubic-bezier(.22, .68, .36, 1);
	will-change: opacity, transform;
}
.ca-js .ca-reveal.is-in { opacity: 1; transform: none; will-change: auto; }
.ca-js .ca-reveal[data-delay="1"] { transition-delay: .07s; }
.ca-js .ca-reveal[data-delay="2"] { transition-delay: .14s; }
.ca-js .ca-reveal[data-delay="3"] { transition-delay: .21s; }
.ca-js .ca-reveal[data-delay="4"] { transition-delay: .28s; }
.ca-js .ca-reveal[data-delay="5"] { transition-delay: .35s; }

/* 懒加载图片就位后淡入，避免"啪"地跳出来 */
.ca-img-fade {
	opacity: 0;
	transition: opacity .55s ease;
}
.ca-img-fade.is-loaded { opacity: 1; }

/* 正文内容随滚动逐段浮现 */
.ca-entry > .ca-reveal { transition-duration: .5s; }

@media (prefers-reduced-motion: reduce) {
	.ca-js .ca-reveal { opacity: 1; transform: none; transition: none; }
	.ca-img-fade { opacity: 1; transition: none; }
}

/* ==========================================================================
   15. WooCommerce（仅在插件启用时生效）
   ========================================================================== */

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	padding: 0 0 22px;
	background: #fff;
	border: 1px solid var(--ca-border);
	border-radius: 0;
	overflow: hidden;
	text-align: center;
	transition: transform .28s ease, box-shadow .28s ease;
}
.woocommerce ul.products li.product:hover { transform: translateY(-5px); box-shadow: var(--ca-shadow); }
.woocommerce ul.products li.product a img { margin-bottom: 18px; border-radius: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0 18px;
	color: var(--ca-navy);
	font-family: var(--ca-font-heading);
	font-size: 1.02rem;
	font-weight: 600;
}
.woocommerce ul.products li.product .price { color: var(--ca-blue); font-family: var(--ca-font-heading); font-weight: 700; }
.woocommerce ul.products li.product .button,
.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
	padding: 12px 26px;
	background: var(--ca-navy);
	border-radius: var(--ca-radius);
	color: #fff;
	font-family: var(--ca-font-heading);
	font-weight: 600;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover { background: var(--ca-blue); color: #fff; }
.woocommerce span.onsale {
	min-width: auto;
	min-height: auto;
	padding: 6px 14px;
	background: var(--ca-accent);
	border-radius: 999px;
	font-family: var(--ca-font-heading);
	font-weight: 600;
	line-height: 1.2;
}
.woocommerce .star-rating span::before { color: #f5a623; }

/* ==========================================================================
   16. 响应式补充
   ========================================================================== */

@media (max-width: 1200px) {
	.ca-article-layout { grid-template-columns: minmax(0, 1fr) 290px; gap: 40px; }
	.ca-hero__grid { gap: 40px; }
	.ca-hero__badge { left: -12px; }
}

@media (max-width: 991px) {
	.ca-hero { padding-block: 64px 60px; }
	.ca-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
	.ca-hero__badge { left: 16px; bottom: 16px; }
	.ca-article-layout { grid-template-columns: minmax(0, 1fr); gap: 48px; }
	.ca-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ca-steps--h::before { display: none; }
	.ca-post--wide { flex-direction: column; }
	.ca-post--wide .ca-post__media { flex: none; aspect-ratio: 16 / 9; }
	.ca-quote { padding: 36px 32px; }
	.ca-cta { padding: 56px 36px; }
	.ca-servicerow { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}

@media (max-width: 767px) {
	.ca-leadform { padding: 24px 20px; }
	.ca-stat__value { font-size: clamp(2.5rem, 2rem + 4vw, 3.2rem); }
	.ca-stats__grid { gap: 30px 24px; }
	.ca-cs-meta { padding: 24px 22px; }
	.ca-quote { padding: 32px 24px; }
	.ca-leadform__topics-grid { grid-template-columns: minmax(0, 1fr); }
	.ca-sidebar { grid-template-columns: minmax(0, 1fr); }
	.ca-servicerow__cols { grid-template-columns: minmax(0, 1fr); }
	.ca-postnav { grid-template-columns: minmax(0, 1fr); }
	.ca-postnav__item--next { text-align: left; }
	.ca-cs-meta { padding: 22px; }
	.ca-cta { padding: 44px 24px; }
	.ca-newsletter { grid-template-columns: minmax(0, 1fr); }
	.ca-newsletter .ca-btn { width: 100%; }
	.ca-float { bottom: 16px; }
	.ca-float--right { right: 14px; }
	.ca-float--left { left: 14px; }
	.ca-float__btn { width: 46px; height: 46px; }
	.ca-article__thumb { margin-top: -24px; }
	.ca-industry { padding: 22px; gap: 14px; }
	.ca-quote::before { font-size: 8rem; right: 12px; }
	.ca-faq__q { padding: 18px 20px; font-size: 1rem; }
	.ca-faq__a-inner > div { padding: 0 20px 20px; }
}
