/* ===================================================================
   Downloads 资料下载 — 前台样式

   风格对齐首页（assets/home/home.css）：
     · 字体      Cabin 700 标题 + Open Sans 正文
     · 容器      min(1240px, 100% - 36px)
     · 卡片      白底 + #e7e9ee 描边 + 低阴影，hover 抬升 5px
     · 按钮      min-height 46px / radius 3px / Cabin 700 14px
     · 深色区块  --brand-dark-1，红色强调
     · 栅格      3 列 → 1180px 2 列 → 640px 1 列

   全站 style.css 已做 Eric Meyer reset（ol/ul 无 list-style，body line-height:1），
   故本文件需自行声明 line-height，但无需重置列表。
   所有选择器以 .page-downloads 作用域隔离，绝不外泄到导航/页脚/其它页面。
   =================================================================== */

.page-downloads {
	--dl-ink:        var(--brand-ink);
	--dl-text:       var(--brand-text);
	--dl-muted:      var(--brand-muted);
	--dl-line:       #e7e9ee;
	--dl-line-strong: var(--brand-line-strong);
	--dl-red:        var(--brand-red);
	--dl-red-dark:   var(--brand-red-dark);
	--dl-soft:       var(--brand-soft);
	--dl-dark:       var(--brand-dark-1);
	--dl-card-shadow: 0 10px 26px rgba(16, 24, 40, .06);
	--dl-card-shadow-hover: 0 18px 45px rgba(16, 24, 40, .12);

	font-family: "Open Sans", sans-serif;
	color: var(--dl-ink);
	line-height: 1.65;
	background: #fff;
}

.page-downloads *,
.page-downloads *::before,
.page-downloads *::after {
	box-sizing: border-box;
}

.page-downloads a {
	color: inherit;
	text-decoration: none;
}

/* 区块内统一容器 */
.page-downloads .dl-hero__inner,
.page-downloads .dl-list__inner,
.page-downloads .dl-cta__inner {
	width: min(1240px, calc(100% - 36px));
	margin: 0 auto;
}

/* ===================================================================
   Hero
   背景图由 PHP 以 inline style 注入到 section 上，
   故渐变遮罩必须走 ::before，不能占用 background-image。
   =================================================================== */
.page-downloads .dl-hero {
	position: relative;
	overflow: hidden;
	background-color: var(--dl-dark);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	color: #fff;
}

.page-downloads .dl-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0, 0, 0, .74) 0%, rgba(0, 0, 0, .52) 46%, rgba(0, 0, 0, .18) 100%);
}

/* 无背景图时用品牌斜向底纹，避免大片死黑 */
.page-downloads .dl-hero:not(.dl-hero--has-bg)::before {
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .30) 60%, rgba(0, 0, 0, 0) 100%),
		linear-gradient(135deg, #16233a 0%, var(--dl-dark) 52%, #1d2635 100%);
}

.page-downloads .dl-hero__inner {
	position: relative;
	z-index: 1;
	padding: clamp(64px, 7vw, 104px) 0 clamp(60px, 6.5vw, 96px);
	max-width: min(1240px, calc(100% - 36px));
}

.page-downloads .dl-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	margin: 0;
	padding: 0 12px;
	background: rgba(0, 86, 160, .9);
	color: #fff;
	font: 700 13px "Cabin", sans-serif;
	text-transform: uppercase;
}

.page-downloads .dl-hero__title {
	margin: 22px 0 0;
	max-width: 20ch;
	font: 700 clamp(34px, 4.2vw, 60px)/1.1 "Cabin", sans-serif;
	color: #fff;
}

/* 首页 line-pack 的红色阶梯装饰，标题下方分隔 */
.page-downloads .dl-hero__title::after {
	content: "";
	display: block;
	width: 60px;
	height: 4px;
	margin: 22px 0 0;
	background: var(--dl-red);
}

