/*
Theme Name: seisei-theme
Theme URI: https://example.com/
Author: Seisei Team
Description: A simple classic theme focused on displaying seisei-post content.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: seisei-theme
*/

:root {
	--sp-bg: #f5f3ee;
	--sp-paper: #fffdf7;
	--sp-ink: #222016;
	--sp-accent: #155a43;
	--sp-line: #d8d0bf;
}

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	color: var(--sp-ink);
	background: radial-gradient(circle at top right, #f1ebda 0%, var(--sp-bg) 38%, #ece7d9 100%);
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
	line-height: 1.8;
}

a {
	color: var(--sp-accent);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

.site {
	max-width: 1080px;
	margin: 0 auto;
	padding: 24px 18px 40px;
}

.site-header,
.site-footer {
	padding: 18px 0;
}

.site-header {
	border-bottom: 1px solid var(--sp-line);
}

.site-title {
	margin: 0;
	font-size: clamp(1.4rem, 2vw, 2rem);
	letter-spacing: 0.06em;
}

.site-description {
	margin: 8px 0 0;
	opacity: 0.8;
	font-size: 0.95rem;
}

.site-nav {
	margin-top: 10px;
}

.site-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: nowrap;
	gap: 14px;
}

.site-nav li {
	margin: 0;
}

.site-footer {
	margin-top: 40px;
	border-top: 1px solid var(--sp-line);
	font-size: 0.9rem;
	opacity: 0.85;
}

.content {
	padding-top: 24px;
}

.seisei-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
}

.seisei-card,
.seisei-single {
	background: var(--sp-paper);
	border: 1px solid var(--sp-line);
	border-radius: 12px;
	padding: 18px;
}

.seisei-card h2,
.seisei-single h1 {
	margin-top: 0;
	line-height: 1.3;
}

.seisei-single h1 {
	font-size: 1em;
}

.seisei-thumb {
	margin: 0 0 14px;
}

.seisei-thumb img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	display: block;
}

.seisei-meta {
	margin-top: 22px;
	padding-top: 14px;
	border-top: 1px solid var(--sp-line);
	font-size: 0.9rem;
}

.seisei-tax-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0;
	margin: 10px 0 0;
	list-style: none;
}

.seisei-tax-list a {
	display: inline-block;
	padding: 3px 10px;
	border: 1px solid var(--sp-line);
	border-radius: 999px;
	background: #f7f4ea;
	font-size: 0.85rem;
}

@media (max-width: 768px) {
	.site {
		padding: 18px 14px 28px;
	}
}

.site-layout {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr);
	gap: 26px;
	align-items: start;
	padding-top: 24px;
}

body[class*="tax-"] .site-layout,
body.taxonomy .site-layout {
	grid-template-columns: minmax(0, 1fr);
}

body.page .site {
	max-width: 1400px;
}

body.page .site-layout {
	grid-template-columns: minmax(0, 1fr);
}

body.page .content {
	width: 100%;
	max-width: none;
}

body.taxonomy .site,
body[class*="tax-"] .site {
	max-width: 1400px;
	padding: 18px 14px 28px;
}

body.taxonomy .site-layout,
body[class*="tax-"] .site-layout {
	grid-template-columns: minmax(0, 1fr);
	gap: 4px;
}

body.taxonomy .content,
body[class*="tax-"] .content {
	width: 100%;
	max-width: none;
	padding: 0;
}

body.taxonomy .seisei-grid,
body[class*="tax-"] .seisei-grid {
	display: block;
	column-width: 96px;
	column-gap: 2px;
}

body.taxonomy .seisei-grid article,
body[class*="tax-"] .seisei-grid article {
	display: inline-block;
	width: auto;
	margin: 0;
	padding: 0;
	break-inside: avoid;
	margin-bottom: 2px;
}

body.taxonomy .seisei-tax-item,
body[class*="tax-"] .seisei-tax-item {
	width: auto;
	max-width: none;
}

body.taxonomy .seisei-thumb,
body[class*="tax-"] .seisei-thumb {
	margin: 0;
}

body.taxonomy .seisei-taxonomy-stream > a,
body[class*="tax-"] .seisei-taxonomy-stream > a,
body.taxonomy .seisei-taxonomy-stream-item,
body[class*="tax-"] .seisei-taxonomy-stream-item {
	display: inline-block;
	margin: 1px;
}

