/*
Theme Name:   果語未來 Astra Child
Description:  果語未來（fruturist.tw）部落格用的 Astra 子主題。
Author:       Sean Su
Template:     astra
Version:      0.1.0
Requires PHP: 8.1
Text Domain:  astra-child-fruturist
*/

/* ==========================================================================
   設計基準「田野筆記本」：米色紙感底、榴槤綠為主色、芒果黃點綴（取自 logo）。
   標題 Noto Serif TC、內文 Noto Sans TC（Astra 本機載入）。
   顏色對應 Astra 全域色票（外觀 > 自訂 > 全域 > 色彩），這裡只做命名。
   ========================================================================== */
:root {
	--fru-green: var(--ast-global-color-0, #2f5e3b);
	--fru-green-dark: var(--ast-global-color-1, #22472c);
	--fru-ink: var(--ast-global-color-2, #1f2a1f);
	--fru-text: var(--ast-global-color-3, #39413a);
	--fru-paper: var(--ast-global-color-4, #fffbf4);
	--fru-card: var(--ast-global-color-5, #ffffff);
	--fru-line: var(--ast-global-color-6, #e8dec8);
	--fru-dark: var(--ast-global-color-7, #16201a);
	--fru-mango: var(--ast-global-color-8, #f0a830);
	--fru-cream: #fef2e2; /* logo 底色 */
	--fru-leaf: #6f8f55;
	--fru-muted: #5d665c; /* 米色底上對比 5.9:1 */
	--fru-radius: 14px;
	--fru-shadow: 0 10px 28px rgba(31, 42, 31, 0.08);
	--fru-gutter: clamp(16px, 4vw, 32px);
	--fru-text-width: 720px;
	--fru-wide: 1120px;
}

/* 內文用各裝置內建的中文字（蘋方、微軟正黑、Android 的思源黑體），不必下載上 MB 的字型；
   只有標題載入 Noto Serif TC（Astra 本機提供，瀏覽器只抓用到的字）。 */
body,
button,
input,
select,
textarea {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang TC', 'Noto Sans CJK TC', 'Microsoft JhengHei', sans-serif;
}

body {
	background-color: var(--fru-paper);
	color: var(--fru-text);
	line-height: 1.85;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.entry-title {
	color: var(--fru-ink);
	letter-spacing: 0.02em;
	line-height: 1.4;
	/* 中文標題只在標點與空格處換行，太長時才任意斷行 */
	word-break: keep-all;
	overflow-wrap: anywhere;
	text-wrap: balance;
}

.entry-content p {
	text-wrap: pretty;
}

a {
	text-underline-offset: 0.18em;
}

/* 焦點外框：淺色底用深綠（芒果黃對米色只有 2:1），深色頁尾用芒果黃 */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 3px solid var(--fru-green);
	outline-offset: 3px;
	border-radius: 4px;
}

.site-footer a:focus-visible,
.site-footer button:focus-visible {
	outline-color: var(--fru-mango);
}

/* ---------- 頁首 ---------- */
.ast-primary-header-bar,
.ast-mobile-header-wrap .ast-primary-header-bar {
	background-color: var(--fru-cream);
	border-bottom: 1px solid var(--fru-line);
}

.site-branding .custom-logo-link img {
	border-radius: 10px;
}

.site-title,
.site-title a,
.site-title a:hover {
	font-family: 'Noto Serif TC', serif;
	font-weight: 700;
	font-size: 22px;
	color: var(--fru-green);
	letter-spacing: 0.12em;
}

.main-header-menu .menu-link {
	color: var(--fru-ink);
	font-weight: 500;
	letter-spacing: 0.04em;
}

.main-header-menu .menu-item:hover > .menu-link,
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current-menu-ancestor > .menu-link,
.main-header-menu .current-post-ancestor > .menu-link {
	color: var(--fru-green);
}

@media (min-width: 922px) {
	.main-header-menu > .menu-item > .menu-link {
		position: relative;
	}

	.main-header-menu > .current-menu-item > .menu-link::after,
	.main-header-menu > .current-post-ancestor > .menu-link::after,
	.main-header-menu > .current-menu-ancestor > .menu-link::after {
		content: '';
		position: absolute;
		left: 1em;
		right: 1em;
		bottom: 18px;
		height: 3px;
		border-radius: 3px;
		background: var(--fru-mango);
	}
}

.ast-header-search .astra-search-icon,
.ast-header-search .ast-search-menu-icon .search-submit {
	color: var(--fru-ink);
}

.ast-mobile-popup-drawer .ast-mobile-popup-inner,
.ast-mobile-popup-drawer .ast-mobile-popup-content,
.ast-mobile-popup-drawer .ast-mobile-popup-header {
	background-color: var(--fru-paper);
}

.ast-mobile-popup-drawer .main-header-menu .menu-link {
	font-size: 17px;
	border-color: var(--fru-line);
}

.ast-mobile-popup-drawer .main-header-menu .current-menu-item > .menu-link,
.ast-mobile-popup-drawer .main-header-menu .current-post-ancestor > .menu-link {
	color: var(--fru-green);
	font-weight: 700;
	box-shadow: inset 4px 0 0 var(--fru-mango);
}

/* ---------- 共用元件 ---------- */
.fru-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: var(--fru-green);
}

.fru-eyebrow + h1,
.fru-eyebrow + h2,
.fru-eyebrow + .wp-block-heading {
	margin-top: 0;
}

.fru-eyebrow::before {
	content: '';
	width: 28px;
	height: 3px;
	border-radius: 3px;
	background: var(--fru-mango);
}

.wp-block-button__link,
.ast-button,
.button {
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: none;
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 2px solid currentColor;
	background: transparent;
	color: var(--fru-green);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--fru-green);
	border-color: var(--fru-green);
	color: #fff;
}

.fru-more a,
a.fru-more {
	font-weight: 700;
	text-decoration: none;
}

.fru-more a::after,
a.fru-more::after {
	content: ' →';
}

/* 沒有精選圖片的文章：用 logo 圖紋當封面 */
.fru-cover-fallback,
:is(.archive, .search, .blog) .site-main .ast-article-post:not(.has-post-thumbnail) .post-content::before,
.fru-latest .wp-block-post:not(.has-post-thumbnail)::before,
.ast-related-post:not(.has-post-thumbnail) .ast-related-post-content::before {
	content: '';
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--fru-cream) url('img/mark.webp') center / 34% no-repeat;
}

/* ---------- 首頁 ---------- */
.home .site-content > .ast-container {
	padding: 0;
	max-width: none;
}

.home .site-content #primary {
	margin: 0;
	padding: 0;
}

.home .entry-header {
	display: none;
}

.home .entry-content > .alignfull {
	margin-top: 0;
	margin-bottom: 0;
}

.fru-section {
	padding: clamp(56px, 8vw, 104px) var(--fru-gutter);
}

.fru-section.is-layout-constrained > .alignwide,
.fru-section.is-layout-constrained > * {
	max-width: var(--fru-wide);
}

.fru-section h2 {
	font-size: clamp(26px, 3.2vw, 38px);
	margin-bottom: 0.5em;
}

.fru-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 8px 24px;
	margin-bottom: 28px;
}

.fru-section-head > * {
	margin: 0;
}

.fru-section-head h2 {
	margin: 0;
}

.fru-lead {
	font-size: clamp(17px, 1.6vw, 19px);
	color: var(--fru-text);
}

/* 主視覺 */
.fru-hero {
	background: var(--fru-cream);
	padding-top: clamp(32px, 6vw, 72px);
	padding-bottom: clamp(40px, 7vw, 88px);
}

.fru-hero .wp-block-columns {
	gap: clamp(28px, 5vw, 72px);
	margin-bottom: 0;
}

.fru-hero h1 {
	font-size: clamp(30px, 3.6vw, 44px);
	line-height: 1.3;
	margin: 0 0 0.45em;
}

.fru-hero h1 .fru-hl {
	background: linear-gradient(transparent 62%, rgba(240, 168, 48, 0.45) 62%);
}

.fru-hero .fru-lead {
	max-width: 34em;
	margin-bottom: 1.6em;
}

.fru-hero .fru-tags-inline {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 1.4em;
	padding: 0;
	list-style: none;
}

.fru-hero .fru-tags-inline li {
	margin: 0;
	padding: 4px 14px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--fru-line);
	font-size: 14px;
	font-weight: 500;
	color: var(--fru-green);
}

.fru-hero__photo {
	margin: 0;
}

.fru-hero__photo img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 45% 60%;
	border-radius: 24px;
	box-shadow: var(--fru-shadow);
}

@media (max-width: 781px) {
	.fru-hero .wp-block-column:has(.fru-hero__photo) {
		order: -1;
	}

	.fru-hero__photo img {
		aspect-ratio: 3 / 2;
		border-radius: 18px;
	}
}

/* 最新日誌（Query Loop） */
/* 間距用 WordPress 預設值：它計算欄寬時用的也是這個值，改了會少一欄 */
.fru-latest .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fru-latest .wp-block-post,
.fru-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--fru-card);
	border: 1px solid var(--fru-line);
	border-radius: var(--fru-radius);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.fru-latest .wp-block-post:hover,
.fru-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--fru-shadow);
}

