/*
Theme Name:   Poseidon Neon
Theme URI:    https://www.hvd.jp/
Description:  Poseidon の子テーマ。ダーク × ネオンの個人ブログ用デザイン（Harry's Virtual Dimension 用）。外観 → テーマ で Poseidon に切り替えればいつでも元に戻せます。
Author:       Harry
Template:     poseidon
Version:      1.0.2
Text Domain:  poseidon-neon
*/

/* ==========================================================
   1. カラー・フォント（親テーマの CSS 変数を上書き）
   ========================================================== */
:root {
	--neon-bg: #07080d;
	--neon-bg-2: #0d0f17;
	--neon-surface: #12151f;
	--neon-surface-2: #181c29;
	--neon-line: rgba(0, 229, 255, 0.16);
	--neon-text: #e4e7f0;
	--neon-muted: #8d93a8;
	--neon-cyan: #00e5ff;
	--neon-magenta: #ff2bd6;
	--neon-violet: #8b5cff;
	--neon-grad: linear-gradient(90deg, #00e5ff 0%, #8b5cff 50%, #ff2bd6 100%);
	--neon-glow: 0 0 6px rgba(0, 229, 255, 0.55), 0 0 22px rgba(0, 229, 255, 0.25);
	--neon-glow-m: 0 0 6px rgba(255, 43, 214, 0.6), 0 0 22px rgba(255, 43, 214, 0.25);
	--neon-radius: 14px;

	--primary-color: #00e5ff;
	--secondary-color: #8b5cff;
	--tertiary-color: #ff2bd6;
	--accent-color: #ff2bd6;
	--highlight-color: #00e5ff;
	--light-gray-color: #181c29;
	--gray-color: #8d93a8;
	--dark-gray-color: #e4e7f0;
	--text-color: #e4e7f0;
	--medium-text-color: #a7adc0;
	--light-text-color: #8d93a8;
	--light-background-color: #12151f;
	--dark-border-color: rgba(0, 229, 255, 0.35);
	--medium-border-color: rgba(255, 255, 255, 0.14);
	--light-border-color: rgba(255, 255, 255, 0.08);
	--link-color: #00e5ff;
	--link-hover-color: #ff2bd6;
	--button-color: #00e5ff;
	--button-text-color: #07080d;
	--button-hover-color: #ff2bd6;
	--button-hover-text-color: #07080d;
	--page-background-color: transparent;
	--page-border-color: rgba(0, 229, 255, 0.16);
	--header-background-color: rgba(7, 8, 13, 0.82);
	--site-title-color: #ffffff;
	--site-title-hover-color: #00e5ff;
	--navi-color: #e4e7f0;
	--navi-hover-color: #00e5ff;
	--navi-border-color: rgba(255, 255, 255, 0.1);
	--title-color: #ffffff;
	--title-hover-color: #00e5ff;
	--widget-title-color: #ffffff;
	--widget-title-hover-color: #00e5ff;
	--widget-title-border-color: rgba(0, 229, 255, 0.16);
	--footer-background-color: #05060a;
	--footer-text-color: #8d93a8;
	--footer-link-color: #00e5ff;
	--footer-link-hover-color: #ff2bd6;

	--text-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	--title-font: "Orbitron", "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	--navi-font: "Orbitron", "Noto Sans JP", sans-serif;
	--widget-title-font: "Orbitron", "Noto Sans JP", sans-serif;
	--text-line-height: 1.85;
	--title-line-height: 1.45;
}

/* ==========================================================
   2. ベース
   ========================================================== */
html {
	background: var(--neon-bg);
	scroll-behavior: smooth;
}

body,
body.custom-background {
	color: var(--neon-text);
	background-color: var(--neon-bg) !important;
	background-image:
		radial-gradient(1200px 600px at 10% -10%, rgba(139, 92, 255, 0.16), transparent 60%),
		radial-gradient(900px 500px at 110% 10%, rgba(0, 229, 255, 0.12), transparent 60%),
		linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px) !important;
	background-size: auto, auto, 40px 40px, 40px 40px !important;
	background-attachment: fixed !important;
	font-family: var(--text-font);
	letter-spacing: 0.02em;
	-webkit-font-smoothing: antialiased;
}