.page-downloads .dl-hero__lead {
	max-width: 74ch;
	margin: 22px 0 0;
	color: rgba(255, 255, 255, .88);
	font-size: clamp(15px, 1.2vw, 18px);
	line-height: 1.85;
}

/* ===================================================================
   List section
   =================================================================== */
.page-downloads .dl-list {
	padding: clamp(56px, 6vw, 88px) 0 clamp(64px, 7vw, 100px);
	background: #fff;
}

.page-downloads .dl-list__head {
	margin-bottom: 26px;
}

.page-downloads .dl-list__title {
	margin: 0;
	font: 700 clamp(26px, 2.6vw, 40px)/1.2 "Cabin", sans-serif;
	color: var(--dl-dark);
}

.page-downloads .dl-list__title::after {
	content: "";
	display: block;
	width: 52px;
	height: 4px;
	margin-top: 16px;
	background: var(--dl-red);
}

/* ---- 服务端回显提示（无 JS 路径 ?dl=…） ---- */
.page-downloads .dl-notice {
	margin: 0 0 24px;
	padding: 14px 18px;
	border-left: 4px solid var(--dl-red);
	background: var(--dl-soft);
	color: var(--dl-text);
	font-size: 14px;
}

.page-downloads .dl-notice--ok {
	border-left-color: #12805c;
	background: rgba(18, 128, 92, .07);
	color: #0d5f45;
}

.page-downloads .dl-notice--err {
	border-left-color: #b42318;
	background: rgba(180, 35, 24, .06);
	color: #912018;
}

/* ===================================================================
   Toolbar — 分类筛选 + 搜索
   =================================================================== */
.page-downloads .dl-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 30px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--dl-line);
}

.page-downloads .dl-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.page-downloads .dl-filter {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 38px;
	padding: 0 16px;
	border: 1px solid var(--dl-line);
	border-radius: 3px;
	background: #fff;
	color: var(--dl-text);
	font: 600 14px "Open Sans", sans-serif;
	white-space: nowrap;
	transition: border-color .18s ease, color .18s ease, background .18s ease;
}

.page-downloads .dl-filter:hover {
	border-color: var(--dl-red);
	color: var(--dl-red);
}

.page-downloads .dl-filter.is-active {
	border-color: var(--dl-red);
	background: var(--dl-red);
	color: #fff;
}

.page-downloads .dl-filter__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	background: var(--dl-soft);
	color: var(--dl-muted);
	font: 700 11px/1 "Open Sans", sans-serif;
	transition: background .18s ease, color .18s ease;
}

.page-downloads .dl-filter:hover .dl-filter__count {
	background: var(--brand-red-bg);
	color: var(--dl-red);
}

.page-downloads .dl-filter.is-active .dl-filter__count {
	background: rgba(255, 255, 255, .22);
	color: #fff;
}

/* ---- 搜索：input + button 拼接为一体（参照 blog 页） ---- */
.page-downloads .dl-search {
	display: flex;
	flex: 0 1 360px;
	min-width: 260px;
	border: 1px solid var(--dl-line);
	border-radius: 3px;
	background: #fff;
	overflow: hidden;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.page-downloads .dl-search:focus-within {
	border-color: var(--dl-red);
	box-shadow: 0 0 0 3px var(--brand-red-bg);
}

.page-downloads .dl-search input[type="search"] {
	flex: 1;
	min-width: 0;
	min-height: 42px;
	padding: 0 14px 0 38px;
	border: 0;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat left 12px center;
	color: var(--dl-ink);
	font: 400 15px "Open Sans", sans-serif;
	outline: 0;
	-webkit-appearance: none;
	appearance: none;
}

.page-downloads .dl-search input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
}

.page-downloads .dl-search input[type="search"]::placeholder {
	color: #9aa4b2;
}

.page-downloads .dl-search button {
	flex: 0 0 auto;
	min-height: 42px;
	padding: 0 20px;
	border: 0;
	background: var(--dl-red);
	color: #fff;
	font: 700 14px "Cabin", sans-serif;
	white-space: nowrap;
	cursor: pointer;
	transition: background .18s ease;
	-webkit-appearance: none;
	appearance: none;
}

