@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@100;200;300&display=swap');

a {
	text-decoration: none;
	color: #4F1028;
}

a:hover {
	color: #FA2680;
}

p {
	color: #221815;
}

#wrap {
	padding-top: 100px;
}


/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ヘッダー*/

#header {
	background: #fff;
	width: 100vw;
	height: 100px;
	border-bottom: 3px solid #000;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10000;
}

#header .headBody {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-left: 25px;
	height: 100px;
}

#header .logoWrap {
	width: 40%;
	height: 55px;
}

#header .logoWrap a {
	display: inline-block;
	height: 55px;
}

#header .logoWrap img {
	width: auto;
	height: 100%;
}

#header .globalNavi {
	width: 100%;
	flex: 1;
	z-index: 10000;
	margin-right: 100px;
}

#header .globalNavi>ul {
	display: flex;
	align-items: center;
	justify-content: space-around;
	width: 100%;
	height: 100%;
	list-style: none;
	margin: 0;
	padding: 0;
}

#header .globalNavi a {
	font-size: 16px;
	display: block;
	padding: 4px 5px 4px;
}

@media screen and (max-width: 880px) {
	#header .logoWrap {
		width: 35%;
		height: 55px;
	}

	#header .globalNavi a {
		font-size: 1.5vw;
		height: 30px;
	}
}

#header .globalNavi a:hover {
	padding-bottom: 2px;
	border-bottom: solid 2px #FA2680;
}

#header .globalNavi .menu-item-has-children {
	position: relative;
}

#header .globalNavi .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	width: 200px;
	padding: 0;
}

#header .globalNavi .sub-menu>.menu-item a {
	display: inline-block;
	color: #fff;
	box-sizing: border-box;
	width: 100%;
	padding: 1px .5em;
	background-color: #4F1028;
	font-size: 14px;
	border: 0;
	line-height: 1.5;
}

#header .headerContact {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100px;
	height: 100px;
	background-color: #4F1028;
}

#header .headerSpMenu {
	display: none;
}

#header .headerContact span {
	display: inline-block;
	text-align: center;
	line-height: 100px;
	color: #fff;
	background-image: url("../img/common/ico_airplane.png");
	background-repeat: no-repeat;
	background-position: left center;
	text-indent: 1.5em;
	font-size: 14px;
}

.headerChildrenMenu {
	position: fixed;
	z-index: 5000;
	top: 100px;
	left: 0;
	right: 0;
	padding: 20px 5%;
	background-color: #E6E7E7;
	display: none;
}

.headerChildrenMenu a {
	color: #000;
}

.headerChildrenMenu a:hover {
	text-decoration: underline;
	color: #FA2680;
}

.headerChildrenMenu .menuBody {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	height: 350px;
}


.headerChildrenMenu .pageTitle {
	font-size: 28px;
	margin-bottom: 20px;
	width: 100%;
	min-height: 50px;
}

.headerChildrenMenu .child {
	padding-left: 10px;
	line-height: 2;
	font-size: 22px;
	max-width: 24.5%;
	box-sizing: border-box;
}

.headerChildrenMenu .children-list {
	max-width: 24.5%;
	min-height: 60px;
}

.headerChildrenMenu .grandchildren-list {
	margin-left: 20px;
	padding-bottom: 15px;
	line-height: 1.5;
	text-indent: -0.5em;
	padding-left: 1em;
}

.headerChildrenMenu .grandchildren-list li {
	padding-bottom: 5px;
}

#companyChildrenMenu .menuBody {
	height: 150px;
}

.headerChildrenMenu a {
	font-weight: normal;
}

.headerChildrenMenu .grandchildren-list a {
	font-size: 14px;
	font-weight: 200;
}


@media screen and (max-width: 1450px) {
	#childrenMenu-service .menuBody {
		height: 500px;
	}

	#childrenMenu-service .children-list {
		min-height: auto;
	}

	.headerChildrenMenu .children-list,
	.headerChildrenMenu .child {
		max-width: 32%;
	}

}

#childrenMenu-service .children-list-1 {
	order: 1;
}

#childrenMenu-service .children-list-6 {
	order: 2;
}

#childrenMenu-service .children-list-2 {
	order: 3;
}

#childrenMenu-service .children-list-7 {
	order: 4;
}

#childrenMenu-service .children-list-5 {
	order: 5;
}

#childrenMenu-service .children-list-4 {
	order: 6;
}

#childrenMenu-service .children-list-9 {
	order: 7;
}

#childrenMenu-service .children-list-3 {
	order: 8;
}

