/*
Theme Name: animalintent
Theme URI: https://animalintent.com
Author: Animal Intent
Description: 轻量 FSE 主题：科学信赖型宠物科普站。与 Rank Math、区块编辑器深度配合；不修改文章固定链接。维护：改 front-page / header / footer 时请同步 local-preview/。
Version: 1.2.4
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: animalintent
*/

/* 基础重置与无障碍 */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background-color: var(--wp--preset--color--bg-primary, #fafaf8);
	color: var(--wp--preset--color--text-primary, #1a1a1a);
}

/* 页眉全宽：突破正文 contentSize，左右仅留适度内边距 */
#top.wp-block-group.alignfull {
	width: 100%;
	max-width: none !important;
	box-sizing: border-box;
	padding-left: clamp(1.75rem, 6vw, 3.75rem) !important;
	padding-right: clamp(1rem, 4vw, 2.5rem) !important;
}

/*
 * theme.json 为全局 core/group 设置了上下 spacing--60，页眉里多层 Group 会叠出过高白条。
 * 页眉内仅作布局，去掉纵向 padding，高度由 logo/标题/导航一行决定。
 */
#top.wp-block-group.alignfull .wp-block-group {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

#top .wp-block-site-title,
#top .wp-block-site-tagline {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

#top .wp-block-navigation,
#top .wp-block-search {
	margin-top: 0;
	margin-bottom: 0;
}

#top.wp-block-group.alignfull > .wp-block-group.is-layout-flex {
	width: 100%;
	max-width: none;
}

/* 页眉：左侧品牌 + 右侧「导航 + 搜索」同一行（搜索勿放在 navigation 内，否则 wrap 会把搜索挤到下一行） */
#top.wp-block-group > .wp-block-group.is-layout-flex {
	flex-wrap: nowrap;
	align-items: center;
}

#top.wp-block-group > .wp-block-group.is-layout-flex > .wp-block-group:first-child {
	flex-shrink: 0;
}

/* 桌面：副标题尽量一行，避免「Dog Health &」单独断行 */
@media (min-width: 782px) {
	#top .wp-block-site-tagline {
		white-space: nowrap;
	}
}

#top .animalintent-header-actions {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
}

#top .animalintent-header-actions .wp-block-navigation {
	flex: 1 1 auto;
	min-width: 0;
	justify-content: center;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

#top .animalintent-header-actions .wp-block-search {
	flex: 0 0 auto;
	width: min(100%, 15rem);
	max-width: 100%;
}

/* 导航链接不要被 flex 压成竖排字：每项保持一整行文案 */
#top .animalintent-header-actions .wp-block-navigation .wp-block-navigation-item {
	flex-shrink: 0;
	min-width: max-content;
}

#top .animalintent-header-actions .wp-block-navigation .wp-block-navigation-item__content,
#top .animalintent-header-actions .wp-block-navigation a {
	white-space: nowrap;
}

/* 主导航：字号与点击区域（区块默认 small 已改为 medium，此处再兜底） */
#top .animalintent-header-actions .wp-block-navigation {
	font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
	font-weight: 500;
	line-height: 1.4;
}

#top .animalintent-header-actions .wp-block-navigation .wp-block-navigation-item__content {
	padding: 0.35rem 0.5rem;
}

#top .animalintent-header-actions .wp-block-search .wp-block-search__input {
	min-height: 2.5rem;
	font-size: 1rem;
}

/* 品牌：标题与副标题分层（副标题勿与站点名同色同重，避免像重复一行） */
#top .wp-block-site-title a {
	font-size: clamp(1.2rem, 1.05rem + 0.45vw, 1.45rem);
	font-weight: 600;
	letter-spacing: -0.02em;
}

#top .wp-block-site-tagline {
	font-size: 0.8125rem !important;
	font-weight: 400;
}

/* 首页推荐区：归档快捷链接 */
.animalintent-archive-meta {
	font-weight: 500;
}

.animalintent-archive-meta a {
	font-size: 1.0625rem;
	text-underline-offset: 0.2em;
}