::selection {
	background: var(--neon-magenta);
	color: #fff;
}

a {
	transition: color 0.2s ease, text-shadow 0.2s ease, box-shadow 0.2s ease;
}

a:hover,
a:focus {
	text-shadow: 0 0 10px rgba(255, 43, 214, 0.55);
}

:focus-visible {
	outline: 2px solid var(--neon-cyan);
	outline-offset: 3px;
}

hr {
	border: 0;
	height: 1px;
	background: var(--neon-grad);
	opacity: 0.5;
}

/* スクロールバー */
* {
	scrollbar-color: #2a3042 var(--neon-bg);
}

::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}

::-webkit-scrollbar-track {
	background: var(--neon-bg);
}

::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, var(--neon-cyan), var(--neon-magenta));
	border-radius: 10px;
	border: 2px solid var(--neon-bg);
}

.site {
	background: transparent;
}

/* ==========================================================
   3. ヘッダー
   ========================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--header-background-color);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
	backdrop-filter: blur(12px) saturate(140%);
	border-bottom: 1px solid transparent;
	border-image: var(--neon-grad) 1;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.45);
}

.admin-bar .site-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}

@media screen and (max-width: 600px) {
	.admin-bar .site-header {
		top: 0;
	}
}

/* ロゴ左・タイトルとキャッチフレーズを右に縦並び */
.site-branding {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: 1fr auto auto 1fr;
	column-gap: 26px;
	row-gap: 0;
	align-items: center;
	margin: 0.9em 0;
	padding: 0;
}

.site-branding .custom-logo-link {
	grid-row: 1 / 5;
	align-self: center;
	display: block;
	line-height: 0;
}

.site-branding .site-title {
	grid-column: 2;
	grid-row: 2;
	align-self: end;
	margin: 0;
	padding: 0;
	line-height: 1.2;
}

.site-branding .site-description {
	grid-column: 2;
	grid-row: 3;
	align-self: start;
	margin: 4px 0 0;
	padding: 0;
	line-height: 1.5;
}

.site-branding .custom-logo {
	width: 72px !important;
	height: auto;
	margin: 0;
	padding: 0;
}

@media only screen and (max-width: 40em) {
	.site-branding {
		column-gap: 14px;
	}

	.site-branding .custom-logo {
		width: 48px !important;
	}

	.site-branding .site-description {
		font-size: 10.5px;
	}
}