#childrenMenu-service .children-list-8 {
	order: 9;
}

#childrenMenu-service .children-list-9 {
	order: 10;
}

#childrenMenu-service .children-list-10 {
	order: 11;
}

#childrenMenu-service .children-list-11 {
	order: 12;
}


@media screen and (max-width: 1450px) {
	#childrenMenu-service .children-list-2 {
		order: 4;
	}

	#childrenMenu-service .children-list-7 {
		order: 3;
	}
}

@media screen and (max-width: 950px) {
	#childrenMenu-service .child {
		font-size: 2vw;
	}
}

#spMenu,
.spChildrenList,
#spMenu .spGrandchildrenList,
#spMenu {
	display: none;
}

#spMenu .spGrandchildLink,
#spMenu .spChildLink,
#spMenu .spMenuLink {
	display: block;
	padding: 10px 20px;
	color: #fff;
	background-color: #4F1028;
	font-size: 18px;
	position: relative;
	border-top: #fff 1px solid;
}

#spMenu .spChildLink::before,
#spMenu .spGrandchildLink::before,
#spMenu .spMenuLink::before {
	content: "\f061";
	font-family: "Font Awesome 5 Free";
	font-weight: 200;
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 16px;
	color: #fff;
	right: 18px;
}

#spMenu .spChildLink {
	padding-left: 30px;
	background-color: #85434F;
	font-size: 16px;
}

#spMenu .spChildLink.has-grandchildren::before,
#spMenu .spMenuLink.has-children::before {
	content: "";
}

#spMenu .spChildLink.has-grandchildren.active::before,
#spMenu .spMenuLink.has-children.active::before {
	content: "";
}

#spMenu .spChildrenList a {
	font-weight: 200;
	font-size: 14px;
	padding-left: 30px;
}

#spMenu .spGrandchildrenList a {
	padding-left: 40px;
	font-weight: 200;
	font-size: 14px;
	background-color: #A37174;
}

#spMenu .ghostBt_contact,
#spMenu .ghostBt_tel {
	box-sizing: border-box;
	width: 45%;
	border: #4F1028 solid 1px;
	color: #4F1028;
	border-radius: 5px;
	font-size: 3vw;
	white-space: nowrap;
}

#spMenu .ghostBt_contact {
	background-image: url("../img/common/ico_airplane_b.png");
	background-position: left 12% center;
	font-size: 2.7vw;
	padding-left: 37px;
}

#spMenu .ghostBt_tel {
	background-image: url("../img/common/ico_tel_b.png");
	background-position: left 15% center;
}

#spMenu .btBlock {
	padding: 20px 8%;
	display: flex;
	justify-content: space-between;
	background-color: #fff;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝パンくず*/
.breadcrumb {
	width: 90%;
	margin: 0 auto;
	padding: 20px 0;
	color: #666;
	line-height: 1.5;
}

.breadcrumb span {
	display: inline-block;
	font-size: 14px;
}

.categoryNavigation {
	width: 90%;
	margin: 0 auto;
	padding: 20px 0;
}

.categoryNavigation ul {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}

.categoryNavigation ul li {
	margin-bottom: 10px;
}

.categoryNavigation ul a {
	line-height: 2;
	display: block;
	font-size: 12px;
	text-align: center;
	background-color: #666;
	color: #fff;
	padding: 0 20px;
	margin-right: 10px;
	min-width: 100px;
}

.categoryNavigation ul li.active a {
	background-color: #FA2680;
}


.history {
	margin: 0;
	padding: 0;
}

.history table {
	border: none;
}

.history table td {
	border: none;
	line-height: 1.5;
	padding-bottom: 20px;
}

.history table tr td:first-child {
	white-space: nowrap;
}

.history table tr {
	border-bottom: 1px dotted #ccc;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝WP要素上書き*/

.wp-lightbox-overlay .scrim {
	background: rgba(0, 0, 0, 0.8) !important;
}

.wp-lightbox-overlay .close-button {
	fill: #fff !important;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝見出し*/

#pageTitle {
	width: 100%;
	height: 100px;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 310px;
	position: relative;
	border-bottom: 3px solid #000;
}

#pageTitle h1 {
	display: inline-block;
	position: relative;
	line-height: 1.2;
	max-width: 70%;
	z-index: 100;
	padding: 18px 60px;
	font-size: 35px;
	color: #fff;
	background-color: rgba(79, 16, 40, 0.9);
	text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
	font-family: 'Noto Serif', serif;
}

#pageTitle::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: url("../img/common/mado.svg");
	background-position: right center;
	background-repeat: no-repeat;
	background-size: auto 100%;
}



