/*********************** CSS reset ***********************/
	
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,
blockquote,pre,abbr,address,cite,code,del,dfn,em,
ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,
ol,ul,li,fieldset,form,label,legend,table,caption,
tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,
figcaption,figure,footer,header,hgroup,menu,nav,section,
summary,time,mark,audio,video {
	margin: 0;
	padding: 0;
	vertical-align: baseline;
	border: 0;
	outline: 0;
	background: transparent;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
	display: block;
}

ul, ol {
	margin: 0;
	padding: 0;
	list-style-type: none;
}

nav ul {
	font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	font-size: 0.94rem;
	line-height: 1;
}

blockquote, q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: '';
	content: none;
}

a {
	margin: 0;
	padding: 0;
	vertical-align: baseline;
	background: transparent;
}

ins {
	text-decoration: none;
	color: #fff;
	background-color: #ff9;
}

mark {
	font-weight: bold;
	font-style: italic;
	color: #fff;
	background-color: #ff9;
}

del {
	text-decoration: line-through;
}

abbr[title],
dfn[title] {
	cursor: help;
	border-bottom: 1px dotted;
}

table {
	border-spacing: 0;
	border-collapse: collapse;
}

hr {
	display: block;
	height: 1px;
	margin: 1em 0;
	padding: 0;
	border: 0;
	border-top: 1px solid #ccc;
}

/*********************** basic configurations ***********************/

*,
*:before,
*:after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
	overflow-x: hidden;
	overflow-y: scroll;
	font-size: 16px;
}

body {
	font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	line-height: 1.8;
	overflow: hidden;
	background-color: #050505;
	color: #fff;
	padding-top: 70px;
}

body.home {
    padding-top: 0;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'Lato', 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	font-weight: bold;
}

a:link {
	color:#39f;
}

a:visited {
	color:#939;
}

a:active {
	color:#f00;
}

img {
	margin: 0;
	padding: 0;
	max-width: 100%;
	height: auto;
	vertical-align: top;
	border: 0;
	outline: 0;
	background: transparent;
}

figcaption {
	font-size: 0.9rem;
	font-family: 'Lato', 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	margin: -3rem 1rem 3rem;
}

/* author'name delete */

.article-author,
.article-mini-list-author {
	display: none !important;
}

/* codes */

code {
	padding: 15px;
	background-color: #fff;
	font-size: .8rem;
	color: #fff;
}

pre {
	width: 100%;
	white-space: pre-wrap;
	margin-bottom: 3rem;
	padding: 15px !important;
	background-color: #fff;
	font-size: .8rem;
	line-height: 1.3;
	color: #fff;
}

/* iOS input style reset */