.fru-latest .wp-block-post-featured-image {
	margin: 0;
}

.fru-latest .wp-block-post-featured-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
}

.fru-latest .wp-block-post > :not(.wp-block-post-featured-image) {
	margin-left: 20px;
	margin-right: 20px;
}

.fru-latest .wp-block-post-terms,
.fru-latest .wp-block-post-date {
	display: inline-block;
	margin-top: 18px;
	font-size: 14px;
	color: var(--fru-muted);
}

.fru-latest .wp-block-post-terms a {
	color: var(--fru-green);
	font-weight: 700;
	text-decoration: none;
}

.fru-latest .wp-block-post-title {
	margin-top: 6px;
	margin-bottom: 6px;
	font-size: 20px;
	line-height: 1.45;
}

.fru-latest .wp-block-post-title a {
	color: var(--fru-ink);
	text-decoration: none;
}

.fru-latest .wp-block-post-title a:hover {
	color: var(--fru-green);
}

.fru-latest .wp-block-post-excerpt {
	margin-bottom: 20px;
	font-size: 15px;
	color: var(--fru-muted);
}

.fru-latest .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0;
}

/* 主題入口 */
.fru-topics {
	background: var(--fru-card);
	border-top: 1px solid var(--fru-line);
	border-bottom: 1px solid var(--fru-line);
}

