/*
 Theme Name:   Arkhe Child - Ikumi Official
 Theme URI:    https://ikumi3.com
 Description:  いくみオフィシャルサイト用の Arkhe 子テーマ。LINE Seed JP フォントによる最高の日本語組版。アーカイブ・カテゴリ・投稿・検索・404 全ページに美しいデザインを適用。
 Author:       Ikumi
 Author URI:   https://ikumi3.com
 Template:     arkhe
 Version:      2.8.0
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  arkhe-child-ikumi
*/

/* ==========================================================================
   Design Tokens (CSS Custom Properties)
   ========================================================================== */
:root {
	--ikumi-primary: #A85E6D;
	--ikumi-primary-dark: #8A4A58;
	--ikumi-primary-hover: #6B3543;
	--ikumi-primary-light: #C4899A;
	--ikumi-accent: #E8B4B4;
	--ikumi-surface: #FFFCFC;
	--ikumi-subtle: #F9F2F4;
	--ikumi-text-body: #594A4E;
	--ikumi-text-light: #77696D;
	--ikumi-white: #fff;
	--ikumi-shadow-sm: 0 1px 3px rgba(89, 74, 78, 0.08);
	--ikumi-shadow-md: 0 4px 12px rgba(89, 74, 78, 0.10);
	--ikumi-shadow-lg: 0 8px 30px rgba(89, 74, 78, 0.12);
	--ikumi-radius-sm: 8px;
	--ikumi-radius-md: 12px;
	--ikumi-radius-lg: 20px;
	--ikumi-focus-ring: 0 0 0 3px rgba(168, 94, 109, 0.4);
}

/* ==========================================================================
   Typography — LINE Seed JP + Shippori Mincho
   ========================================================================== */
body {
	font-family: "LINE Seed JP", sans-serif;
	font-size: 18px;
	font-weight: 400;
	line-height: 2.0;
	font-feature-settings: "palt";
	letter-spacing: 0.04em;
	color: var(--ikumi-text-body);
	background-color: var(--ikumi-surface);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	word-break: break-all;
	overflow-wrap: break-word;
}

h1, h2, h3, h4, h5, h6 {
	font-family: "Shippori Mincho", serif;
	font-feature-settings: "palt";
	letter-spacing: 0.08em;
	line-height: 1.6;
	color: var(--ikumi-text-body);
}

p {
	margin-bottom: 1.5em;
}

/* ==========================================================================
   Global Link Styles
   ========================================================================== */
a {
	color: var(--ikumi-primary);
	transition: color 0.3s ease;
}

a:hover {
	color: var(--ikumi-primary-dark);
}

/* Buttons with colored backgrounds — keep text light on hover */
a.bg-primary:hover,
a.bg-primaryDark:hover,
.ikumi-post-card__cat:hover,
.ikumi-single__cat:hover,
.ikumi-404__btn:hover,
.ikumi-search-form .search-submit:hover {
	color: var(--ikumi-surface);
}

a:focus-visible {
	outline: none;
	box-shadow: var(--ikumi-focus-ring);
	border-radius: 2px;
}

/* ==========================================================================
   Landing Page Template Overrides
   ========================================================================== */
.page-template-template-landing .l-content,
.page-template-template-landing .l-mainContent {
	padding: 0;
	max-width: 100%;
}

.page-template-template-landing .l-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
}

.page-template-template-landing .post_content,
.page-template-template-landing .entry-content {
	max-width: 100%;
	padding: 0;
	margin: 0;
}

.page-template-template-landing .l-mainContent__body,
.page-template-template-landing .post_content > *,
.page-template-template-landing .entry-content > * {
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
}

/* ==========================================================================
   Arkhe Footer Override
   ========================================================================== */
.l-footer,
.c-footer {
	background-color: var(--ikumi-white);
	border-top: 1px solid rgba(168, 94, 109, 0.15);
}

.l-footer a,
.c-footer a {
	color: var(--ikumi-text-body);
	transition: color 0.3s ease;
}

.l-footer a:hover,
.c-footer a:hover {
	color: var(--ikumi-primary);
}

/* ==========================================================================
   Container & Layout Utilities
   ========================================================================== */
.ikumi-container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px;
}