button, select, textarea,
input[type="text"],
input[type="textarea"],
input[type="tel"],
input[type="email"],
input[type="password"],
input[type="datetime"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime-local"],
input[type="number"],
input[type="submit"],
input[type="button"],
input[type="reset"],
input[type="image"],
input[type="search"] {
	margin: 0;
	padding: .5rem ;
	border: solid 1px #555;
	border-radius: 0;
	-moz-appearance: none;
	-webkit-appearance: none;
	-o-appearance: none;
	-ms-appearance: none;
	appearance: none;
	background-color: #050505;
	box-sizing: border-box;
	vertical-align: middle;
	font-size: 1rem;
	font-weight: normal;
	color: #fff;
}

button,
input[type="submit"],
input[type="button"],
input[type="reset"],
input[type="image"] {
	cursor: pointer;
}

input.search-field {
	width: 79%;
	height: 2.6em;
}

.search-submit {
	height: 2.6em;
	cursor: pointer;
}

.comment-form input[type="submit"],
.mailform-items input[type="button"],
.mailform-items input[type="submit"] {
	background-color: #fff;
	margin-top: 2rem;
	border: none;
	color: #fff;
	font-family: 'Noto Serif JP', serif;
	cursor: pointer;
	font-size: 0.8rem;
	line-height: 1;
	padding: 1.4em 2.7em;
	text-transform: uppercase;
}

/*********************** code-prettify ***********************/

.article-content pre ol {
	font-family: monospace;
	font-size: .8rem;
	line-height: 1.3;
}

/*********************** all contents max-width ***********************/

.header-inner, .header-nav-wrap, .container, .footer-inner {
	max-width: 1200px;
}

/*********************** mouse over & transition effect ***********************/

a,
.article-list,
.article-mini-list {
	-webkit-transition: .2s ease-in-out;
	-moz-transition: .2s ease-in-out;
	-o-transition: .2s ease-in-out;
	transition: .2s ease-in-out
}

a:hover {
	opacity: .5;
}

.article-list:hover,
.article-mini-list:hover,
.sitemap-top a:hover,
.sitemap-tree ul li a:hover {
	opacity: .7;
}

.site-title a:hover,
.article-content h1 a:hover,
a.book_thumb:hover {
	opacity: 1;
}

/*********************** header ***********************/

.header-inner {
	position: relative;
	margin: 0 auto;
	padding: 3rem 1.25rem;
}

/* site-title */

.site-title-wrap {
	text-align: center;
}

.site-title {
	margin: 0;
	padding: 0;
	line-height: 1;
}

h1.site-title {
	margin: 1.25rem 0 0.25rem;
	padding: 0;
	line-height: 1;
}

.site-title a {
	margin: 0;
	padding: 0;
	line-height: 1;
}

/* site-title-image */

.site-title a {
	font-family: 'Gentium Basic', serif;
	color: #fff;
	font-size: 2.5rem;
	font-weight: bold;
	text-decoration: none;
}

.site-catch {
	text-align: center;
	font-size: 0.9rem;
	font-style: italic;
}

/* header-sns */

.header-sns-wrap {
	position: absolute;
	top: 2rem;
	right: 1.25rem;
}

ul.header-sns-wrap {
	margin: 1rem 0;
	padding: 0;
}

ul.header-sns-wrap li {
	display: inline-block;
	margin: 0 0 0 0.25rem;
	padding: 0;
}

/* header-nav-menu */

.header-nav-wrap {
	position: relative;
	margin: 0 auto 2rem;
	padding: 0 1.25rem;
}

.header-nav-wrap div {
	margin: 0;
	padding: 0;
}

.header-nav {
	font-size: 0;
}

.header-nav ul {
	text-align: center;
	border-top: solid 1px #555;
	border-bottom: solid 1px #555;
}

.header-nav li {
	display: inline-block;
	text-align: left;
}

.header-nav li:last-child {
	margin-right: 0;
}

.header-nav li a {
	display: block;
	padding: 0;
	margin:0 18px;
	color: #fff;
	font-size: 14px;
	text-decoration: none;
	line-height: 50px;
}

.menu li.current_page_item a {
	color: #a62425;
}

.menu li.current-menu-parent > a {
}

.menu li.current-category-ancestor a {
}

.menu li.current-post-ancestor a {
}

.menu li.current-menu-item a {
	color: #a62425;
}

/* sub-menu */

li.menu-item-has-children {
	position: relative;
}
 
.sub-menu {
	visibility: hidden;
	opacity: 0;
	position: absolute;
	top: 40px;
	z-index: 500;
	-webkit-transition: all .3s ease;
	transition: all .3s ease;
}
 
li.menu-item-has-children ul li {
	width: 195px;
	background-color: #050505;
	border: 1px solid #ddd;
	box-shadow: 0px 1px 1px #ddd;
	border-top: none;
	text-align: left;
}

li.menu-item-has-children ul li:last-child {
	border-bottom: none;
}

.active {
	visibility: visible;
	opacity: 1;
	top: 50px;
}

li.menu-item-has-children > a {
	cursor: pointer;
	margin-right: -2px;
}

li.menu-item-has-children > a::after {
	font-family: FontAwesome;
	content: ' \f107';
	display: inline-block;
	margin-left: 6px;
	cursor: pointer;
}

/* header-search */

.header-search-wrap {
	display: table;
	position: absolute;
	top: 0;
	right: -13.8rem;
	line-height: 50px;
	text-align: right;
}

.loupebutton {
	border: none;
	background-color: transparent;
	font-size: 1.6rem;
	cursor: pointer;
	color: #fff;
	vertical-align: -14%;
}

.header-search-box {
	display: table-cell;
}

.header-search-box input.search-field,
.header-search-box input.search-submit {
	display: inline;
}

.header-search-mask {
	position: absolute;
	top: 0;
	right: -480px;
	width: 500px;
	height: 50px;
	background-color: #050505;
}

/*********************** global frame rayout ***********************/

.container {
	margin: 0 auto;
	padding: 2rem 1.25rem;
}

.contents {
	width: 100%;
	max-width: 700px;
	margin: 0 auto;
	padding: 0;
}

/*********************** breadcrumb list ***********************/

.bread ol {
	margin: 0 0 2rem;
	padding: 0;
}

.bread li {
	display: inline-block;
}

.bread li a {
	font-size: .7em;
	text-decoration: none;
	color: #fff;
}

.bread li a:second-child {
	font-size: .9em;
	padding: 0 15px;
	text-decoration: none;
	color: #fff;
}

.bread li:after {
	margin: 0 10px;
	font-size: .8rem;
	content: '＞';
	color: #fff;
}

.bread li:first-child:after {
	margin-right: 6px;
}

.bread li:last-child:after {
	content: none;
}

.bread li:last-child a:hover {
	opacity: 1;
}

.bread i {
	font-size: 1rem;
}

/*********************** loop content ***********************/

.top-line {
	margin: 0;
	padding: 0;
	border-top: solid 1px #ddd;
}

.article-list {
	display: table;
	position: relative;
	margin: 0;
	padding: 1.2rem 0;
	width: 100%;
}

.article-list .img-wrap {
	display: table-cell;
	position: relative;
	line-height: 1;
	height: 100%;
	width: 160px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.article-list .img-wrap .cat-data {
	position: absolute;
	top: 0;
	right: 0;
	padding: .25rem .5rem;
	background-color: #050505;
	font-size: .7rem;
	color: #fff;
}

.article-list .text {
	display: block;
	padding: 0 0 0 1.5rem;
	min-height: 120px;
}

.article-list .text-wi {
	display: block;
	padding: 0;
	min-height: 120px;
}

.article-list .text h2,
.article-list .text-wi h2 {
	margin: 0 0 .5rem 0;
	font-family: 'Noto Serif JP', serif;
	font-size: 1.15rem;
	color: #fff;
}

.article-list .text .article-date,
.article-list .text-wi .article-date,
.article-list .text .article-r-date,
.article-list .text-wi .article-r-date,
.article-list .text .article-author,
.article-list .text-wi .article-author {
	font-size: .75rem;
	font-weight: bold;
	margin-right: .5rem;
	display: inline-block;
	line-height: 1;
	color: #fff;
}

.article-list .text p,
.article-list .text-wi p {
	margin-top: .5rem;
	font-family: 'Noto Serif JP', serif;
	font-size: .8rem;
	line-height: 1.7;
	color: #fff;
}

/*********************** article content ***********************/

.article-content {
	margin-bottom: 2rem;
}

/* article-content header */

.article-content .article-info {
	margin-bottom: 2rem;
}

.article-content .cat-data i {
	vertical-align: -15%;
}

.article-content .cat-data a {
	font-size: .85rem;
	font-weight: bold;
	padding: 0;
	text-decoration: none;
	color: #ccc;
}

.article-content .article-info .article-date,
.article-content .article-info .article-r-date,
.article-content .article-info .article-author {
	font-size: 0.7rem;
	display: inline-block;
	margin-right: .5rem;
	color: #ccc;
}

.article-content .article-info .article-author a {
	margin-right: .3rem;
	text-decoration: none;
	color: #fff;
}

/* article-content main */

.article-content p,
.article-content b,
.article-content table,
.article-content ul,
.article-content ol {
	font-size: .8rem;
	font-family: 'Noto Serif JP', serif;
	line-height: 2;
}

.article-content p,
.article-content img,
.article-content table,
.article-content ul,
.article-content ol {
	margin-bottom: 2rem;
}

.article-content .article-info p {
	font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	font-size: 0.6rem;
	color: #ccc;
	margin: 0;
	text-align: right;
}

.article-content h1 {
	margin: 4rem 0 2.5rem;
	font-family: 'Lato', 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	font-size: 1.3rem;
	color: #ccc;
	line-height: 1.5;
}

.article-content h2 {
	font-size: 1.1rem;
	color: #ccc;
	margin: 2.5rem 0 1.8rem;
	padding: .4rem 0;
	letter-spacing: 1px;
	border-bottom: solid 2px #333;
}

.article-content h3 {
	font-size: 1.1rem;
	color: #ccc;
	margin: 2.5rem 0 1.8rem;
	padding: 0 1rem;
	letter-spacing: 1px;
	border-left: solid 7px #999;
	background: transparent;
}

.article-content h4 {
	font-size: 1rem;
	color: #ccc;
	margin: 2rem 0 1rem;
	letter-spacing: 1px;
}

.article-content h5 {
	font-size: 1rem;
	color: #ccc;
	margin: 0 0 .3rem;
	letter-spacing: 1px;
}

.article-content .article-img {
	margin-bottom: 2rem;
}

.article-content .article-img img {
	display: block;
	margin: 0 auto;
}

.article-content ul {
	margin: 0 0 0 2rem;
}

.article-content ol {
	margin-left: 2rem;
	list-style: decimal;
}

.article-content table {
	border-collapse: collapse;
}

.article-content th,
.article-content td {
	padding: .6rem;
	vertical-align: middle;
	border: 1px solid #ddd;
}

.article-content figure {
	max-width: 100%;
}

/* article-content SNS */

.share-box p {
	display: inline-block;
	margin-bottom: 0;
	padding: 0.5rem 0 0.3rem;
	border-top: 1px solid #ddd;
	font-family: 'Gentium Basic', serif;
	font-size: 12px;
	font-weight: bold;
}

.share-box ul {
	margin: 0;
}

.share-box ul li {
	display: inline-block;
	width: 32px;
	height: auto;
}

.article-content .share-box ul li img {
	margin-bottom: 0;
}

/* article-content tag */

.article-tag {
	margin-top: 1rem;
	text-align: right;
	font-size: 1.5rem;
}

.article-tag span {
	font-size: 1.5rem;
}

.article-tag:after {
	content: "";
	display: block;
	clear: both;
}

.article-tag ul li:first-child {
	position: relative;
}

.article-tag ul li:first-child a:before {
	position: absolute;
	top: -6px;
	left: -28px;
	font-size: 1.5rem;
	font-family: FontAwesome;
	content: '\f02b';
	color: #fff;
}

.article-tag ul li {
	font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	font-size: .9rem;
	display: inline-block;
	margin-left: .5rem;
	line-height: 1.6;
}

.article-tag ul li:last-child {
	margin-right: 0;
}

.article-tag ul li a {
	font-size: .7rem;
	padding: .2rem .3rem;
	text-decoration: none;
	background-color: #050505;
	color: #fff;
}

/* comments */

h3.comments-count {
	border-left: none;
	border-bottom: 2px solid #fff;
	padding: 0 1rem;
	color: #fff;
	letter-spacing: 0;
}

.comments-meta img.avatar {
	display: none;
}

ul.comments-list {
	margin: 0 0 4rem 0;
}

ul.comments-meta-list {
	margin-left: 0;
	position: relative;
}

li.comments-author-name {
	width: 100%;
	font-size: 1.2rem;
	font-weight: bold;
	font-style: normal;
	margin-bottom: 0.5rem;
	border-bottom: 1px solid #ddd;
}

li.comments-author-name cite:after {
	font-size: 0.9rem;
	color: #333;
	content: " さん";
}

li.comments-title a {
	display: none;
}

span.comments-approval {
	position: absolute;
	right: 0;
	color: #777;
	top: 45px;
	font-size: 0;
}

span.comments-approval:before {
	font-size: 0.8rem;
	content: "（このコメントは承認待ちです）";
}

li.comments-date {
	position: absolute;
	right: 0;
	top: 0;
}

li.comments-date a {
	font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	text-decoration: none;
	color: #fff;
}

.comments-content p {
	margin-bottom: 0;
}

.comments-reply {
	text-align: right;
	margin-bottom: 2rem;
}

/* comments post form */

.comment-respond h3 {
	font-size: 1.3rem;
	padding: 0;
	letter-spacing: 0;
	border: none;
}

.article-content p.comments-notes {
	margin-bottom: 1.5rem;
	font-size: 0.9rem;
	line-height: 1.8em;
}

.article-content p.comment-form-comment,
.article-content p.comments-form-author,
.article-content p.comments-form-email {
	margin-bottom: 1.5rem;
}

.comment-form-comment label {
	display: none;
}

textarea#comment {
	max-width: 700px;
	width: 100%;
	font-family: 'Noto Serif JP', serif;
	height: 150px;
}

.comments-form-author input[type="text"],
.comments-form-email input[type="email"] {
	display: inline-block;
	font-family: 'Noto Serif JP', serif;
	height: 45px;
	width: calc(100% - 118px);
}

.comments-form-author label,
.comments-form-email label {
	display: inline-block;
	font-size: 0;
	width: 118px;
}

.comments-form-author label:before {
	font-size: 0.9rem;
	content: "お名前*";
}

.comments-form-email label:before {
	font-size: 0.9rem;
	content: "メールアドレス*";
}

.comment-form-cookies-consent {
	display: none;
}

/* pagenation */

.pagination {
	margin: 2rem 0;
	text-align: center;
}

.pagination ul {
	font-size: 0;
}

.pagination ul li {
	font-size: 1rem;
	display: inline-block;
	margin-right: .5rem;
}

.pagination ul li:last-child {
	border: 0;
}

.pagination ul li a,
.pagination .current {
	display: block;
	padding: .5rem .8rem;
	border: 1px solid #fff;
}

.pagination ul li .prev,
.pagination ul li .next {
	border: 0;
	font-size: 1.5rem;
	transform: translateY(.2rem);
}

.pagination ul li a {
	text-decoration: none;
	color: #fff;
}

.pagination .current {
	color: #fff;
	background-color: #050505;
}

/*********************** footer ***********************/

.footer {
	width: 100%;
	margin: 0 auto;
	max-width: 1200px;
}

.footer-inner {
	position: relative;
	margin-right: 1.25rem;
	margin-left: 1.25rem;
	padding: 2rem;
}

.footer-nav-wrap {
}

.footer-nav {
	text-align: center;
	font-size: 0;
	margin-bottom: 2.5rem;
}

.footer-nav li {
	font-size: 0.7rem;
	display: inline-block;
	margin-left: 1.5rem;
}

.footer-nav li:first-child {
	margin-left: 0;
}

.footer-nav li a {
	text-decoration: none;
	color: #fff;
}

.footer-search-wrap {
	margin: 4rem auto 1rem;
	text-align: center;
}

.footer-logo-wrap {
	text-align: center;
	margin: 0;
}

.footer-logo-wrap img {
	width: 130px;
	height: auto;
}

.warning-wrap {
	margin: 1rem;
	text-align: center;
	font-family: 'メイリオ', 'Meiryo', 'ヒラギノ角ゴ Pro', 'Hiragino Kaku Gothic Pro', 'Noto Sans Japanese', Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	font-size: .6rem;
	color: #aaa;
}

.warning-wrap p {
	line-height: 1.4;
}

.copyright-wrap {
	margin: 1rem;
	text-align: center;
	font-size: .7rem;
	color: #aaa;
}

.copyright-wrap p {
	line-height: 1.4;
}

.copyright-wrap p a {
	text-decoration: none;
	color: #fff;
}

/*********************** widget ***********************/

/* default */

.sidebar-title {
	font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	margin: 0 0 1.2rem;
	color: #fff;
	border-bottom: 4px solid #fff;
}

.widget_recent_entries ul,
.widget_meta ul,
.widget_recent_comments ul,
.widget_pages ul,
.widget_meta ul,
.widget_categories ul,
.widget_archive ul,
.widget_nav_menu ul,
.calendar_wrap,
.tagcloud {
	list-style: none;
}

.widget_recent_entries li,
.widget_meta li,
.widget_recent_comments li,
.widget_pages li,
.widget_meta li,
.widget_archive li,
.widget_nav_menu li {
	position: relative;
	margin-bottom: .5rem;
}

.widget_recent_entries a,
.widget_meta a,
.widget_recent_comments a,
.widget_pages a,
.widget_meta a,
.widget_categories a,
.widget_archive a,
.widget_nav_menu a {
	text-decoration: none;
	color: #fff;
}

/* search widget */

.widget_search {
	display: none;
}

@media(max-width: 800px) {
	.widget_search {
		display: block;
	}
}

/* category widget */

.widget_categories li {
	display: block;
	margin-bottom: .5rem;
}

.widget_categories li a {
	font-size: .95rem;
	position: relative;
	display: block;
	padding: .5rem .6rem 0 2rem;
}

.widget_categories li a::before {
	position: absolute;
	top: 9px;
	left: .6rem;
	font-family: FontAwesome;
	content: '\f07c';
}

.widget_categories .children {
	margin-bottom: .5rem;
	padding: 0;
	padding-left: 1rem;
}

.widget_categories .children li {
	margin-bottom: 0;
}

.widget_categories .children li a {
	font-size: .9rem;
	background-color: transparent;
}

.widget_categories .children li a::before {
	position: absolute;
	top: 50%;
	left: .6rem;
	content: '∟';
	transform: translateY(-50%);
}

/* drop-down at category widget & archive widget */

.widget_categories .screen-reader-text {
	display: none;
}

.widget_archive .screen-reader-text {
	position: relative;
	display: block;
	height: 0;
	text-indent: -9999999px;
}

.widget_categories form {
	position: relative;
}

.widget_categories form::after {
	position: absolute;
	top: 50%;
	right: 1rem;
	content: '▼';
	transform: translateY(-50%);
	pointer-events: none;
}

.widget_categories .postform,
.widget_archive select {
	font-size: .95rem;
	width: 100%;
	padding: 4px 10px;
	cursor: pointer;
	border: 1px solid #fff;
	border-radius: 0;
	background-color: #fff;
	-webkit-appearance: none;
	-moz-appearance: none;
}

.widget_archive label::after {
	position: absolute;
	top: .5rem;
	right: 1rem;
	content: '▼';
	text-indent: 0;
	pointer-events: none;
}

/* tag widget */

.tagcloud a {
	font-size: .8rem !important;
	line-height: 1;
	position: relative;
	display: inline-block;
	margin-bottom: .5rem;
	padding: .2rem .3rem;
	text-decoration: none;
	color: #fff;
	border: 1px solid #fff;
	background-color: #fff;	
}

/* menu widget */

.widget_nav_menu li a {
	font-size: 1rem;
	font-weight: bold;
	position: relative;
	padding-left: 1.3rem;
	color: #fff;
}

.widget_nav_menu li a::before {
	font-family: FontAwesome;
	font-weight: 900;
	position: absolute;
	top: 50%;
	left: 0;
	content: '\f105';
	transform: translateY(-50%);
	color: #fff;
}

/* recent entries */

.widget_recent_entries li {
	padding: .5rem 0;
	border-bottom: 1px solid #fff;
}

.widget_recent_entries li a:before {
	font-family: FontAwesome;
	position: absolute;
	left: 5px;
	content: '\f040';
	color: #fff;
}

.widget_recent_entries li a {
	display: block;
	margin-bottom: .3rem;
	padding-left: 1.6rem;
}

.widget_recent_entries .post-date {
	text-align: right;
	font-size: .8rem;
	display: block;
	font-weight: bold;
}

/* calender widget */

.calendar_wrap {
	padding: 1rem;
	border: 1px solid #fff;
	color: #fff;
}

.calendar_wrap table {
	width: 100%;
}

.calendar_wrap tbody {
	text-align: center;
}

.calendar_wrap caption {
	font-weight: bold;
	margin-bottom: 1rem;
}

.calendar_wrap td {
	padding: .3rem 0;
}

.calendar_wrap td a {
	color: #fff;
	text-decoration: none;
	font-weight: bold;
}

.calendar_wrap tfoot td {
	padding-top: .7rem;
}

.calendar_wrap tfoot td:last-child {
	text-align: right;
}

.wp-calendar-nav {
	margin-top: 1em;
}

.wp-calendar-nav-prev a {
	display: block;
	float: left;
	color: #fff;
	font-weight: bold;
	text-decoration: none;
}

.wp-calendar-nav-next a {
	display: block;
	float: right;
	color: #fff;
	font-weight: bold;
	text-decoration: none;
}

.wp-calendar-nav:after {
	content: "";
	display: block;
	clear: both;
}

/*********************** templates & php ***********************/

/* template-top-page */

#top-free {
	margin: 0;
	padding: 0;
	width: 100%;
	position: relative;
}