.site-branding .custom-logo {
	border-radius: 8px;
	box-shadow: var(--neon-glow);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.site-branding a:hover .custom-logo {
	transform: rotate(-3deg) scale(1.04);
	box-shadow: var(--neon-glow-m);
}

.site-title {
	font-family: var(--title-font);
	font-size: clamp(20px, 1.2rem + 1vw, 30px);
	font-weight: 900;
	letter-spacing: 0.06em;
}

.site-title a,
.site-title a:link,
.site-title a:visited {
	color: #fff;
	text-shadow: 0 0 8px rgba(0, 229, 255, 0.6), 0 0 26px rgba(139, 92, 255, 0.35);
}

.site-title a:hover {
	color: var(--neon-cyan);
}

.site-description {
	color: var(--neon-muted);
	font-size: 12px;
	letter-spacing: 0.08em;
}

/* グローバルナビ */
.main-navigation ul,
.main-navigation .menu {
	background: transparent;
}

.main-navigation ul li a,
.main-navigation .menu > li > a {
	position: relative;
	color: var(--navi-color);
	font-family: var(--navi-font);
	font-size: 13px;
	letter-spacing: 0.1em;
}

.main-navigation .menu > li > a::after {
	content: "";
	position: absolute;
	left: 50%;
	right: 50%;
	bottom: 0.6em;
	height: 2px;
	background: var(--neon-grad);
	box-shadow: var(--neon-glow);
	transition: left 0.25s ease, right 0.25s ease;
}

.main-navigation .menu > li > a:hover::after,
.main-navigation .menu > li.current-menu-item > a::after,
.main-navigation .menu > li.current_page_item > a::after {
	left: 1em;
	right: 1em;
}

.main-navigation ul li a:hover,
.main-navigation ul li.current-menu-item > a {
	color: var(--neon-cyan);
}

.main-navigation ul ul,
.main-navigation .menu ul {
	background: var(--neon-surface);
	border: 1px solid var(--neon-line);
	border-radius: 10px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
}

.main-navigation ul ul li a {
	border-color: rgba(255, 255, 255, 0.06);
}

.primary-menu-toggle,
.menu-toggle {
	color: var(--neon-cyan);
	background: transparent;
	border: 1px solid var(--neon-line);
	border-radius: 8px;
}

.primary-menu-toggle:hover,
.primary-menu-toggle:focus,
.menu-toggle:hover {
	color: var(--neon-magenta);
	background: transparent;
	box-shadow: var(--neon-glow-m);
}

.primary-menu-toggle .icon,
.menu-toggle .icon,
.main-navigation .dropdown-toggle .icon {
	fill: currentColor;
}

@media only screen and (max-width: 60em) {
	.main-navigation,
	.main-navigation ul,
	.main-navigation .menu {
		background: var(--neon-bg-2);
	}

	.main-navigation ul li a,
	.main-navigation .menu > li > a {
		border-top: 1px solid rgba(255, 255, 255, 0.06);
	}

	.main-navigation .menu > li > a::after {
		display: none;
	}

	.main-navigation ul ul,
	.main-navigation .menu ul {
		border: 0;
		border-radius: 0;
		box-shadow: none;
		background: rgba(255, 255, 255, 0.02);
	}
}

/* ヘッダー画像 */
.header-image {
	position: relative;
	overflow: hidden;
	background: var(--neon-bg);
}

.header-image img {
	display: block;
	filter: brightness(0.9) saturate(1.15) contrast(1.05);
}

.header-image::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(7, 8, 13, 0) 40%, var(--neon-bg) 100%),
		linear-gradient(120deg, rgba(0, 229, 255, 0.22), rgba(255, 43, 214, 0.18)),
		repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.04) 0 1px, transparent 1px 3px);
	mix-blend-mode: normal;
}

/* ==========================================================
   4. スライダー
   ========================================================== */
.post-slider-container {
	background: transparent;
}

.post-slider-container .post-slider,
.post-slider .zeeslide {
	background: var(--neon-bg-2);
}

.post-slider .zeeslide .slide-post,
.post-slider .zeeslide img {
	background: var(--neon-bg-2);
}

.post-slider .zeeslide img {
	filter: brightness(0.75) saturate(1.2);
}

/* アイキャッチ未設定時のカメラ画像をネオンのグラデーションに置き換え */
.post-slider-container .post-slider .slide-image-wrap {
	background:
		radial-gradient(600px 300px at 20% 30%, rgba(0, 229, 255, 0.35), transparent 70%),
		radial-gradient(600px 300px at 80% 70%, rgba(255, 43, 214, 0.3), transparent 70%),
		linear-gradient(135deg, #0d0f17, #1a1030) !important;
}

.post-slider .slide-image-wrap .default-slide-image {
	opacity: 0.06;
	filter: none;
	background: transparent;
}

.post-slider .slide-content {
	background: linear-gradient(180deg, rgba(7, 8, 13, 0) 0%, rgba(7, 8, 13, 0.92) 70%);
	border-top: 0;
}

.post-slider .slide-content .entry-title,
.post-slider .slide-content .entry-title a {
	color: #fff;
	font-family: var(--text-font);
	font-weight: 700;
	text-shadow: 0 0 12px rgba(0, 229, 255, 0.55), 0 2px 6px rgba(0, 0, 0, 0.8);
}

.post-slider .slide-content .entry-title a:hover {
	color: var(--neon-cyan);
}

.post-slider .slide-content .entry-meta,
.post-slider .slide-content .entry-meta a {
	color: rgba(255, 255, 255, 0.75);
}

.post-slider-controls .zeeflex-direction-nav a,
.post-slider-controls .zeeflex-control-paging li a {
	color: #fff;
	background: rgba(7, 8, 13, 0.6);
	border: 1px solid var(--neon-line);
	border-radius: 50%;
	box-shadow: none;
}

.post-slider-controls .zeeflex-direction-nav a:hover {
	color: var(--neon-cyan);
	box-shadow: var(--neon-glow);
}

.post-slider-controls .zeeflex-control-paging li a.zeeflex-active,
.post-slider-controls .zeeflex-control-paging li a:hover {
	background: var(--neon-cyan);
	box-shadow: var(--neon-glow);
}

/* ==========================================================
   5. コンテンツエリア
   ========================================================== */
.site-content {
	background: transparent;
	padding-top: 2.5em;
}

/* ページ見出し（「最新の記事」・アーカイブ名など） */
.page-header,
.blog-header {
	border: 0;
	margin-bottom: 1.5em;
}

.page-title,
.archive-title,
.blog-title {
	position: relative;
	display: inline-block;
	padding-bottom: 0.4em;
	color: #fff;
	font-family: var(--title-font);
	font-size: 1.15rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border: 0;
}

.page-title::after,
.archive-title::after,
.blog-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--neon-grad);
	box-shadow: var(--neon-glow);
}