.ikumi-layout {
	display: flex;
	gap: 40px;
	align-items: flex-start;
}

.ikumi-layout__main {
	flex: 1;
	min-width: 0;
}

.ikumi-layout__sidebar {
	width: 280px;
	flex-shrink: 0;
}

@media (max-width: 768px) {
	.ikumi-layout {
		flex-direction: column;
		gap: 32px;
	}

	.ikumi-layout__sidebar {
		width: 100%;
	}
}

/* ==========================================================================
   Page Hero (Archive / Category / Search headers)
   ========================================================================== */
.ikumi-page-hero {
	background: linear-gradient(135deg, var(--ikumi-subtle) 0%, var(--ikumi-white) 100%);
	padding: 60px 20px 48px;
	text-align: center;
	border-bottom: 1px solid rgba(168, 94, 109, 0.08);
}

.ikumi-page-hero__title {
	font-family: "Shippori Mincho", serif;
	font-size: 1.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--ikumi-primary);
	margin: 0 0 8px;
}

.ikumi-page-hero__desc {
	font-size: 0.9rem;
	color: var(--ikumi-text-light);
	margin: 0;
	line-height: 1.8;
}

.ikumi-page-hero__count {
	display: inline-block;
	margin-top: 12px;
	font-size: 0.8rem;
	color: var(--ikumi-text-light);
	background: var(--ikumi-white);
	padding: 4px 16px;
	border-radius: 20px;
	border: 1px solid rgba(168, 94, 109, 0.12);
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */
.ikumi-breadcrumbs {
	background: var(--ikumi-subtle);
	padding: 12px 20px;
	font-size: 0.8rem;
	color: var(--ikumi-text-light);
}

.ikumi-breadcrumbs__inner {
	max-width: 1100px;
	margin: 0 auto;
}

.ikumi-breadcrumbs a {
	color: var(--ikumi-text-light);
	text-decoration: none;
}

.ikumi-breadcrumbs a:hover {
	color: var(--ikumi-primary);
}

.ikumi-breadcrumbs__sep {
	margin: 0 8px;
	opacity: 0.5;
}

/* ==========================================================================
   Post Card Grid
   ========================================================================== */
.ikumi-posts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	padding: 40px 0;
}

@media (max-width: 1024px) {
	.ikumi-posts {
		grid-template-columns: repeat(2, 1fr);
		gap: 28px;
	}
}

@media (max-width: 640px) {
	.ikumi-posts {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

/* ==========================================================================
   Post Card
   ========================================================================== */
.ikumi-post-card {
	background: var(--ikumi-white);
	border-radius: var(--ikumi-radius-md);
	overflow: hidden;
	box-shadow: var(--ikumi-shadow-sm);
	border: 1px solid rgba(168, 94, 109, 0.1);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
	display: flex;
	flex-direction: column;
}

.ikumi-post-card:hover {
	box-shadow: var(--ikumi-shadow-md);
	transform: translateY(-4px);
}

.ikumi-post-card__thumb {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--ikumi-subtle);
}

.ikumi-post-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.ikumi-post-card:hover .ikumi-post-card__thumb img {
	transform: scale(1.05);
}

.ikumi-post-card__thumb-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--ikumi-accent);
	font-size: 2rem;
}

.ikumi-post-card__body {
	padding: 20px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.ikumi-post-card__cat {
	display: inline-block;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ikumi-white);
	background: var(--ikumi-primary-dark);
	padding: 2px 10px;
	border-radius: 3px;
	margin-bottom: 10px;
	align-self: flex-start;
	text-decoration: none;
	transition: background-color 0.3s ease;
}

.ikumi-post-card__cat:hover {
	background: var(--ikumi-primary-hover);
	color: var(--ikumi-white);
}

.ikumi-post-card__title {
	font-family: "Shippori Mincho", serif;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.04em;
	margin: 0 0 8px;
	color: var(--ikumi-text-body);
}

.ikumi-post-card__title a {
	color: inherit;
	text-decoration: none;
}

.ikumi-post-card__title a:hover {
	color: var(--ikumi-primary);
}

.ikumi-post-card__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 0.75rem;
	color: var(--ikumi-text-light);
	margin-bottom: 12px;
}