/* home.php */

.top-picture {
	width: 100%;
	margin: 0 auto;
	max-width: 1440px;
}

.home-top .article-list {
	margin-bottom: 2rem;
	padding: 1rem 0;
	border: none;
}

.home-top .article-list:hover {
	opacity: 1;
}

.home-top .article-list .img-wrap {
	width: 35%;
	height: 310px;
}

.home-top .article-list .new-post {
	display: block;
	margin-bottom: 2rem;
	text-align: center;
	color: #fff;
	font-size: 1.4rem;
}

.home-top .article-list .text h2,
.home-top .article-list .text-wi h2 {
	margin-bottom: 1.5rem;
	text-align: center;
	font-size: 1.9rem;
	line-height: 1.3;
}

.home-top .article-list .text h2 a,
.home-top .article-list .text-wi h2 a {
	text-decoration: none;
	color: #fff;
}

.home-top .article-list .text p.info,
.home-top .article-list .text-wi p.info {
	margin-bottom: 2rem;
	text-align: center;
}

.home-top .article-list .text .article-date,
.home-top .article-list .text-wi .article-date,
.home-top .article-list .text .cat-data,
.home-top .article-list .text-wi .cat-data {
	margin-bottom: 1rem;
	font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	font-size: 1rem;
}

/* archive.php */

.archive-top h1 {
	margin-bottom: 2rem;
	padding: .8rem 2% .5rem;
	color: #fff;
	font-size: 1.9rem;
	border-bottom: 2px solid #666;
}

.archive-top p {
	font-size: .875rem;
	line-height: 1.7;
	margin-bottom: 1.5rem;
}

/* searchform.php */

.searchform label {
	display: none;
}

.searchform input[type="text"] {
	font-family: 'Noto Serif JP', serif;
	width: 170px;
	height: 40px;
	}

.searchform input[type="submit"] {
	color: #fff;
	background-color: #050505;
	font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	border: solid 1px #555;
	height: 40px;
}

/* search.php */

article.article-mini-list {
	position:relative;
}

.article-mini-list-content {
	padding: 1.5rem 0;
	border-bottom: solid 1px #333;
}

h1.search_result {
	font-size: 1.4rem;
	margin: 10px 0 0;
	letter-spacing: 1px;
}

h2.article-mini-list-title {
	font-size: 1.3rem;
	margin-bottom: 7px;
	color: #ccc;
}

.article-mini-list-head {
	margin-bottom: 7px;
}

.article-mini-list-head span {
	font-size: .7rem;
}

.article-mini-list-date,
.article-mini-list-author {
	margin-right: .7rem;
	color: #ccc;
	font-size: .7rem;
	font-weight: bold;
}

.cat-description {
	display: inline-block;
	vertical-align: 6%;
	font-size: .75rem;
	line-height: 1;
	padding: 3px 5px;
	margin: 0 .8rem 0 0;
	background-color: #050505;
	color: #fff;
}

.article-mini-list-main {
	font-family: 'Noto Serif JP', serif;
	font-size: .8rem;
	line-height: 1.5;
}

/* sitemap.php */

.sitemap-top {
	margin: 2rem 0 0 0;
	padding: 0;
	border-bottom: 1px solid #333;
}

.sitemap-top a {
	display: block;
	width: 100%;
	padding: .75rem 0 .75rem .5rem;
	text-decoration: none;
	color: #fff;
}

.sitemap-top a:before {
	margin-right: .3rem;
	font-family: FontAwesome;
	font-size: 1.2rem;
	content: '\f015';
	color: #fff;
}

.sitemap-tree {
	margin: 2rem 0 0;
}

.sitemap-tree ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
	font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
}

.sitemap-tree ul li {
	position: relative
}

.sitemap-tree ul.children li {
	padding-left: 2rem;
}

.sitemap-tree ul li a {
	display: block;
	width: 100%;
	text-decoration: none;
	color: #fff;
	border-bottom: 1px solid #333;
	padding: .75rem 0 .75rem .5rem;
}

.sitemap-tree ul li.cat-item a:before {
	margin-right: .3rem;
	font-family: FontAwesome;
	content: '\f07c';
	color: #fff;
}

.page-sitemap-tree li a:before {
	margin-right: .3rem;
	font-family: FontAwesome;
	content: '\f016';
	color: #fff;
}

/* contact-***.php */

.mailform-items {
	margin-bottom: 1.5rem;
}

.mailform-items input[type="text"],
.mailform-items input[type="email"] {
	font-family: 'Noto Serif JP', serif;
	height: 45px;
	width: 70%;
}

.mailform-items textarea {
	max-width: 700px;
	width: 100%;
	font-family: 'Noto Serif JP', serif;
	height: 150px;
}