@media (max-width: 781px) {
	#top.wp-block-group > .wp-block-group.is-layout-flex {
		flex-wrap: wrap;
		row-gap: var(--wp--preset--spacing--40, 1rem);
	}

	#top .animalintent-header-actions {
		flex: 1 1 100%;
		flex-wrap: wrap;
		justify-content: flex-start;
		row-gap: var(--wp--preset--spacing--40, 1rem);
	}

	#top .animalintent-header-actions .wp-block-navigation {
		flex: 1 1 100%;
		justify-content: flex-start;
		overflow-x: visible;
	}

	/* 小屏允许导航链接换行（区块里为 nowrap，此处覆盖内层 flex） */
	#top .animalintent-header-actions .wp-block-navigation .wp-block-navigation__responsive-container-content {
		flex-wrap: wrap !important;
		row-gap: 0.35rem;
	}

	#top .animalintent-header-actions .wp-block-navigation .wp-block-navigation-item {
		min-width: 0;
	}

	#top .animalintent-header-actions .wp-block-navigation .wp-block-navigation-item__content,
	#top .animalintent-header-actions .wp-block-navigation a {
		white-space: normal;
	}

	#top .animalintent-header-actions .wp-block-search {
		width: 100%;
	}
}

/*
 * Flex 子项默认 min-width:auto 时，在窄栏 + 长单词下会出现「一字一行」假竖排。
 * 对 Columns / 横向 flex 统一允许收缩。
 */
.wp-block-columns .wp-block-column,
.wp-block-group.is-layout-flex > *,
.wp-block-group.is-horizontal > * {
	min-width: 0;
}

/* 全站正文兜底：与 .animalintent-page-body 双保险，对抗插件/旧 CSS */
main .wp-block-post-content,
main .entry-content {
	writing-mode: horizontal-tb;
	text-orientation: mixed;
	word-break: normal;
	overflow-wrap: break-word;
	max-width: 100%;
}

main .wp-block-post-content .wp-block-code,
main .wp-block-post-content pre {
	white-space: pre-wrap;
	word-break: break-word;
	writing-mode: horizontal-tb;
	max-width: 100%;
}

img,
video {
	max-width: 100%;
	height: auto;
}