.ikumi-post-card__meta i {
	margin-right: 4px;
	font-size: 0.7rem;
}

.ikumi-post-card__readmore {
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--ikumi-primary);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: gap 0.3s ease;
}

.ikumi-post-card__readmore i {
	font-size: 0.6rem;
}

.ikumi-post-card__readmore:hover {
	gap: 10px;
	color: var(--ikumi-primary-hover);
}

/* ==========================================================================
   Pagination
   ========================================================================== */
.ikumi-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	padding: 20px 0 48px;
}

.ikumi-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: 50%;
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--ikumi-text-body);
	background: var(--ikumi-white);
	border: 1px solid rgba(168, 94, 109, 0.15);
	text-decoration: none;
	transition: all 0.3s ease;
}

.ikumi-pagination .page-numbers:hover {
	background: var(--ikumi-subtle);
	border-color: var(--ikumi-primary-light);
	color: var(--ikumi-primary);
}

.ikumi-pagination .page-numbers.current {
	background: var(--ikumi-primary-dark);
	color: var(--ikumi-white);
	border-color: var(--ikumi-primary-dark);
}

.ikumi-pagination .page-numbers:focus-visible {
	outline: none;
	box-shadow: var(--ikumi-focus-ring);
}

.ikumi-pagination .page-numbers.dots {
	border: none;
	background: none;
	color: var(--ikumi-text-light);
}

.ikumi-pagination .page-numbers.prev,
.ikumi-pagination .page-numbers.next {
	border-radius: var(--ikumi-radius-sm);
}

/* ==========================================================================
   Single Post
   ========================================================================== */

/* Hero image */
.ikumi-single__hero {
	position: relative;
	width: 100%;
	background: var(--ikumi-subtle);
	border-radius: var(--ikumi-radius-md);
	overflow: hidden;
}

.ikumi-single__hero img {
	width: 100%;
	height: auto;
	display: block;
}

.ikumi-single__hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(89, 74, 78, 0.3) 100%);
}

/* Article card */
.l-main .p-entry {
	background: var(--ikumi-white);
	border-radius: var(--ikumi-radius-md);
	box-shadow: var(--ikumi-shadow-sm);
	overflow: hidden;
	margin-top: 24px;
}

/* Article header */
.ikumi-single__header {
	padding: 40px 40px 0;
}

.ikumi-single__header--no-thumb {
	padding-top: 48px;
}

.ikumi-single__cats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 16px;
}

.ikumi-single__cat {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ikumi-white);
	background: var(--ikumi-primary-dark);
	padding: 3px 10px;
	border-radius: 3px;
	text-decoration: none;
	transition: background-color 0.3s ease;
}

.ikumi-single__cat:hover {
	background: var(--ikumi-primary-hover);
	color: var(--ikumi-white);
}

.ikumi-single__title {
	font-family: "Shippori Mincho", serif;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.06em;
	margin: 0 0 16px;
}

.ikumi-single__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 0.8rem;
	color: var(--ikumi-text-light);
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(168, 94, 109, 0.08);
}

.ikumi-single__meta i {
	margin-right: 4px;
}

/* Content widget areas */
.ikumi-content-widgets {
	margin: 24px 0;
}

.ikumi-content-widgets .c-widget {
	margin-bottom: 16px;
}

.ikumi-content-widgets .c-widget:last-child {
	margin-bottom: 0;
}

/* Article content */
.ikumi-single__content {
	padding: 32px 40px 48px;
	font-size: 0.95rem;
	line-height: 2.2;
}

.ikumi-single__content p {
	margin-bottom: 1.5em;
}

.ikumi-single__content h2 {
	font-size: 1.35rem;
	font-weight: 600;
	margin: 2.5em 0 1em;
	padding-left: 16px;
	border-left: 4px solid var(--ikumi-primary);
}

.ikumi-single__content h3 {
	font-size: 1.15rem;
	font-weight: 600;
	margin: 2em 0 0.8em;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--ikumi-subtle);
}

.ikumi-single__content h4 {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 1.5em 0 0.6em;
	color: var(--ikumi-primary);
}

.ikumi-single__content img {
	max-width: 100%;
	height: auto;
	border-radius: var(--ikumi-radius-sm);
	margin: 1em 0;
}