p.confirm {
	width: 70%;
	margin: 0;
	padding: 8px 10px;
	font-weight: bold;
	background-color: fcc;
}

h2.mail-sent {
	border: none;
	font-size: 1.4rem;
	padding: 6px;
	text-align: center;
	background-color: #363;
	color: #fff;
	font-weight: bold;
}

/* 404.php */

h2.not_found {
	margin-bottom: 1.5rem;
	background-color: #050505;
	padding: .5rem 0;
	color: #ccc;
	font-size: 1.3rem;
	line-height: 1.6;
}

p.not_found {
	font-size: .9rem;
	margin-bottom: 3rem;
}

/*********************** responsive ***********************/

/* narrow PC */

@media(max-width: 1024px) {

	.header-sns-wrap {
		position: static;
	}

	ul.header-sns-wrap {
		text-align: center;
	}
}

/* tablet */

@media(max-width: 800px) {

	.nav-button-wrap {
		position: relative;
		margin: 0 1.25rem 2rem;
		padding: 0 1rem;
		line-height: 50px;
		border-top: solid 1px #ddd;
		border-bottom: solid 1px #ddd;
	}

	.nav-button-wrap p {
		font-size: 0.7rem;
		color: #555;
	}

	.navbutton {
		font-size: 1.5rem;
		position: absolute;
		z-index: 999;
		top: 25px;
		right: 0;
		cursor: pointer;
		transform: translateY(-50%);
		border: 0;
		color: #fff;
		background-color: transparent;
	}

	.navbutton:focus {
		outline: 0;
	}

	.header-nav-wrap {
		z-index: 999;
		top: -2rem;
		left: 0;
		display: none;
		width: 100%;
		margin-left: 0;
		margin-bottom: 0;
		transform: none;
		background-color: #050505;
	}

	.header-nav ul {
		border: none;
	}

	.header-nav li {
		display: block;
		margin-right: 0;
	}

	.header-nav li a {
		position: relative;
		margin: 0;
		padding: 0 1rem;
		background-color: #050505;
		color: #fff;
		border-bottom: 1px solid #ddd;
	}

	.header-nav li a:after {
		font-family: FontAwesome;
		font-weight: 900;
		position: absolute;
		top: 50%;
		right: 1.25rem;
		display: block;
		content: '\f105';
		transform: translateY(-50%);
	}

	li.menu-item-has-children ul li a {
		border: none;
	}

	.active {
		top: 51px;
	}

	.home-top .article-list {
		display: block;
		width: 100%;
	}

	.home-top .article-list .img-wrap {
		display: block;
		width: 100%;
		height: 78vw;
	}

	.home-top .article-list .text,
	.home-top .article-list .text-wi {
		display: block;
		width: 100%;
		padding: 0;
	}

	.home-top .article-list .new-post {
		margin-top: .5rem;
	}

	.home-top .article-list .text h2,
	.home-top .article-list .text-wi h2,
	.home-top .article-list .text .article-date,
	.home-top .article-list .text-wi .article-date,
	.home-top .article-list .text .cat-data,
	.home-top .article-list .text-wi .cat-data {
		margin: 2rem 0 0;
	}

}

/* smart phone */

@media(max-width: 600px) {

	html {
		font-size: 15px;
	}

	code, pre, .article-content pre ol {
		font-size: .7rem;
	}
	
	.header-inner,
		.container,
		.footer-inner {
		padding: 2rem 1.25rem 1rem;
	}

	.contents {
		margin-bottom: 1rem;
	}

	.site-title a {
		font-size: 2.4rem;
	}

	.navbutton {
		top: 50%;
		right: 1rem;
	}

	.header-nav li a:after {
		right: .8rem;
	}

	.article-list .img-wrap {
		width: 120px;
	}

	.article-list .img-wrap .cat-data {
		font-size: .6rem;
	}

	.article-list .text,
	.article-list .text-w {
		min-height: 90px;
	}

	.article-list .text h2,
	.article-list .text-wi h2 {
		font-size: 1rem;
		margin-bottom: 0;
	}

	.article-list .text p,
	.article-list .text-wi p {
		display: none;
	}

	.home-top .article-list .text h2 {
		font-size: 1.6rem;
	}

	.home-top .article-list .text p,
	.home-top .article-list .text-wi p {
		display: block;
	}

	.article-list .text .article-date,
	.article-list .text-wi .article-date,
	.article-list .text .article-r-date,
	.article-list .text-wi .article-r-date,
	.article-list .text .article-author,
	.article-list .text-wi .article-author {
		font-size: .625rem;
	}

	.article-content h1, h1.search_result {
		font-size: 1.6rem;
	}

	.article-content h2 {
		font-size: 1.4rem;
	}

	.article-content h3 {
		font-size: 1.3rem;
	}

	.article-content h4 {
		font-size: 1.2rem;
	}

	.archive-top h1 {
		font-size: 1.25rem;
		margin-bottom: 1rem;
	}

	.archive-top p {
		font-size: .8125rem;
		margin-bottom: 1rem;
	}

}

/* super narrow */

@media(max-width: 400px) {

	.article-list .img-wrap {
		width: 120px;
	}

	.article-list .text .article-r-date,
	.article-list .text-wi .article-r-date {
		display: none;
	}

}

/* =========================================
   ULGAIA SYSTEM MENU (Fixed Hamburger)
   ========================================= */

/* --- 1. 固定ボタンのデザイン --- */
.sys-menu-btn {
    position: fixed; /* 常に画面固定 */
    top: 20px;
    right: 30px; /* 右上の位置 */
    z-index: 9999; /* 最前面 */
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    color: #fff; /* 文字色 */
    font-family: 'Gentium Basic', serif; /* ファンタジー感 */
    mix-blend-mode: difference; /* 背景が白でも黒でも見えるように（任意） */
}

.sys-menu-btn .btn-text {
    font-size: 14px;
    margin-right: 15px;
    letter-spacing: 2px;
    font-weight: bold;
    text-shadow: 0 0 5px rgba(255,0,0,0.5); /* ほんのり赤く光らせる */
}

/* 3本線のデザイン */
.sys-menu-btn .btn-bars {
    width: 30px;
    height: 20px;
    position: relative;
}

.sys-menu-btn .btn-bars span {
    display: block;
    position: absolute;
    height: 2px;
    width: 100%;
    background: #fff;
    transition: 0.4s ease-in-out;
}

.sys-menu-btn .btn-bars span:nth-child(1) { top: 0px; }
.sys-menu-btn .btn-bars span:nth-child(2) { top: 9px; width: 70%; right: 0; } /* 真ん中を少し短くしてSFっぽく */
.sys-menu-btn .btn-bars span:nth-child(3) { top: 18px; }

/* --- 2. メニューが開いた時のボタン変化 (Xになる) --- */
body.menu-open .sys-menu-btn .btn-bars span:nth-child(1) {
    top: 9px;
    transform: rotate(135deg);
    background: #ff4444; /* 開くと赤くなる */
}
body.menu-open .sys-menu-btn .btn-bars span:nth-child(2) {
    opacity: 0;
    width: 0;
}
body.menu-open .sys-menu-btn .btn-bars span:nth-child(3) {
    top: 9px;
    transform: rotate(-135deg);
    background: #ff4444;
}
body.menu-open .sys-menu-btn .btn-text {
    color: #ff4444;
    content: "CLOSE"; /* CSSで文字変えは難しいのでJS推奨だが色は変えられる */
}

/* --- 3. 全画面オーバーレイメニュー --- */
.sys-overlay-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(5, 5, 10, 0.95); /* ほぼ真っ黒な濃紺 */
    z-index: 9998; /* ボタンより一つ下 */
    visibility: hidden;
    opacity: 0;
    transition: visibility 0.4s, opacity 0.4s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* 開いた状態 */
body.menu-open .sys-overlay-nav {
    visibility: visible;
    opacity: 1;
}

/* メニューリストのデザイン */
.sys-main-menu {
    list-style: none;
    padding: 0;
    margin: 0 0 3rem;
}

.sys-main-menu li {
    margin: 17px 0;
    opacity: 0;
    transform: translateY(20px);
    transition: 0.5s ease;
}

/* メニューが開いた時に時間差でふわっと出す */
body.menu-open .sys-main-menu li {
    opacity: 1;
    transform: translateY(0);
}
body.menu-open .sys-main-menu li:nth-child(1) { transition-delay: 0.1s; }
body.menu-open .sys-main-menu li:nth-child(2) { transition-delay: 0.2s; }
body.menu-open .sys-main-menu li:nth-child(3) { transition-delay: 0.3s; }
body.menu-open .sys-main-menu li:nth-child(4) { transition-delay: 0.4s; }
body.menu-open .sys-main-menu li:nth-child(5) { transition-delay: 0.5s; }
body.menu-open .sys-main-menu li:nth-child(6) { transition-delay: 0.6s; }
body.menu-open .sys-main-menu li:nth-child(7) { transition-delay: 0.7s; }
body.menu-open .sys-main-menu li:nth-child(8) { transition-delay: 0.8s; }

.sys-main-menu li a {
    color: #fff;
    font-family: 'Gentium Basic', serif;
    font-size: 2rem; /* 大きく */
    text-decoration: none;
    letter-spacing: 0.1em;
    position: relative;
    display: inline-block;
}

/* ホバー時のグリッチ演出（シンプル版） */
.sys-main-menu li a:hover {
    color: #ff4444; /* ルルカラー */
    text-shadow: 2px 0 0 rgba(0,255,255,0.5); /* ズレたような影 */
}

/* ロゴの調整（トップページの左上に置く用） */
.header-logo-area {
    position: fixed;
    top: 20px;
    left: 20px;
    /* マスク(8000)より確実に高い数値を設定 */
    z-index: 10000; 
}
.header-logo-area img {
    max-width: 150px; /* サイズ調整 */
    height: auto;
}

/* =========================================
   HEADER GRADIENT MASK (改良版)
   ========================================= */