#postTitle {
	max-width: 800px;
	width: 90%;
	margin: 0 auto;
	padding: 10px 0;
}

#postTitle h1 {
	font-size: 40px;
	color: #4F1028;
	margin-bottom: 20px;
	line-height: 1.5;
	border-bottom: #4F1028 2px solid;
}

#postTitle .postDate {
	font-size: 14px;
	text-align: right;
	color: #666;
	margin-bottom: 5px;
}

#postTitle .postCategories {
	display: block;
	margin-right: 30px;
	min-width: 140px;
	display: flex;
	margin-bottom: 5px;
}

#postTitle .category {
	line-height: 2;
	display: block;
	font-size: 12px;
	text-align: center;
	background-color: #FA2680;
	color: #fff;
	padding: 0 20px;
	margin-right: 10px;
	min-width: 100px;
}


/* .pagesBody h2.wp-block-heading {
	font-size: 26px;
	color: #4F1028;
	line-height: 1.5;
	border-bottom: #4F1028 2px solid;
	margin-bottom: 20px;
	margin-top: 80px;
}

.pagesBody h3.wp-block-heading {
	font-size: 24px;
	padding: 10px;
	background-color: #4F1028;
	color: #fff;
	margin-bottom: 20px;
	margin-top: 50px;
} */


.pagesBody h2.wp-block-heading {
	margin: 80px auto 70px;
	font-size: 40px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	font-family: 'Josefin Sans', 'Noto Sans Japanese', sans-serif;
	font-weight: 200;
	line-height: 1.2;
	padding: 15px 80px;
}

.pagesBody h2.wp-block-heading::before,
.pagesBody h2.wp-block-heading::after {
	content: "";
	display: block;
	position: absolute;
	width: 40px;
	height: 40px;
	min-height: 25px;
	background-size: contain;
	background-repeat: no-repeat;
}

.pagesBody h2.wp-block-heading::before {
	background-image: url("../img/common/brackets_ul.svg");
	top: 0;
	left: 0;
	/* bottom: 0.2em; */
	margin-right: 45px;
}

.pagesBody h2.wp-block-heading::after {
	background-image: url("../img/common/brackets_br.svg");
	bottom: 0;
	right: 0;
	/* top: 0; */
	margin-left: 45px;
}

.pagesBody h3.wp-block-heading {
	font-size: 26px;
	color: #4F1028;
	line-height: 1.5;
	border-bottom: #4F1028 1px solid;
	margin-bottom: 20px;
	margin-top: 80px;
}



/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝コンテナ*/

.pagesBody .numberGrid {
	counter-reset: grid-counter;
}

.pagesBody .numberGrid>* {
	counter-increment: grid-counter;
	position: relative;
}

.pagesBody .numberGrid>*::after {
	content: counter(grid-counter);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	background-color: #4F1028;
	color: #fff;
	position: absolute;
	top: 0;
	left: 0;
}

.pagesBody .numberGrid .lightbox-trigger {
	top: 5px !important;
	right: 5px !important;
}

.pagesBody .wp-block-image {
	margin: 2%;
}

#container.pages {
	padding: 10px 5% 100px;
}

#postNavigation {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 90%;
	margin: 80px auto 20px;
	border-top: 1px solid #ccc;
	padding: 10px 0;
}

#postNavigation a {
	display: inline-block;
	max-width: 40%;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
	position: relative;
}

#postNavigation .prev-post {
	padding-left: 1em;
}

#postNavigation .prev-post::before {
	content: "＜ ";
	position: absolute;
	left: 0;
}

#postNavigation .next-post {
	padding-right: 1em;
}

#postNavigation .next-post::after {
	content: " ＞";
	position: absolute;
	right: 0;
}

#container figure.is-type-video {
	margin: 50px 0;
	text-align: center;
}

#container .pagesBody {
	max-width: 800px;
	margin: 80px auto;
	margin-bottom: 100px;
}

.pagesBody p {
	margin-bottom: 30px;
	line-height: 1.8;
	font-size: 16px;
}

#container .indexChildrenList {
	color: #666;
}

#container .indexChildrenList li {
	display: flex;
	padding-bottom: 50px;
	margin-bottom: 50px;
	border-bottom: #666 solid 1px;
}

#container .thumbnailBlock {
	width: 40%;
	height: 200px;
	padding: 20px;
	padding-left: 0;
	position: relative;
}

#container .thumbnailBlock .corner-img {
	position: absolute;
	width: 20px;
	height: 20px;
	object-fit: cover;
}