/* 跳过导航：仅供屏幕阅读器 / 键盘用户 */
.skip-link.screen-reader-text {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999999;
	padding: 0.75rem 1rem;
	background: var(--wp--preset--color--accent-primary, #2b5f8a);
	color: #fff;
	text-decoration: none;
	font-family: var(--wp--preset--font-family--sans, inherit);
	font-weight: 600;
}

.skip-link.screen-reader-text:focus {
	left: 0.5rem;
	top: 0.5rem;
	outline: 2px solid var(--wp--preset--color--accent-highlight, #d97706);
	outline-offset: 2px;
}

/* 固定页/文章正文：强制横排阅读，避免误用 Code 区块或第三方 CSS 导致单字竖排 */
.animalintent-page-body .wp-block-post-content,
.animalintent-page-body .entry-content {
	writing-mode: horizontal-tb;
	text-orientation: mixed;
	word-break: normal;
	overflow-wrap: break-word;
}

.animalintent-page-body .wp-block-post-content .wp-block-code,
.animalintent-page-body .wp-block-post-content pre,
.entry-content .wp-block-code,
.entry-content pre {
	white-space: pre-wrap;
	word-break: break-word;
	writing-mode: horizontal-tb;
	max-width: 100%;
}

/* 单篇：theme.json 给 core/group 的上下 padding 会撑高标题区；免责卡片保留自身内边距 */
.animalintent-page-body > .wp-block-group:not(.animalintent-disclaimer-box) {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.animalintent-page-body .wp-block-post-title,
.animalintent-page-body h1.wp-block-post-title {
	margin-top: 0;
}

/* Easy TOC / 类似目录插件：与正文 contentSize 同宽（避免占满视口） */
.animalintent-page-body .animalintent-toc-slot .ez-toc-container,
.animalintent-page-body .animalintent-toc-slot #ez-toc-container,
.animalintent-page-body .animalintent-toc-slot .ez-toc-v2_0,
.animalintent-page-body .animalintent-toc-slot [id^="ez-toc"],
.animalintent-page-body .wp-block-post-content .ez-toc-container,
.animalintent-page-body .wp-block-post-content #ez-toc-container,
.animalintent-page-body .wp-block-post-content .ez-toc-v2_0,
.animalintent-page-body .wp-block-post-content [id^="ez-toc"],
.animalintent-page-body .wp-block-post-content #toc_container,
.animalintent-page-body .entry-content .ez-toc-container,
.animalintent-page-body .entry-content #ez-toc-container,
.animalintent-page-body .entry-content #toc_container {
	max-width: min(92vw, 880px) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
	float: none !important;
}

/* 表格横向滚动（正文内） */
.wp-block-post-content .wp-block-table,
.entry-content .wp-block-table {
	display: block;
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* 插件兼容：目录、作者框常见类名留白 */
.ez-toc-container,
.pp-author-box-wrap,
.rank-math-breadcrumb {
	margin-bottom: 1.5rem;
}

/* 返回顶部锚点目标留白 */
#top {
	scroll-margin-top: 1rem;
}

@media (max-width: 781px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr;
	}
}

/* 首页：文章卡片轻 hover（克制） */
.animalintent-home-card {
	transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
	.animalintent-home-card:hover {
		border-color: rgba(43, 95, 138, 0.35) !important;
		box-shadow: 0 10px 28px rgba(26, 26, 26, 0.08);
		transform: translateY(-2px);
	}
}

/* 首页 Hero：桌面略收紧高度，减少「大块空白」感 */
@media (min-width: 782px) {
	.animalintent-hero-band {
		min-height: 280px !important;
		padding-top: var(--wp--preset--spacing--80, 2rem) !important;
		padding-bottom: var(--wp--preset--spacing--80, 2rem) !important;
	}
}

/* 文章页：同分类随机推荐（短代码 animalintent_related_posts） */
.animalintent-related-posts {
	margin: 0;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--wp--preset--color--border-default, #e5e7eb);
	border-radius: 8px;
	background-color: var(--wp--preset--color--white, #fff);
}

.animalintent-related-posts__title {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--serif, "Lora", Georgia, serif);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--wp--preset--color--text-primary, #1a1a1a);
}

.animalintent-related-posts__list {
	margin: 0;
	padding-left: 1.25rem;
	list-style: disc;
}

.animalintent-related-posts__item {
	margin-bottom: 0.5rem;
	line-height: 1.6;
}

.animalintent-related-posts__item:last-child {
	margin-bottom: 0;
}

.animalintent-related-posts__link {
	font-family: var(--wp--preset--font-family--sans, "Inter", system-ui, sans-serif);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.animalintent-related-posts__link:hover {
	text-decoration-thickness: 2px;
}

.animalintent-related-posts__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-highlight, #d97706);
	outline-offset: 2px;
}

/* 首页推荐文章：短代码 animalintent_popular_posts — 大屏 5 列，缩略图固定比例不拉伸 */
.animalintent-popular-wrap {
	width: 100%;
	max-width: none;
}

.animalintent-popular-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--60, 1.5rem);
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 600px) {
	.animalintent-popular-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.animalintent-popular-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1200px) {
	.animalintent-popular-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

.animalintent-popular-card {
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: var(--wp--preset--spacing--40, 1rem);
	background-color: var(--wp--preset--color--white, #fff);
	border: 1px solid var(--wp--preset--color--border-default, #e5e7eb);
	border-radius: 8px;
	transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
	.animalintent-popular-card:hover {
		border-color: rgba(43, 95, 138, 0.35);
		box-shadow: 0 10px 28px rgba(26, 26, 26, 0.08);
		transform: translateY(-2px);
	}
}

.animalintent-popular-card__media {
	position: relative;
	margin: 0 0 var(--wp--preset--spacing--40, 1rem);
	border-radius: 6px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background-color: var(--wp--preset--color--bg-primary, #fafaf8);
}

.animalintent-popular-card__media a {
	display: block;
	height: 100%;
}

.animalintent-popular-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	vertical-align: middle;
}

.animalintent-popular-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 8rem;
	background: linear-gradient(135deg, #e5e7eb, #f3f4f6);
}

.animalintent-popular-card__title {
	margin: 0 0 var(--wp--preset--spacing--30, 0.75rem);
	font-family: var(--wp--preset--font-family--serif, "Lora", Georgia, serif);
	font-size: clamp(1.05rem, 1rem + 0.2vw, 1.25rem);
	font-weight: 600;
	line-height: 1.35;
}

.animalintent-popular-card__title a {
	color: inherit;
	text-decoration: none;
}

.animalintent-popular-card__title a:hover {
	color: var(--wp--preset--color--accent-primary, #2b5f8a);
	text-decoration: underline;
}

.animalintent-popular-card__excerpt {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.55;
	color: #4b5563;
	flex: 1;
}

.animalintent-popular-empty {
	margin: 0;
	color: #4b5563;
	font-size: 0.9375rem;
}

/* 首页分类卡片：数据来自 WordPress「文章 → 分类」（category），短代码 animalintent_category_cards */
main .animalintent-browse-topics.alignfull {
	width: 100%;
	max-width: none !important;
	box-sizing: border-box;
}

.animalintent-category-cards-wrap {
	width: 100%;
	max-width: none;
	overflow: visible;
}

.animalintent-category-cards-grid {
	display: grid;
	width: 100%;
	max-width: none;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	gap: var(--wp--preset--spacing--60, 1.5rem);
	grid-template-columns: 1fr;
	justify-items: stretch;
}

@media (min-width: 560px) {
	.animalintent-category-cards-grid {
		grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	}
}

.animalintent-category-card {
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: var(--wp--preset--spacing--50, 1.25rem);
	border: 1px solid var(--wp--preset--color--border-default, #e5e7eb);
	border-radius: 8px;
	background-color: var(--wp--preset--color--bg-primary, #fafaf8);
	transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.animalintent-category-card--alt {
	background-color: #fff8f0;
}

@media (hover: hover) and (pointer: fine) {
	.animalintent-category-card:hover {
		border-color: rgba(43, 95, 138, 0.35);
		box-shadow: 0 10px 28px rgba(26, 26, 26, 0.08);
		transform: translateY(-2px);
	}
}

.animalintent-category-card__title {
	margin: 0 0 var(--wp--preset--spacing--40, 1rem);
	font-family: var(--wp--preset--font-family--serif, "Lora", Georgia, serif);
	font-size: clamp(1.15rem, 1.05rem + 0.35vw, 1.35rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--wp--preset--color--text-primary, #1a1a1a);
}

.animalintent-category-card__desc {
	margin: 0 0 var(--wp--preset--spacing--40, 1rem);
	font-size: 0.875rem;
	line-height: 1.6;
	color: #4b5563;
	flex: 1;
}

.animalintent-category-card__action {
	margin: 0;
}

.animalintent-category-card__button {
	display: inline-block;
	padding: 0.5rem 1rem;
	border-radius: 4px;
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
	color: var(--wp--preset--color--white, #fff);
	background-color: var(--wp--preset--color--accent-primary, #2b5f8a);
	border: none;
	cursor: pointer;
	transition: filter 0.15s ease;
}

.animalintent-category-card--alt .animalintent-category-card__button {
	background-color: var(--wp--preset--color--accent-highlight, #d97706);
}

.animalintent-category-card__button:hover {
	filter: brightness(1.06);
	color: var(--wp--preset--color--white, #fff);
}

.animalintent-category-card__button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-highlight, #d97706);
	outline-offset: 2px;
}

.animalintent-category-cards-empty {
	margin: 0;
	text-align: center;
	color: #4b5563;
	font-size: 0.9375rem;
}

/* 页脚浅底：合规链接（与主题 footer 左对齐、可换行） */
.animalintent-footer-legal-strip .animalintent-footer-meta-links {
	white-space: normal;
	line-height: 1.55;
}

.animalintent-footer-legal-strip .animalintent-footer-meta-links a {
	white-space: nowrap;
}

/* 页脚深蓝区：Topics 一级分类横向链接（短代码 animalintent_footer_topic_links） */
.animalintent-footer-topic-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.15rem 0;
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
}

.animalintent-footer-topic-links a {
	color: #e5e7eb;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.animalintent-footer-topic-links a:hover {
	color: var(--wp--preset--color--white, #fff);
}

/* 页脚浅底：医疗免责 */
.animalintent-footer-legal-strip .animalintent-footer-medical {
	margin: 0;
	max-width: 42rem;
	margin-left: 0;
	margin-right: 0;
	color: #6b7280;
	line-height: 1.55;
	text-align: left;
}