.page-downloads .dl-search button:hover {
	background: var(--dl-red-dark);
}

/* JS 注入：搜索有值时的清除入口 */
.page-downloads .dl-search__clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 34px;
	border: 0;
	border-left: 1px solid var(--dl-line);
	background: #fff;
	color: var(--dl-muted);
	font: 400 18px/1 "Open Sans", sans-serif;
	cursor: pointer;
	transition: color .18s ease, background .18s ease;
}

.page-downloads .dl-search__clear:hover {
	background: var(--dl-soft);
	color: var(--dl-red);
}

/* ===================================================================
   Grid + card
   =================================================================== */
.page-downloads .dl-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.page-downloads .dl-card {
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	grid-template-areas:
		"icon body"
		"icon action";
	/* body 行吸收剩余高度，把 action 压到卡片底部 —— 同排卡片按钮共线。 */
	grid-template-rows: 1fr auto;
	gap: 0 18px;
	padding: 24px 22px;
	border: 1px solid var(--dl-line);
	background: #fff;
	box-shadow: var(--dl-card-shadow);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.page-downloads .dl-card:hover {
	transform: translateY(-5px);
	border-color: #dbe0e8;
	box-shadow: var(--dl-card-shadow-hover);
}

/* ---- 文件类型图标：折角文档块 + 扩展名 ---- */
.page-downloads .dl-card__icon {
	grid-area: icon;
	position: relative;
	align-self: start;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: 54px;
	height: 66px;
	padding-bottom: 9px;
	background: var(--dl-ext, #475467);
	color: #fff;
	font: 700 12px/1 "Cabin", sans-serif;
	letter-spacing: .03em;
	/* 右上角切出折角 */
	clip-path: polygon(0 0, 68% 0, 100% 22%, 100% 100%, 0 100%);
}

/* 折角翻起的浅色三角，完全落在父级 clip 区域内 */
.page-downloads .dl-card__icon::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 32%;
	height: 22%;
	background: rgba(255, 255, 255, .34);
	clip-path: polygon(0 0, 100% 100%, 0 100%);
}

/* 按扩展名着色 */
.page-downloads .dl-card[data-ext="pdf"]  { --dl-ext: #c0392b; }
.page-downloads .dl-card[data-ext="doc"],
.page-downloads .dl-card[data-ext="docx"],
.page-downloads .dl-card[data-ext="rtf"]  { --dl-ext: #1a5fb4; }
.page-downloads .dl-card[data-ext="xls"],
.page-downloads .dl-card[data-ext="xlsx"],
.page-downloads .dl-card[data-ext="csv"]  { --dl-ext: #1e7d44; }
.page-downloads .dl-card[data-ext="ppt"],
.page-downloads .dl-card[data-ext="pptx"] { --dl-ext: #c25100; }
.page-downloads .dl-card[data-ext="zip"],
.page-downloads .dl-card[data-ext="rar"],
.page-downloads .dl-card[data-ext="7z"]   { --dl-ext: #9a6700; }
.page-downloads .dl-card[data-ext="dwg"],
.page-downloads .dl-card[data-ext="dxf"]  { --dl-ext: #6b21a8; }
.page-downloads .dl-card[data-ext="txt"]  { --dl-ext: #475467; }

.page-downloads .dl-card__body {
	grid-area: body;
	min-width: 0;
}

.page-downloads .dl-card__title {
	margin: 0;
	font: 700 19px/1.35 "Cabin", sans-serif;
	color: var(--dl-dark);
	overflow-wrap: anywhere;
}

.page-downloads .dl-card__desc {
	margin: 10px 0 0;
	color: var(--dl-muted);
	font-size: 14px;
	line-height: 1.75;
}

/* ---- 元信息：扩展名 / 体积 / 日期 / 次数 ---- */
.page-downloads .dl-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin: 16px 0 0;
	padding: 0;
	color: var(--dl-muted);
	font-size: 13px;
	line-height: 1.5;
}

.page-downloads .dl-card__meta li {
	display: inline-flex;
	align-items: center;
}

.page-downloads .dl-card__meta li + li::before {
	content: "";
	width: 1px;
	height: 12px;
	margin-right: 10px;
	background: var(--dl-line-strong);
}

/* ---- 分类标签 ---- */
.page-downloads .dl-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 14px 0 0;
	padding: 0;
}

.page-downloads .dl-card__tags li {
	padding: 3px 10px;
	background: var(--brand-red-bg);
	color: var(--dl-red);
	font: 600 12px/1.6 "Open Sans", sans-serif;
}

.page-downloads .dl-card__action {
	grid-area: action;
	align-self: end;
	margin-top: 20px;
}

/* ===================================================================
   Buttons — .dl-btn 同时作用于 summary / a / button 三种元素
   =================================================================== */
.page-downloads .dl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 46px;
	padding: 0 22px;
	border: 1px solid var(--dl-red);
	border-radius: 3px;
	background: var(--dl-red);
	color: #fff;
	font: 700 14px "Cabin", sans-serif;
	text-align: center;
	cursor: pointer;
	transition: background .2s ease, border-color .2s ease, transform .2s ease, color .2s ease;
	-webkit-appearance: none;
	appearance: none;
	/* summary 需要去掉三角标记 */
	list-style: none;
}

.page-downloads .dl-btn::-webkit-details-marker {
	display: none;
}

.page-downloads .dl-btn::marker {
	content: "";
}

.page-downloads .dl-btn:hover {
	background: var(--dl-red-dark);
	border-color: var(--dl-red-dark);
	color: #fff;
	transform: translateY(-1px);
}

.page-downloads .dl-btn:focus-visible {
	outline: 2px solid var(--brand-red-bright);
	outline-offset: 2px;
}

/* 卡片上的下载入口：带下载箭头图标，撑满卡片宽度 */
.page-downloads .dl-card__action .dl-btn {
	width: 100%;
}

.page-downloads .dl-card__action > .dl-btn::before,
.page-downloads .dl-gate > .dl-btn::before {
	content: "";
	width: 16px;
	height: 16px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E") no-repeat center / contain;
	flex: 0 0 auto;
}

/* ===================================================================
   Gate — 无 JS 时 <details> 内联展开；有 JS 时升级为 <dialog> 弹窗
   =================================================================== */
.page-downloads .dl-gate {
	display: block;
}

.page-downloads .dl-gate > .dl-btn {
	width: 100%;
}

/* 无 JS：表单在卡片内展开 */
.page-downloads .dl-gate[open] > .dl-form {
	margin-top: 16px;
	padding-top: 18px;
	border-top: 1px solid var(--dl-line);
}

/* ===================================================================
   Form
   =================================================================== */
.page-downloads .dl-form {
	width: 100%;
	text-align: left;
}

.page-downloads .dl-form__title {
	margin: 0;
	font: 700 20px/1.3 "Cabin", sans-serif;
	color: var(--dl-dark);
}

.page-downloads .dl-form__lead {
	margin: 8px 0 0;
	color: var(--dl-muted);
	font-size: 13px;
	line-height: 1.7;
}

.page-downloads .dl-field {
	display: grid;
	gap: 6px;
	margin: 16px 0 0;
}

.page-downloads .dl-field label {
	color: var(--dl-text);
	font: 600 13px "Open Sans", sans-serif;
}

.page-downloads .dl-field label span {
	color: var(--dl-red);
}

.page-downloads .dl-field input {
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--dl-line-strong);
	border-radius: 3px;
	background: #fff;
	color: var(--dl-ink);
	font: 400 15px "Open Sans", sans-serif;
	transition: border-color .18s ease, box-shadow .18s ease;
	-webkit-appearance: none;
	appearance: none;
}

.page-downloads .dl-field input:focus {
	outline: 0;
	border-color: var(--dl-red);
	box-shadow: 0 0 0 3px var(--brand-red-bg);
}

.page-downloads .dl-field input:invalid:not(:placeholder-shown) {
	border-color: #d92d20;
}

.page-downloads .dl-form__actions {
	margin: 22px 0 0;
}

.page-downloads .dl-form__actions .dl-btn {
	width: 100%;
}

.page-downloads .dl-btn[disabled],
.page-downloads .dl-btn[aria-disabled="true"] {
	opacity: .6;
	pointer-events: none;
}

.page-downloads .dl-form__privacy {
	margin: 14px 0 0;
	color: var(--dl-muted);
	font-size: 12px;
	line-height: 1.7;
}

/* JS 注入的提交结果提示 */
.page-downloads .dl-form__status {
	margin: 16px 0 0;
	padding: 12px 14px;
	border-left: 3px solid var(--dl-line-strong);
	background: var(--dl-soft);
	color: var(--dl-text);
	font-size: 13px;
	line-height: 1.7;
}

.page-downloads .dl-form__status--ok {
	border-left-color: #12805c;
	background: rgba(18, 128, 92, .08);
	color: #0d5f45;
}

.page-downloads .dl-form__status--err {
	border-left-color: #b42318;
	background: rgba(180, 35, 24, .07);
	color: #912018;
}

.page-downloads .dl-form__status a {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
}

/* ===================================================================
   Modal（<dialog>，原生 top-layer，无需与导航争 z-index）
   =================================================================== */
.page-downloads .dl-modal {
	width: min(460px, calc(100% - 32px));
	max-height: min(88vh, 760px);
	margin: auto;
	padding: 0;
	border: 0;
	background: #fff;
	color: var(--dl-ink);
	box-shadow: 0 30px 70px rgba(16, 24, 40, .28);
	overflow: visible;
}

.page-downloads .dl-modal::backdrop {
	background: rgba(16, 24, 40, .62);
}

.page-downloads .dl-modal__inner {
	max-height: min(88vh, 760px);
	padding: 28px 26px 26px;
	overflow-y: auto;
}

/* 文件名条：告诉用户正在下载哪一份 */
.page-downloads .dl-modal__file {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 18px;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--dl-line);
	color: var(--dl-muted);
	font-size: 13px;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.page-downloads .dl-modal__file strong {
	color: var(--dl-dark);
	font-weight: 700;
}

.page-downloads .dl-modal__close {
	position: absolute;
	top: -14px;
	right: -14px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 1px solid var(--dl-line);
	border-radius: 50%;
	background: #fff;
	color: var(--dl-text);
	font: 400 20px/1 "Open Sans", sans-serif;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(16, 24, 40, .16);
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.page-downloads .dl-modal__close:hover {
	border-color: var(--dl-red);
	background: var(--dl-red);
	color: #fff;
}

/* ===================================================================
   Pagination — nav 内直接是 a / span，无 ul 包裹
   =================================================================== */
.page-downloads .dl-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: 44px;
}

.page-downloads .dl-pagination a,
.page-downloads .dl-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border: 1px solid var(--dl-line);
	border-radius: 3px;
	background: #fff;
	color: var(--dl-text);
	font: 600 14px "Open Sans", sans-serif;
	transition: border-color .18s ease, color .18s ease, background .18s ease;
}

.page-downloads .dl-pagination a:hover {
	border-color: var(--dl-red);
	color: var(--dl-red);
}

.page-downloads .dl-pagination .current {
	border-color: var(--dl-red);
	background: var(--dl-red);
	color: #fff;
}

.page-downloads .dl-pagination .dots {
	border-color: transparent;
	background: transparent;
	color: var(--dl-muted);
}

/* ===================================================================
   Empty state
   =================================================================== */
.page-downloads .dl-empty {
	margin: 0;
	padding: 64px 24px;
	border: 1px dashed var(--dl-line-strong);
	background: var(--dl-soft);
	color: var(--dl-muted);
	font-size: 15px;
	line-height: 1.8;
	text-align: center;
}

/* ===================================================================
   CTA
   =================================================================== */
.page-downloads .dl-cta {
	padding: clamp(56px, 6vw, 88px) 0;
	background: var(--dl-dark);
	color: #fff;
}

/* 文案左列（标题 + 说明），按钮右列纵向居中 —— 参照 FAQ CTA 的排布。
   三个子元素在 PHP 里都是可选的，故用显式行列而非 grid-template-areas：
   任何一个缺失时剩下的仍落在正确格位。 */
.page-downloads .dl-cta__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px 40px;
}

.page-downloads .dl-cta__title {
	grid-column: 1;
	grid-row: 1;
	margin: 0;
	font: 700 clamp(24px, 2.3vw, 34px)/1.25 "Cabin", sans-serif;
	color: #fff;
}

.page-downloads .dl-cta__lead {
	grid-column: 1;
	grid-row: 2;
	max-width: 78ch;
	margin: 0;
	color: rgba(255, 255, 255, .78);
	font-size: 15px;
	line-height: 1.85;
}

.page-downloads .dl-cta .dl-btn {
	grid-column: 2;
	/* span 2 而非 1 / -1：本容器未声明 grid-template-rows，行全是隐式的，
	   而 -1 只认显式网格的最后一条线，会退化成只占第 1 行。 */
	grid-row: 1 / span 2;
	align-self: center;
	min-height: 48px;
	white-space: nowrap;
}

/* ===================================================================
   Responsive — 1180 / 989 / 640，与首页断点一致
   =================================================================== */
@media (max-width: 1180px) {
	.page-downloads .dl-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 989px) {
	.page-downloads .dl-toolbar {
		justify-content: flex-start;
	}

	.page-downloads .dl-search {
		flex: 1 1 100%;
	}
}

@media (max-width: 640px) {
	.page-downloads .dl-hero__inner,
	.page-downloads .dl-list__inner,
	.page-downloads .dl-cta__inner {
		width: min(100% - 28px, 1240px);
	}

	.page-downloads .dl-hero__title {
		max-width: none;
	}

	.page-downloads .dl-grid {
		grid-template-columns: 1fr;
	}

	.page-downloads .dl-card {
		padding: 20px 18px;
		gap: 0 14px;
		grid-template-columns: 46px minmax(0, 1fr);
	}

	.page-downloads .dl-card__icon {
		width: 46px;
		height: 56px;
		font-size: 11px;
	}

	.page-downloads .dl-card__title {
		font-size: 17px;
	}

	/* CTA 单列堆叠：按钮落到文案下方并撑满 */
	.page-downloads .dl-cta__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	.page-downloads .dl-cta__title,
	.page-downloads .dl-cta__lead,
	.page-downloads .dl-cta .dl-btn {
		grid-column: 1;
	}

	.page-downloads .dl-cta__title { grid-row: 1; }
	.page-downloads .dl-cta__lead  { grid-row: 2; }

	.page-downloads .dl-cta .dl-btn {
		grid-row: 3;
		width: 100%;
	}

	.page-downloads .dl-modal__inner {
		padding: 24px 18px 22px;
	}

	.page-downloads .dl-modal__close {
		top: 8px;
		right: 8px;
		box-shadow: none;
	}
}

/* 极窄屏：图标退到标题上方，避免正文被挤成竖条 */
@media (max-width: 380px) {
	.page-downloads .dl-card {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"icon"
			"body"
			"action";
		gap: 0;
	}

	.page-downloads .dl-card__icon {
		margin-bottom: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.page-downloads .dl-card,
	.page-downloads .dl-btn,
	.page-downloads .dl-filter,
	.page-downloads .dl-pagination a {
		transition: none;
	}

	.page-downloads .dl-card:hover,
	.page-downloads .dl-btn:hover {
		transform: none;
	}
}