#container .thumbnailBlock .corner-img.top-right {
	top: 0;
	right: 0;
}

#container .thumbnailBlock .corner-img.bottom-right {
	bottom: 0;
	right: 0;
}

#container .childThumbnail {
	width: 100%;
	height: 200px;
	background-color: #ccc;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

#container .defaultThumbnail {
	background-size: contain;
}

#container .indexChildrenList .childInfo {
	flex: 1;
	width: 100%;
	margin: 20px 0;
	margin-left: 40px;
	position: relative;
	padding-bottom: 60px;
}

#container .indexChildrenList .childInfo h3 {
	width: 95%;
	font-size: 30px;
	margin-bottom: 20px;
	font-weight: normal;
}

#container .indexChildrenList .linkBlock {
	width: 95%;
	position: absolute;
	text-align: right;
	left: 0;
	bottom: 0;
}

#container .indexChildrenList li .excerpt {
	display: block;
	width: 95%;
	font-size: 14px;
	color: #666;
	margin-bottom: 20px;
}

#container .grandchildrenList {
	margin-left: 20px;
}

#container .grandchildrenList li {
	font-size: 16px;
	line-height: 1.5;
	border-bottom: none;
	margin-bottom: 10px;
	padding-bottom: 0;
	font-weight: 200;
}

#container .grandchildrenList li a {
	display: inline-block;
	padding-left: 1.5em;
	text-indent: -1em;
}

#container .parentBack {
	margin: 50px 0;
}

#container .wp-block-preformatted {
	line-height: 1.5;
}

.caption_center figcaption,
.captionCenter figcaption {
	text-align: center;
}

.pagesBody .aioseo-faq-block-question {
	font-size: 16px;
	color: #4F1028;
	line-height: 1.5;
	margin-bottom: 10px;
	border-bottom: #4F1028 1px solid;
	position: relative;
	padding-left: 100px;
	/* Space for the Q bubble */
	min-height: 80px;
	display: flex;
	align-items: center;
	/* Vertically centers the inner text */
}

.pagesBody .aioseo-faq-block-question::before {
	content: "Q";
	display: flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 100%;
	/* Adjust height to match the element */
	background-color: #4F1028;
	color: #fff;
	font-size: 35px;
	position: absolute;
	left: 0;
	top: 0;
	/* Align to the top */
}

.pagesBody .aioseo-faq-block-question::after {
	content: "";
	position: absolute;
	bottom: -10px;
	/* Adjust position below the element */
	left: 20px;
	width: 0;
	height: 0;
	border-left: 20px solid transparent;
	border-right: 20px solid transparent;
	border-top: 25px solid #4F1028;
}

.pagesBody .aioseo-faq-block-answer {
	padding: 10px;
}

.pagesBody .aioseo-faq-block-answer a {
	color: #FA2680;
	border-bottom: solid 1px #FA2680;
}

.pagesBody .aioseo-faq-block-answer a:hover {
	border-bottom: none;
}

.pagesBody .wp-block-aioseo-faq {
	margin-bottom: 100px;
}


.pagesBody .wp-block-list {
	margin-left: 1em;
	text-indent: -1em;
}


.pagesBody .wp-block-list li {
	line-height: 1.5;
	padding-bottom: 10px;
}

.wpcf7-form {
	padding: 20px;
	background-color: #f9f9f9;
}

.wpcf7-form .inputWap {
	margin-bottom: 50px;
}

.wpcf7-form .inputWap p {
	margin: 0;
}

.wpcf7-form .inputWap label {
	display: block;
	font-size: 20px;
	color: #666;
	margin-bottom: 10px;
	border-bottom: #666 1px dashed;
}

.wpcf7-form .inputWap .inputBox {
	margin-left: 30px;
}

.wpcf7-form .inputWap .inputBox input {
	width: 100%;
	padding: 10px;
	border: 1px solid #4F1028;
	border-radius: 4px;
	font-size: 16px;
	box-sizing: border-box;
}

.wpcf7-form .inputWap .inputBox {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	margin-bottom: 30px;
}

.wpcf7-form .inputWap .inputBox label {
	display: flex;
	align-items: center;
	cursor: pointer;
	font-size: 16px;
	color: #4F1028;
}

.wpcf7-form .inputWap .inputBox input[type="radio"] {
	appearance: none;
	width: 20px;
	height: 20px;
	border: 2px solid #4F1028;
	border-radius: 50%;
	margin-right: 10px;
	position: relative;
	outline: none;
	cursor: pointer;
}

.wpcf7-form .inputWap .inputBox input[type="radio"]:checked {
	background-color: #4F1028;
}