.ikumi-single__content blockquote {
	margin: 1.5em 0;
	padding: 20px 24px;
	background: var(--ikumi-subtle);
	border-left: 4px solid var(--ikumi-accent);
	border-radius: 0 var(--ikumi-radius-sm) var(--ikumi-radius-sm) 0;
	font-style: italic;
	color: var(--ikumi-text-light);
}

.ikumi-single__content blockquote p:last-child {
	margin-bottom: 0;
}

.ikumi-single__content ul,
.ikumi-single__content ol {
	padding-left: 1.5em;
	margin-bottom: 1.5em;
}

.ikumi-single__content li {
	margin-bottom: 0.5em;
}

.ikumi-single__content a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ikumi-single__content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5em 0;
	font-size: 0.9rem;
}

.ikumi-single__content th,
.ikumi-single__content td {
	padding: 10px 14px;
	border: 1px solid rgba(168, 94, 109, 0.12);
	text-align: left;
}

.ikumi-single__content th {
	background: var(--ikumi-subtle);
	font-weight: 600;
}

.ikumi-single__content pre {
	background: #2d2d2d;
	color: #f8f8f2;
	padding: 20px;
	border-radius: var(--ikumi-radius-sm);
	overflow-x: auto;
	font-size: 0.85rem;
	line-height: 1.6;
	margin: 1.5em 0;
}

.ikumi-single__content code {
	font-size: 0.85em;
	background: var(--ikumi-subtle);
	padding: 2px 6px;
	border-radius: 3px;
}

.ikumi-single__content pre code {
	background: none;
	padding: 0;
}

@media (max-width: 768px) {
	.ikumi-single__header {
		padding: 28px 20px 0;
	}

	.ikumi-single__title {
		font-size: 1.3rem;
	}

	.ikumi-single__content {
		padding: 24px 20px 36px;
	}

	.ikumi-post-nav {
		padding: 0 20px 32px;
	}
}

/* ==========================================================================
   Post Navigation (Prev / Next)
   ========================================================================== */
.ikumi-post-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	padding: 0 40px 40px;
}

.ikumi-post-nav__link {
	display: block;
	padding: 20px;
	background: var(--ikumi-white);
	border: 1px solid rgba(168, 94, 109, 0.1);
	border-radius: var(--ikumi-radius-sm);
	text-decoration: none;
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.ikumi-post-nav__link:hover {
	box-shadow: var(--ikumi-shadow-sm);
	border-color: var(--ikumi-primary-light);
}

.ikumi-post-nav__link:focus-visible {
	outline: none;
	box-shadow: var(--ikumi-focus-ring);
}

.ikumi-post-nav__label {
	display: block;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ikumi-text-light);
	margin-bottom: 6px;
}

.ikumi-post-nav__title {
	font-family: "Shippori Mincho", serif;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--ikumi-text-body);
}

.ikumi-post-nav__link--next {
	text-align: right;
}

@media (max-width: 640px) {
	.ikumi-post-nav {
		grid-template-columns: 1fr;
		padding: 0 20px 36px;
	}
}

/* ==========================================================================
   Author Box
   ========================================================================== */
.ikumi-author-box {
	margin-top: 32px;
}

.ikumi-author-box__heading {
	font-family: "Shippori Mincho", serif;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--ikumi-text-body);
	margin: 0 0 16px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--ikumi-subtle);
}

.ikumi-author-box__inner {
	display: flex;
	gap: 20px;
	padding: 24px;
	background: var(--ikumi-subtle);
	border-radius: var(--ikumi-radius-md);
}

.ikumi-author-box__avatar {
	flex-shrink: 0;
}

.ikumi-author-box__avatar img {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
}

.ikumi-author-box__name {
	font-family: "Shippori Mincho", serif;
	font-size: 1rem;
	font-weight: 700;
	margin: 0 0 8px;
}

.ikumi-author-box__name a {
	color: var(--ikumi-text-body);
	text-decoration: none;
}

.ikumi-author-box__name a:hover {
	color: var(--ikumi-primary);
}

.ikumi-author-box__desc {
	font-size: 0.85rem;
	line-height: 1.8;
	color: var(--ikumi-text-light);
	margin: 0 0 12px;
}