.header-gradient-mask {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    
    /* 高さ = ベタ塗り70px + グラデーション20px = 合計90px */
    height: 90px; 
    
    /* グラデーションの設定 */
    /* 0px～70pxまでは「濃い黒(0.8)」のまま */
    /* 70px～100%(90px)の間で「透明(0)」へ変化 */
    background: linear-gradient(to bottom, 
        rgba(0,0,0,0.8) 0px, 
        rgba(0,0,0,0.8) 70px, 
        rgba(0,0,0,0) 100%
    );
    
    z-index: 8000; /* ロゴ(10000)より下、コンテンツより上 */
    pointer-events: none; /* クリック貫通 */
}

/* =========================================
   RESPONSIVE SETTINGS
   ========================================= 

*/@media screen and (max-width: 800px) {
    .header-logo-area img {
        width: 114px;
        height: auto; /* 比率を崩さないように念のため */
    }
}

@media screen and (max-width: 600px) {

/* メニューボタンの位置を端に寄せる */
    .sys-menu-btn {
        right: 10px; /* PCの30pxから詰める */
        /* 必要であれば top も調整してください（例：top: 15px;） */
    }

}

/* =========================================
   TOP PAGE: HERO SECTION
   ========================================= */
.hero-section {
    position: relative;
    width: 100%;
    height: 100vh; /* 画面いっぱいの高さ */
    overflow: hidden;
    background-color: #050505;
}

/* 背景画像（ズームアウトなどのアニメーション用） */
.hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* ここにキービジュアルを指定 */
    background-image: url('./img/key_visual_202512.jpg'); 
    background-position: center top; /* 顔が見えるように上寄せ */
    background-size: cover;
    opacity: 0.8; /* 少し暗くして文字を目立たせる */
    z-index: 1;
    /* じわっと拡大する演出 */
    animation: zoomUp 20s linear infinite alternate; 
}

@keyframes zoomUp {
    0% { transform: scale(1.0); }
    100% { transform: scale(1.1); }
}

/* =========================================
   HERO CONTENT LAYOUT (箱と文字の配置)
   ========================================= */

/* 1. 文字を入れる箱（画面中央、幅60%） */
.hero-content {
    position: absolute;
    
    /* 下からの位置（お好みで調整してください） */
    bottom: 19%; 
    
    /* 左右中央寄せの魔法の呪文 */
    left: 50%;
    transform: translateX(-50%);
    
    /* 箱の幅 */
    width: 84%;
    
    /* 箱の高さ（文字が収まるように確保） */
    /* ここが狭すぎると文字がはみ出すので、調整が必要かもしれません */
    height: 265px; 
    
    z-index: 2;
    /* 開発中に箱の場所を確認したい場合は、以下のコメントを外して枠線を表示してみてください */
    /* border: 1px solid red; */
}

/* 2. 縦書きキャッチコピー（箱の左端に配置） */
.hero-catch-vertical {
    position: absolute;
    top: 30px;
    left: 0; /* 左端に固定 */
    
    writing-mode: vertical-rl;
    font-family: 'Yu Mincho', 'Hiragino Mincho ProN', serif;
    font-size: .9rem;
    letter-spacing: .8em;
    line-height: 2.5;
    margin: 0; /* 余計な隙間を削除 */
    
    /* 先ほどのフチ文字設定 */
    text-shadow: 0 0 5px #050505, 0 0 10px #050505, 0 0 20px #050505;
}

/* 3. 英語のサブタイトル（箱の下端・中央に配置） */
.hero-sub-catch {
    position: absolute;
    bottom: 0; /* 下端に固定 */
    left: 0;
    width: 100%; /* 幅いっぱいに広げる */
    text-align: center; /* 文字を中央揃え */
    
    font-family: 'Gentium Basic', serif;
    font-size:  .9rem;
    letter-spacing:  .2em;
    line-height: 1.4;
    opacity: 0.8;
    margin: 0;
    
    /* フチ文字設定 */
    text-shadow: 0 0 5px #050505, 0 0 10px #050505, 0 0 20px #050505;
}

/* スクロールダウン */
.scroll-down {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    color: #fff;
    text-align: center;
}

.scroll-down .text {
    display: block;
    font-size: 12px;
    letter-spacing: 2px;
    margin-bottom: -5px;
    font-family: 'Gentium Basic', serif;
}

.scroll-down .line {
    display: block;
    width: 1px;
    height: 60px;
    background: #fff;
    margin: 0 auto;
    animation: lineDrop 2s infinite;
}

@keyframes lineDrop {
    0% { height: 0; opacity: 0; }
    50% { height: 60px; opacity: 1; }
    100% { height: 0; opacity: 0; transform: translateY(60px); }
}


/* =========================================
   TEXT SHADOW (ぼかした黒フチ)
   ========================================= */

.hero-catch-vertical,
.hero-sub-catch {
    /* 影をカンマ区切りで3つ重ねています 
       1つ目：0px 0px 5px (芯になる濃い影)
       2つ目：0px 0px 10px (少し広がった影)
       3つ目：0px 0px 20px (大きくボケた影)
    */
    text-shadow: 
        0 0 3px #050505,
        0 0 7px #050505,
        0 0 15px #050505; 
}


/* =========================================
   TOP PAGE: SECTIONS (NEWS & GATE)
   ========================================= */
.content-section {
    position: relative;
    padding: 80px 0;
    background: #050505; /* 漆黒より少し明るい黒 */
    color: #fff;
}

.section-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

.section-title {
    font-family: 'Gentium Basic', serif;
    font-size: 2.5rem;
    border-bottom: 1px solid #333;
    padding-bottom: 10px;
    margin-bottom: 40px;
}

.section-title .ja {
    font-size: 1rem;
    font-family: sans-serif;
    margin-left: 15px;
    color: #888;
}

/* ニュースリスト */
.news-list {
    list-style: none;
    padding: 0;
}
.news-list li {
    border-bottom: 1px solid #222;
}
.news-list li a {
    display: block;
    padding: 20px 0;
    color: #ccc;
    text-decoration: none;
    transition: 0.3s;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.news-list li a:hover {
    color: #fff;
    background: rgba(255,255,255,0.05);
    padding-left: 10px;
}
.news-list .date {
    font-family: 'Gentium Basic', serif;
    margin-right: 20px;
    color: #666;
}
.news-list .cat-label {
    background: #222;
    padding: 2px 8px;
    font-size: 11px;
    margin-right: 15px;
    border: 1px solid #444;
}

/* ゲート（リンクボタン） */
.gate-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

.gate-item {
    position: relative;
    height: 300px;
    display: block;
    overflow: hidden;
    border: 1px solid #333;
    text-decoration: none;
}

.gate-bg {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-size: cover;
    background-position: center;
    transition: 0.5s;
    filter: grayscale(100%) brightness(0.5); /* 最初はモノクロで暗く */
}

.gate-text {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: #fff;
    z-index: 2;
}

.gate-text h3 {
    font-family: 'Gentium Basic', serif;
    font-size: 2rem;
    margin: 0;
    text-shadow: 0 0 10px #050505;
}

/* ホバー時の演出 */
.gate-item:hover .gate-bg {
    transform: scale(1.1);
    filter: grayscale(0%) brightness(0.8); /* カラーになり少し明るく */
}
.gate-item:hover {
    border-color: #fff;
}

/* =========================================
   MOBILE LOGO FORCE FIX (iPhoneズレ対策)
   ========================================= */
@media screen and (max-width: 800px) {
    .header-logo-area {
        /* 1. 位置を少し上に詰める */
        top: 19px !important; /* PCの20pxより詰める */
        left: 15px !important; 
        
        /* 2. 余分な高さを消す（重要） */
        line-height: 0 !important;
        display: block !important;
        
        /* 3. マージン・パディングを抹消 */
        margin: 0 !important;
        padding: 0 !important;
        
        /* 4. 変な継承を防ぐ */
        width: auto !important;
        height: auto !important;
    }

    /* 内側のタグも強制リセット */
    .header-logo-area h1,
    .header-logo-area p,
    .header-logo-area a {
        margin: 0 !important;
        padding: 0 !important;
        line-height: 0 !important;
        display: inline-block !important; /* ブロックだと横幅いっぱいに広がりがち */
    }

    /* 画像自体の隙間を消す */
    .header-logo-area img {
        vertical-align: bottom !important; /* 画像下の謎の空白を消すおまじない */
        margin: 0 !important;
    }
}

/* =========================================
   MOBILE HERO IMAGE (縦型ビジュアルへの切り替え)
   ========================================= */
@media screen and (max-width: 600px) {
    .hero-bg {
        /* スマホ用画像を読み込み（!importantで強制上書き） */
        background-image: url('./img/key_visual_202512_v.jpg') !important;
        
        /* 顔が見えるように「上」を基準に合わせる */
        background-position: center top !important;
        
        /* 画面いっぱいに広げる */
        background-size: cover !important;
    }

    /* 補足：もし「顔がヘッダーに隠れてしまう」と感じる場合は、
       以下のようにbackground-positionを微調整してください。
       例： background-position: center 50px !important; 
    */
}

/* =========================================
   CHARACTER SINGLE PAGE DESIGN
   ========================================= */

/* ページ全体を深淵にする */
.char-page-wrapper {
    background: #000;
    min-height: 100vh;
    color: #fff;
    padding-top: 50px; /* ヘッダー被り防止 */
    overflow-x: hidden;
}

/* レイアウト枠（PCでは左右並び、スマホでは縦積み） */
.char-profile-container {
    display: flex;
    max-width: 1200px;
    margin: 0 auto;
    min-height: 80vh; /* 画面の高さを使う */
}

/* --- 左側：ビジュアルエリア --- */
.char-visual-area {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden; /* はみ出し防止 */
}

/* 幽霊のように背景に薄く映る演出 */
.char-bg-ghost {
    position: absolute;
    top: -10%; left: -10%;
    width: 120%; height: 120%;
    background-size: cover;
    background-position: center;
    opacity: 0.2; /* 薄くする */
    filter: blur(10px) grayscale(50%); /* ぼかして彩度を下げる */
    z-index: 0;
}

/* メインの立ち絵 */
.char-main-img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    margin: 0;
    display: flex;
    align-items: flex-end; /* 足元を下に合わせる */
    justify-content: center;
}

