@charset "UTF-8";

/** ============================================================================
 * 基本タグ、クラス類設定
============================================================================ **/

/* 基本リセット */

html,
body {
	/*height: 100%;*/
	margin: 0;
	padding: 0;
}

h1, h2, h3, h4, h5, h6 { padding: 0; }

figure,
p {
	margin: 0;
	padding: 0;
}

/** ----------------------------------------------------------
 * HTML 基本
---------------------------------------------------------- **/

*,
*::before,
*::after {
	-o-box-sizing:border-box;
	-ms-box-sizing:border-box;
	box-sizing:border-box;
}

* { word-wrap: break-word; }

html {
	font-size: 15px;
	font-family: "YakuHanJP",-apple-system, BlinkMacSystemFont, "Yu Gothic","YuGothic","游ゴシック体","游ゴシック", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
	line-height: 1.4;
	scroll-behavior: smooth;
}

@media screen and ( min-width: 641px )  {

	html { font-size: 16px; }
}


main { line-height: 1.6; }


/* テキスト基本
----------------------------- */

/* テキストカラー */

a,
.site-head a:hover,
.site-footer a:hover,
.sidebar a:hover { color: var( --link-color ); }

.btn-tx a:hover,
a:hover.btn-tx  {
	color: #fff;
	text-decoration: none;
	background-color: var( --link-color );
	border-color: var( --link-color );
}

body,
.site-head a:not(:hover),
.site-footer a:not(:hover),
.sidebar a:not(:hover),
.a-def a:not(:hover),
.mean-container a.meanmenu-reveal,
.mean-nav a:not(:hover),
.loop-title a:not(:hover),
.btn-tx a:not(:hover),
a.btn-tx:not(:hover)  { color: var(--text-default-color); }

h2,
h3,
h4,
h5,
h6 {
	line-height: 1.4;
	margin: 2em 0 0.5em;
}

h2:first-child,
h3:first-child,
h4:first-child,
h5:first-child,
h6:first-child,
h2 + h3,
h3 + h4,
h4 + h5,
h5 + h6 { margin-top: 0; }

/* テキストその他基本設定 */
ul,
ol {
	padding-left: 1.25em;
	margin: 0.5em 0 0.5em;
}

@media screen and ( min-width: 641px ) {
	ul,
	ol { margin-left: 1em; }
}

hr {
	margin-top: 1em;
	margin-bottom: 1em;
}

dt { font-weight: bold; }

dd { margin-left: 1em; }

dd:not(:last-child) { margin-bottom: 0.5em; }


/* メディア基本
----------------------------- */

img,
object,
video,
input[type="image"] {
	max-width: 100%;
	height: auto;
	line-height: 0;
	vertical-align: bottom;
	margin: 0;
}

/* アンカーリンク
----------------------------- */

a { text-decoration: none; }

a:hover { text-decoration: underline; }

a:active { }

a > img {
	opacity: 1;
	-ms-transition: 0.5s;
	transition: 0.5s;
}

a:hover > img,
a:active > img {
	opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha( opacity=70 )";
}

/* ホバー時 半透明無し */

a.opa-none:hover img,
a.opa-none:active img {
	opacity: 1;
	filter: alpha(opacity=100);
	-ms-filter: "alpha( opacity=100 )";
}

/* テーブル 基本
----------------------------- */

table,
.wp-block-table {
	text-align: left;
	line-height: 1.6;
	border-collapse: collapse;
	border-spacing: 0;
	width: 100%;
}

.text-center table { text-align: center; }

table th,
.wp-block-table th,
table td,
.wp-block-table td {
	padding: 0.3em 0.5em;
	border-style: solid;
}

table th,
.wp-block-table > table th {
	text-align: center;
	border-width: 1px 0;
}

table td,
.wp-block-table > table td {
	border-width: 1px 0;
}

@media screen and ( min-width: 641px ) {

	table th,
	.wp-block-table th { padding: 1em 0.5em; }

	table td,
	.wp-block-table td { padding: 1em 1.5em; }
}

/* コンテンツ内テーブル
----------------------------- */

/*.contents table th { background: var( --gray-white ); }*/

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

	.all-tb { width: auto; }

	.contents table:not(.all-tb) { text-align: center; }

	.contents table:not( .all-tb ) th,
	.contents table:not( .all-tb ) td { display: block; }

	.contents table:not( .all-tb ) th,
	.contents table:not( .all-tb ) td { border-top-width: 0; }

	.contents table:not( .all-tb ) tr:first-child th { border-top-width: 1px; }

	.contents .wp-block-table.all-tb th,
	.contents .wp-block-table.all-tb td { display: table-cell; }

	.contents .wp-block-table.all-tb td { border-top-width: 1px; }
}

@media screen and ( min-width: 641px ) {

	.contents table tbody th { min-width: 7em; }

	.all-tb { width: 100%; }

	.th-w08 { width: 8em }
	.th-w10 { width: 10em }
}

/* セルタテライン */

.contents .tb-full-line tr th:not(:last-child),
.contents .tb-full-line tr td:not(:last-child) { border-right: 1px solid; }

/*
 * overflowテーブル
 * .all-tbクラス併用
 * .tb-overflowクラスにスクリプトで.overflow-autoをラップ
 */

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

	.tb-overflow { width: max-content; }
}

/* スクロールバー */
.overflow-auto {
	overflow: auto;
	position: relative;
}
.overflow-auto::-webkit-scrollbar{ height: 8px; }/*バーの太さ*/
.overflow-auto::-webkit-scrollbar-track{ background: #dfdfdf; }/*バーの背景色*/
.overflow-auto::-webkit-scrollbar-thumb{ background: #2cc2e4;; }/*バーの色*/

/*@media screen and ( min-width: 641px ) {

	.tb-overflow { width: 100%; }
}*/


/* フォームタグ 基本
----------------------------- */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="date"],
input[type="number"],
input[type="password"],
textarea,
select {
	font-size: 0.9375rem;
	width: 100%;
	padding: 0.6em;
	border: 1px solid #d4d4d7;
	border-radius: 2px;
	background: #fcfcfc;
	box-shadow: 1px 1px 2px var( --border-light-col ) inset;
}

input[type="password"] { width: auto; }

input.auto-imput { width: auto; }

textarea {
	height: auto;
	line-height: 1.6;
}

select {
	-moz-appearance: none;
	appearance: none;
	background: url(../images/ico_select_arrow.svg) no-repeat calc(100% - 8px) center,#fcfcfc;
	background-size: 1em auto;
	padding-right: 2em !important;
}

input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.wp-block-search__button {
	color: #fff;
	font-size: 1rem;
	line-height: 1;
	padding: 0.6em 1.8em;
	background: var( --link-color );
	border: none;
	border-radius: 0;
	position: relative;
	box-shadow: 0 1px 1px rgba( 0,0,0,0.3 );
	display: inline-block;
	margin-top: 0.6em;
	position: relative;
}

input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
button:hover {
	filter: alpha(opacity=80);
	-ms-filter: "alpha( opacity=80 )";
	opacity: 0.8;
	text-decoration: none;
}

input[type="submit"]:active,
input[type="reset"]:active,
input[type="button"]:active,
button:active {
	/*top: 1px;*/
	box-shadow: 0 0 1px rgba( 0,0,0,0.3 );
}

input[disabled][type="submit"],
input[disabled][type="submit"]:hover,
input[disabled][type="submit"]:active,
button[disabled] {
	filter: alpha(opacity=60);
	-ms-filter: "alpha( opacity=60 )";
	opacity: 0.6;
	/*background: #4f4d4d;*/
	box-shadow: none;
	cursor: default;
}

input[disabled]:hover,
button[disabled]:hover { cursor: not-allowed; }

@media screen and ( min-width: 641px )  {
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="date"],
	input[type="number"],
	textarea,
	select { padding: 0.8em; }

	.wp-block-search__button { padding: 0.5em 1em; }
}