.wpcf7-form .inputWap .inputBox input[type="radio"]:checked::after {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	background-color: #fff;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.wpcf7-form input[type="submit"] {
	background-color: #4F1028;
	color: #fff;
	border: none;
	padding: 15px 30px;
	font-size: 18px;
	cursor: pointer;
	border-radius: 4px;
	transition: background-color 0.3s, color 0.3s;
	display: block;
	margin: 0 auto;
	text-align: center;
}

.wpcf7-not-valid-tip {
	color: rgba(184, 3, 3, 0.883);
	padding-left: 20px;
	line-height: 2;
}

.wpcf7-response-output {
	border-color: rgba(184, 3, 3, 0.883) !important;
	background-color: rgba(184, 3, 3, 0.883);
	line-height: 2;
	color: #fff;
	padding: 10px 20px;
	border-radius: 4px;
	margin-top: 20px;
	text-align: center;
	font-size: 16px;
}

.wp-element-caption {
	line-height: 1.5;
}

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

.pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 20px 0;
	list-style: none;
	padding: 0;
	gap: 10px;
	/* Adds equal spacing between items */
}

.pagination li {
	margin: 0;
}

.pagination a {
	display: block;
	padding: 8px 12px;
	color: #4F1028;
	text-decoration: none;
	border-radius: 4px;
	transition: background-color 0.3s, color 0.3s;
}

.pagination a:hover {
	background-color: #4F1028;
	color: #fff;
}

.pagination .current {
	display: block;
	padding: 8px 12px;
	color: #fff;
	background-color: #4F1028;
	border: 1px solid #4F1028;
	border-radius: 4px;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝リスト*/

#postList .postItem {
	display: flex;
	margin-bottom: 30px;
	padding-bottom: 30px;
	border-bottom: 1px dotted #ccc;
}

#postList .postCategories {
	display: block;
	margin-right: 30px;
	min-width: 140px;
	display: flex;
	margin-bottom: 5px;
}

#postList .category {
	line-height: 2;
	display: block;
	font-size: 12px;
	text-align: center;
	background-color: #FA2680;
	color: #fff;
	padding: 0 20px;
	margin-right: 10px;
	min-width: 100px;
}

#postList .category:hover {
	opacity: 0.8;
}

#postList .postThumb {
	display: block;
	width: 150px;
	height: 150px;
	background-size: cover;
	background-position: center;
	margin-right: 20px;
}

#postList .postValue {
	width: 100%;
	flex: 1;
	line-height: 1.5;
	overflow: hidden;
}

#postList .postTitle {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-weight: normal;
	font-size: 18px;
	margin-bottom: 10px;
	border-bottom: #4F1028 2px solid;
}

#postList .postTitle a {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	display: block;
	width: 100%;
}

#postList .postExcerpt {
	font-size: 14px;
}

/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝テーブル*/
.profileTable .wp-block-table {
	width: 100%;
	border-collapse: collapse;
	margin: 30px 0;
	background: #fff;
	font-size: 16px;
	border-right: 1px solid #ccc;
	border-top: 1px solid #ccc;
}

.profileTable .wp-block-table tr {
	border: none;
	border-bottom: 1px solid #ccc;
}

.profileTable .wp-block-table td {
	border: none;
	padding: 14px 18px;
	vertical-align: middle;
	line-height: 1.8;
}

.profileTable .wp-block-table tr td:first-child {
	background: #4F1028;
	color: #fff;
	width: 180px;
	text-align: left;
	letter-spacing: 0.05em;
	font-size: 15px;
}

.profileTable .wp-block-table tr td:not(:first-child) {
	background: #fff;
	color: #222;
	text-align: left;
}

.wp-block-media-text {
	margin-top: 80px;
}

.wp-block-media-text__content h3.wp-block-heading {
	margin-top: 0;
}



/*＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝フッター*/
#footer {
	overflow-x: hidden;
	width: 100%;
}

#footer .footerBody {
	background: #4F1028;
	display: flex;
	align-items: top center;
	justify-content: space-between;
	padding: 50px 5%;
}


#footer .footerBody a {
	color: #fff;
	line-height: 1.5;
}

#footer .footerBody a:hover {
	text-decoration: underline;
}

#footer .footerBody h3 {
	color: #fff;
	font-weight: normal;
	font-size: 22px;
	margin-bottom: 30px;
}

#footer .footermenu li {
	margin-bottom: 20px;
}

#footer .footermenu li a {
	color: #fff;
	font-weight: normal;
	font-size: 22px;
}

#footer .footerInfo {
	background: #fff;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	padding: 50px 5%;
}