.fru-card .wp-block-image {
	margin: 0;
}

.fru-card .wp-block-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.fru-card__body {
	padding: 20px 22px 24px;
}

.fru-card__body > * {
	margin-top: 0;
}

.fru-card h3 {
	font-size: 21px;
	margin-bottom: 8px;
}

.fru-card h3 a {
	color: var(--fru-ink);
	text-decoration: none;
}

.fru-card h3 a::after {
	/* 整張卡片都可以點 */
	content: '';
	position: absolute;
	inset: 0;
}

.fru-card {
	position: relative;
}

.fru-card p {
	margin-bottom: 0;
	font-size: 15px;
	color: var(--fru-muted);
}

.fru-card .fru-count {
	display: inline-block;
	margin-top: 12px;
	font-size: 14px;
	font-weight: 700;
	color: var(--fru-green);
}

/* 果園與貢糖：左右排 */
.wp-block-columns.fru-split {
	gap: clamp(28px, 5vw, 64px);
}

.fru-split .wp-block-image img {
	width: 100%;
	border-radius: 20px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	box-shadow: var(--fru-shadow);
}

.fru-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 12px;
	margin: 0 0 1.6em;
	padding: 0;
	list-style: none;
}

.fru-facts li {
	margin: 0;
	padding: 14px 16px;
	background: var(--fru-card);
	border: 1px solid var(--fru-line);
	border-radius: 12px;
	font-size: 14px;
	color: var(--fru-muted);
	line-height: 1.5;
}

.fru-facts strong {
	display: block;
	font-family: 'Noto Serif TC', serif;
	font-size: 26px;
	color: var(--fru-green);
}