/** ----------------------------------------------------------
 * WordPress 基本クラス
---------------------------------------------------------- **/

/* 先頭固定記事クラス */

.sticky-wrap {
	padding: 16px;
	position: relative;
	background: var( --gray-white );
	width: 100%;
}

/* スクリーンリーダー用テキストクラス*/
.screen-reader-text {
	width: 1px;
	height: 1px;
	position: absolute;
	clip: rect(1px, 1px, 1px, 1px);
}

/* ページ編集リンククラス */

.post-edit-link {
	text-align: center;
	display: block;
	clear: both;
}

/* clearfix
----------------------------- */

.clearfix::before,
.clearfix > .wp-block-group__inner-container::before,
.clearfix::after,
.clearfix > .wp-block-group__inner-container::after {
	content: '';
	display: table;
	clear: both;
}

.clearfix { *zoom: 1; }

/* カラー
----------------------------- */

/* 見出し */

blockquote,
.wp-block-quote { background: var( --gray-white); }

p > code,
li > code,
kbd { background: var( --gray-white); }

/* コードブロック */

pre.wp-block-code { background: var( --gray-white); }

/* テーブル */

.wp-block-table th { background: var( --gray-white); }

/* 背景 */

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

.bg-lgray { background: var( --gray-white); }



/** ============================================================================
 * ブロックエディター 基本関連
============================================================================ **/

/**
	カラムブロック
----------------------------------------------------- **/

.contents > .wp-block-columns {
	margin-top: 1em;
	margin-bottom: 1em;
}

/** ----------------------------------------------------------
 * 画像関連
---------------------------------------------------------- **/

/* イメージブロック */

.contents > .wp-block-image { margin-bottom: 1em; }

@media screen and ( min-width: 641px ) {

	.contents > .wp-block-image:not( .alignright ):not( .alignleft ) { margin-bottom: 2em; }
}

/* 画像キャプション*/

.wp-block-image figcaption { margin: 0.5em 0 0; }

.wp-caption,
.wp-caption-text,
.gallery-caption {
	line-height: 1.4;
	display: block;
}

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

	.wp-block-media-text .wp-block-media-text__content { padding: 0; }
}
/**
	メディアとテキスト
----------------------------------------------------- **/

.wp-block-media-text .wp-block-media-text__content { padding: 0; }

@media screen and ( min-width: 601px ) {

	.wp-block-media-text .wp-block-media-text__content { padding-left: 3%; }

	.has-media-on-the-right.wp-block-media-text .wp-block-media-text__content { padding: 0 3% 0 0; }
}

/** ----------------------------------------------------------
 * align関連
---------------------------------------------------------- **/

/** align基本
----------------------------------------------------- **/

.alignleft,
.wp-block-image > .alignleft,
.alignrigh,
.wp-block-image > .alignright { float: none; }

@media screen and ( min-width: 641px )  {

	.alignright,
	.wp-block-image > .alignright  {
		float: right;
		margin-left: 2em;
	}

	.aligncenter {
		margin-right: auto;
		margin-left: auto;
	}

	.alignleft,
	.wp-block-image > .alignleft {
		float: left;
		margin-right: 2em;
	}
}

/* ブロックギャラリー */

.wp-block-gallery.alignright { float: right; }

.wp-block-gallery.aligncenter {
	margin-right: auto;
	margin-left: auto;
}

@media screen and ( min-width: 641px ) {

	.wp-block-gallery.aligncenter {
		width: max-content;
		max-width: 100%;
	}
}

/* alignfll wide
----------------------------- */

.alignwide:not( .wp-block-post-featured-image ),
.alignfull { max-width: none; }

.alignfull {
	margin-right: calc( 50% - 50vw );
	margin-left: calc( 50% - 50vw );
}

@media screen and ( min-width: 772px )  {

	.alignwide:not( .wp-block-post-featured-image ) {
		max-width: 95vw;
		margin-right: calc( 50% - 95vw/2 );
		margin-left: calc( 50% - 95vw/2 );
	}
}

@media screen and ( min-width: 1144px )  {

	.alignwide:not( .wp-block-post-featured-image ) {
		max-width: 1080px;
		margin-right: calc( 50% - 1080px/2 );
		margin-left: calc( 50% - 1080px/2 );
	}

	.alignfull {
		margin-right: calc( 50% - 50vw);
		margin-left: calc( 50% - 50vw);
	}
}

/* youtube-wrap */

.youtube-wrap {
	position: relative;
	padding-bottom: 56.25%;
	overflow: hidden;
	max-width: 100%;
	height: auto;
}

.youtube-wrap iframe,
.youtube-wrap object,
.youtube-wrap embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}


/**
	layout-full alignfull コンテンツ
----------------------------------------------------- **/

.alignfull:not(:where(.wp-block-cover, .slick-slider)) > *:not( :where(img, video, .wp-block-embed__wrapper, .center-box-s, .full-contents, .slick-slider, .top-visual) ),
.alignfull > .wp-block-cover__inner-container,
.foot-widg-area .wp-block-cover__inner-container {
	margin-right: 3%;
	margin-left: 3%;
	max-width: 1080px;
}


@media screen and ( min-width: 1144px ) {

	.alignfull:not(:where(.wp-block-cover, .slick-slider)) > *:not( :where(img, video, .wp-block-embed__wrapper, .center-box-s, .full-contents, .slick-slider, .top-visual) ),
	.alignfull > .wp-block-cover__inner-container,
	.foot-widg-area .wp-block-cover__inner-container {
		margin-right: auto;
		margin-left: auto;
	}
}

/** ----------------------------------------------------------
 * レイアウトクラス
---------------------------------------------------------- **/

/* center-box
----------------------------- */

.center-box,
.center-box-l,
.center-box-s,
.center-box .alignfull .center-box,
.center-box .alignfull .center-box-l,
.center-box .alignfull .center-box-s {
	margin-left: 5%;
	margin-right: 5%;
}

.center-box .center-box,
.center-box .center-box-s {
	margin-left: 0;
	margin-right: 0;
}

.center-box { max-width: 1080px; }

.center-box-s { max-width: 760px; }

.center-box-l { max-width: 1600px; }


@media screen and ( min-width: 772px )  {

	.center-box-s,
	.center-box .center-box-s,
	.center-box .alignfull .center-box-s {
		margin-left: auto;
		margin-right: auto;
	}
}

@media screen and ( min-width: 980px) {

	.layout-right,
	.layout-left {
		display: -ms-flexbox;
		display: flex;
	}

	.layout-left {
		-ms-flex-direction:  row-reverse;
		flex-direction: row-reverse;
	}

	.layout-right .primary-contents,
	.layout-left .primary-contents{
		-ms-flex: 1;
		flex: 1;
	}

	.layout-right .sidebar,
	.layout-left .sidebar {
		width: 300px;
		-ms-flex: 0 0 auto;
		flex: 0 0 auto;
		margin-top: 0;
	}

	.layout-right .sidebar { margin-left: 4.815%; }

	.layout-left .sidebar { margin-right: 4.815%; }

	.layout-full { width: 100%; }
}

@media screen and (min-width: 1144px) {

	.center-box,
	.center-box .alignfull .center-box {
		margin-left: auto;
		margin-right: auto;
	}
}

@media screen and ( min-width: 1696px )  {

	.center-box-l,
	.center-box .alignfull .center-box-l {
		margin-left: auto;
		margin-right: auto;
	}
}

/** ----------------------------------------------------------
 * has-background 関連
---------------------------------------------------------- **/

/* テキスト背景色 */

h2.has-background,
h3.has-background,
h4.has-background,
h5.has-background,
h6.has-background,
p.has-background,
dt.has-background {
	padding: 0.2em 0.5em;
}