#footer .footerInfo address {
	color: #4F1028;
	font-style: normal;
}

#footer .footerInfo p {
	line-height: 1.5;
}

#footer .companyInfo {
	max-width: 48%;
	margin-right: 2%;
}

#footer .trademark {
	border: #4F1028 1px solid;
	padding: 20px;
	margin-bottom: 30px;
}

#footer .trademark p {
	color: #4F1028;
	font-size: 14px;
	line-height: 1.5;
}

#footer .trademark h3 {
	font-size: 20px;
	color: #4F1028;
}

#footer .trademark img {
	height: 40px;
	width: auto;
	display: inline-block;
}


#footer .footerInfo .sns {
	text-align: right;
}

#footer .footerInfo .snsList {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin-bottom: 20px;
}

#footer .companyName a,
#footer .footerInfo .snsList a {
	display: block;
}




/* コンテナ共通箇所 */
#container {
	overflow-x: hidden;
}

#container .ghostBt {
	display: inline-block;
	padding: 0 90px;
	padding-right: 70px;
	text-align: center;
	border: 1px solid #fff;
	line-height: 46px;
	color: #fff;
	background-image: url("../img/common/ico_arrow_w.png");
	background-repeat: no-repeat;
	background-position: -20px center;
	background-size: auto 10px;
	font-size: 18px;
	padding-top: 5px;
	padding-bottom: 5px;
}

#container .ghostBt_black {
	display: inline-block;
	padding: 0 90px;
	padding-right: 70px;
	text-align: center;
	border: 1px solid #000;
	line-height: 46px;
	color: #000;
	background-image: url("../img/common/ico_arrow.png");
	background-repeat: no-repeat;
	background-position: -20px center;
	background-size: auto 10px;
	font-size: 18px;
	padding-top: 5px;
	padding-bottom: 5px;
}

#container .ghostBt:hover {
	opacity: 0.8;
	background-color: rgba(0, 0, 0, 0.5);
	background-position: -10px center;
	transition: background-color 0.4s cubic-bezier(.77, 0, .18, 1), background-position 0.4s cubic-bezier(.77, 0, .18, 1), opacity 0.4s cubic-bezier(.77, 0, .18, 1);
}

#container .ghostBt_black:hover {
	opacity: 0.8;
	background-color: rgba(0, 0, 0, 0.5);
	background-position: -10px center;
	transition: background-color 0.4s cubic-bezier(.77, 0, .18, 1), background-position 0.4s cubic-bezier(.77, 0, .18, 1), opacity 0.4s cubic-bezier(.77, 0, .18, 1);
}

.ghostBt_tel {
	display: inline-block;
	padding-left: 90px;
	padding-right: 60px;
	text-align: center;
	border: 1px solid #fff;
	line-height: 46px;
	color: #fff;
	background-image: url("../img/common/ico_tel.png");
	background-repeat: no-repeat;
	background-position: 60px center;
	background-size: auto 20px;
	font-size: 28px;
	font-weight: normal;
	padding-top: 15px;
	padding-bottom: 15px;
}

.ghostBt_contact {
	display: inline-block;
	padding-left: 90px;
	padding-right: 60px;
	text-align: center;
	border: 1px solid #fff;
	line-height: 46px;
	color: #fff;
	background-image: url("../img/common/ico_airplane.png");
	background-repeat: no-repeat;
	background-position: 60px center;
	background-size: auto 20px;
	font-size: 22px;
	font-weight: normal;
	padding-top: 15px;
	padding-bottom: 15px;
}

.ghostBt_contact:hover,
.ghostBt_tel:hover {
	opacity: 0.8;
	color: #fff;
	background-color: rgba(0, 0, 0, 0.5);
}

.fadein {
	opacity: 0;
	transition: opacity 1.5s cubic-bezier(.77, 0, .18, 1), transform 1.5s cubic-bezier(.77, 0, .18, 1);
	will-change: opacity, transform;
}

.fadein.is-inview {
	opacity: 1;
}

.fadeinDown {
	opacity: 0;
	transform: translateY(-40px);
	transition: opacity 0.8s cubic-bezier(.77, 0, .18, 1), transform 0.8s cubic-bezier(.77, 0, .18, 1);
	will-change: opacity, transform;
}

.fadeinDown.is-inview {
	opacity: 1;
	transform: translateY(0);
}

.fadeinUp {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.8s cubic-bezier(.77, 0, .18, 1), transform 0.8s cubic-bezier(.77, 0, .18, 1);
	will-change: opacity, transform;
}