.char-main-img img {
    max-width: 90%;
    max-height: 80vh; /* 画面からはみ出さないように */
    object-fit: contain;
    filter: drop-shadow(0 0 20px rgba(255, 68, 68, 0.2)); /* ルルの赤色でほんのり発光 */
}

/* --- 右側：データエリア --- */
.char-data-area {
    flex: 1;
    padding: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    z-index: 2; /* 背景より上に */
}

/* ヘッダー周り */
.char-system-id {
    font-family: monospace;
    color: #555;
    font-size: 0.8rem;
    margin-bottom: 10px;
}
.char-name-ja {
    font-size: 3rem;
    margin: 0;
    line-height: 1.2;
    font-family: 'Yu Mincho', serif;
}
.char-name-en {
    font-family: 'Gentium Basic', serif;
    font-size: 1.5rem;
    color: #888;
    margin: 5px 0 20px 0;
    letter-spacing: 2px;
}
.char-line {
    width: 100px;
    height: 2px;
    background: #ff4444; /* アクセントカラー（赤） */
    margin-bottom: 40px;
}

/* スペック表 */
.char-specs dl {
    display: flex;
    border-bottom: 1px solid #333;
    padding: 15px 0;
    margin: 0;
}
.char-specs dt {
    width: 120px;
    font-family: 'Gentium Basic', serif;
    color: #888;
    font-weight: bold;
}
.char-specs dd {
    margin: 0;
    font-weight: bold;
    letter-spacing: 1px;
}

/* 紹介文 */
.char-bio {
    margin-top: 40px;
}
.char-bio h3 {
    font-size: 1rem;
    color: #ff4444;
    border-left: 3px solid #ff4444;
    padding-left: 10px;
    margin-bottom: 15px;
    font-family: 'Gentium Basic', serif;
}
.bio-text {
    line-height: 1.8;
    font-size: 0.95rem;
    color: #ccc;
    text-align: justify;
}

/* 戻るボタン */
.char-footer {
    margin-top: 50px;
}
.back-btn {
    color: #666;
    text-decoration: none;
    font-size: 0.9rem;
    transition: 0.3s;
}
.back-btn:hover {
    color: #fff;
}

/* --- レスポンシブ（スマホ対応） --- */
@media screen and (max-width: 768px) {
    .char-profile-container {
        flex-direction: column; /* 縦積みに */
    }
    .char-visual-area {
        height: 50vh; /* スマホでは画面半分を絵に */
        background: radial-gradient(circle, #222 0%, #000 100%);
    }
    .char-data-area {
        padding: 30px 20px;
    }
    .char-name-ja {
        font-size: 2rem;
    }
}

/* =========================================
   CHARACTER ARCHIVE (一覧ページ)
   ========================================= */

.char-archive-wrapper {
    background: #050505;
    min-height: 100vh;
    padding: 120px 0 80px; /* ヘッダー分空ける */
    color: #fff;
}

.archive-title {
    font-family: 'Gentium Basic', serif;
    font-size: 2.5rem;
    border-bottom: 1px solid #333;
    padding-bottom: 15px;
    margin-bottom: 50px;
    text-align: center;
}
.archive-title .ja {
    display: block;
    font-size: 1rem;
    color: #666;
    margin-top: 5px;
    font-family: 'Yu Mincho', serif;
    letter-spacing: 0.2em;
}

/* グリッドレイアウト（PCは3列、スマホは1?2列） */
.char-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 30px;
}

/* カードデザイン */
.char-card {
    position: relative;
    display: block;
    background: #111;
    text-decoration: none;
    overflow: hidden;
    transition: 0.3s;
    border: 1px solid #222;
}

/* 画像エリア（顔のトリミング） */
.char-card-thumb {
    width: 100%;
    height: 300px; /* 高さは固定 */
    overflow: hidden;
    background: #050505;
}

.char-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 枠いっぱいに埋める */
    object-position: top center; /* ★重要：画像の上（顔）を中心に表示 */
    transition: 0.5s;
    filter: grayscale(30%); /* 少し彩度を落として渋く */
}

/* テキストエリア */
.char-card-body {
    padding: 20px;
    text-align: center;
    position: relative;
    z-index: 2;
}

.char-card-meta {
    font-size: 0.7rem;
    color: #555;
    margin-bottom: 10px;
    font-family: monospace;
}

.char-card-name {
    font-size: 1.4rem;
    color: #fff;
    margin: 0 0 5px 0;
    font-family: 'Yu Mincho', serif;
}

.char-card-en {
    font-size: 0.9rem;
    color: #888;
    margin: 0 0 15px 0;
    font-family: 'Gentium Basic', serif;
    letter-spacing: 1px;
}

.char-card-class {
    font-size: 0.8rem;
    color: #ff4444; /* アクセントカラー */
    border: 1px solid #333;
    display: inline-block;
    padding: 2px 10px;
}

/* ホバー演出 */
.char-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.8);
    border-color: #555;
}
.char-card:hover .char-card-thumb img {
    transform: scale(1.1); /* 画像が少しズーム */
    filter: grayscale(0%); /* 彩度が戻る */
}

/* =========================================
   SINGLE POST (記事詳細ページ)
   ========================================= */
.single-post-wrapper {
    background: #050505; /* 読み物なので少し明るめの黒 */
    color: #ddd; /* 文字は真っ白すぎないグレー */
    min-height: 100vh;
    padding: 120px 20px 80px;
}

.single-inner {
    max-width: 800px; /* 読みやすい幅に制限 */
    margin: 0 auto;
}

/* 記事ヘッダー */
.post-header {
    border-bottom: 1px solid #333;
    padding-bottom: 20px;
    margin-bottom: 40px;
}

.post-meta {
    font-family: monospace;
    color: #666;
    font-size: 0.8rem;
    margin-bottom: 10px;
}

.post-title {
    font-family: 'Yu Mincho', serif;
    font-size: 2rem;
    line-height: 1.4;
    color: #fff;
    margin: 0;
}

/* 記事本文 */
.post-content {
    line-height: 1.8;
    font-size: 1rem;
    margin-bottom: 60px;
}
.post-content p {
    margin-bottom: 1.5em;
}
.post-content h2 {
    font-size: 1.5rem;
    border-left: 4px solid #ff4444; /* アクセントカラー */
    padding-left: 15px;
    margin: 40px 0 20px;
    color: #fff;
}
.post-content h3 {
    font-size: 1.2rem;
    color: #fff;
    margin: 30px 0 15px;
    border-bottom: 1px solid #333;
    padding-bottom: 5px;
}
.post-content img {
    max-width: 100%;
    height: auto;
    border: 1px solid #333;
}

/* 前後の記事リンク */
.post-navigation {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #333;
    padding-top: 30px;
    margin-bottom: 30px;
}
.post-navigation a {
    color: #888;
    text-decoration: none;
    transition: 0.3s;
}
.post-navigation a:hover {
    color: #fff;
}

/* 戻るリンク */
.back-link {
    text-align: center;
}
.back-link a {
    display: inline-block;
    border: 1px solid #444;
    padding: 10px 30px;
    color: #fff;
    text-decoration: none;
    font-family: 'Gentium Basic', serif;
    transition: 0.3s;
}
.back-link a:hover {
    background: #fff;
    color: #000;
}

/* =========================================
   ANIMATION EFFECTS (フワッと演出)
   ========================================= */

/* 1. アニメーションの動きを定義 */
/* その場でジワッと現れる */
@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* 下から上にフワッと浮き上がりながら現れる */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(40px); /* 開始位置：40px下 */
    }
    to {
        opacity: 1;
        transform: translateY(0); /* 終了位置：定位置 */
    }
}


/* 2. トップページへの適用 */

/* 背景画像（キービジュアル） */
.hero-bg {
    /* 初期状態は真っ暗（透明）にする */
    opacity: 0;
    
    /* アニメーションを2つ同時に適用 */
    animation: 
        fadeIn 2.5s ease-out forwards, /* 2.5秒かけてゆっくりフェードイン */
        zoomUp 20s linear infinite alternate; /* 既存のズーム演出はそのまま維持 */
}

/* キャッチコピーの文字ブロック */
.hero-content {
    /* 初期状態は見えなくする */
    opacity: 0;
    
    /* 背景が出現してから、少し遅れて下からフワッと出す */
    /* 1秒待機(delay) → 1.5秒かけて実行(duration) */
    animation: fadeInUp 1.5s ease-out 1s forwards;
}


/* 3. キャラクター一覧リストへの適用（時間差表示） */

/* カードの初期状態 */
.char-card {
    opacity: 0; /* 最初は隠す */
    /* 下からフワッと現れるアニメをセット（実行時間は0.8秒） */
    animation: fadeInUp 0.8s ease-out forwards;
}

/* 時間差攻撃（ディレイ）の設定 */
/* 1つ目は0.1秒待ってから、2つ目は0.2秒待ってから…と順番に出す */
/* 念のため20人分くらい設定しておきます */
.char-card:nth-child(1)  { animation-delay: 0.1s; }
.char-card:nth-child(2)  { animation-delay: 0.2s; }
.char-card:nth-child(3)  { animation-delay: 0.3s; }
.char-card:nth-child(4)  { animation-delay: 0.4s; }
.char-card:nth-child(5)  { animation-delay: 0.5s; }
.char-card:nth-child(6)  { animation-delay: 0.6s; }
.char-card:nth-child(7)  { animation-delay: 0.7s; }
.char-card:nth-child(8)  { animation-delay: 0.8s; }
.char-card:nth-child(9)  { animation-delay: 0.9s; }
.char-card:nth-child(10) { animation-delay: 1.0s; }
.char-card:nth-child(11) { animation-delay: 1.1s; }
.char-card:nth-child(12) { animation-delay: 1.2s; }
/* 必要ならもっと増やせます */