.fru-dog {
	background: var(--fru-cream);
}

/* 關於我引言 */
.fru-about {
	text-align: center;
}

.fru-about .fru-quote {
	max-width: 30em;
	margin: 0 auto 0.8em;
	font-family: 'Noto Serif TC', serif;
	font-size: clamp(22px, 2.8vw, 32px);
	line-height: 1.6;
	color: var(--fru-ink);
}

.fru-about .fru-quote::before {
	content: '「';
	color: var(--fru-mango);
}

.fru-about .fru-quote::after {
	content: '」';
	color: var(--fru-mango);
}

.fru-about .fru-sign {
	color: var(--fru-muted);
	margin-bottom: 1.6em;
}

.fru-about .wp-block-buttons {
	justify-content: center;
}

/* ---------- 麵包屑 ---------- */
.fru-breadcrumbs {
	margin: 0 0 18px;
	font-size: 14px;
	color: var(--fru-muted);
}

.single .fru-breadcrumbs,
.page .fru-breadcrumbs {
	max-width: var(--fru-text-width);
	margin-left: auto;
	margin-right: auto;
}

.fru-breadcrumbs p {
	margin: 0;
}

.fru-breadcrumbs a {
	color: var(--fru-muted);
	text-decoration: none;
}

.fru-breadcrumbs a:hover {
	color: var(--fru-green);
	text-decoration: underline;
}

.fru-breadcrumbs .separator {
	margin: 0 0.4em;
	color: var(--fru-line);
}

/* ---------- 文章列表（分類、標籤、搜尋） ---------- */
.ast-archive-description {
	background: var(--fru-cream);
	border: 1px solid var(--fru-line);
	border-radius: var(--fru-radius);
	padding: clamp(24px, 4vw, 40px) clamp(20px, 4vw, 44px);
	margin-bottom: 32px;
}

.category .ast-archive-description::before,
.tag .ast-archive-description::before {
	content: '分類';
	display: inline-block;
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: var(--fru-green);
}

.tag .ast-archive-description::before {
	content: '標籤';
}

.ast-archive-description .ast-archive-title,
.ast-archive-description .page-title {
	font-size: clamp(28px, 3.6vw, 40px);
	margin-bottom: 0.2em;
}

.ast-archive-description p {
	max-width: 40em;
	margin: 0;
	font-size: 17px;
	line-height: 1.8;
	color: var(--fru-text);
}

@media (max-width: 600px) {
	.ast-archive-description p {
		font-size: 15px;
	}
}

.ast-archive-description .taxonomy-description,
.ast-archive-description .ast-archive-description-inner {
	margin-top: 8px;
}

.archive .site-main > .ast-row,
.search .site-main > .ast-row,
.blog .site-main > .ast-row {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: clamp(16px, 2.4vw, 28px);
	margin: 0;
}

.archive .site-main > .ast-row::before,
.archive .site-main > .ast-row::after,
.search .site-main > .ast-row::before,
.search .site-main > .ast-row::after,
.blog .site-main > .ast-row::before,
.blog .site-main > .ast-row::after {
	display: none;
}

:is(.archive, .search, .blog) .site-main .ast-article-post {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .ast-article-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--fru-card);
	border: 1px solid var(--fru-line);
	border-radius: var(--fru-radius);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .ast-article-inner:hover {
	transform: translateY(-3px);
	box-shadow: var(--fru-shadow);
}

:is(.archive, .search, .blog) .site-main .ast-article-post .post-content {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 0 !important;
	width: 100%;
}

