/* News 卡片、列表与详情；末尾覆盖保持在响应式基础规则之后。 */

.pattrix-news-grid .wp-block-post-template {
	display: contents;
}

.pattrix-news-grid .wp-block-post {
	margin: 0;
}
/*
   首页各分区

   各区共享同一套留白与强调色，新增分区必须复用而非另立数值。 */

.pattrix-index-two { width: min(100% - 48px, var(--pattrix-layout-home)); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(48px, 5vw, 76px) 30px; margin: 0 auto; padding: clamp(56px, 4.5vw, 72px) 0 clamp(88px, 8vw, 120px); }
.pattrix-index-two-card { min-width: 0; color: var(--pattrix-color-text); }
.pattrix-index-two-media { position: relative; aspect-ratio: var(--pattrix-media-frame-ratio, 2 / 1); overflow: hidden; background: var(--pattrix-color-surface); }
.pattrix-index-two-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform var(--pattrix-duration-enter) var(--pattrix-ease-out); }
.pattrix-index-two-card:hover .pattrix-index-two-media img, .pattrix-index-two-card:focus-within .pattrix-index-two-media img { transform: scale(1.035); }
.pattrix-index-two-copy { padding-top: 17px; }
.pattrix-index-two-copy h2 { position: relative; display: block; width: fit-content; max-width: 100%; margin: 0; padding-bottom: 9px; color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--sans); font-size: clamp(20px, 1.6vw, 26px); font-weight: 600; line-height: 1.22; letter-spacing: 0; }
.pattrix-index-two-copy h2::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: currentColor; transform: scaleX(0); transform-origin: left center; transition: transform var(--pattrix-duration-enter) var(--pattrix-ease-out); }
.pattrix-index-two-card:hover .pattrix-index-two-copy h2::after, .pattrix-index-two-card:focus-within .pattrix-index-two-copy h2::after { transform: scaleX(1); }
.pattrix-index-two-copy p { display: -webkit-box; margin: 12px 0 0; overflow: hidden; color: var(--pattrix-color-text-muted); font-size: clamp(14px, 1.05vw, 17px); line-height: 1.72; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.pattrix-index-two-card--placeholder .pattrix-index-two-media { display: grid; place-items: center; border: 1px solid var(--pattrix-color-border-strong); background: var(--pattrix-color-surface); color: var(--pattrix-color-text-muted); }
.pattrix-index-two-card--placeholder .pattrix-index-two-media::before { content: ""; position: absolute; inset: 12%; border: 1px solid var(--pattrix-color-border-strong); }
.pattrix-index-two-card--placeholder .pattrix-index-two-media span { position: relative; z-index: 1; padding: 8px 12px; background: var(--pattrix-color-surface); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }

@media (max-width: 640px) {
	.pattrix-index-two { width: min(100% - 32px, var(--pattrix-layout-home)); grid-template-columns: 1fr; gap: 52px; padding-top: 48px; padding-bottom: 80px; }
}

.pattrix-home-news { background: #efe6dd; }
.pattrix-news-archive { background: var(--pattrix-color-bg); }
.pattrix-home-news { padding: clamp(56px, 6vw, 96px) 0; }
.pattrix-home-news-heading { display: flex; align-items: baseline; justify-content: space-between; gap: var(--wp--preset--spacing--30); margin-bottom: clamp(32px, 4vw, 56px); }
.pattrix-home-news h2 { margin: 0; color: #1b1b18; font-family: var(--wp--preset--font-family--display); font-weight: 500; line-height: 1; }
.pattrix-home-news h2 { font-size: clamp(34px, 4vw, 58px); }
.pattrix-home-news-link { color: #1b1b18; font-family: var(--wp--preset--font-family--sans); font-size: var(--wp--preset--font-size--small); font-weight: 600; text-decoration: none; transition: color var(--pattrix-duration-fast) var(--pattrix-ease-out); }
.pattrix-news-archive .pattrix-news-grid { width: min(calc(100% - 100px), 1200px); padding-top: clamp(48px, 7vw, 96px); }
.pattrix-news-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.pattrix-news-card { min-width: 0; }
.pattrix-news-card-link { display: block; color: var(--pattrix-color-text); text-decoration: none; transition: color var(--pattrix-duration-fast) var(--pattrix-ease-out), transform var(--pattrix-duration-fast) var(--pattrix-ease-out); }
.pattrix-news-card-media { display: block; aspect-ratio: var(--pattrix-media-frame-ratio, 2 / 1); overflow: hidden; background: #f6f1eb; }
.pattrix-news-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform var(--pattrix-duration-base) var(--pattrix-ease-out); }
.pattrix-news-card-media--empty { border: 1px solid #1b1b1833; }
.pattrix-news-card-copy { display: block; padding-top: var(--wp--preset--spacing--30); }
.pattrix-news-card-title, .pattrix-news-card-excerpt { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.pattrix-news-card-title { color: inherit; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--large); font-weight: 600; line-height: 1.3; }
.pattrix-news-card-excerpt { margin-top: var(--wp--preset--spacing--20); color: var(--pattrix-color-text-muted); font-family: var(--wp--preset--font-family--sans); font-size: var(--wp--preset--font-size--medium); line-height: 1.6; }
.pattrix-news-card-link:active { transform: scale(.99); }
.pattrix-news-empty { grid-column: 1 / -1; margin: 0; color: #20201dbf; }
.pattrix-news-pagination { margin: clamp(48px, 7vw, 96px) 0; }
.pattrix-news-reading { width: min(100% - (2 * var(--pattrix-layout-gutter)), var(--pattrix-layout-content)); margin: clamp(48px, 7vw, 96px) auto; }
.pattrix-news-content img { display: block; max-width: 100%; height: auto; }
.pattrix-news-detail .pattrix-news-content { color: var(--pattrix-color-text-secondary); font-family: var(--wp--preset--font-family--sans); font-size: var(--wp--preset--font-size--medium); line-height: 1.6; }
.pattrix-news-content > :first-child { margin-top: 0; }
.pattrix-news-content > :last-child { margin-bottom: 0; }

@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
	.pattrix-home-news-link:hover { color: #b47250; }
	.pattrix-news-card-link:hover { color: #1b1b18; }
	.pattrix-news-card-link:hover .pattrix-news-card-media img { transform: scale(1.05); }
}

@media (max-width: 767px) {
	.pattrix-home-news-heading { align-items: flex-start; flex-direction: column; }
	.pattrix-news-archive .pattrix-news-grid { width: min(calc(100% - 60px), 1200px); }
	.pattrix-news-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
}

@media (prefers-reduced-motion: reduce) {
	.pattrix-news-card-link { transition-property: color; }
	.pattrix-news-card-media img { transition: none; }
	.pattrix-news-card-link:active { transform: none; }
}

/* 本组尺寸只作用于归档页；首页精选由下方 `.pattrix-index-two` 组覆盖。 */
.pattrix-news-card-media { height: 360px; margin-bottom: 0; aspect-ratio: auto; }
.pattrix-news-card-media--empty { display: grid; place-items: center; background: #f6f1eb; }
.pattrix-news-card-media--empty::before { content: ""; position: absolute; inset: 12%; border: 1px solid #1b1b1833; }
.pattrix-news-card-link { color: #1b1b18; }
/* 归档卡片文案区与首页精选同为透明外观：文案元素用 display:contents，
   不生成独立布局盒，米色面板的内衬与底色随之不适用，文案与图片左边缘对齐。
   文件末尾的 News 卡片块里另有 `.pattrix-news-grid .pattrix-news-card-media` 覆盖，
   把同一条的 `height: 360px` 与响应式 300/250px 一并改成 2:1。 */
.pattrix-news-card-date { display: block; margin-bottom: 8px; color: #20201da3; font-family: var(--wp--preset--font-family--sans); font-size: var(--wp--preset--font-size--small); line-height: 1.3; }
.pattrix-news-card-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--wp--preset--spacing--20); }
.pattrix-news-card-title,
.pattrix-news-card-excerpt { display: block; overflow: visible; -webkit-line-clamp: unset; }
.pattrix-news-card-heading .pattrix-news-card-title { min-width: 0; max-width: 450px; margin: 0 0 -5px; color: #1b1b18; font-size: 36px; font-weight: 500; line-height: 1.15; letter-spacing: -.02em; }
.pattrix-news-card-arrow { position: relative; display: block; flex: none; width: 10px; height: 10px; margin-left: 12px; overflow: hidden; }
.pattrix-news-card-arrow-a,
.pattrix-news-card-arrow-b { position: absolute; inset: 0; display: block; width: 10px; height: 10px; transition: transform var(--pattrix-duration-base) var(--pattrix-ease-out); }
.pattrix-news-card-arrow-a { transform: translate(120%, -120%); }
.pattrix-news-card-arrow-b { transform: translate(0, 0) rotate(180deg); }
.pattrix-news-card-rule { position: relative; display: block; height: 3px; margin: 20px 0 0; }
.pattrix-news-card-rule::before { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: #1b1b18; }
.pattrix-news-card-rule::after { content: ""; position: absolute; inset: 0; background: var(--pattrix-color-text); transform: scaleX(0); transform-origin: left center; transition: transform var(--pattrix-duration-base) var(--pattrix-ease-out); }
.pattrix-news-card-excerpt { max-width: 500px; margin-top: 10px; color: #20201da3; font-size: var(--wp--preset--font-size--body-large); line-height: 1.7; }

/* 焦点态与 hover 同效。 */
.pattrix-news-card-link:focus-visible .pattrix-news-card-arrow-a { transform: translate(0, 0); }
.pattrix-news-card-link:focus-visible .pattrix-news-card-arrow-b { transform: translate(-120%, 120%) rotate(180deg); }
.pattrix-news-card-link:focus-visible .pattrix-news-card-rule::after { transform: scaleX(1); }

@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
	.pattrix-news-card-link:hover .pattrix-news-card-arrow-a { transform: translate(0, 0); }
	.pattrix-news-card-link:hover .pattrix-news-card-arrow-b { transform: translate(-120%, 120%) rotate(180deg); }
	.pattrix-news-card-link:hover .pattrix-news-card-rule::after { transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
	.pattrix-news-card-arrow-a,
	.pattrix-news-card-arrow-b,
	.pattrix-news-card-rule::after { transition: none; }
}

/* 本组全部用 `.pattrix-index-two` 限定，只作用于首页精选区；归档页保持上方 News 卡片尺寸。 */
.pattrix-index-two .pattrix-news-card-media { height: auto; aspect-ratio: var(--pattrix-media-frame-ratio, 2 / 1); margin-bottom: 0; }
.pattrix-index-two .pattrix-news-card-copy { padding: 17px 0 0; background: none; }
/* 悬停下划线只作用于横线（span）与箭头（svg）：整卡链接的 text-decoration 若向下
   传给 time / h2 / p，三段文字会同时被画上下划线。 */
.pattrix-index-two .pattrix-news-card a:hover { text-decoration: none; }

/* 991px 前维持 1200px 内容列和 360px 图高；下列断点取自
   .content / .image-blog / h4 的实测值，只作用于归档页。 */
@media (max-width: 991px) {
	.pattrix-news-card-heading .pattrix-news-card-title { font-size: 30px; }
}

/* 标题和面包屑占用独立网格行；完整文章标题换行时导航不会覆盖标题。 */
.pattrix-page-hero-banner--news-single { min-height: var(--pattrix-hero-min-height); --pattrix-hero-min-height: 560px; grid-template-rows: 1fr auto; }
.pattrix-page-hero-banner--news-single .pattrix-page-hero-banner__content { align-items: center; padding: 56px 0; }
.pattrix-page-hero-banner--news-single .pattrix-page-hero-banner__copy { max-width: min(100%, 1040px); }
.pattrix-page-hero-banner--news-single .pattrix-page-hero-banner__eyebrow { margin: 0 0 24px; color: var(--pattrix-color-on-inverse); font-size: 14px; letter-spacing: 0; }
.pattrix-page-hero-banner--news-single h1 { max-width: 1040px; font-size: 48px; font-weight: 600; line-height: 1.15; letter-spacing: 0; overflow-wrap: anywhere; }
.pattrix-page-hero-banner--news-single .pattrix-page-hero-banner__scrim { background: rgb(8 12 14 / .34); }
.pattrix-page-hero-banner--news-single .pattrix-page-hero-banner__supplementary { padding-bottom: 32px; text-align: left; }
.pattrix-page-hero-banner--news-single .pattrix-page-hero-banner__breadcrumb { color: var(--pattrix-color-on-inverse); text-shadow: 0 1px 3px rgb(0 0 0 / .8); }
.pattrix-news-detail .pattrix-news-reading { margin-top: 60px; }

@media (max-width: 767px) {
	.pattrix-news-card-media { height: 300px; }
	.pattrix-news-card-heading .pattrix-news-card-title,
	.pattrix-news-card-excerpt { max-width: none; }
	.pattrix-news-card-heading .pattrix-news-card-title { font-size: 26px; }
	.pattrix-page-hero-banner--news-single { --pattrix-hero-min-height: 420px; }
	.pattrix-page-hero-banner--news-single .pattrix-page-hero-banner__content { padding: 40px 0; }
	.pattrix-page-hero-banner--news-single h1 { font-size: 34px; }
	.pattrix-page-hero-banner--news-single .pattrix-page-hero-banner__supplementary { padding-bottom: 24px; }
	.pattrix-news-detail .pattrix-news-reading { margin-top: 48px; }
}

@media (max-width: 479px) {
	.pattrix-news-archive .pattrix-news-grid { width: min(calc(100% - 32px), 1200px); }
	.pattrix-news-card-media { height: 250px; }
	.pattrix-news-card-heading .pattrix-news-card-title { font-size: 23px; }
}

/* 链接强调用 background-size 铺底而非 box-shadow —— box-shadow 在
   pattrix-news* 选择器内属硬禁令。 */
.pattrix-news-content blockquote { margin: 0 0 28px 15px; padding: 2px 24px; border-left: 1px solid var(--pattrix-color-brand); font-size: var(--wp--preset--font-size--body-large); font-style: italic; line-height: 1.65; }
.pattrix-news-content blockquote > :first-child { margin-top: 0; }
.pattrix-news-content blockquote > :last-child { margin-bottom: 0; }
.pattrix-news-content h3 { margin: clamp(32px, 4vw, 44px) 0 var(--wp--preset--spacing--30); color: var(--pattrix-color-text); font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-3); font-weight: 500; line-height: 1.2; }
.pattrix-news-content ul,
.pattrix-news-content ol { margin: 0 0 28px; padding-left: 22px; }
.pattrix-news-content li + li { margin-top: 8px; }
.pattrix-news-content figure { clear: both; width: 100%; max-width: 100%; margin: clamp(32px, 4vw, 48px) auto; }
.pattrix-news-content figure img { margin: 0 auto; }
.pattrix-news-content figcaption { display: block; margin-top: 12px; color: var(--pattrix-color-text-muted); font-size: var(--wp--preset--font-size--caption); line-height: 1.55; text-align: center; }
.pattrix-news-content a { color: var(--pattrix-color-text); text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-position: 0 100%; background-size: 100% 1px; transition: background-size var(--pattrix-duration-base) var(--pattrix-ease-out), color var(--pattrix-duration-base) var(--pattrix-ease-out); }
.pattrix-news-content a:focus-visible { color: var(--pattrix-color-on-inverse); background-image: linear-gradient(var(--pattrix-color-interaction), var(--pattrix-color-interaction)); background-size: 100% 100%; }

@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
	.pattrix-news-content a:hover { color: var(--pattrix-color-on-inverse); background-image: linear-gradient(var(--pattrix-color-interaction), var(--pattrix-color-interaction)); background-size: 100% 100%; }
}

.pattrix-news-cta { width: 100%; margin-bottom: 14px; color: var(--pattrix-color-text); background: var(--pattrix-color-bg); }
/* 媒体和文案共用一格，保留整幅场景；文案参与行高计算，放大文字时不被裁切。 */
.pattrix-news-cta-inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); min-height: max(300px, 25vw); width: 100%; }
.pattrix-news-cta-media { position: absolute; inset: 0; overflow: hidden; background: var(--pattrix-color-bg); }
.pattrix-news-cta-media picture { display: block; width: 100%; height: 100%; }
.pattrix-news-cta-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 65%; }
.pattrix-news-cta-body { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; box-sizing: border-box; width: 54%; padding: 32px 0 48px 6%; }
.pattrix-news-cta-eyebrow { margin: 0 0 12px; color: var(--pattrix-color-text-secondary); font-family: var(--pattrix-font-sans); font-size: clamp(11px, .9vw, 18px); font-weight: 600; letter-spacing: .15em; line-height: 1.4; text-transform: uppercase; }
.pattrix-news-cta-heading { max-width: 9em; margin: 0 0 12px; color: var(--pattrix-color-text); font-family: var(--pattrix-font-display); font-size: clamp(32px, 2.8vw, 64px); font-weight: 400; letter-spacing: 0; line-height: 1.04; }
.pattrix-news-cta-description { max-width: 32em; margin: 0 0 18px; color: var(--pattrix-color-text-secondary); font-family: var(--pattrix-font-sans); font-size: clamp(14px, 1.1vw, 23px); line-height: 1.5; }
.pattrix-news-cta-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; box-sizing: border-box; padding: 16px 24px; color: var(--pattrix-color-on-inverse); background: var(--pattrix-color-brand); font-family: var(--pattrix-font-sans); font-size: clamp(12px, .85vw, 18px); font-weight: 600; letter-spacing: .1em; line-height: 1.3; text-decoration: none; text-transform: uppercase; transition: background-color var(--pattrix-duration-base) var(--pattrix-ease-out); }
.pattrix-news-cta-button.is-unavailable { pointer-events: none; opacity: .65; }
.pattrix-news-cta-button-icon { --pattrix-icon-size: 16px; transition: transform var(--pattrix-duration-base) var(--pattrix-ease-out); }
.pattrix-news-cta-button:focus-visible { color: var(--pattrix-color-on-inverse); background: var(--pattrix-color-text); outline: 2px solid var(--pattrix-color-text); outline-offset: 4px; text-decoration: none; }
.pattrix-news-cta-button:focus-visible .pattrix-news-cta-button-icon { transform: translateX(3px); }

@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
	.pattrix-news-cta-button:hover { color: var(--pattrix-color-on-inverse); background: var(--pattrix-color-text); text-decoration: none; }
	.pattrix-news-cta-button:hover .pattrix-news-cta-button-icon { transform: translateX(3px); }
}

@media (max-width: 991px) {
	.pattrix-news-cta { margin-bottom: 10px; }
}

@media (max-width: 767px) {
	/* 窄屏把文案移出图片，避免文字覆盖座椅或要求读者在图片上找按钮。 */
	.pattrix-news-cta-inner { min-height: 0; }
	.pattrix-news-cta-body { grid-row: 1; width: 100%; padding: 32px 24px 24px; }
	.pattrix-news-cta-media { position: relative; inset: auto; grid-row: 2; height: clamp(200px, 52vw, 280px); }
	.pattrix-news-cta-media img { object-position: 82% center; }
	.pattrix-news-cta-eyebrow { margin-bottom: 10px; font-size: 11px; }
	.pattrix-news-cta-heading { max-width: 11em; margin-bottom: 12px; font-size: clamp(30px, 5vw, 36px); }
	.pattrix-news-cta-description { max-width: 28em; margin-bottom: 18px; font-size: 14px; }
}

@media (max-width: 479px) {
	.pattrix-news-cta { margin-bottom: 6px; }
}

@media (prefers-reduced-motion: reduce) {
	.pattrix-news-cta-button,
	.pattrix-news-cta-button-icon { transition: none !important; }
}

/*
   滚动入场 */

/* 滚动入场淡入。门控类由 JS 添加：JS 未执行时没有 .pattrix-reveal-ready，
   元素保持正常可见 —— 绝不能把 opacity:0 写死在标记的内联样式里，
   那样脚本一失败整屏白屏。 */
.pattrix-news-grid.pattrix-reveal-ready .pattrix-reveal-item,
.pattrix-index-two.pattrix-reveal-ready .pattrix-reveal-item,
.pattrix-news-cta.pattrix-reveal-ready .pattrix-reveal-item,
.pattrix-page-hero-banner--news-single.pattrix-reveal-ready .pattrix-reveal-item { opacity: 0; transition: opacity var(--pattrix-duration-fade) var(--pattrix-ease-standard); transition-delay: var(--pattrix-reveal-delay, 0ms); }
.pattrix-news-grid.pattrix-reveal-ready .pattrix-reveal-item.is-visible,
.pattrix-index-two.pattrix-reveal-ready .pattrix-reveal-item.is-visible,
.pattrix-news-cta.pattrix-reveal-ready .pattrix-reveal-item.is-visible,
.pattrix-page-hero-banner--news-single.pattrix-reveal-ready .pattrix-reveal-item.is-visible { opacity: 1; }

/* 新闻详情：标题先出现 → 正文轻微上移淡入。 */
.pattrix-news-detail.pattrix-news-reveal-ready .pattrix-news-reveal-item {
	opacity: 0;
	transform: translateY(10px);
}

.pattrix-news-detail.pattrix-news-reveal-ready .pattrix-news-reveal-item.is-visible {
	animation: pattrix-news-fade-in 0.48s var(--pattrix-ease-standard) forwards;
	animation-delay: var(--pattrix-news-delay, 0ms);
}

@keyframes pattrix-news-fade-in {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pattrix-news-grid.pattrix-reveal-ready .pattrix-reveal-item,
	.pattrix-index-two.pattrix-reveal-ready .pattrix-reveal-item,
	.pattrix-news-cta.pattrix-reveal-ready .pattrix-reveal-item,
	.pattrix-page-hero-banner--news-single.pattrix-reveal-ready .pattrix-reveal-item { opacity: 1; transition: none; }

	.pattrix-news-detail.pattrix-news-reveal-ready .pattrix-news-reveal-item {
		opacity: 1;
		transform: none;
		animation: none;
	}
}

/*
   News 卡片：按行统一内部结构，并让归档与首页精选取同一种外观

   本段**有意放在文件末尾**：下面要覆盖前面（含媒体查询里）的 .pattrix-news-grid /
   .pattrix-index-two 的 gap 声明，而媒体查询不增加权重 —— 同权重下靠出现顺序取胜。 */

/* 1) 按行统一：卡片内部走子网格
   卡片内部（媒体 / 日期 / 标题 / 规则线 / 摘要）各占父网格的一条行轨道，轨道高度取自
   该行内容最高的那张卡，于是同行卡片的规则线与摘要必然齐平。修掉的是实测 41.4px
   （= 标题一行）的参差：标题折成两行时，规则线与摘要在常规流里被整体下推一行。
   · <a> 与 copy 用 display:contents 把内部元素提升为卡片网格的直接子项。
     实测 Chrome 153 下 display:contents 的 <a> 仍以 link 角色出现在无障碍树里。
   · copy 不生成盒子（display:contents），面板内衬不由它承担：
     媒体与日期之间的 17px 改挂在日期上；面板与左右内衬按"与图片左边缘对齐"去掉。
   · 父网格的 row-gap 会作用到每一条内部轨道，故归零；行间距改由摘要的下外边距承担，
     值与各区块的行距一致，视觉节奏不变。 */
.pattrix-news-grid,
.pattrix-index-two { row-gap: 0; }
.pattrix-news-card { display: grid; grid-template-rows: subgrid; grid-row: span 5; }
.pattrix-news-card-link,
.pattrix-news-card-copy { display: contents; }
.pattrix-news-card-media { grid-row: 1; }
.pattrix-news-card-date { grid-row: 2; margin-top: 17px; }
.pattrix-news-card-heading { grid-row: 3; }
.pattrix-news-card-rule { grid-row: 4; }
.pattrix-news-card-excerpt { grid-row: 5; }
.pattrix-news-grid .pattrix-news-card-excerpt { margin-bottom: 14px; }
.pattrix-index-two .pattrix-news-card-excerpt { margin-bottom: clamp(48px, 5vw, 76px); }
@media (max-width: 767px) {
	.pattrix-news-grid .pattrix-news-card-excerpt { margin-bottom: 30px; }
}
@media (max-width: 640px) {
	.pattrix-index-two .pattrix-news-card-excerpt { margin-bottom: 52px; }
}

/* 2) 归档页与首页精选共用：媒体 2:1、文案透明。
      带 .pattrix-news-grid 前缀的选择器权重高于响应式里对 .pattrix-news-card-media
      的单类 height 覆盖（360 / 300 / 250px）。 */
.pattrix-news-grid .pattrix-news-card-media { height: auto; aspect-ratio: var(--pattrix-media-frame-ratio, 2 / 1); margin-bottom: 0; }

/* 行距只应出现在**行与行之间**，末行下面不该有。
   row-gap 天然只在行间生效；用摘要下外边距承担行距后，末行也会吃到一整份 ——
   "末行文字 → 下一区块"会多出 72px（首页）/ 14px（归档）。所以把末行归零。
   三类的选择器权重高于上面两条两类的行距声明，所以不依赖出现顺序。 */
/* -n+2 只在**两列**时成立（末行 = 最后两张）；一列时它会把倒数第二张也归零，
   把最后两行之间的行距吃掉（实测 390px 下归档 #6 / 首页 #2 的边距被误清）。
   故按各区块切到单列的断点分开写：归档 767px、首页 640px。 */
@media (min-width: 768px) {
	.pattrix-news-grid .pattrix-news-card:nth-last-child(-n+2) .pattrix-news-card-excerpt { margin-bottom: 0; }
}
@media (min-width: 641px) {
	.pattrix-index-two .pattrix-news-card:nth-last-child(-n+2) .pattrix-news-card-excerpt { margin-bottom: 0; }
}
@media (max-width: 767px) {
	.pattrix-news-grid .pattrix-news-card:last-child .pattrix-news-card-excerpt { margin-bottom: 0; }
}
@media (max-width: 640px) {
	.pattrix-index-two .pattrix-news-card:last-child .pattrix-news-card-excerpt { margin-bottom: 0; }
}