/* =========================================
   HERO ANIMATION FIX (位置ズレ修正版)
   ========================================= */

/* 中央寄せ(-50%)を維持しつつ、下から浮かび上がる専用アニメーション */
@keyframes fadeInUpHero {
    from {
        opacity: 0;
        /* X軸は-50%（中央寄せ）を維持、Y軸だけ40px下から開始 */
        transform: translate(-50%, 40px); 
    }
    to {
        opacity: 1;
        /* X軸は-50%（中央寄せ）を維持、Y軸は0（定位置）に戻す */
        transform: translate(-50%, 0); 
    }
}

/* キャッチコピーの箱に、この修正版アニメーションを適用 */
.hero-content {
    animation: fadeInUpHero 1.5s ease-out 1s forwards;
}

/* =========================================
   HERO TEXT ANIMATION (時間差・個別動作版)
   ========================================= */

/* 1. 親要素（箱）のアニメーションを解除 */
/* 箱自体は最初から「ある」状態にして、位置ズレを防ぎます */
.hero-content {
    opacity: 1 !important;
    animation: none !important;
}

/* 2. 英語タイトル（先に登場） */
.hero-sub-catch {
    opacity: 0; /* 最初は隠す */
    
    /* 背景が出てから1秒後にスタート */
    animation: fadeInUp 1.5s ease-out 1.0s forwards;
}

/* 3. 日本語キャッチコピー（後から登場） */
.hero-catch-vertical {
    opacity: 0; /* 最初は隠す */
    
    /* 英語が出始めてからさらに1.2秒待ってスタート（合計2.2秒後） */
    animation: fadeInUp 1.5s ease-out 2.2s forwards;
}

/* =========================================
   GATE ANIMATION (メニュー項目の時間差表示)
   ========================================= */

/* 1. 初期状態を隠してアニメーションをセット */
.gate-item {
    opacity: 0; /* 最初は透明 */
    /* 0.8秒かけて下からフワッと出す */
    animation: fadeInUp 0.8s ease-out forwards;
}

/* 2. 左から順番に遅延（ディレイ）をかける */
/* 1つ目 (STORY) : 0.2秒待機 */
.gate-item:nth-child(1) {
    animation-delay: 0.2s;
}

/* 2つ目 (CHARACTER) : 0.4秒待機 */
.gate-item:nth-child(2) {
    animation-delay: 0.4s;
}

/* 3つ目 (WORLD) : 0.6秒待機 */
.gate-item:nth-child(3) {
    animation-delay: 0.6s;
}

/* 4つ目 (WORLD) : 0.8秒待機 */
.gate-item:nth-child(4) {
    animation-delay: 0.8s;
}

/* 5つ目 (WORLD) : 1.0秒待機 */
.gate-item:nth-child(5) {
    animation-delay: 1.0s;
}

/* =========================================
   MOBILE CHARACTER FIX (iPhone下半身問題の修正)
   ========================================= */
@media screen and (max-width: 768px) {
    /* スマホの時は、画像を「画面の高さ」ではなく「親ボックスの高さ」に制限する */
    .char-main-img img {
        /* 以前の max-height: 80vh を打ち消す */
        max-height: 100% !important; 
        
        /* 念のため、横幅もはみ出さないように */
        max-width: 100% !important;
        
        /* 比率を保ったまま全体を収める */
        object-fit: contain !important;
        
        /* 画像の下に謎の余白ができるのを防ぐ */
        margin-bottom: 0 !important;
    }
    
    /* ビジュアルエリア自体の高さ調整（必要なら） */
    .char-visual-area {
        /* スマホの画面の高さの半分（アドレスバー対策でdvhを使用） */
        height: 50vh; 
        height: 50dvh; 
    }
}

/* =========================================
   GATE IMAGES (メニュー背景設定)
   ========================================= */

/* 共通設定：画像を暗くして、文字を読みやすくする */
.gate-item {
    /* 背景の位置調整 */
    background-size: cover;
    background-position: center;
    
    /* ここが魔法の記述です！
      「半透明の黒」と「画像」を重ねて表示します。
      rgba(0,0,0, 0.6) の 0.6 を変えると暗さを調整できます。
    */
    background-blend-mode: multiply; /* 画像を乗算合成 */
    background-color: #444; /* ベースの色 */
    
    /* 文字に少し影をつけて、さらに読みやすく */
    text-shadow: 0 0 10px rgba(0,0,0,0.8);
}

/* 1つ目：STORY */
.gate-item:nth-child(1) {
    /* 黒のフィルター + 画像 */
    background-image: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('./img/gate_story.jpg');
}

/* 2つ目：CHARACTER */
.gate-item:nth-child(2) {
    background-image: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('./img/gate_char.jpg');
}

/* 3つ目：WORLD */
.gate-item:nth-child(3) {
    background-image: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('./img/gate_world.jpg');
}

/* =========================================
   GATE HOVER FIX (ホバー時の画像個別設定)
   ========================================= */

/* まず、共通の「動き」だけを設定 */
.gate-item:hover {
    transform: translateY(-5px); /* 浮き上がる */
    box-shadow: 0 10px 20px rgba(0,0,0,0.5); /* 影を落とす */
}

/* --- 以下、個別に「明るくした画像」を指定し直します --- */

/* 1つ目 (STORY) に乗った時 */
.gate-item:nth-child(1):hover {
    /* フィルターを薄く(0.2) + STORY画像 */
    background-image: linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)), url('./img/gate_story.jpg');
}

/* 2つ目 (CHARACTER) に乗った時 */
.gate-item:nth-child(2):hover {
    /* フィルターを薄く + CHARACTER画像 */
    background-image: linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)), url('./img/gate_char.jpg');
}

/* 3つ目 (WORLD) に乗った時 */
.gate-item:nth-child(3):hover {
    /* フィルターを薄く + WORLD画像 */
    background-image: linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)), url('./img/gate_world.jpg');
}/* ※注：ホバー時の画像切り替えをCSSだけでやるのは少し記述が長くなるため、
   今回はシンプルに「明るさ」や「動き」だけで反応させるのがオススメです。
   もし画像ごとにホバー効果を変えたい場合は、もう少しコードが増えますが対応可能です！
*/

/* =========================================
   WORLD / KEYWORD ARCHIVE (用語集デザイン)
   ========================================= */
.world-archive-wrapper {
    background: #050505;
    min-height: 100vh;
    padding: 120px 0 80px;
    color: #ddd;
}

/* 用語リストのコンテナ */
.keyword-list {
    max-width: 800px;
    margin: 0 auto;
}

/* ひとつの用語ブロック */
.keyword-item {
    background: #111;
    border: 1px solid #222;
    padding: 10px 2%;
    margin-bottom: 30px;
    border-left: 5px solid #444; /* アクセントの線 */
    transition: 0.3s;
}
.keyword-item:hover {
    border-left-color: #ff4444; /* ホバーで赤くなる */
    background: #151515;
}

/* 用語タイトル周り */
.keyword-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
}
.keyword-term {
    font-size: 1.5rem;
    font-family: 'Yu Mincho', serif;
    color: #fff;
    margin: 0;
}
.keyword-cat {
    font-size: 0.8rem;
    background: #333;
    color: #aaa;
    padding: 3px 10px;
    border-radius: 3px;
}

/* 解説文 */
.keyword-body {
    line-height: 1.8;
    font-size: 0.95rem;
}
.keyword-body p {
    margin-bottom: 0; /* 余計な隙間を消す */
}

/* =========================================
   WORLD GATEWAY (分岐ページ)
   ========================================= */