.archive-description {
	color: var(--neon-muted);
}

/* 記事カード */
.post-wrapper .type-post,
.post-wrapper article,
.site-main > article,
.type-page,
.single .type-post,
.comments-area,
.post-navigation,
.author-box {
	position: relative;
	background: linear-gradient(180deg, rgba(24, 28, 41, 0.9), rgba(18, 21, 31, 0.9));
	border: 1px solid var(--neon-line);
	border-radius: var(--neon-radius);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

.post-wrapper .type-post,
.post-wrapper article {
	padding: 1.4em 1.5em;
	margin-bottom: 1.75em;
	overflow: hidden;
	transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.post-wrapper .type-post::before,
.post-wrapper article::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--neon-grad);
	opacity: 0;
	transition: opacity 0.25s ease;
}

.post-wrapper .type-post:hover,
.post-wrapper article:hover {
	transform: translateY(-3px);
	border-color: rgba(0, 229, 255, 0.45);
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.5), 0 0 24px rgba(0, 229, 255, 0.15);
}

.post-wrapper .type-post:hover::before,
.post-wrapper article:hover::before {
	opacity: 1;
}

.type-page,
.single .type-post {
	padding: 2em 2.2em;
	margin-bottom: 2em;
}

@media only screen and (max-width: 40em) {
	.post-wrapper .type-post,
	.post-wrapper article {
		padding: 1.1em 1.1em;
	}

	.type-page,
	.single .type-post {
		padding: 1.4em 1.1em;
	}
}

/* アイキャッチ */
.post-image,
.wp-post-image {
	border-radius: 10px;
}

.post-wrapper .wp-post-image {
	transition: transform 0.4s ease, filter 0.4s ease;
	filter: saturate(1.1);
}

.post-wrapper article:hover .wp-post-image {
	filter: saturate(1.3) brightness(1.05);
}

/* タイトル */
.entry-title {
	font-family: var(--text-font);
	font-weight: 700;
	letter-spacing: 0.03em;
}

.entry-title,
.entry-title a,
.entry-title a:link,
.entry-title a:visited {
	color: #fff;
}

.entry-title a:hover {
	color: var(--neon-cyan);
	text-shadow: 0 0 12px rgba(0, 229, 255, 0.6);
}

.single .entry-title,
.page .entry-title {
	font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.2rem);
	text-shadow: 0 0 18px rgba(0, 229, 255, 0.25);
}

/* メタ情報 */
.entry-meta,
.entry-meta a,
.entry-meta a:link,
.entry-meta a:visited {
	color: var(--neon-muted);
	font-size: 12.5px;
	letter-spacing: 0.04em;
}

.entry-meta a:hover {
	color: var(--neon-cyan);
}

.entry-meta .meta-category a {
	display: inline-block;
	padding: 0.05em 0.7em;
	color: var(--neon-magenta);
	border: 1px solid rgba(255, 43, 214, 0.45);
	border-radius: 999px;
}