/* Astra 給卡片 1.5em 內距、再用負邊界讓圖片滿版；這裡改成卡片不留內距，文字各自加內距 */
:is(.archive, .search, .blog) .site-main .ast-article-post .ast-article-inner {
	padding: 0 !important;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .ast-blog-featured-section,
:is(.archive, .search, .blog) .site-main .ast-article-post .post-thumb-img-content {
	margin: 0 !important;
	padding: 0 !important;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .post-thumb-img-content img,
:is(.archive, .search, .blog) .site-main .ast-article-post .ast-blog-featured-section img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-header,
:is(.archive, .search, .blog) .site-main .ast-article-post .ast-excerpt-container,
:is(.archive, .search, .blog) .site-main .ast-article-post .ast-read-more-container {
	padding: 0 20px;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-header {
	padding-top: 18px;
	margin-bottom: 0;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-title {
	font-size: 20px;
	line-height: 1.45;
	margin: 0;
	padding: 18px 20px 4px;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-header {
	padding-top: 0 !important;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-title a {
	color: var(--fru-ink);
	text-decoration: none;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-title a::after {
	content: '';
	position: absolute;
	inset: 0;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-title a:hover {
	color: var(--fru-green);
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-meta,
:is(.archive, .search, .blog) .site-main .ast-article-post .entry-meta * {
	font-size: 14px;
	color: var(--fru-muted);
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-meta a {
	position: relative;
	z-index: 1; /* 分類連結要能單獨點 */
	color: var(--fru-green);
	font-weight: 700;
	text-decoration: none;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .ast-excerpt-container {
	flex: 1;
	padding-bottom: 20px;
	font-size: 15px;
	color: var(--fru-muted);
}

:is(.archive, .search, .blog) .site-main .ast-article-post .ast-excerpt-container p {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0;
}

:is(.archive, .search, .blog) .site-main .ast-article-post .ast-read-more-container,
:is(.archive, .search, .blog) .site-main .ast-article-post .entry-content:empty {
	display: none;
}

/* 分頁 */
.ast-pagination {
	margin-top: 40px;
}

.ast-pagination .page-numbers {
	border-radius: 999px;
	min-width: 40px;
}

.ast-pagination .page-numbers.current {
	background: var(--fru-green);
	border-color: var(--fru-green);
	color: #fff;
}

/* ---------- 單篇文章與頁面 ---------- */
.single .site-content > .ast-container,
.page:not(.home) .site-content > .ast-container {
	padding-top: clamp(24px, 4vw, 48px);
	padding-bottom: clamp(40px, 6vw, 72px);
}
.single .entry-header,
.page:not(.home) .entry-header {
	max-width: var(--fru-text-width);
	margin-left: auto;
	margin-right: auto;
	text-align: left;
}

.single .entry-title,
.page:not(.home) .entry-title {
	font-size: clamp(28px, 3.6vw, 40px);
	line-height: 1.35;
	margin-bottom: 10px;
}

.single .entry-meta,
.single .entry-meta * {
	font-size: 15px;
	color: var(--fru-muted);
}

.single .entry-meta a {
	color: var(--fru-green);
	font-weight: 700;
	text-decoration: none;
}

.single .entry-content,
.page:not(.home) .entry-content {
	font-size: 17px;
}

.single .entry-content > *,
.page:not(.home) .entry-content > * {
	max-width: var(--fru-text-width);
	margin-left: auto;
	margin-right: auto;
}

.single .entry-content > .alignwide,
.single .entry-content > .fru-photo-notes,
.page:not(.home) .entry-content > .alignwide {
	max-width: var(--fru-wide);
}

.single .entry-content > .alignfull,
.page:not(.home) .entry-content > .alignfull {
	max-width: none;
}

.entry-content h2 {
	font-size: clamp(24px, 2.8vw, 30px);
	margin-top: 1.8em;
}

.entry-content h3 {
	font-size: clamp(20px, 2.2vw, 24px);
	margin-top: 1.6em;
}

.entry-content blockquote,
.entry-content .wp-block-quote {
	border-left: 4px solid var(--fru-mango);
	background: var(--fru-cream);
	border-radius: 0 12px 12px 0;
	padding: 16px 22px;
	font-style: normal;
}

.entry-content .wp-block-table {
	overflow-x: auto;
}

.entry-content .wp-block-table table {
	min-width: 520px;
	border-collapse: collapse;
	font-size: 15px;
	background: var(--fru-card);
}

.entry-content .wp-block-table th,
.entry-content .wp-block-table td {
	border: 1px solid var(--fru-line);
	padding: 10px 12px;
	vertical-align: top;
}

.entry-content .wp-block-table thead th,
.entry-content .wp-block-table table:not(:has(thead)) tr:first-child td {
	background: var(--fru-cream);
	font-weight: 700;
	color: var(--fru-ink);
}

/* 單張照片：直式照片不要高過一個螢幕，點了再看大圖 */
.single .entry-content > .wp-block-image img {
	max-height: 78vh;
	width: auto;
	margin: 0 auto;
	border-radius: 12px;
}

/* 照片筆記：一句說明＋一張照片組成卡片（functions.php 輸出時組裝） */
.fru-photo-notes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(12px, 2vw, 22px);
	margin-top: 1.6em;
	margin-bottom: 2em;
}

.fru-photo-note {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--fru-card);
	border: 1px solid var(--fru-line);
	border-radius: 12px;
}

.fru-photo-note .wp-block-image {
	margin: 0;
}

.fru-photo-note .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 0;
}

.fru-photo-note > p {
	margin: 0;
	padding: 10px 14px 14px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--fru-text);
}

@media (max-width: 921px) {
	.fru-photo-notes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 400px) {
	.fru-photo-note > p {
		padding: 8px 10px 12px;
		font-size: 14px;
	}
}

/* 標籤、作者、上一篇下一篇 */
.fru-post-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	max-width: var(--fru-text-width);
	margin: 32px auto 0;
	font-size: 14px;
}

.fru-post-tags > span {
	color: var(--fru-muted);
	margin-right: 4px;
}

.fru-post-tags a {
	padding: 4px 14px;
	border-radius: 999px;
	background: var(--fru-cream);
	border: 1px solid var(--fru-line);
	color: var(--fru-green);
	text-decoration: none;
}

.fru-post-tags a:hover {
	background: var(--fru-green);
	border-color: var(--fru-green);
	color: #fff;
}

.fru-author {
	display: flex;
	gap: 16px;
	align-items: center;
	max-width: var(--fru-text-width);
	margin: 36px auto 0;
	padding: 18px 20px;
	background: var(--fru-cream);
	border: 1px solid var(--fru-line);
	border-radius: var(--fru-radius);
}

.fru-author img {
	flex: none;
	width: 64px;
	height: 64px;
	border-radius: 14px;
}

.fru-author p {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.fru-author strong {
	display: block;
	font-family: 'Noto Serif TC', serif;
	font-size: 17px;
	color: var(--fru-ink);
}

.single .post-navigation {
	max-width: var(--fru-text-width);
	margin: 32px auto 0;
	padding: 0;
	border: 0;
}

.single .post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.single .post-navigation .nav-previous,
.single .post-navigation .nav-next {
	width: auto;
	margin: 0;
	text-align: left;
}

.single .post-navigation .nav-next {
	grid-column: 2;
	text-align: right;
}

.single .post-navigation a {
	display: flex;
	flex-direction: column;
	gap: 4px;
	height: 100%;
	padding: 14px 18px;
	background: var(--fru-card);
	border: 1px solid var(--fru-line);
	border-radius: 12px;
	text-decoration: none;
}

.single .post-navigation a:hover {
	border-color: var(--fru-green);
}

.fru-post-nav__label {
	font-size: 13px;
	color: var(--fru-muted);
}

.fru-post-nav__title {
	font-weight: 700;
	line-height: 1.5;
	color: var(--fru-ink);
}

/* 延伸閱讀（Astra 相關文章） */
.ast-single-related-posts-container {
	max-width: var(--fru-wide);
	margin-left: auto !important;
	margin-right: auto !important;
	background: transparent !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.ast-related-posts-title {
	font-size: 24px !important;
}

.ast-related-post-content {
	overflow: hidden;
	background: var(--fru-card);
	border: 1px solid var(--fru-line);
	border-radius: var(--fru-radius);
}

.ast-related-post-content .post-thumb-img-content img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
}

.ast-related-post-content .entry-header {
	padding: 14px 18px 18px;
}

.ast-related-post-content .ast-related-post-title {
	font-size: 17px;
	line-height: 1.5;
}

.ast-related-post-content .ast-related-post-title a {
	color: var(--fru-ink);
	text-decoration: none;
}

/* ---------- 頁面元件（果園植株表、氣象站專案、貢糖） ---------- */
.fru-page-photo img {
	width: 100%;
	border-radius: 16px;
}

.entry-content .fru-facts {
	margin-top: 1.6em;
}

.fru-note {
	font-size: 14px;
	line-height: 1.7;
	color: var(--fru-muted);
}

.fru-quote-inline {
	border-left: 4px solid var(--fru-mango);
	padding: 6px 0 6px 18px;
	font-family: 'Noto Serif TC', serif;
	font-size: clamp(18px, 2vw, 21px);
	color: var(--fru-ink);
}

.entry-content .fru-post-links {
	margin: 0 auto 2em;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--fru-line);
}

.fru-post-links li {
	display: grid;
	grid-template-columns: 6.5em minmax(0, 1fr);
	column-gap: 12px;
	margin: 0;
	padding: 12px 0;
	border-bottom: 1px solid var(--fru-line);
}

.fru-post-links li > a,
.fru-post-links li > .fru-post-links__note {
	grid-column: 2;
}

.fru-post-links li > a:first-child {
	grid-column: 1 / -1;
}

.fru-post-links__label {
	font-size: 14px;
	color: var(--fru-muted);
	font-variant-numeric: tabular-nums;
}

.fru-post-links a {
	font-weight: 700;
	text-decoration: none;
}

.fru-post-links a:hover {
	text-decoration: underline;
}

.fru-post-links__note {
	font-size: 14px;
	color: var(--fru-muted);
}

/* 時間軸：日期前面一個芒果黃圓點 */
.fru-timeline .fru-post-links__label::before {
	content: '';
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 8px;
	border-radius: 50%;
	background: var(--fru-mango);
	vertical-align: middle;
}

.entry-content .fru-orchard-table td:first-child,
.entry-content .fru-device-table td:first-child {
	white-space: nowrap;
}

.entry-content .fru-orchard-table table {
	min-width: 0;
}

/* 相簿：核心相簿是伸縮排列，照片比例不同時大小不一；改成等大的方格 */
.entry-content .wp-block-gallery.fru-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 1.6em;
	margin-bottom: 2em;
}

.entry-content .wp-block-gallery.fru-gallery > figure.wp-block-image {
	width: auto !important;
	margin: 0 !important;
}

.entry-content .wp-block-gallery.fru-gallery img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 10px;
}

@media (max-width: 600px) {
	.entry-content .wp-block-gallery.fru-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}
}

/* 沒有日期的項目：說明不縮排 */
.fru-post-links li > a:first-child ~ .fru-post-links__note {
	grid-column: 1 / -1;
}

/* ---------- 頁尾 ---------- */
.site-footer {
	background: var(--fru-dark);
	color: rgba(255, 255, 255, 0.78);
}

.site-footer .site-above-footer-wrap,
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap {
	background: transparent;
	border: 0;
}

.site-footer a {
	color: rgba(255, 255, 255, 0.86);
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--fru-mango);
}

.fru-footer-brand {
	display: flex;
	gap: 14px;
	align-items: center;
	text-align: left;
}

.fru-footer-brand img {
	width: 56px;
	height: 56px;
	border-radius: 12px;
}

.fru-footer-brand strong {
	display: block;
	font-family: 'Noto Serif TC', serif;
	font-size: 20px;
	letter-spacing: 0.12em;
	color: #fff;
}

.fru-footer-brand span {
	font-size: 14px;
}

.site-footer .footer-nav-wrap .menu-link {
	font-size: 15px;
}

.site-footer .ast-footer-copyright {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.6);
}

.site-below-footer-wrap .ast-builder-grid-row {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

@media (min-width: 922px) {
	.site-primary-footer-wrap .ast-builder-grid-row {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		gap: 32px;
	}

	.site-primary-footer-wrap .site-footer-section-1 {
		justify-content: flex-start;
	}

	.site-footer .astra-footer-horizontal-menu {
		flex-wrap: nowrap;
		gap: 4px 8px;
	}
}

/* ---------- 搜尋與 404 ---------- */
.search-no-results .no-results,
.error404 .ast-404-layout-1 {
	max-width: var(--fru-text-width);
	margin: 0 auto;
	text-align: center;
}

.error404 .site-content {
	min-height: 60vh;
}

.error404 .page-sub-title,
.error404 .ast-404-layout-1 .page-sub-title {
	font-size: 17px;
	font-weight: 400;
	line-height: 1.8;
	color: var(--fru-text);
}

:is(.archive, .search, .blog) .site-main .ast-article-post .entry-meta {
	text-align: left;
}

.search-form .search-field {
	border-radius: 999px;
	border: 1px solid var(--fru-line);
	background: #fff;
}

/* ---------- 手機：卡片改成「左小圖、右文字」，一個螢幕看得到更多篇 ---------- */
@media (max-width: 600px) {
	.fru-latest .wp-block-post,
	:is(.archive, .search, .blog) .site-main .ast-article-post .post-content {
		display: grid;
		grid-template-columns: 104px minmax(0, 1fr);
		grid-auto-rows: min-content;
		align-content: start;
		column-gap: 14px;
		padding: 12px !important;
	}

	.fru-latest .wp-block-post > *,
	:is(.archive, .search, .blog) .site-main .ast-article-post .post-content > * {
		grid-column: 2;
		margin: 0 !important;
		padding: 0 !important;
	}

	.fru-latest .wp-block-post > .wp-block-post-featured-image,
	.fru-latest .wp-block-post:not(.has-post-thumbnail)::before,
	:is(.archive, .search, .blog) .site-main .ast-article-post .post-content > .ast-blog-featured-section,
	:is(.archive, .search, .blog) .site-main .ast-article-post:not(.has-post-thumbnail) .post-content::before {
		grid-column: 1;
		grid-row: 1 / span 4;
		align-self: start;
	}

	.fru-latest .wp-block-post:not(.has-post-thumbnail)::before,
	:is(.archive, .search, .blog) .site-main .ast-article-post:not(.has-post-thumbnail) .post-content::before {
		width: 104px;
		aspect-ratio: 1;
		border-radius: 10px;
		background-size: 46%;
	}

	.fru-latest .wp-block-post-featured-image img,
	:is(.archive, .search, .blog) .site-main .ast-article-post .ast-blog-featured-section img {
		aspect-ratio: 1 !important;
		border-radius: 10px !important;
	}

	.fru-latest .wp-block-post-terms,
	.fru-latest .wp-block-post-date {
		margin-top: 0;
		font-size: 13px;
	}

	.fru-latest .wp-block-post-title,
	:is(.archive, .search, .blog) .site-main .ast-article-post .entry-title {
		font-size: 17px;
	}

	.fru-latest .wp-block-post-excerpt__excerpt,
	:is(.archive, .search, .blog) .site-main .ast-article-post .ast-excerpt-container p {
		-webkit-line-clamp: 2;
		font-size: 14px;
	}

	.fru-latest .wp-block-post-excerpt {
		margin-top: 4px !important;
	}

	:is(.archive, .search, .blog) .site-main .ast-article-post .entry-meta,
	:is(.archive, .search, .blog) .site-main .ast-article-post .entry-meta * {
		font-size: 13px;
	}

	.fru-card {
		display: grid;
		grid-template-columns: 104px minmax(0, 1fr);
		align-items: stretch;
	}

	/* 列高由右邊文字決定，圖片填滿左欄 */
	.fru-card .wp-block-image {
		position: relative;
		min-height: 104px;
	}

	.fru-card .wp-block-image img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
	}

	.fru-card__body {
		padding: 14px 16px;
	}

	.fru-card h3 {
		font-size: 18px;
		margin-bottom: 4px;
	}

	.fru-card p {
		font-size: 14px;
	}

	.fru-card .fru-count {
		margin-top: 6px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fru-latest .wp-block-post,
	.fru-card,
	:is(.archive, .search, .blog) .site-main .ast-article-post .ast-article-inner {
		transition: none;
	}

	.fru-latest .wp-block-post:hover,
	.fru-card:hover,
	:is(.archive, .search, .blog) .site-main .ast-article-post .ast-article-inner:hover {
		transform: none;
	}
}