body.taxonomy .seisei-taxonomy-stream > a > img,
body[class*="tax-"] .seisei-taxonomy-stream > a > img,
body.taxonomy .seisei-taxonomy-stream-item > img,
body[class*="tax-"] .seisei-taxonomy-stream-item > img {
	display: block;
	border-radius: 6px;
}

body.taxonomy .site-header,
body.taxonomy .site-footer,
body[class*="tax-"] .site-header,
body[class*="tax-"] .site-footer {
	padding: 4px 0;
}

body.taxonomy .site-title,
body[class*="tax-"] .site-title {
	font-size: 1rem;
}

.seisei-taxonomy-header {
	/* display: flex; */
	align-items: baseline;
	gap: 8px;
	flex-wrap: nowrap;
	white-space: nowrap;
	overflow-x: auto;
}

.seisei-taxonomy-header h1,
.seisei-taxonomy-header p,
.seisei-taxonomy-header > div {
	margin: 0;
}

.navigation.pagination {
	margin: 8px 0;
}

.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	align-items: center;
}

.navigation.pagination .page-numbers {
	display: inline-block;
	padding: 0.3em 1em;
	border: 1px solid var(--sp-line);
	border-radius: 6px;
	line-height: 1.2;
	background-color: rgba(255, 255, 255, 0.1);
}

.content {
	padding-top: 0;
	min-width: 0;
}

.sidebar {
	position: sticky;
	top: 18px;
}

.widget {
	background: var(--sp-paper);
	border: 1px solid var(--sp-line);
	border-radius: 12px;
	padding: 14px;
	margin-bottom: 16px;
}

.widget-title {
	margin: 0 0 10px;
	line-height: 1.3;
	font-size: 1rem;
}

h2.widgettitle {
	margin-top: 0;
	margin-bottom: 4px;
	line-height: 1.2;
	font-size: 1rem;
}

.widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.widget li + li {
	margin-top: 8px;
}

@media (max-width: 900px) {
	.site-layout {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.sidebar {
		position: static;
	}
}

.wp-block-seisei-taxonomy-tags {
	display: grid;
	gap: 14px;
	margin-top: 20px;
}

.seisei-taxonomy-group {
	background: var(--sp-paper);
	border: 1px solid var(--sp-line);
	border-radius: 12px;
	padding: 14px;
}

.seisei-taxonomy-heading {
	margin: 0 0 10px;
	font-size: 1rem;
	line-height: 1.4;
}

.seisei-taxonomy-term-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.seisei-taxonomy-term-item a {
	display: inline-block;
	padding: 3px 10px;
	border: 1px solid var(--sp-line);
	border-radius: 999px;
	background: #f7f4ea;
	font-size: 0.85rem;
}

.seisei-custom-fields-list {
	margin: 0;
}

.seisei-custom-fields-list dt {
	margin-top: 10px;
	font-weight: 700;
	font-size: 0.9rem;
}

.seisei-custom-fields-list dd {
	margin: 4px 0 0;
	word-break: break-word;
	font-size: 0.9rem;
}

.seisei-custom-field-widget {
	display: grid;
	gap: 6px;
}

.seisei-custom-field-key {
	display: none;
}

.seisei-custom-field-value {
	margin: 0;
	font-weight: 700;
	word-break: break-word;
}

.seisei-json-field-widget {
	display: grid;
	gap: 8px;
}

.seisei-json-field-value {
	margin: 0;
	padding: 10px;
	border: 1px solid var(--sp-line);
	border-radius: 8px;
	background: #f7f4ea;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	font-size: 0.8rem;
	line-height: 1.5;
	white-space: pre-wrap;
	word-break: break-word;
}

.seisei-json-field-widget .seisei-prompt-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.seisei-json-field-widget .seisei-prompt-list li {
	display: inline !important;
	margin: 0;
	padding: 0;
	word-break: break-word;
}

.seisei-json-field-widget .seisei-prompt-list a {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35em;
	flex-wrap: wrap;
}

.seisei-json-field-widget .seisei-prompt-list li:not(:last-child)::after {
	content: ", ";
}