.entry-meta .meta-category a:hover {
	color: #fff;
	background: rgba(255, 43, 214, 0.2);
	box-shadow: var(--neon-glow-m);
}

.entry-meta svg,
.entry-meta .icon {
	fill: var(--neon-cyan);
}

/* 抜粋 */
.entry-excerpt,
.entry-excerpt p {
	color: #b9bed0;
}

/* もっと読む・ボタン類 */
.more-link,
a.more-link,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.wp-block-button__link,
.wpcf7-submit {
	display: inline-block;
	color: var(--neon-cyan);
	background: transparent;
	border: 1px solid var(--neon-cyan);
	border-radius: 999px;
	font-family: var(--navi-font);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-shadow: none;
	box-shadow: inset 0 0 10px rgba(0, 229, 255, 0.15);
	transition: all 0.2s ease;
}

.more-link:hover,
a.more-link:hover,
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.wpcf7-submit:hover {
	color: var(--neon-bg);
	background: var(--neon-cyan);
	border-color: var(--neon-cyan);
	box-shadow: var(--neon-glow);
	text-shadow: none;
}

/* AddToAny の共有ボタン列 */
.addtoany_content {
	margin-top: 1.2em;
	opacity: 0.85;
}

.addtoany_content .a2a_svg {
	border-radius: 8px !important;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.addtoany_content a:hover .a2a_svg {
	transform: translateY(-2px);
	box-shadow: var(--neon-glow);
}

/* ==========================================================
   6. 記事本文
   ========================================================== */
.entry-content {
	color: var(--neon-text);
	font-size: 1rem;
}

.entry-content p {
	line-height: 1.95;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
	color: #fff;
	font-family: var(--text-font);
	font-weight: 700;
}

.entry-content h2 {
	position: relative;
	margin: 2.2em 0 1em;
	padding: 0.65em 0.9em;
	background: linear-gradient(90deg, rgba(0, 229, 255, 0.12), rgba(139, 92, 255, 0.04) 70%, transparent);
	border-left: 4px solid var(--neon-cyan);
	border-radius: 0 8px 8px 0;
	box-shadow: -6px 0 18px -8px rgba(0, 229, 255, 0.8);
}

.entry-content h3 {
	margin: 1.8em 0 0.8em;
	padding-bottom: 0.35em;
	border-bottom: 1px solid transparent;
	border-image: linear-gradient(90deg, var(--neon-magenta), transparent 80%) 1;
}

.entry-content h4 {
	color: var(--neon-cyan);
}

.entry-content a {
	color: var(--neon-cyan);
	text-decoration: underline;
	text-decoration-color: rgba(0, 229, 255, 0.4);
	text-underline-offset: 3px;
}

.entry-content a:hover {
	color: var(--neon-magenta);
	text-decoration-color: var(--neon-magenta);
}

.entry-content strong,
.entry-content b {
	color: #fff;
	background: linear-gradient(transparent 62%, rgba(255, 43, 214, 0.35) 62%);
}

.entry-content img {
	border-radius: 10px;
}

.entry-content figure figcaption,
.wp-caption-text {
	color: var(--neon-muted);
	font-size: 0.85em;
}

.entry-content ul li::marker {
	color: var(--neon-cyan);
}

.entry-content ol li::marker {
	color: var(--neon-magenta);
	font-family: var(--title-font);
}

blockquote,
.wp-block-quote {
	margin: 1.8em 0;
	padding: 1.2em 1.4em;
	color: #c9cddb;
	background: rgba(139, 92, 255, 0.08);
	border: 0;
	border-left: 3px solid var(--neon-violet);
	border-radius: 0 10px 10px 0;
	font-style: normal;
}

blockquote cite {
	color: var(--neon-muted);
}

code,
kbd,
tt,
var {
	padding: 0.1em 0.4em;
	color: var(--neon-magenta);
	background: rgba(255, 43, 214, 0.08);
	border: 1px solid rgba(255, 43, 214, 0.25);
	border-radius: 5px;
	font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
	font-size: 0.9em;
}

pre {
	padding: 1.2em 1.4em;
	color: #d6f7ff;
	background: #05060a;
	border: 1px solid var(--neon-line);
	border-radius: 10px;
	box-shadow: inset 0 0 30px rgba(0, 229, 255, 0.05);
	overflow-x: auto;
}

pre code {
	padding: 0;
	color: inherit;
	background: none;
	border: 0;
}

table,
.wp-block-table table {
	border-collapse: collapse;
	border: 1px solid var(--neon-line);
}

table th,
table td {
	border: 1px solid rgba(255, 255, 255, 0.08);
	padding: 0.6em 0.8em;
}

table th,
table thead td {
	color: #fff;
	background: rgba(0, 229, 255, 0.08);
}

table tr:nth-child(even) td {
	background: rgba(255, 255, 255, 0.02);
}

/* タグ・記事フッター */
.entry-footer,
.entry-tags {
	color: var(--neon-muted);
}

.entry-tags a,
.tagcloud a,
.wp-block-tag-cloud a {
	display: inline-block;
	margin: 0 0.3em 0.4em 0;
	padding: 0.15em 0.75em;
	color: var(--neon-text) !important;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 999px;
	font-size: 12px !important;
	text-decoration: none;
}

.entry-tags a:hover,
.tagcloud a:hover,
.wp-block-tag-cloud a:hover {
	color: var(--neon-bg) !important;
	background: var(--neon-cyan);
	border-color: var(--neon-cyan);
	box-shadow: var(--neon-glow);
	text-shadow: none;
}

/* 前後の記事 */
.post-navigation {
	padding: 1.2em 1.5em;
}

.post-navigation .nav-links a {
	color: #fff;
}

.post-navigation .nav-links a:hover {
	color: var(--neon-cyan);
}

.post-navigation .nav-link-text,
.post-navigation .meta-nav {
	color: var(--neon-magenta);
	font-family: var(--navi-font);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* ページネーション */
.pagination,
.navigation.pagination {
	margin: 2em 0;
	border: 0;
}

.pagination .page-numbers,
.pagination a,
.pagination span {
	display: inline-block;
	min-width: 2.6em;
	margin: 0 0.25em 0.4em 0;
	padding: 0.45em 0.8em;
	color: var(--neon-text);
	background: var(--neon-surface);
	border: 1px solid var(--neon-line);
	border-radius: 10px;
	text-align: center;
	font-family: var(--navi-font);
	font-size: 13px;
}

.pagination a:hover,
.pagination .page-numbers:hover {
	color: var(--neon-bg);
	background: var(--neon-cyan);
	border-color: var(--neon-cyan);
	box-shadow: var(--neon-glow);
	text-shadow: none;
}

.pagination .current,
.pagination .page-numbers.current {
	color: #fff;
	background: linear-gradient(135deg, var(--neon-violet), var(--neon-magenta));
	border-color: transparent;
	box-shadow: var(--neon-glow-m);
}

/* ==========================================================
   7. サイドバー・ウィジェット
   ========================================================== */
.sidebar .widget,
.widget-area .widget {
	padding: 1.3em 1.4em;
	margin-bottom: 1.6em;
	background: linear-gradient(180deg, rgba(24, 28, 41, 0.85), rgba(18, 21, 31, 0.85));
	border: 1px solid var(--neon-line);
	border-radius: var(--neon-radius);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.widget-header {
	margin-bottom: 1em;
	border: 0;
	padding: 0;
	background: none;
}

.widget-title {
	position: relative;
	padding-left: 0.85em;
	color: #fff;
	font-family: var(--widget-title-font);
	font-size: 13px;
	letter-spacing: 0.14em;
	border: 0;
}

.widget-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.15em;
	bottom: 0.15em;
	width: 3px;
	border-radius: 3px;
	background: linear-gradient(180deg, var(--neon-cyan), var(--neon-magenta));
	box-shadow: var(--neon-glow);
}

.widget-title a {
	color: #fff;
}

.widget,
.widget p,
.textwidget {
	color: #b9bed0;
	font-size: 14px;
}

.widget a {
	color: var(--neon-text);
}

.widget a:hover {
	color: var(--neon-cyan);
}

.widget ul li {
	border-color: rgba(255, 255, 255, 0.06);
}

.widget img {
	border-radius: 8px;
}

/* 検索フォーム */
.search-form {
	position: relative;
}

.search-form .search-field {
	width: 100%;
	color: var(--neon-text);
	background: var(--neon-bg);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	padding-left: 1.1em;
}

.search-form .search-field:focus {
	border-color: var(--neon-cyan);
	box-shadow: var(--neon-glow);
	outline: none;
}

.search-form .search-submit {
	color: var(--neon-cyan);
	background: transparent;
	border: 0;
	box-shadow: none;
}

.search-form .search-submit:hover {
	color: var(--neon-magenta);
	background: transparent;
	box-shadow: none;
}

.search-form .search-submit .icon {
	fill: currentColor;
}

/* フォーム全般（コメント・お問い合わせ） */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
textarea,
select {
	color: var(--neon-text);
	background: var(--neon-bg);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 10px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
textarea:focus,
select:focus {
	color: #fff;
	border-color: var(--neon-cyan);
	box-shadow: var(--neon-glow);
	outline: none;
}

::placeholder {
	color: #5f6578;
}

.wpcf7-not-valid-tip {
	color: var(--neon-magenta);
}

.wpcf7 form .wpcf7-response-output {
	border-radius: 10px;
}

/* ==========================================================
   8. コメント
   ========================================================== */
.comments-area {
	padding: 1.6em 1.8em;
	margin-bottom: 2em;
}

.comments-title,
.comment-reply-title {
	color: #fff;
	font-family: var(--title-font);
	font-size: 1rem;
	letter-spacing: 0.12em;
}

.comment-list .comment,
.comment-body {
	border-color: rgba(255, 255, 255, 0.08);
}

.comment-author .fn,
.comment-author .fn a {
	color: #fff;
}

.comment-meta,
.comment-meta a,
.comment-metadata a {
	color: var(--neon-muted);
}

.bypostauthor > .comment-body {
	padding-left: 1em;
	border-left: 2px solid var(--neon-cyan);
}

.comment .avatar {
	border-radius: 50%;
	box-shadow: 0 0 0 2px var(--neon-bg), 0 0 0 3px var(--neon-line);
}

/* ==========================================================
   9. フッター
   ========================================================== */
.footer-wrap,
.site-footer {
	color: var(--footer-text-color);
	background: var(--footer-background-color);
}

.footer-wrap {
	position: relative;
	margin-top: 3em;
	border-top: 1px solid transparent;
	border-image: var(--neon-grad) 1;
	box-shadow: 0 -10px 40px rgba(0, 229, 255, 0.06);
}

.site-footer {
	border: 0;
	font-size: 12.5px;
	letter-spacing: 0.06em;
}

.site-footer a {
	color: var(--neon-cyan);
}

.site-footer a:hover {
	color: var(--neon-magenta);
}

.footer-navigation-wrap,
.footer-widgets-background {
	background: var(--neon-bg-2);
	border-color: rgba(255, 255, 255, 0.06);
}

/* ==========================================================
   10. プラグイン等の調整
   ========================================================== */
/* AmazonJS（白背景の商品ボックスを暗色に） */
.amazonjs_item,
.amazonjs_info,
.amazonjs_item .amazonjs_info {
	color: var(--neon-text) !important;
	background: var(--neon-surface-2) !important;
	border: 1px solid var(--neon-line) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
}

.amazonjs_item .amazonjs_info h4 a,
.amazonjs_item a {
	color: var(--neon-cyan) !important;
}

.amazonjs_item .amazonjs_info li,
.amazonjs_item .amazonjs_info .amazonjs_price {
	color: #b9bed0 !important;
}

/* WP Photo Album Plus のウィジェット */
.wppa-widget-photo img {
	border-radius: 10px;
	box-shadow: 0 0 0 1px var(--neon-line);
}

/* ブロックエディタの白系パーツ */
.wp-block-separator {
	border: 0;
	height: 1px;
	background: var(--neon-grad);
	opacity: 0.5;
}

.wp-block-pullquote {
	color: #fff;
	border-color: var(--neon-magenta);
}

.has-background.has-white-background-color {
	color: var(--neon-bg);
}

/* Yoast パンくず */
.breadcrumbs,
#breadcrumbs {
	color: var(--neon-muted);
	font-size: 12px;
}


/* ==========================================================
   10.5 文字サイズ切り替え・言語スイッチャー
   ========================================================== */
:root {
	--neon-fs: 1;
}

html[data-fontsize="small"] {
	--neon-fs: 0.9;
}

html[data-fontsize="large"] {
	--neon-fs: 1.18;
}

.entry-content,
.entry-excerpt,
.widget,
.comments-area,
.post-navigation {
	font-size: calc(1rem * var(--neon-fs));
}

.post-wrapper .entry-title {
	font-size: calc(1.5rem * var(--neon-fs));
}

.single .entry-title,
.page .entry-title {
	font-size: calc(clamp(1.5rem, 1.1rem + 1.6vw, 2.2rem) * var(--neon-fs));
}

.widget p,
.textwidget {
	font-size: calc(14px * var(--neon-fs));
}

.header-main {
	position: relative;
}

.neon-tools {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--navi-font);
	font-size: 11px;
	color: var(--neon-muted);
	z-index: 60;
}

.neon-tools.is-in-header {
	position: absolute;
	top: 8px;
	right: 0;
}

.neon-tools.is-floating {
	position: fixed;
	right: 16px;
	bottom: 16px;
	padding: 6px 10px;
	background: rgba(7, 8, 13, 0.85);
	border: 1px solid var(--neon-line);
	border-radius: 999px;
}

.neon-tools__group {
	display: flex;
	align-items: center;
	gap: 2px;
	padding: 2px;
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid var(--neon-line);
	border-radius: 999px;
}

.neon-tools__label {
	padding: 0 6px 0 8px;
	letter-spacing: 0.1em;
}

.neon-tools button {
	min-width: 28px;
	height: 24px;
	margin: 0;
	padding: 0 6px;
	color: var(--neon-text);
	background: transparent;
	border: 0;
	border-radius: 999px;
	box-shadow: none;
	font-family: var(--navi-font);
	font-size: 11px;
	letter-spacing: 0;
	line-height: 24px;
	text-transform: none;
}

.neon-tools button small {
	font-size: 9px;
}

.neon-tools button:hover {
	color: var(--neon-cyan);
	background: rgba(0, 229, 255, 0.1);
	box-shadow: none;
}

.neon-tools button.is-active {
	color: var(--neon-bg);
	background: var(--neon-cyan);
	box-shadow: var(--neon-glow);
}

.neon-tools__lang {
	padding: 0 4px 0 8px;
	color: var(--neon-cyan);
}

.neon-tools__globe {
	width: 14px;
	height: 14px;
	flex: none;
}

.neon-tools select {
	height: 24px;
	padding: 0 4px;
	color: var(--neon-text);
	background: transparent;
	border: 0;
	border-radius: 999px;
	font-family: var(--text-font);
	font-size: 11px;
	cursor: pointer;
}

.neon-tools select:focus {
	box-shadow: none;
}

.neon-tools select option {
	color: var(--neon-text);
	background: var(--neon-surface);
}

/* Google 翻訳のバナー・ツールチップを隠す */
.goog-te-banner-frame,
iframe.skiptranslate,
#goog-gt-tt,
.goog-te-balloon-frame,
.goog-tooltip,
.goog-te-gadget,
#google_translate_element {
	display: none !important;
}

body {
	top: 0 !important;
}

.goog-text-highlight {
	background: none !important;
	box-shadow: none !important;
}

@media only screen and (max-width: 60em) {
	.neon-tools.is-in-header {
		position: static;
		justify-content: flex-end;
		flex-wrap: wrap;
		gap: 6px;
		padding: 0 0 10px;
		clear: both;
	}

	.neon-tools__label {
		display: none;
	}
}

/* ==========================================================
   11. 動きを減らしたい環境への配慮
   ========================================================== */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
	}

	.post-wrapper article:hover,
	.post-wrapper .type-post:hover {
		transform: none;
	}
}