.ikumi-author-box__desc a {
	color: var(--ikumi-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ikumi-author-box__desc a:hover {
	color: var(--ikumi-primary-hover);
}

.ikumi-author-box__links {
	display: flex;
	gap: 16px;
}

.ikumi-author-box__link {
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--ikumi-primary);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	transition: color 0.3s ease;
}

.ikumi-author-box__link:hover {
	color: var(--ikumi-primary-hover);
}

@media (max-width: 640px) {
	.ikumi-author-box__inner {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.ikumi-author-box__links {
		justify-content: center;
	}
}

/* ==========================================================================
   Related Posts
   ========================================================================== */
.ikumi-related-posts {
	margin-top: 40px;
}

.ikumi-related-posts__heading {
	font-family: "Shippori Mincho", serif;
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--ikumi-text-body);
	margin: 0 0 8px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--ikumi-subtle);
}

.ikumi-related-posts .ikumi-posts {
	grid-template-columns: repeat(2, 1fr);
	padding-top: 24px;
	padding-bottom: 0;
}

@media (max-width: 640px) {
	.ikumi-related-posts .ikumi-posts {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Sidebar
   ========================================================================== */
.l-sidebar {
	background: var(--ikumi-white);
	border-radius: var(--ikumi-radius-md);
	box-shadow: var(--ikumi-shadow-sm);
	padding: 24px;
	height: fit-content;
}

.l-sidebar .widget,
.ikumi-sidebar .widget {
	margin-bottom: 24px;
}

.l-sidebar .widget:last-child,
.ikumi-sidebar .widget:last-child {
	margin-bottom: 0;
}

.ikumi-sidebar .widget {
	padding: 24px;
	background: var(--ikumi-white);
	border-radius: var(--ikumi-radius-md);
	box-shadow: var(--ikumi-shadow-sm);
}

.l-sidebar .widget-title,
.l-sidebar .wp-block-heading,
.ikumi-sidebar .widget-title,
.ikumi-sidebar .wp-block-heading {
	font-family: "Shippori Mincho", serif;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	padding-bottom: 10px;
	margin-bottom: 16px;
	border-bottom: 2px solid var(--ikumi-subtle);
	position: relative;
}

.l-sidebar .widget-title::after,
.l-sidebar .wp-block-heading::after,
.ikumi-sidebar .widget-title::after,
.ikumi-sidebar .wp-block-heading::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 40px;
	height: 2px;
	background: var(--ikumi-primary);
}

.l-sidebar .widget ul,
.ikumi-sidebar .widget ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.l-sidebar .widget li,
.ikumi-sidebar .widget li {
	border-bottom: 1px solid rgba(168, 94, 109, 0.06);
}

.l-sidebar .widget li:last-child,
.ikumi-sidebar .widget li:last-child {
	border-bottom: none;
}

.l-sidebar .widget li a,
.ikumi-sidebar .widget li a {
	display: block;
	padding: 8px 0;
	color: var(--ikumi-text-body);
	text-decoration: none;
	font-size: 0.85rem;
	transition: color 0.3s ease, padding-left 0.3s ease;
}

.l-sidebar .widget li a:hover,
.ikumi-sidebar .widget li a:hover {
	color: var(--ikumi-primary);
	padding-left: 6px;
}

/* ==========================================================================
   Search Form
   ========================================================================== */
.ikumi-search-form {
	display: flex;
	max-width: 480px;
	margin: 0 auto;
}

.ikumi-search-form .search-field {
	flex: 1;
	padding: 12px 16px;
	border: 1px solid rgba(168, 94, 109, 0.2);
	border-right: none;
	border-radius: var(--ikumi-radius-sm) 0 0 var(--ikumi-radius-sm);
	font-family: "LINE Seed JP", sans-serif;
	font-size: 0.9rem;
	color: var(--ikumi-text-body);
	background: var(--ikumi-white);
	outline: none;
	transition: border-color 0.3s ease;
}

.ikumi-search-form .search-field:focus {
	border-color: var(--ikumi-primary);
}

.ikumi-search-form .search-submit {
	padding: 12px 20px;
	background: var(--ikumi-primary-dark);
	color: var(--ikumi-white);
	border: none;
	border-radius: 0 var(--ikumi-radius-sm) var(--ikumi-radius-sm) 0;
	font-family: "LINE Seed JP", sans-serif;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	cursor: pointer;
	transition: background 0.3s ease, box-shadow 0.3s ease;
}

.ikumi-search-form .search-submit:hover {
	background: var(--ikumi-primary-hover);
	box-shadow: var(--ikumi-shadow-sm);
}

.ikumi-search-form .search-submit:focus-visible {
	outline: none;
	box-shadow: var(--ikumi-focus-ring);
}

.ikumi-search-form .search-field:focus-visible {
	outline: none;
	box-shadow: var(--ikumi-focus-ring);
}

/* ==========================================================================
   404 Page
   ========================================================================== */
.ikumi-404 {
	text-align: center;
	padding: 80px 20px;
}

.ikumi-404__number {
	font-family: "Shippori Mincho", serif;
	font-size: 6rem;
	font-weight: 700;
	color: var(--ikumi-accent);
	line-height: 1;
	margin-bottom: 16px;
}

.ikumi-404__title {
	font-family: "Shippori Mincho", serif;
	font-size: 1.4rem;
	font-weight: 600;
	color: var(--ikumi-text-body);
	margin-bottom: 12px;
}

.ikumi-404__desc {
	font-size: 0.9rem;
	color: var(--ikumi-text-light);
	margin-bottom: 32px;
	line-height: 1.8;
}

.ikumi-404__btn {
	display: inline-block;
	padding: 14px 32px;
	background: var(--ikumi-primary-dark);
	color: var(--ikumi-white);
	text-decoration: none;
	border-radius: var(--ikumi-radius-sm);
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
}

.ikumi-404__btn:hover {
	background: var(--ikumi-primary-hover);
	box-shadow: var(--ikumi-shadow-md);
	color: var(--ikumi-white);
	transform: translateY(-2px);
}

.ikumi-404__btn:focus-visible {
	outline: none;
	box-shadow: var(--ikumi-focus-ring);
}

/* ==========================================================================
   No Results Message
   ========================================================================== */
.ikumi-no-results {
	text-align: center;
	padding: 60px 20px;
	color: var(--ikumi-text-light);
}

.ikumi-no-results__icon {
	font-size: 3rem;
	color: var(--ikumi-accent);
	margin-bottom: 16px;
}

.ikumi-no-results__title {
	font-family: "Shippori Mincho", serif;
	font-size: 1.2rem;
	color: var(--ikumi-text-body);
	margin-bottom: 8px;
}

/* ==========================================================================
   Arkhe Native Overrides (non-template pages)
   ========================================================================== */

/* Arkhe header — hidden by ikumi-header plugin, but if plugin is inactive: */
.l-header,
.c-header {
	background: rgba(255, 255, 255, 0.95) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid rgba(168, 94, 109, 0.1);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.l-header .c-logo__link,
.c-header .c-logo__link {
	font-family: "Shippori Mincho", serif;
	color: var(--ikumi-primary);
	font-weight: 700;
	letter-spacing: 0.15em;
}

.c-gnav a,
.l-header a {
	color: var(--ikumi-text-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	transition: color 0.3s ease;
}

.c-gnav a:hover,
.l-header a:hover {
	color: var(--ikumi-primary);
}

/* Arkhe post list — enhance if custom templates not loaded */
.p-postList.-type-card .p-postList__item {
	border-radius: var(--ikumi-radius-md);
	overflow: hidden;
	box-shadow: var(--ikumi-shadow-sm);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.p-postList.-type-card .p-postList__item:hover {
	box-shadow: var(--ikumi-shadow-md);
	transform: translateY(-2px);
}

.p-postList .p-postList__title {
	font-family: "Shippori Mincho", serif;
}

/* Arkhe content area typography */
.post_content h2,
.entry-content h2 {
	font-family: "Shippori Mincho", serif;
	border-left: 4px solid var(--ikumi-primary);
	padding-left: 16px;
	border-bottom: none;
}

.post_content h3,
.entry-content h3 {
	font-family: "Shippori Mincho", serif;
	border-bottom: 2px solid var(--ikumi-subtle);
	padding-bottom: 8px;
}

/* ==========================================================================
   Fixed Page — Featured Image: reduce cropping on PC
   ========================================================================== */
body.page:not(.home) .p-topArea {
	height: 50vw;
	max-height: 500px;
}
@media (max-width: 768px) {
	body.page:not(.home) .p-topArea {
		height: 56vw;
		max-height: none;
	}
}

/* ==========================================================================
   Fixed Page — Title White + Shadow Outline
   ========================================================================== */
body.page:not(.home) .c-pageTitle__main {
	color: var(--ikumi-white);
	text-shadow:
		1px 1px 0 #594A4E,
		-1px 1px 0 #594A4E,
		1px -1px 0 #594A4E,
		-1px -1px 0 #594A4E,
		0 2px 4px rgba(89, 74, 78, 0.4);
}

/* ==========================================================================
   Fixed Page — Heading Design (same as single post, exclude home)
   ========================================================================== */
body.page:not(.home) .post_content h2,
body.page:not(.home) .entry-content h2 {
	font-family: "Shippori Mincho", serif;
	font-size: 1.35rem;
	font-weight: 600;
	margin: 2.5em 0 1em;
	padding-left: 16px;
	border-left: 4px solid var(--ikumi-primary);
	border-bottom: none;
}

body.page:not(.home) .post_content h3,
body.page:not(.home) .entry-content h3 {
	font-family: "Shippori Mincho", serif;
	font-size: 1.15rem;
	font-weight: 600;
	margin: 2em 0 0.8em;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--ikumi-subtle);
}

body.page:not(.home) .post_content h4,
body.page:not(.home) .entry-content h4 {
	font-family: "Shippori Mincho", serif;
	font-size: 1.05rem;
	font-weight: 600;
	margin: 1.5em 0 0.6em;
	color: var(--ikumi-primary);
}

/* ==========================================================================
   Archive / Category — Heading Design (same as single post)
   ========================================================================== */
body.archive .post_content h2,
body.archive .entry-content h2,
body.archive .c-postContent h2,
body.category .post_content h2,
body.category .entry-content h2,
body.category .c-postContent h2,
body.search .post_content h2,
body.search .entry-content h2,
body.search .c-postContent h2 {
	font-family: "Shippori Mincho", serif;
	font-size: 1.35rem;
	font-weight: 600;
	margin: 2.5em 0 1em;
	padding-left: 16px;
	border-left: 4px solid var(--ikumi-primary);
	border-bottom: none;
}

body.archive .post_content h3,
body.archive .entry-content h3,
body.archive .c-postContent h3,
body.category .post_content h3,
body.category .entry-content h3,
body.category .c-postContent h3,
body.search .post_content h3,
body.search .entry-content h3,
body.search .c-postContent h3 {
	font-family: "Shippori Mincho", serif;
	font-size: 1.15rem;
	font-weight: 600;
	margin: 2em 0 0.8em;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--ikumi-subtle);
}

body.archive .post_content h4,
body.archive .entry-content h4,
body.archive .c-postContent h4,
body.category .post_content h4,
body.category .entry-content h4,
body.category .c-postContent h4,
body.search .post_content h4,
body.search .entry-content h4,
body.search .c-postContent h4 {
	font-family: "Shippori Mincho", serif;
	font-size: 1.05rem;
	font-weight: 600;
	margin: 1.5em 0 0.6em;
	color: var(--ikumi-primary);
}

/* ==========================================================================
   Before Footer — Full-width Widget Area
   ========================================================================== */
.ikumi-before-footer {
	width: 100%;
}

.ikumi-before-footer-widget {
	width: 100%;
}

/* Remove default block margins inside before-footer area */
.ikumi-before-footer .wp-block-ikumi-footer-nav,
.ikumi-before-footer .wp-block-ikumi-contact {
	margin: 0;
	max-width: 100%;
}

/* ==========================================================================
   Scrollbar (WebKit)
   ========================================================================== */
::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: var(--ikumi-subtle);
}

::-webkit-scrollbar-thumb {
	background: var(--ikumi-accent);
	border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
	background: var(--ikumi-primary);
}

/* ==========================================================================
   Selection Color
   ========================================================================== */
::selection {
	background: var(--ikumi-accent);
	color: var(--ikumi-text-body);
}