.gateway-wrapper {
    background: #000;
    min-height: 100vh;
    padding: 120px 20px 80px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gateway-inner {
    width: 100%;
    max-width: 1000px;
    text-align: center;
}

.gateway-main-title {
    font-family: 'Gentium Basic', serif;
    font-size: 2.5rem;
    margin-bottom: 10px;
    letter-spacing: 2px;
}
.gateway-main-title .ja {
    display: block;
    font-size: 1rem;
    font-family: 'Yu Mincho', serif;
    color: #666;
    margin-top: 5px;
    letter-spacing: 0.5em;
}
.gateway-desc {
    color: #888;
    margin-bottom: 50px;
    font-size: 0.9rem;
}

/* 2つのカードを横並びにする */
.split-links {
    display: flex;
    gap: 30px;
    justify-content: center;
}

/* カード共通設定 */
.split-card {
    position: relative;
    flex: 1;
    height: 400px; /* カードの高さ */
    text-decoration: none;
    color: #fff;
    overflow: hidden;
    border: 1px solid #333;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.4s;
}

/* 背景画像（後で設定可能ですが、一旦CSSで色分けします） */
.card-bg {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-size: cover;
    background-position: center;
    transition: 0.5s;
    opacity: 0.4; /* 暗くする */
    z-index: 1;
}

/* 左：美術設定の背景（例：青っぽいグラデ） */
/* ★もし画像があれば url('...') に書き換えてください */
.art-side .card-bg {
    background: linear-gradient(45deg, #111, #001f3f); 
}

/* 右：用語集の背景（例：赤っぽいグラデ） */
.data-side .card-bg {
    background: linear-gradient(45deg, #111, #3f0000);
}

/* 中身の文字 */
.card-content {
    position: relative;
    z-index: 2;
    padding: 30px;
    transition: 0.4s;
}
.split-card h2 {
    font-family: 'Gentium Basic', serif;
    font-size: 2rem;
    margin: 0;
    letter-spacing: 2px;
    border-bottom: 1px solid rgba(255,255,255,0.3);
    padding-bottom: 10px;
    margin-bottom: 10px;
}
.split-card .sub {
    font-family: 'Yu Mincho', serif;
    display: block;
    font-size: 1rem;
    margin-bottom: 20px;
    color: #ccc;
}
.split-card .desc {
    font-size: 0.85rem;
    color: #888;
    line-height: 1.6;
    opacity: 0; /* 最初は隠しておく */
    transform: translateY(20px);
    transition: 0.4s;
}

/* ホバー時の動き */
.split-card:hover {
    border-color: #fff;
    transform: translateY(-5px);
}
.split-card:hover .card-bg {
    opacity: 0.7; /* 明るくする */
    transform: scale(1.1); /* ズーム */
}
.split-card:hover .desc {
    opacity: 1; /* 説明文出現 */
    transform: translateY(0);
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
    .split-links {
        flex-direction: column; /* 縦並び */
    }
    .split-card {
        height: 250px;
    }
    .split-card .desc {
        opacity: 1; /* スマホでは最初から出す */
        transform: translateY(0);
    }
}

/* =========================================
   WORLD: KEYWORD DATABASE (用語集・決定版)
   ========================================= */

/* ページ全体設定 */
.world-archive-wrapper {
    background: #050505;
    min-height: 100vh;
    padding: 120px 0 80px;
    color: #ddd;
}

/* リストのコンテナ */
.keyword-list {
    max-width: 800px;
    margin: 0 auto;
}

/* 1. アイテムの箱（共通） */
.keyword-item {
    background: #0f0f0f; /* 少しだけ明るい黒 */
    border: 1px solid #222; /* 外枠 */
    margin-bottom: 20px;
    border-left: 4px solid #444; /* アクセントの左線 */
    transition: all 0.3s ease;
    overflow: hidden;
}

/* ホバー時の演出 */
.keyword-item:hover {
    border-left-color: #ff4444; /* 赤くなる */
    background: #141414;
    transform: translateX(5px); /* 少し右に動く */
    box-shadow: -5px 5px 15px rgba(0,0,0,0.5);
}
/* 開いている時の演出 */
.keyword-item.is-open {
    border-left-color: #ff4444;
    background: #141414;
    border-color: #444; /* 外枠も少し明るく */
}

/* 2. ヘッダー（クリックする部分） */
.keyword-head {
    display: flex;
    justify-content: space-between;
    align-items: center; /* 垂直方向中央揃え */
    padding: 25px 5%;
    cursor: pointer;
    position: relative;
    /* ここにあった border-bottom を削除しました（2重線の原因） */
}

/* タイトルとカテゴリーを包む左側のエリア */
.head-info {
    display: flex;
    align-items: center;
    flex-wrap: wrap; /* スマホで折り返すように */
    gap: 15px; /* タイトルとカテゴリーの間隔 */
}

/* 用語タイトル */
.keyword-term {
    font-size: 1.1rem;
    font-family: 'Yu Mincho', serif;
    color: #fff;
    margin: 0;
    line-height: 1.2;
}

/* カテゴリーバッジ（以前のハイフン－をカッコよくする） */
.keyword-cat {
    font-size: 0.7rem;
    font-family: monospace; /* システムフォントっぽく */
    background: #222;
    color: #888;
    padding: 4px 10px;
    border: 1px solid #333;
    border-radius: 2px;
    letter-spacing: 1px;
    text-transform: uppercase; /* 小文字を大文字に変換 */
}
/* もしカテゴリーが空（ハイフンのみ等）の場合は、
   WordPressの管理画面でカテゴリー名を「LOCATIONS」等に変えるとカッコよくなります */


/* 3. 開閉アイコン（＋と－） */
.toggle-icon {
    flex-shrink: 0; /* 縮まないようにする */
    position: relative;
    width: 16px;
    height: 16px;
    margin-left: 20px;
}
.toggle-icon::before { /* 横棒 */
    content: ''; position: absolute;
    top: 50%; left: 0; width: 100%; height: 2px;
    background: #666; transition: 0.3s;
}
.toggle-icon::after { /* 縦棒 */
    content: ''; position: absolute;
    top: 0; left: 50%; width: 2px; height: 100%;
    background: #666; transition: 0.3s;
    transform: translateX(-50%);
}

/* 開いた状態のアイコン変化 */
.keyword-item.is-open .toggle-icon::before { background: #ff4444; }
.keyword-item.is-open .toggle-icon::after {
    background: #ff4444;
    transform: translateX(-50%) rotate(90deg); /* 回転して横棒になる */
}

/* 4. ボディ（中身） */
.keyword-body {
    height: 0;
    opacity: 0;
    overflow: hidden;
    transition: height 0.4s ease, opacity 0.4s ease;
}

/* 中身のインナー（ここで線を入れる） */
.keyword-body-inner {
    padding: 10px 30px 30px; /* 上の余白を少し減らす */
    color: #ccc;
    line-height: 1.8;
    font-size: 0.95rem;
    
    /* ここに「仕切り線」を入れます（破線） */
    border-top: 1px dashed #333; 
    margin-top: 0; /* 線とヘッダーをくっつける */
}

/* リンク色など */
.keyword-body-inner a { color: #ff4444; }

/* =========================================
   ACCORDION FIX (開いた時の位置ズレ修正)
   ========================================= */

/* 開いている時(.is-open)は、マウスが乗っても動かさない！ */
.keyword-item.is-open,
.keyword-item.is-open:hover {
    transform: none !important; /* 位置移動を強制解除 */
    box-shadow: none !important; /* 影も消してフラットに（お好みで） */
}

/* =========================================
   ARTWORKS ARCHIVE (美術設定一覧)
   ========================================= */
.art-archive-wrapper {
    background: #080808; /* 深い黒 */
    min-height: 100vh;
    padding: 120px 0 80px;
    color: #fff;
}

.art-grid {
    display: grid;
    /* 風景画が多いと思うので、少し横長のカードにします */
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 30px;
}

/* カード本体 */
.art-card {
    display: block;
    background: #111;
    text-decoration: none;
    border: 1px solid #222;
    transition: 0.3s;
    overflow: hidden;
}
.art-card:hover {
    border-color: #666;
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.8);
}

/* サムネイルエリア */
.art-card-thumb {
    width: 100%;
    height: 200px; /* 横長比率 */
    overflow: hidden;
    position: relative;
    background: #000;
}
.art-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 枠いっぱいに */
    object-position: center; /* 中心を表示 */
    transition: 0.5s;
    opacity: 0.8;
}
/* ホバーで画像が少し明るくズーム */
.art-card:hover .art-card-thumb img {
    transform: scale(1.1);
    opacity: 1;
}

/* テキストエリア */
.art-card-body {
    padding: 20px;
    border-top: 1px solid #222;
}
.art-card-title {
    font-size: 1.1rem;
    font-family: 'Yu Mincho', serif;
    color: #ddd;
    margin: 0 0 10px 0;
    line-height: 1.4;
}
.art-card-arrow {
    font-size: 0.8rem;
    color: #666;
    font-family: monospace;
    text-align: right;
}
.art-card:hover .art-card-arrow {
    color: #ff4444;
}

/* 戻るリンクのコンテナ */
.back-link-container {
    margin-top: 60px;
    text-align: center;
}
.simple-back {
    color: #666;
    text-decoration: none;
    font-size: 0.9rem;
    border-bottom: 1px solid transparent;
    transition: 0.3s;
}
.simple-back:hover {
    color: #fff;
    border-bottom-color: #fff;
}


/* =========================================
   ARTWORKS SINGLE (個別ページ)
   ========================================= */
.art-single-wrapper {
    background: #050505;
    min-height: 100vh;
    padding: 120px 20px 80px;
    color: #ccc;
}
.art-single-inner {
    max-width: 900px; /* 画像を大きく見せるため少し広め */
    margin: 0 auto;
}

.art-header {
    margin-bottom: 50px;
    border-bottom: 1px solid #333;
    padding-bottom: 20px;
}
.art-title {
    font-size: 2rem;
    color: #fff;
    font-family: 'Yu Mincho', serif;
    margin: 0 0 10px 0;
}
.art-meta {
    font-family: monospace;
    color: #666;
    font-size: 0.8rem;
}

/* 本文エリア（ギャラリー表示用） */
.art-content img {
    max-width: 100%;
    height: auto;
    border: 1px solid #222;
    margin-bottom: 20px;
    box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.art-content p {
    margin-bottom: 2em;
    line-height: 1.8;
}

/* フッターナビ */
.art-footer-nav {
    margin-top: 80px;
    text-align: center;
    border-top: 1px solid #333;
    padding-top: 40px;
}
.art-footer-nav a {
    color: #fff;
    text-decoration: none;
    border: 1px solid #444;
    padding: 10px 30px;
    transition: 0.3s;
}
.art-footer-nav a:hover {
    background: #fff;
    color: #000;
}

/* =========================================
   IMAGE SIZE FIX (画像はみ出し防止)
   ========================================= */

/* 美術設定ページの中身にある画像・動画・図すべてに適用 */
.art-content img,
.art-content figure,
.art-content video {
    max-width: 100% !important; /* 横幅は親要素(100%)を上限にする */
    height: auto !important;    /* 高さは自動調整して比率を保つ */
}

/* ついでに、WordPress標準のキャプション付き画像(figure)の余白も調整 */
.art-content figure {
    margin: 0 0 30px 0; /* 下に余白 */
    width: auto !important; /* figure自体の固定幅も解除 */
}

/*********************** maintenance ***********************/

/*.contents, #sidebar {height: 500px; }*/
/*header{background-color: #888;}*/
/*.header-inner{ background-color: #ccc; height: 100px;}*/
/*.container {background-color: #9db2ea; }*/
/*.contents {background-color: #a5e2ff; }*/
/*#sidebar{background-color: #aefffc; }*/
/*footer{background-color: #777; }*/
/*.footer-inner{background-color: #ddd; height: 100px; }*/