/* ブロック背景色 パディング設定 */

.wp-block-group.has-background,
.wp-block-cover,
.wp-block-cover-image { padding: 1.5em 3%; }

.alignfull.has-background,
.alignfull.wp-block-cover { padding: 40px 3%; }

@media screen and ( min-width: 641px ) {

	.wp-block-group.has-background { padding: 2em; }

	.wp-block-group.alignwide.has-background { padding: 40px 2em; }

	.wp-block-group.alignfull.has-background,
	.alignfull.wp-block-cover { padding: 80px 3%; }
}

/** ============================================================================
 * エレメント共通クラス
============================================================================ **/

/** ----------------------------------------------------------
 * テキスト関連
	front-editer-style-both.css 異動あり
---------------------------------------------------------- **/

.text-left { text-align: left; }

/* webフォント
----------------------------- */

/* "Font Awesome 5 Free"設定*/

.fa5::before,
.link-fa5 > a::before {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	padding-right: 0.2em;
}

.fa5-phone::before { content: '\f095'; }

.fa5-fax::before { content: '\f1ac'; }

.fa5-3bar::before,
.link-fa5-3bar > a::before { content: '\f0c9'; }


/* テキスト送り設定
-------------------------------*/

.lh-12 { line-height: 1.2 !important; }

.lh-14 { line-height: 1.4 !important; }

.lh-16 { line-height: 1.6 !important; }


/* インデント
-------------------------------*/

/*.p-indent p { text-indent: 1em; }

.p-indent .indent0,
.p-indent .indent0 p,
.p-indent i { text-indent: 0; }
*/


/* letterスペース
-------------------------------*/

.ls-005 { letter-spacing: -0.05em;}

.ls-01 { letter-spacing: -0.1em;}

.ls-02 { letter-spacing: -0.2em;}

.ls-03 { letter-spacing: -0.3em;}

.ls-04 { letter-spacing: -0.4em;}

.ls-05 { letter-spacing: -0.5em;}

/* 1文字目文字空け*/

.fls-1::first-letter { letter-spacing: 1em; }

.fls-2::first-letter { letter-spacing: 2em; }


/* <br>改行
-------------------------------*/

br.mb-br,
.mb-br br { display: inline; }

.br-none br,
br.pc-br,
.pc-br br { display: none; }

/* 改行無し*/
.br-none br,
.br-none1st br:first-child,
.br-nonelast br:last-child { display: none;}

@media screen and ( min-width: 641px ) {

	br.mb-br,
	.mb-br br { display: none; }

	br.pc-br,
	.pc-br br { display: inline; }
}

/* インラインブロック
----------------------------- */

.in-block { display: inline-block; }

/* 注釈テキスト
-------------------------------*/

.contents .note,
.p-indent .note p,
.p-indent p.note  {
	text-indent: -1em;
	padding-left: 1em;
	line-height: 1.4;
}

/* 検索結果のハイライト
---------------------------------*/