.fadeinUp.is-inview {
	opacity: 1;
	transform: translateY(0);
}

.blur::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	backdrop-filter: blur(8px);
}

.blur.is-inview::after {
	animation: blur 3s ease-in-out forwards;
}

@keyframes blur {
	0% {
		backdrop-filter: blur(8px);
	}

	100% {
		backdrop-filter: none;
	}
}

/* スマホ版ブレイクポイント */
@media screen and (max-width: 768px) {
	body.no-scroll {
		overflow: hidden;
	}

	#wrap {
		width: 100Vw;
		padding-top: 50px;
	}

	#header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		min-height: 50px;
		height: auto;
		background-color: #fff;
		z-index: 10000;
		box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	}

	#header .headerSpMenu {
		position: fixed;
		top: 0;
		right: 0;
		width: 50px;
		height: 50px;
		background-color: #4F1028;
		color: #fff;
		z-index: 20000;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	#spMenu {
		position: fixed;
		top: 50px;
		right: 0;
		width: 100%;
		background-color: #000000c2;
		color: #fff;
		overflow-y: scroll;
		height: calc(100vh - 50px);
	}

	#spMenu.active {
		transform: translateY(0);
	}

	#spMenu .spChildLink,
	#spMenu .spMenuLink {
		padding: 15px 20px;
		font-size: 16px;
		border-bottom: 1px solid #fff;
	}


	#header .headBody {
		padding: 10px;
		height: 30px;
	}

	#header .headerContact,
	#header .globalNavi {
		display: none;
	}

	#header .logoWrap {
		width: 40%;
		height: 35px;
	}

	#header .logoWrap {
		width: auto;
	}

	#header .logoWrap img {
		width: auto;
		height: 30PX;
	}

	#header .headerSpMenu {
		position: absolute;
		top: 0;
		right: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 50px;
		height: 50px;
		background-color: #4F1028;
		color: #fff;
		cursor: pointer;
	}

	#postTitle h1 {
		font-size: 8vw;
	}

	#container .postNavigation a {
		font-size: 12px;
	}

	.pagesBody h2.wp-block-heading {
		margin: 80px auto 70px;
		font-size: 30px;
		padding: 10px 40px;
	}

	.pagesBody h2.wp-block-heading::before {
		margin-right: 10px;
	}

	.pagesBody h2.wp-block-heading::after {
		margin-left: 10px;
	}

	.pagesBody h2.wp-block-heading::before,
	.pagesBody h2.wp-block-heading::after {
		width: 30px;
		height: 30px;
	}

	.wp-block-media-text .wp-block-media-text__media img {
		margin: 10px auto;
		display: block;
		max-width: 50%;
		height: auto;
	}


	.ghostBt_contact,
	.ghostBt_tel {
		padding-left: 35px;
		padding-right: 20px;
		background-position: 15px center;
		background-size: auto 16px;
		font-size: 16px;
		padding-top: 5px;
		padding-bottom: 5px;
	}

	.ghostBt_contact {
		font-size: 14px;
	}

	#container .indexChildrenList {
		padding-left: 0;
	}

	#container .indexChildrenList li {
		display: block;
	}

	#container .indexChildrenList .thumbnailBlock {
		box-sizing: border-box;
		margin-bottom: 30px;
		width: 100%;
	}

	#container .indexChildrenList .childThumbnail {
		width: 100%;
		height: 100%;
	}

	#container .indexChildrenList .childInfo {
		box-sizing: border-box;
		width: 100%;
		padding: 10px 20px 60px;
		margin-left: 0;
	}

	.profileTable .wp-block-table tr td:first-child {
		width: 20%;
	}

	.profileTable .wp-block-table td {
		padding: 10px;
	}

	#pageTitle {
		height: 250px;
	}

	#pageTitle h1 {
		font-size: 25px;
		max-width: 60%;
		padding: 20px 10%;
	}

	#footer .footerBody {
		flex-wrap: wrap;
		padding-left: 3%;
		padding-right: 1%;
	}

	#footer .footerBody>div {
		width: 44%;
		margin-bottom: 20px;
	}

	#footer .footermenu li {
		margin-bottom: 0;
	}

	#footer .footermenu li a,
	#footer .footerBody h3 {
		font-size: 14px;
		margin-bottom: 10px;
	}

	#footer h3 a {
		font-size: 16px;
		padding-bottom: 10px;
	}

	#footer .navi_UL a {
		font-size: 14px;
		padding-bottom: 10px;
		display: inline-block;
		padding-left: 0.5em;
		text-indent: -0.5em;
	}

	#footer .footerInfo {
		margin: 0 auto;
		width: 70%;
		background: #fff;
		display: block;
	}

	#footer .companyName img {
		width: 100%;
		height: auto;
	}

	#footer .companyInfo {
		margin-bottom: 40px;
	}

	#footer .footerInfo p {
		font-size: 12px;
	}

	#footer .trademark p {
		line-height: 2;
	}


	#footer .trademark img {
		max-width: 244px;
		width: 100%;
		height: auto;
		display: block;
	}


	#footer .footerInfo .snsList {
		justify-content: center;
		margin-top: 20px;
	}

	#footer .footerInfo .snsList li {
		width: 40px;
		height: 40px;
	}

	#footer .footerInfo .snsList li img {
		max-width: 303px;
		width: 100%;
		height: auto;
	}

	#footer .footerInfo address {
		font-size: 10px;
		text-align: center;
	}

	#footer .footerInfo {
		padding-bottom: 5px;
	}

	#postList .postItem {
		display: block;
	}

	#footer .companyInfo {
		max-width: none;
		margin-right: 0;
	}

	#postList .postThumb {
		width: 80vw;
		height: 80vw;
		max-width: 200px;
		max-height: 200px;
		margin: 0 auto 20px;
	}

	#pageTitle.greeting_pageTitle {
		background-position: left -100px center;
	}

	#pageTitle.greeting_pageTitle h1 {
		margin-left: 30%;
	}


}