.search-excerpt { background: #ff0; }

/* 記事編集リンク
-------------------------------*/

.edit-link {
	text-indent: 0;
	text-align: center;
}

/* フロート対策
----------------------------- */

.text-hidden { overflow: hidden; }



/**
	アンカーリンク関連
----------------------------------------------------- **/

/* ボタン設定
-------------------------------*/

p.btn-tx {
	text-indent: 0;
	margin-top: 0.5em;
}

.loop-article .btn-tx { text-align: right; }



/*.btn-tx a:not(:hover),
a.btn-tx:not(:hover) { border-color: var( --border-light-col ); }*/

/* リンク矢印
----------------------------- */

.link-arrow-l > a::before,
a.link-arrow-l::before,
.link-arrow-r > a::after,
a.link-arrow-r::after {
	content: '';
	display: inline-block;
	width: 0.8em;
	height: 0.8em;
	margin: 0.4em;
	vertical-align: -0.42em;
	border-style: solid;
	border-width: 3px 3px 0 0;
	border-radius: 1px;
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}


/** ----------------------------------------------------------
 * リスト関連
---------------------------------------------------------- **/

/* リストスタイルクリア
----------------------------- */

nav ul,
ul.bread_crumb,
.link-list ul,
.link-list ol {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ul-none,
.ol-none {
	margin-right: 0;
	margin-left: 0;
}

/* リストインラインブロック
----------------------------- */

.list-ib > li {
	display: inline-block;
	margin: 0.3em 0;
}

.list-ib-mg05 > li:not(:first-child) { margin-left: 0.5em; }


/**
	リスト装飾
----------------------------------------------------- **/

/* リンクリスト */

.link-list > li,
.link-list > ul > li,
.widget_nav_menu.link-list ul > li {
	padding-left: 1em;
	line-height: 1.4;
}

.link-list > ul li:not(:last-child),
.widget_nav_menu.link-list ul > li:not(:last-child) { margin-bottom: 0.3em; }

.link-list > ul li .children { margin-top: 0.3em; }

.link-list > ul > li > .children { margin-left: -0.25em; }

.link-list > li::before,
.link-list > ul > li::before,
.widget_nav_menu.link-list ul > li::before { margin-left: -1em; }

.link-list > li::before,
.link-list > ul > li::before,
.widget_nav_menu.link-list ul > li::before {
	content: '';
	display: inline-block;
	width: 0.5em;
	height: 0.5em;
	margin-right: 0.5em;
	vertical-align: 0.1em;
	border-style: solid;
	border-width: 2px 2px 0 0;
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}

/* cssチェックリスト
----------------------------- */

.checklist-css {
	list-style: none;
	/*margin-left: 0;*/
}

.checklist-css > li {
	line-height: 1.5;
	position: relative;
}

.checklist-css > li:not(:last-child) { margin-bottom: 0.8em; }

.checklist-css > li::before,
.checklist-css > li::after {
	content: '';
	display: inline-block;
}

.checklist-css > li::before {
	width: 1em;
	height: 1em;
	border: 1px solid;
	border-radius: 2px;
	background: var( --white-bg );
	margin: 0 0.5em 0 -1.5em;
	vertical-align: -0.1em;
}

.checklist-css > li::after {
	width: 1.25em;
	height: 0.5em;
	border-style: solid;
	border-width: 0 0 3px 3px;
	border-radius: 1px;
	position: absolute;
	top: 0.3em;
	left: -1.3em;
	-ms-transform: rotate( -45deg );
	transform: rotate( -45deg );
}

/* フローリスト
-------------------------------*/

.flow > *::before,
.flow-s > *::before {
	content: '';
	display: block;
	margin: 0 auto 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-color: #ccc transparent transparent;
}

.flow > *::before { border-width: 24px 36px; }

.flow-s > *::before { border-width: 16px 20px; }

.flow:not(.mid-start) > *:first-child::before,
.flow-s:not(.mid-start) > *:first-child::before { content: none;}

/* ボックス型 */

.flow-box.flow > *,
.flow-box.flow-s > * {
	padding: 16px 8px;
	background: var( --white-bg );
	border: 1px solid #eee;
	position: relative;
}

.flow-box.flow > *:not(:last-child) {
	margin-bottom: 56px;
}

.flow-box.flow-s > *:not(:last-child) {
	margin-bottom: 40px;
}

.flow-box.flow > *::before,
.flow-box.flow-s > *::before {
	position: absolute;
	left: 50%;
	-webkit-transform: translate( -50%,0 );
	-ms-transform: translate( -50%,0 );
	transform: translate( -50%,0 );
}

.flow-box.flow > *::before { bottom: calc( 100% - 12px ); }

.flow-box.flow-s > *::before { bottom: calc( 100% - 12px ); }

@media screen and ( min-width: 641px )  {

	.flow-box.flow > * {
		padding: 16px;
	}
}

/** ----------------------------------------------------------
 * dlリスト関連
---------------------------------------------------------- **/

/* dlフロート
----------------------------- */

.dl-float > dt { font-weight: bold; }

.dl-float > dd:last-child { margin-bottom: 0; }

.full-dlfloat.dl-float > dt {
	float: left;
	margin-right: 0.5em;
}

.full-dlfloat.dl-float > dd {
	display: block;
	overflow: hidden;
}

@media screen and ( min-width: 641px )  {

	.dl-float > dt {
		float: left;
		margin-right: 0.5em;
	}

	.dl-float > dd {
		display: block;
		overflow: hidden;
	}
}

/** ----------------------------------------------------------
 * その他 エレメント
---------------------------------------------------------- **/

/* アイテム非表示
-------------------------------*/

.dis-none { display: none; }

/* overflow 関連
----------------------------- */

.of-auto { overflow: auto; }

.of-hidden { overflow: hidden; }

/* コンテンツセンター
----------------------------- */

.max-center {
	width: max-content;
	max-width: 100%;
	margin-right: auto;
	margin-left: auto;
}

/** ----------------------------------------------------------
 * レイアウト 背景関連
---------------------------------------------------------- **/

/* ボックス、フレーム設定
----------------------------- */

.wh-box {
	padding: 16px;
	background: var( --white-bg );
	border-radius: 2px;
}

@media screen and ( min-width: 641px )  {

	.contents .wh-box,
	.contents .box,
	.contents .fr-box { padding: 24px; }
}

/* ボックスシャドウ */

.wh-box,
.box-shodow { box-shadow: 0 1px 3px rgba( 0,0,0,0.2 ); }


/*コーナー裁ち落とし */

.corner-cut { position: relative; }

.corner-cut::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 6px;
	border-color: transparent #fff #fff transparent;
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 10;
}

/* フレックスボックス
----------------------------- */

.flex-box,
.flex-box > .wp-block-group__inner-container,
.flex-box > .sticky-wrap {
	display: -ms-flexbox;
	display: flex;
}

.flex-jus-j,
.flex-jus-j > .wp-block-group__inner-container {
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.flex-item-c,
.flex-item-c > .wp-block-group__inner-container {
	-ms-flex-align: center;
	align-items: center;
}

.flex-wrap,
.flex-wrap > .wp-block-group__inner-container {
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.flex-auto,
.flex-auto > .wp-block-group__inner-container {
	-ms-flex: 1;
	flex: 1;
}

@media screen and ( min-width: 641px )  {

	.pcflex-box,
	.pcflex-box > .wp-block-group__inner-container {
		display: -ms-flexbox;
		display: flex;
	}

	.pcflex-box > .wp-block-group__inner-container .wp-block-group:not(:last-child) { margin-right: 1.5em; }

	.flex-autokeep,
	.flex-autokeep > .wp-block-group__inner-containe {
		-ms-flex: 0 0 auto;
		flex: 0 0 auto;
	}
}

/* フロート関連
----------------------------- */

.float-L { float: left }

.float-R { float: right }

.float-C { clear: both }


/* ポジション関連
----------------------------- */
.relative { position: relative; }


/* ブロック横並び
----------------------------- */

.sideby-side02,
.sideby-side03,
.sideby-side04 {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sideby-side02::after,
.sideby-side03::after,
.sideby-side04::after {
	content: "";
	display: block;
	clear: both;
}

@media screen and ( min-width: 641px )  {

	.sideby-side02,
	.sideby-side03,
	.sideby-side04 {
		display: -ms-flexbox;
		display: flex;
		-ms-flex-pack: justify;
		justify-content: space-between;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}

	.sideby-side02 > li,
	.sideby-side02 > p { width: 48.235% !important; }

	.sideby-side03 > li,
	.sideby-side03 > p { width: 30.98% !important; }

	.sideby-side04 > li,
	.sideby-side04 > p { width: 22.36% !important; }
}

/* マージン
----------------------------- */
.mg-l0 { margin-left: 0 !important; }

.mg-l1 { margin-left: 1em !important; }

/* その他マージン・パディング関連はfront-editer-style-both.css */


/** ----------------------------------------------------------
 * アニメーション エフェクト関連
---------------------------------------------------------- **/

/* ページ読込み
----------------------------- */

.effect-anime {
	-ms-animation-fill-mode:both;
	animation-fill-mode:both;
	-ms-animation-duration:1s;
	animation-duration:1s;
	-ms-animation-name: effectAnime;
	animation-name: effectAnime;
	visibility: visible !important;
}

@-webkit-keyframes effectAnime {
	0% { opacity: 0; -webkit-transform: translateY(20px); }
	100% { opacity: 1; -webkit-transform: translateY(0); }
}

@keyframes effectAnime {
	0% { opacity: 0;  -ms-transform: translateY(20px); transform: translateY(20px); }
	100% { opacity: 1;  -ms-transform: translateY(0); transform: translateY(0); }
}


/** ============================================================================
 * テーマデザイン レイアウト関連
============================================================================ **/

/** ----------------------------------------------------------
 * ヘッダー、フッター 基本設定
---------------------------------------------------------- **/

/**
	ヘッダー&フッター&サイドバー 基本設定
----------------------------------------------------- **/

.site-head,
.site-footer,
.sidebar {
	font-size: 15px;
	font-size: 0.9375rem;
	line-height: 1.5;
}

/**
	ヘッダー設定
----------------------------------------------------- **/

.head-contents {
	text-align: center;
	padding: 16px 0;
	position: relative;
}

/* サイトタイトル */

.site-title {
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.2;
	margin: 0 0 0.3em;
}

.site-descri {
	font-weight: 400;
	font-size: 1rem;
	display: block;
	margin: 0 0 0.3em;
}

/* ロゴテキスト組合せ */

.home .site-title.logo-left,
.site-title.logo-left a {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	align-items: center;
}

.site-title.logo-left {
	text-align: left;
	width: max-content;
	max-width: 100%;
	margin: 0 auto;
}

.site-title.logo-left img {
	width: auto;
	margin-right: 0.3em;
	vertical-align: middle;
}


@media screen and ( min-width: 641px )  {

	.site-head { padding-top: 0; }

	.head-contents.headwidg-on {
		text-align: left;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-pack: justify;
		justify-content: space-between;
		-ms-flex-align: center;
		align-items: center;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}

	.head-branding .site-title {
		line-height: 1.2;
		margin-bottom: 0;
	}

	.headwidg-on .site-title.logo-left { margin: 0; }
}

/**
	フッター設定
----------------------------------------------------- **/

#site-footer {
	position: sticky;
	top: 100vh;
	width: 100%;
}

.foot-contents { padding: 32px 0; }

.foot-nav {
	padding-left: 1em;
	margin-bottom: 2em;
}

.foot-menu > li:not(:last-child) { margin-bottom: 1em; }

.foot-widg-area { margin-top: 40px; }

.copyright {
	font-size: 13px;
	font-size: 0.8125rem;
	text-align: center;
	margin: 0 !important;
	padding: 0 0 0.3em;
}

@media screen and ( min-width: 641px )  {

	.foot-contents {
		text-align: center;
		padding: 40px 0;
	}

	.foot-nav { padding: 0; }

	.foot-menu > li {
		display: inline-block;
		margin: 0 0.5em;
	}

	.foot-menu > li:not(:last-child) { margin-bottom: 0.5em; }
}

/* フッター住所
----------------------------- */

.footadd-ul {
	list-style: none;
	padding-left: 0;
	margin: 1em 0 0;
}


.f-officename { font-weight: bold; }

@media screen and ( min-width: 641px ) {

	.foot-menu > li { display: inline-block; }

	.foot-menu > li:not(:last-child) { margin-bottom: 0.5em; }

	.footadd-ul .f-add br { display: none; }
}


/* トップへ戻るボタン
----------------------------- */

.page-top {
	width: 40px;
	height: 40px;
	position: fixed;
	z-index: 9999;
	right: 4%;
	bottom: 100px;
}

.page-top a {
	text-align: center;
	width: 100%;
	height: 100%;
	display: block;
	position: relative;
	transition: 1s;
	border-radius: 50%;
	background-color: var( --key-main-color );
	opacity: 0.5;
	filter: alpha(opacity=50);
}

.page-top a::before {
	content: '';
	display: block;
	width: 40%;
	height: 40%;
	border-style: solid;
	border-width: 3px 3px 0 0;
	border-color: #fff #fff transparent transparent;
	border-radius: 1px;
	position: absolute;
	top: 38%;
	left: 50%;
	-ms-transform: translate(-50%) rotate(-45deg);
	transform: translate(-50%) rotate(-45deg);
}

.page-top a:hover {
	text-decoration: none;
	opacity: 1.0;
	filter: alpha(opacity=100);
}

.page-top a:hover {
	text-decoration: none;
	filter: alpha(opacity=100);
	opacity: 1.0;
}

@media screen and ( min-width: 641px ) {

	.page-top {
		width: 50px;
		height: 50px;
		right: 22px;
		bottom: 100px;
	}

	.page-top .fas { font-size: 46px; }
}


/** ----------------------------------------------------------
 * メインナビゲーション設定
---------------------------------------------------------- **/

/**
	スマホメニュー 設定
----------------------------------------------------- **/

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

	body.overflow-hidden::after {
		content: '';
		display: block;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 1000;
		background: rgba(0,0,0,0.5);
	}

	/* ドロワーメニュー本体 */
	.drawer-menu {
		text-align: left;
		background: var( --white-alpha09 );
		padding: 1em 0.5em;
		/*border-right: 1px solid #ececec;*/
		width: 72%;
		height: 100%;
		position: fixed;
		z-index: 1200;
		top: 0;
		left: 0;
		overflow: auto;
		transition: all 0.6s;
		transform: translateX(-100%);
	}

	.drawer-menu ul { margin: 0; }

	.drawer-menu > ul > li:not(:last-child) { border-bottom: 1px solid #ccc; }

	.drawer-menu li ul { margin-left: 1em; }

	.drawer-menu li > ul,
	.drawer-menu li > ul > li:not(:first-child) { border-top: 1px dotted #ccc; }

	.drawer-menu a {
		padding:  0.8em 1.6em 0.8em 0.3em;
		display: block;
		position: relative;
	}

	.drawer-menu a::after {
		content: '';
		display: block;
		width: 0.7em;
		height: 0.7em;
		border-style: solid;
		border-width: 1px 1px 0 0;
		-ms-transform: rotate(45deg);
		transform: rotate(45deg);
		position: absolute;
		top: 1.2em;
		right: 0.8em;
	}

	.drawer-menu a[href="#"]::after { content: none; }

	.drawer-menu.active { transform: translateX(0%); /* jQueryで付与・削除 */ }


	/* ハンバーガーボタン */

	.hamburger-m {
		text-align: center;
		width: 42px;
		height: 40px;
		position: relative;
		display: block;
		cursor: pointer;
		position: fixed;
		z-index: 1200;
		top:0;
		right: 3%;
		background: rgba( 255,255,255,0.8);
	}

	.hamburger-m span {
		width: 30px;
		position: absolute;
		left: 6px;
		display: block;
		transition: 0.35s ease-in-out;
		border-top: solid 1px;
		border-bottom: solid 2px;
		border-radius: 1ex;
		border-color: var( --wp--preset--color--text-black);
	}

	.hamburger-m span:nth-child(1) { top: 9px; }

	.hamburger-m span:nth-child(2)  {top: 18px; }

	.hamburger-m span:nth-child(3) { top: 27px; }

	.hamburger-m.active span:nth-child(1) {
		top: 18px;
		left: 6px;
		transform: rotate(-45deg);
	}

	.hamburger-m.active span:nth-child(2),
	.hamburger-m.active span:nth-child(3) {
		top: 18px;
		transform: rotate(45deg);
	}
}

/**
	タブレット・PC用 設定
----------------------------------------------------- **/

@media screen and (min-width : 641px) {

	.main-nav { padding: 1em 0; }

	/* 第一階層 */

	nav.main-menu > ul,
	ul.main-menu {
		display: -ms-flexbox;
		display: flex;
		-ms-flex-pack: center;
		justify-content: center;
		position: relative;
	}

	.main-menu li {
		line-height: 1.4;
		text-align: left;
		margin: 0;
		padding: 0;
		min-height: 1.5em;
		-ms-transition: 0.5s;
		transition: 0.5s;
		position: relative;
	}

	.main-menu .shadmenu-home { display: none; }

	.main-menu a {
		display: block;
		width: 100%;
		height: 100%;
		position: relative;
	}

	.main-menu > li > a {
		padding: 0.3em 0.6em;
		position: relative;
		-ms-transition: 0.5s;
		transition: 0.5s;
	}

	.main-menu > li:hover a:hover { text-decoration: none; }

	/* サブメニュー持ち */

	.main-menu > li.menu-item-has-children > a {
		padding-right: 1em;
		position: relative;
	}

	.main-menu > li.menu-item-has-children > a::before,
	.main-menu > li.menu-item-has-children > a::after {
		content: '';
		width: 0;
		height: 0;
		display: block;
		position: absolute;
	}

	.main-menu > li.menu-item-has-children > a::after {
		border: 4px solid transparent;
		border-color: #999 transparent transparent;
		top: 50%;
		right: 0.3em;
		-ms-transform: translateX(0) translateY(-25%);
		transform: translate(0,-25%);
	}

	.main-menu > li.menu-item-has-children > a::before {
		border-style: solid;
		border-width: 6px 4px;
		border-color: transparent transparent var( --key-main-color );
		bottom: 0;
		left: 2em;
	}

	/* 第2階層 */

	.main-menu > li > .sub-menu li { padding: 0.25em 0; }

	.main-nav:not( .drawer-menu ) .main-menu .sub-menu { background: var( --white-alpha09 ); }

	.main-nav:not( .drawer-menu ) .main-menu .sub-menu .sub-menu { background: none; }

	.main-menu > .menu-item-has-children > a::before,
	.main-menu > li > .sub-menu {
		-ms-transition: 0.5s;
		transition: 0.5s;
		opacity: 0;
	}

	.main-menu > li > .sub-menu {
		border-top: 1px solid var( --key-main-color );
		position: absolute;
		z-index: 100;
		left: 0;
		width: max-content;
		padding: 0.5em 1em;
		pointer-events: none;
	}

	.main-menu > .menu-item-has-children:hover > a::before,
	.main-menu > li:hover > .sub-menu {
		opacity: 1;
		pointer-events: auto;
	}

	/* 第３階層 */

	.main-menu > li > .sub-menu > li > .sub-menu { padding-left: 0.5em; }

	.main-menu > li > .sub-menu > li > .sub-menu > li > a::before { content: '└'; }


	/* スクロール メニュー固定 */
	.main-nav.menu-fixd  { background-color: var( --white-alpha09 ); }

	#main-nav.menu-fixd {
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
		z-index: 1000;
	}
}

/** ----------------------------------------------------------
 * ウィジェット サイドバー関連
---------------------------------------------------------- **/

/**
	ウィジェット基本
----------------------------------------------------- **/

/* wp検索フォームウィジェット
----------------------------- */

.wp-block-search .wp-block-search__input,
.wp-block-search .wp-block-search__button { padding: 0.3em 0.6em; }

/* ボタン内側 */

.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper {
	border: 1px solid #d4d4d7;
	box-shadow: 1px 1px 2px var( --border-light-col ) inset;
	padding: 0.3em 0.6em;
}

.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper .wp-block-search__input {
	box-shadow: none;
}

.wp-block-search.wp-block-search__button-inside .wp-block-search__button.has-icon {
	padding: 0;
}

.wp-block-search.wp-block-search__button-inside .wp-block-search__input {
	border: none;
}

.wp-block-search.wp-block-search__button-inside .wp-block-search__button.has-icon {
	color: var(--wp--preset--color--text-black) !important;
	font-size: 1.325em;
	background: none !important;
	box-shadow: none;
}

/**
	ヘッダーウィジェット
----------------------------------------------------- **/

.header-widget-area {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.header-widget-area > .widget-container:not(:first-child) {
	margin-left: 1em;
}

/**
	サイドウィジェット
----------------------------------------------------- **/

.sidebar .widget-container {
	max-width: 318px;
	margin-right: auto;
	margin-left:auto;
}

.sidebar .widget-container:not(:first-child) { margin-top: 40px; }

.sidebar .widget_nav_menu > div,
.sidebar .widget-title + div + ul  { padding: 0 0 0 8px; }

@media screen and ( min-width: 641px ) and (max-width: 979px) {

	.sidebar {
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}

	.sidebar .widget-container {
		width: 300px;
		margin-right: 2%;
		margin-left: 2%;
	}

	.sidebar .widget-container:nth-child(2) { margin-top: 0; }
}


/**
	フルレイアウト ウィジェット
----------------------------------------------------- **/

.full-sidebox { padding: 16px 0; }

@media screen and ( min-width: 641px )  {

	.full-sidebox { padding: 32px 0; }

	.full-sidebox .sidebar {
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		width: 100%;
	}

	.full-sidebox .widget-container {
		max-width: none;
		width: 29.33%;
		margin-right: 2%;
		margin-left: 2%;
	}

	/* フルサイズウィジェット */

	.full-sidebox .widget-container.width-full-widget {
		width: 100%;
		margin-right: 0;
		margin-left: 0;
	}
}

@media screen and ( min-width: 980px ) {

	.full-sidebox .widget-container:nth-child(2),
	.full-sidebox .widget-container:nth-child(3) { margin-top: 0; }
}

/**
	ウィジェットエレメント 基本設定
----------------------------------------------------- **/

.widget-title {
	font-size: 1.125em;
	padding: 0 0 0.2em;
	border-bottom: 1px solid var( --border-light-col );
}

.widget-container > ul,
.widget-container > ol,
.widget-container.widget_nav_menu ul  {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* searchform 設定
----------------------------- */

.wp-block-search__button {
	margin-top: 0;
	-ms-flex: 0 0 auto;
	flex: 0 0 auto;
}

/* カレンダーウィジェット 設定
----------------------------- */

.wp-calendar-table { text-align: center; }

.wp-calendar-nav {
	margin-top: 4px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.wp-calendar-table th,
.wp-calendar-table td { padding: 0.5em 0; }


/** ============================================================================
 * contents部分基本
============================================================================ **/

/** ----------------------------------------------------------
 * パンくずリスト dx-パンくず
---------------------------------------------------------- **/

.bread-crumb-wrap {
	padding: 16px 0 40px;
}

.bread-crumb {
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.2;
	padding: 0;
	margin-top: 0;
	margin-bottom: 0;
}

.bread-crumb li::before,
.bread-crumb li::after {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
}

.bread-crumb li {
	display: inline-block;
	line-height: 1.2;
}

.bread-crumb li.top::before {
	content: "\f015";
	padding-right: 0.2em;
}

.bread-crumb li:not(:last-child)::after {
	content: '';
	display: inline-block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0.4em;
	border-color: transparent transparent transparent #999;
	margin: 0 -0.3em 0 0.5em;
}

.bread-crumb li:last-child {
	max-width: 20em;
	overflow: hidden;
	white-space: nowrap;
	-o-text-overflow: ellipsis;
	text-overflow: ellipsis;
	vertical-align: bottom;
}

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

@media screen and ( min-width: 641px )  {

	.bread-crumb-wrap { padding: 32px 0 40px; }
}

@media screen and ( min-width: 980px )  {

	.bread-crumb-wrap {
		width: 100%;
		-ms-flex: 0 0 auto;
		flex: 0 0 auto;
	}
}

/** ----------------------------------------------------------
 * primary-wrap
---------------------------------------------------------- **/

.primary-contents > *:not( .alignfull.has-background ):last-child { margin-bottom: 40px; }

.layout-full .entry-contents > .alignfull:last-child { margin-bottom: -40px }

.primary-contents > .wh-box { padding: 32px 3%; }

@media screen and ( min-width: 641px ) {

	.primary-contents > *:not( .alignfull.has-background ):last-child { margin-bottom: 80px; }

	.layout-full .entry-contents > .alignfull:last-child { margin-bottom: -80px }

	.primary-contents > .wh-box { padding: 32px 24px; }
}


/** ----------------------------------------------------------
 * コンテンツ エレメント基本設定
---------------------------------------------------------- **/

.entry-contents ul:not(.ul-none),
.entry-contents ol:not(.ol-none),
.entry-contents dl,
.entry-contents table {
	margin-top: 1em;
	margin-bottom: 1em;
}

.entry-contents > *:first-child { margin-top: 0; }

.entry-contents > h2 { margin-bottom: 1em; }

.entry-contents > p { line-height: 1.8; }

.entry-contents p { margin-bottom: 1em; }

.entry-contents p:last-child { margin-bottom: 0; }

/* アイキャッチ画像 */

.eye-catch { text-align: center; }

.entry-contents > .eye-catch { margin-bottom: 2em; }

@media screen and ( min-width: 641px ) {

	.entry-contents > .eye-catch { margin-bottom: 3em; }
}


/* パスワード入力フォーム
-------------------------------*/

.post-password-form p:last-child {
	text-indent: 0;
	text-align: center;
}

.post-password-form input[type="password"] { margin-left: 0.3em; }

.post-password-form label {
	display: block;
	margin-bottom: 0.5em;
}

@media screen and ( min-width: 641px )  {

	.post-password-form label {
		display: inline-block;
		margin: 0 1.5em 0 0;
	}
}

/** ----------------------------------------------------------
 * アーカイブ & 固定 ＆ シングル&固定共通（サイズ以外）
---------------------------------------------------------- **/

/* ページタイトル
----------------------------- */

.contents-head { margin-bottom: 40px; }

.layout-full .contents-head { text-align: center; }

.entry-title { margin: 0; }

.post-meta {
	font-size: 0.875em;
	margin-top: 0.5em;
}

.post-meta > span:not(:last-child) { margin-right: 0.5em; }

/*@media screen and ( min-width: 641px ) {

	.contents-head { margin-bottom: 80px; }
}*/


/* カテゴリーディスクリプション
----------------------------- */

.cat-desc {
	margin-top: 40px;
	margin-bottom: 40px;
}


/**
	ページフッターナビ関連
----------------------------------------------------- **/

.primary-footer,
.archive-footnav,
.single-footnav,
.single-pagenav {
	clear: both;
	margin-top: 16px;
	margin-bottom: 40px;
}

@media screen and ( min-width: 641px ) {

	.primary-footer,
	.archive-footnav,
	.single-footnav,
	.single-pagenav {
		margin-top: 40px;
		margin-bottom: 80px;
	}
}

/* ページネーション
----------------------------- */

.archive-footnav,
.pagination > .nav-links,
.single-pagenav.pagination,
.wp-pagenavi {
	text-align: center;
	margin-top: 40px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-ms-flex-pack: center;
	justify-content: center;
	gap: 4px;

}

.pagination > .nav-links > a,
.pagination > .nav-links > span,
.single-pagenav.pagination > a,
.single-pagenav.pagination > span,
.wp-pagenavi a,
.wp-pagenavi span {
	text-decoration: none;
	display: block;
	padding: 0.2em 0.6em;
	border: 1px solid var( --gray-mostlight );
	-ms-transition: 0.5s;
	transition: 0.5s;
}

.pagination > .nav-links > a:hover,
.pagination > .nav-links > span.current,
.single-pagenav.pagination > a:hover,
.single-pagenav.pagination > span.current,
.wp-pagenavi a:hover,
.wp-pagenavi span.current {
	color: #fff;
	background-color: var( --key-main-color );
	border-color: var( --key-main-color );
}

/* シングルページナビ
----------------------------- */

.single-footnav {
	border-top: solid 1px;
	padding-top: 1em;
}

.single-footnav .nav-links::after {
	content: '';
	display: table;
	clear: both;
}

.single-footnav .nav-links > div {
	width: 48%;
	max-width: 24em;
	position: relative;
}

.single-footnav .nav-next {
	padding-left: 1em;
	float: left;
}

.single-footnav .nav-next > a::before,
.single-footnav .nav-previous > a::after {
	display: block;
	position: absolute;
	top: 0;
}

.single-footnav .nav-next > a::before {
	content: '←';
	left: 0;
}

.single-footnav .nav-previous {
	text-align: right;
	padding-right: 1em;
	float: right;
}

.single-footnav .nav-previous > a::after {
	content: '→';
	right: 0;
}

/**
	コンタクトフォーム7
----------------------------------------------------- **/

/* CF7 フォーム チェックボックス ラジオデザイン */

span.wpcf7-list-item { margin: 0 1em 0 0; }

/*.wpcf7-list-item input[type="radio"],
.wpcf7-list-item input[type="checkbox"] { display: none; }*/

.wpcf7-list-item input[type="radio"],
.wpcf7-list-item input[type="checkbox"] {
	display: inline-block;
	opacity: 0;
	margin-right: -1em;
}

fieldset {
	padding: 0;
	border: none;
}

/*legend { display: none; }*/

.wpcf7-list-item-label {
	position: relative;
	cursor: pointer;
}

.wpcf7-list-item-label:before,
.wpcf7-list-item-label:after { content: ''; }

.wpcf7-list-item-label:before {
	display: inline-block;
	border: 1px solid;
	margin-right: 0.3em;
	background: #fff;
}

.wpcf7-list-item-label:after {
	opacity: 0;
	filter: alpha(opacity=0);
	-ms-filter: "alpha( opacity=0 )";
	-o-transition: all 0.3s ease 0s;
	transition: all 0.3s ease 0s;
}

.wpcf7-list-item input[type="checkbox"]:checked + .wpcf7-list-item-label:after,
.wpcf7-form.custom-wpcf7c-confirmed .wpcf7-list-item input[type="checkbox"]:checked + .wpcf7c-conf-hidden + .wpcf7-list-item-label:after,
.wpcf7-list-item input[type="radio"]:checked + .wpcf7-list-item-label:after,
.wpcf7-form.custom-wpcf7c-confirmed .wpcf7-list-item input[type="radio"]:checked + .wpcf7c-conf-hidden + .wpcf7-list-item-label:after{
	opacity: 1;
	filter: alpha(opacity=100);
	-ms-filter: "alpha( opacity=100 )";
}

/* radio */

.wpcf7-radio .wpcf7-list-item-label:before,
.wpcf7-radio .wpcf7-list-item-label:after { border-radius: 50%; }

.wpcf7-radio .wpcf7-list-item-label:before {
	width: 1.2em;
	height: 1.2em;
	vertical-align: -0.2em
}

.wpcf7-radio .wpcf7-list-item-label:after {
	display: block;
	width: 0.6em;
	height: 0.6em;
	background: #e53b00;
	position: absolute;
	top: 0.78em;
	left: 0.6em;
	translate: -50% -50%;
}

/* checkbox */

.wpcf7-checkbox .wpcf7-list-item-label:before,
.wpcf7-acceptance .wpcf7-list-item-label:before {
	width: 1.1em;
	height: 1.1em;
	border-radius: 2px;
	vertical-align: -0.2em;
}

.wpcf7-checkbox .wpcf7-list-item-label:after,
.wpcf7-acceptance .wpcf7-list-item-label:after {
	display: block;
	width: 1.1em;
	height: 0.6em;
	border-style: solid;
	border-width: 0 0 3px 3px;
	border-color: #e53b00;
	border-radius: 1px;
	position: absolute;
	top: 40%;
	left: 0.2em;
	-ms-transform: translate(0,-50%) rotate(-45deg);
	transform: translate(0,-50%) rotate(-45deg);
}

/* ローダー */

.wpcf7 .ajax-loader { margin: 0 -28px 0 4px; }

/* クラス .form-box .form-table */

.form-box {
	padding: 16px 8px;
	background: #f5f5f5;
}

table.form-table,
.form-transmit p {
	font-size: 15px;
	font-size: 0.9375rem;
}

table.form-table {
	width: 100%;
	border-top: none;
	margin-bottom: 16px;
	background: none;
}

table.form-table th,
table.form-table td {
	border: none;
}

table.form-table th {
	font-weight: normal;
	text-align: left;
}

.contents table.form-table th { background: none; }

table.form-table td { padding: 0 0 0.8em 1.5em; }

.entry-contents table.form-table td > p { margin: 0; }

.form-m input[type="text"],
.form-m input[type="number"],
.form-m input[type="date"],
.form-m select { max-width: 16em; }

input[type="number"],
.form-s input[type="text"],
.form-s input[type="date"],
.form-s input[type="date"],
.form-s select { max-width: 8em; }

input[type="date"] { width: 12em; }

.form-ss input[type="text"],
.form-ss input[type="date"],
.form-ss input[type="number"] { max-width: 4em; }

.has-free-text input[type="text"] {
	width: auto;
	/*vertical-align: text-top;*/
}

/* 必須テキスト */
.required-txt {
	color: #fff;
	font-size: 0.85em;
	font-weight: 400;
	padding: 0 0.5em;
	display: inline-block;
	vertical-align: 0.1em;
	margin: 0 0.3em;
	background: #f00;
}

th .required-txt { font-size: 0.72em; }

/* 外書きプレースホルダー */
.placeholder-txt {
	color: #999;
	font-size: 0.875em;
	display: block;
}

/* 承諾・送信ボタン */
.entry-contents .btn-line {
	text-align: center;
	position: relative;
	margin-bottom: 0;
}

.btn-line input[type="submit"] { margin-top: 0; }

.wpcf7-spinner {
	margin: 0;
	position: absolute;
	top: 50%;
	left: calc( 100% + 4px );
	-webkit-transform: translate(0,-50%);
	-ms-transform: translateX(0) translateY(-50%);
	transform: translate(0,-50%);
}

@media screen and ( min-width: 641px )  {

	.form-box { padding: 32px; }

	table.form-table th,
	table.form-table td {
		padding: 0.5em 0;
		vertical-align: top;
	}

	table.form-table th {
		width: 9.5em;
		padding-right: 0.5em;
	}

	.form-transmit .acceptCheck { float: left; }

	input[type="button"].wpcf7c-btn-back { margin-right: 1em; }
}

/** ----------------------------------------------------------
 * アーカイブページ
---------------------------------------------------------- **/

/**
	ループ内設定
----------------------------------------------------- **/

.loop-article {
	position: relative;
	width: 100%;
}

.loop-article.flex-box {
	-ms-flex-align: start;
	align-items: flex-start;
}

.loop-article:not(:first-of-type),
.wp-block-query .wp-block-post:not(:first-of-type) { margin-top: 32px; }

.loop-meta { margin-bottom: 0.5em; }

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

	.loopflex-wrap {
		-ms-flex: 1;
		flex: 1;
	}

	/* ブロッククエリー */

	.wp-block-query .columns-2 .wp-block-post:nth-last-child(2),
	.wp-block-query .columns-3 .wp-block-post:nth-last-child(2),
	.wp-block-query .columns-3 .wp-block-post:nth-last-child(3),
	.wp-block-query .columns-4 .wp-block-post:nth-last-child(2),
	.wp-block-query .columns-4 .wp-block-post:nth-last-child(3),
	.wp-block-query .columns-4 .wp-block-post:nth-last-child(4),
	.wp-block-query .columns-5 .wp-block-post:nth-last-child(2),
	.wp-block-query .columns-5 .wp-block-post:nth-last-child(3),
	.wp-block-query .columns-5 .wp-block-post:nth-last-child(4),
	.wp-block-query .columns-5 .wp-block-post:nth-last-child(5),
	.wp-block-query .columns-6 .wp-block-post:nth-last-child(2),
	.wp-block-query .columns-6 .wp-block-post:nth-last-child(3),
	.wp-block-query .columns-6 .wp-block-post:nth-last-child(4),
	.wp-block-query .columns-6 .wp-block-post:nth-last-child(5),
	.wp-block-query .columns-6 .wp-block-post:nth-last-child(6)  {
		padding-bottom: 0;
		border-bottom: none;
	}
}

/* サムネイル設定 */

.thum-box {
	text-align: center;
	width: 100%;
	overflow: hidden;
	padding-top: 66%;
	margin: 0 auto 1em;
	position: relative;
}

.thum-box img {
	position: absolute;
	top: 0;
	left: 50%;
	-ms-transform: translate(-50%, 0);
	transform: translate(-50%, 0);
	width: auto;
}

.thum-box img.img-height {
	-ms-transform: translate(-50%, -36%);
	transform: translate(-50%, -36%);
}

.thum-box img.img-width { max-width: 102%; }

.thum-box img.ratio {
	max-width: none;
	width: auto;
	height: 100%;
}

@media screen and ( min-width: 641px ) {

	.thum-box {
		width: 30%;
		margin: 0 1em 0 0;
		-ms-flex: 0 0 auto;
		flex: 0 0 auto;
		padding-top: calc( 30% * 0.66 );
	}

	/*.thum-box img.img-width {
		max-width: none;
		width: 100%;
	}*/
}

/* 横並びポスト
-------------------------------------------*/

.post-row > .loop-article {
	padding: 0;
	border: none;
}

.post-row > .loop-article:not(:first-child) {
	margin-top: 3em;
}

.post-row > .loop-article .thum-box {
	width: auto;
	margin: 0 0 1em;
	padding-top: calc( 100%  * 0.66 );
}

.post-row .thum-box img {
	top: 50%;
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	transform-origin: 0 0;
	-ms-transition: 0.5s;
	transition: 0.5s;
}

.post-row .thum-box img:hover { scale: 1.2; }

/* 先頭固定 */
.post-row > .loop-article > .sticky-wrap {
	display: block;
	width: auto;
	margin: 0 !important;
}

@media screen and ( min-width: 641px ) {

	.post-row {
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		-ms-flex-pack: justify;
		justify-content: space-between;
		gap: 3em 2%;
	}

	.post-row > .loop-article { width: 48%; }

	.post-row > .loop-article.flex-box { display: block; }

	.post-row > .loop-article:not(:first-child) { margin-top: 0; }

	.post-row > .btn-tx {
		width: 100%;
		margin-top: 32px;
	}
}

@media screen and ( min-width: 980px ) {

	.post-row {
		-ms-flex-pack: flex-start;
		justify-content: flex-start;
		gap: 3em 3.5%;
	}

	.post-row > .loop-article { width: 31%; }

	.post-row > .loop-article:nth-child(3) { margin-top: 0; }

	.post-row > .loop-article:nth-child(3n) { margin-right: 0; }
}



/** ============================================================================
 * コメント関連
============================================================================ **/

/* コメント関連 */

.comments-area {
	margin-top: 40px;
	padding: 16px;
	padding-top: 40px;
	border-top: 2px solid #ccc;
}

.commentlist {
	margin: 0 0 0;
	padding-left: 0;
}

.commentlist,
.commentlist ol {
	list-style: none;
}

.commentlist > li {
	counter-increment: wpp-list-a;
}

.commentlist > li::before {
	content: counter( wpp-list-a );
}

.commentlist > li > ol > li {
	counter-increment: wpp-list-b;
}
.commentlist > li > ol > li::before {
	content: counter( wpp-list-b );
}

.commentlist > li > ol > li > ol > li {
	counter-increment: wpp-list-c;
}
.commentlist > li > ol > li > ol > li::before {
	content: counter( wpp-list-c );
}

.commentlist > li > ol > li > ol > li > ol > li {
	counter-increment: wpp-list-d;
}

.commentlist > li > ol > li > ol > li > ol > li::before {
	content: counter( wpp-list-d );
}

.commentlist > li > ol > li > ol > li > ol > li > ol > li {
	counter-increment: wpp-list-e;
}

.commentlist > li > ol > li > ol > li > ol > li > ol > li::before {
	content: counter( wpp-list-e );
}

.commentlist li::before {
	font-size: 1.25em;
	line-height: 1.6;
	margin: 0 0.2em 0 0;
	display: block;
	float: left;
}

.commentlist .comment-body {
	margin-bottom: 1em;
	padding-bottom: 1em;
	overflow: hidden;
	border-bottom: 1px dotted #ccc;
}

.comment-author {
	font-size: 18px;
	font-size: 1.125rem;
}

.avatar {
	margin: 0 1em 0 0;
	float: right;
}

.form-submit {
	text-align: center;
}

.required { color: #f00; }

.bypostauthor {
	padding: 2px;
	border: 1px solid #333;
}

/** ============================================================================
 * フロントページ
============================================================================ **/

/* トップビジュアル */

.top-visual { text-align: center; }

.top-visual .wp-custom-header img,
.top-visual .slick-slide > img,
.top-visual .slide-figure > img,
.top-visual .wp-custom-header video,
.top-visual .slick-slide > video,
.top-visual .slide-figure > video  {
	max-width: none;
	width: 100%;
	height: auto;
}


@media screen and ( min-width: 641px ) {

	.top-visual:not(.center-box) { width: 100%; }
}

/* カスタムヘッダー videoボタン */
.wp-custom-header-video-button {
	color: var( --wp--preset--color--text-black );
	white-space: nowrap;
	text-indent: 200%;
	overflow: hidden;
	border: 2px solid;
	border-radius: 4px;
	background: none;
	padding: 0.4em 0.8em;
	position: relative;
}

.wp-custom-header-video-button:hover { cursor: pointer; }

.wp-custom-header-video-play:after,
.wp-custom-header-video-pause:after {
	content: '';
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	-ms-transform: translateX(-50%) translateY(-50%);
	transform: translate(-50%,-50%);
}

.wp-custom-header-video-play:after {
	width: 0.8em;
	height: 1.2em;
	border-style: solid;
	border-width: 0 4px;

}

.wp-custom-header-video-pause:after {
	width: 0;
	height: 0;
	left: calc( 50% + 0.55em );
	border-style: solid;
	border-width: 0.6em 1em;
	border-color: transparent transparent transparent var( --wp--preset--color--text-black );
}

/** ----------------------------------------------------------
 * ホームコンテンツ
---------------------------------------------------------- **/

.home .primary-contents { padding-top: 40px; }

.home .entry-contents > .alignfull.has-background:first-child,
.home .entry-contents > .alignfull.wp-block-cover:first-child { margin-top: -40px; }

@media screen and ( min-width: 641px ) {

	.home .primary-contents,
	.home .layout-wrap:not(.alignfull) .sidebar { padding-top: 80px; }

	.home .entry-contents > .alignfull.has-background:first-child,
	.home .entry-contents > .alignfull.wp-block-cover:first-child { margin-top: -80px; }
}