/* ハンバーガーメニューアイコン */
.headerSpMenu {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	background-color: #4F1028;
	color: #fff;
	cursor: pointer;
	z-index: 20000;
	flex-direction: column;
	font-size: 12px;
}

.headerSpMenu .hamburger {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 28px;
	height: 22px;
	position: relative;
	margin-bottom: 2px;
}

.headerSpMenu .bar {
	display: block;
	width: 100%;
	height: 3px;
	background: #fff;
	border-radius: 2px;
	margin: 3px 0;
	transition: 0.3s cubic-bezier(.77, 0, .18, 1);
	position: relative;
}

/* アクティブ時（×マークに変形） */
.headerSpMenu.active .bar:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}

.headerSpMenu.active .bar:nth-child(2) {
	opacity: 0;
}

.headerSpMenu.active .bar:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}

/* テキスト切り替え */
.headerSpMenu .menuText {
	display: block;
	margin-top: 2px;
	letter-spacing: 1px;
	font-size: 10px;
	transition: color 0.3s;
}

.headerSpMenu.active .menuText::before {
	content: "CLOSE";
	color: #fff;
}

.headerSpMenu.active .menuText {
	color: #fff;
}

.headerSpMenu:not(.active) .menuText::before {
	content: "MENU";
}

.headerSpMenu .menuText {
	color: #fff;
}

/* ＋→− アニメーション（疑似要素で線を作る方式） 子要素にも適用 */
#spMenu .spChildLink.has-grandchildren {
	position: relative;
	padding-right: 36px;
}

/* 横線（常に表示） */
#spMenu .spChildLink.has-grandchildren::before {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 16px;
	height: 2px;
	background: #fff;
	border-radius: 1px;
	transform: translateY(-50%) rotate(0deg);
	transition: background 0.3s, transform 0.3s;
}

/* 縦線（＋の時だけ表示） */
#spMenu .spChildLink.has-grandchildren::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 16px;
	height: 2px;
	background: #fff;
	border-radius: 1px;
	transform: translateY(-50%) rotate(90deg);
	transition: opacity 0.3s, transform 0.3s;
	opacity: 1;
}

/* active時：縦線を横線に重ねて消す（90度回転しながら−に） */
#spMenu .spChildLink.has-grandchildren.active::after {
	opacity: 0;
	transform: translateY(-50%) rotate(0deg);
}

/* 横線（常に表示） */
#spMenu .spMenuLink.has-children::before {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 16px;
	height: 2px;
	background: #fff;
	border-radius: 1px;
	transform: translateY(-50%) rotate(0deg);
	transition: background 0.3s, transform 0.3s;
}

/* 縦線（＋の時だけ表示） */
#spMenu .spMenuLink.has-children::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 16px;
	height: 2px;
	background: #fff;
	border-radius: 1px;
	transform: translateY(-50%) rotate(90deg);
	transition: opacity 0.3s, transform 0.3s;
	opacity: 1;
}

/* active時：縦線を横線に重ねて消す（90度回転しながら−に） */
#spMenu .spMenuLink.has-children.active::after {
	opacity: 0;
	transform: translateY(-50%) rotate(0deg);
}
