@charset "utf-8";
/* CSS Document */

/* ************************************************************************ 
 *	
 *	BASE CSS 20260220
 *	
 * ************************************************************************ */

/* ************************************************************************ 
 *	
 *	common
 *	
 * ************************************************************************ */
:root {
	--small_line_height: 1.4;
	--base_line_height: 1.6;
	--base_line_height2: 1.8;
	--pc_header_height: 90px;
	--sp_header_height: 70px;
	--layout_2_nav_height: 60px;
	--layout_2_nav_total_height: 150px;
	--shadow-sm: 0 2px 4px rgba(0,0,0,0.05);
	--shadow-md: 0 10px 25px rgba(0,0,0,0.1);
}

html{
	scroll-behavior: smooth;
}
@media print, screen and ( min-width : 1200px ) {
	html{
		scroll-padding-top: var(--pc_header_height);
	}
	html.layout_2{
		scroll-padding-top: var(--layout_2_nav_height);
	}

}
@media only screen and ( max-width : 1200px ) {
	html{
		scroll-padding-top: var(--sp_header_height);
	}
}
html,body {
	text-size-adjust: none;
}

*{
	position: relative;
}
*, *::before, *::after {
	box-sizing: border-box;
}
/* -------------------------body------------------------- */
body {
	margin: 0;
	padding: 0;
	font-size: 17px;
	width:100%;
	height:100%;
	word-wrap: break-word;
	overflow-x:hidden;
	letter-spacing:0.05em;
	line-height:var(--base_line_height);
	padding-top:var(--pc_header_height);
}
@media print, screen and ( min-width : 1200px ) {
	body.layout_2,
	body.layout_3.home{
		padding-top: 0;
	}
}
@media only screen and ( max-width : 1200px ) {
	body {
		font-size:16px;
		padding-top:var(--sp_header_height);
	}
	body.layout_3.home{
		padding-top: 0;
	}
}
/* 読み込み時のainmation */
body {
	/* 遷移時間を定義 */
	transition: opacity 2s ease-out; 
}

body.is-loading {
	/* 初期状態の透明を強制 */
	opacity: 0 !important; 
}
/* ------------------------cover------------------------- */

/* 黒 */
.cover_color_cover1 .cover{
	background-color: rgba(0,0,0,0.3);
	text-shadow: 2px 5px 5px rgba(0, 0, 0, 0.4);
	color:#fff;

}
.cover_color_cover1 .top_gallery .cover{
	background-color: rgba(0,0,0,0.2);
	color:#fff;
}
.cover_color_cover1 .page_title h1,
.cover_color_cover1 .page_title p{
	color:#fff;
}
/* 白 */
.cover_color_cover2 .cover{
	background-color: rgba(255,255,255,0.7);
	text-shadow: none;
}
.cover_color_cover2 .top_gallery .cover{
	background-color: rgba(255,255,255,0.7);
	color:currentColor;
}
.cover_color_cover2 .cover .eng,
.cover_color_cover2 .cover .big{
	color:var(--primary-color);
}
/* -------------------------img------------------------- */
img{
	vertical-align: bottom;
	max-width:100%;
	height:auto;
	backface-visibility: hidden;
	margin:0;
	line-height:0;
}

/* -------------------------link------------------------- */
a{
	text-decoration: none;
	color: var(--primary-color);
	font-weight:var(--font-semi-bold);
}
a:hover{
	text-decoration:underline;
	color: var(--primary-color);
}
.contents_css a{
	text-decoration:underline;
	color: var(--primary-color);
}
.contents_css a:hover{
	text-decoration: none;
	color:#444;
}
/* -------------------------font-size------------------------- */
h1,
h2,
h3,
h4,
h5,
h6{
	font-weight:var(--font-bold);
	line-height:var(--base_line_height);
}
h1,
h2{
	font-size:180%;
}
h1.entry_title{
	font-size:160%;
}
@media only screen and ( max-width : 896px ) {
	h1,
	h2{
		font-size:140%;
	}
}
.single_txt h2,
h3{
	font-size:130%;
}
@media only screen and ( max-width : 896px ) {
	.single_txt h2,
	h3{
		font-size:120%;
	}
}
h4,
h5{
	font-size:120%;
}
@media only screen and ( max-width : 896px ) {
	h4,
	h5{
		font-size:110%;
	}
}
h6,
h7{
	font-size:110%;

}
/* -------------------------form------------------------- */
#main input[type="email"],
#main input[type="tel"],
#main input[type="text"],
#main textarea,
#main select{
	margin:0;
	padding:0.6em;
	border:1px solid rgba(0, 0, 0, 0.3);
	box-sizing:border-box;
	font-size:100%;
	width:400px;
	box-shadow: inset 2px 2px 5px 0px rgba(115, 115, 115, 0.1);
	border-radius: var(--kadomaru);
}
@media only screen and ( max-width : 896px ) {
	#main input[type="email"],
	#main input[type="tel"],
	#main input[type="text"],
	#main textarea,
	#main select{
		width:100%;
	}
}
#main textarea{
	width:100%;
}
#main select{
	background:#fff;
	padding:0.5em;
	font-size:100%;
	color:#2c304e;
}
::placeholder {
	color: #CDCDCD;
	font-size:80%;
}
/* -------------submit------------- */
input[type="submit"],
input[type="button"]{
	background:var(--button-color);
	border:none;
	padding:1em 4em;
	color: #fff;
	font-size:100%;
	line-height:100%;
	cursor: pointer;
	margin:0.5em;
	border-radius: var(--kadomaru_button);
	font-weight:var(--font-bold);
}
input[type="button"].back_button{
	background:#555 !important;
}
input[type="submit"]:hover,
input[type="button"]:hover{
	opacity: 0.6;
}
#file-upload-area{
	border:1px dotted #ccc;
	padding:1em;
	background:#fff;
}


/* ラジオボタン、チェックボックス */
@media only screen and ( max-width : 896px ) {
	.wpcf7-form-control-wrap:has(.wpcf7-radio),
	.wpcf7-form-control-wrap:has(.wpcf7-checkbox) {
		border:1px dotted #ccc;
		display:block;
		padding:1em;
	}
	.wpcf7-list-item{
		display:block;
		width:100%;
		padding:0.3em 0;
	}
}

.wpcf7-list-item input[type="radio"],
.wpcf7-list-item input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.wpcf7-list-item-label {
	display: inline-block;
	position: relative;
	padding-left: 30px;
	cursor: pointer;
	font-weight:var(--font-semi-bold);
	font-size: 90%; 
}
/* ラジオボタン */
.wpcf7-radio .wpcf7-list-item-label::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	border: 2px solid #aaa;
	background:#fff;
	border-radius: 50%;
}
.wpcf7-list-item input[type="radio"]:checked + .wpcf7-list-item-label::before{
	border-color: var(--primary-color);
	background-color: var(--primary-color);

}
.wpcf7-list-item input[type="radio"]:checked + .wpcf7-list-item-label::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 50%;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	background-color: white;
	border-radius: 50%;
}

/* チェックボックス */
.wpcf7-checkbox .wpcf7-list-item-label::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	border: 2px solid #ccc;
	background:#fff;
	border-radius: 4px;
}
.wpcf7-list-item input[type="checkbox"]:checked + .wpcf7-list-item-label::before {
	border-color: var(--primary-color);
	background-color: var(--primary-color); /* 背景を塗る */
}
.wpcf7-list-item input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
	content: '';
	position: absolute;
	top: 45%; /* 垂直中央に配置 */
	
	height: 10px; /* 縦棒の長さ */
	width: 6px;  /* 横棒の長さ（細くする） */
	
	/* V字の線は、borderプロパティで作る */
	border: solid white; /* 線を白にする */
	border-width: 0 2px 2px 0; /* 上と左の枠線だけ消し、右と下の枠線でV字を作る */
	background: none; /* 背景は不要 */
}


/* -------------------------スマホ・PCでの表示切り替え------------------------- */
@media only screen and ( max-width : 1200px ) {
	.pc_only{
		display:none !important;
	}
}
@media print, screen and ( min-width : 1200px ) {
	.sp_only{
		display:none !important;
	}
}
/* -------------------------clearfix------------------------- */
.gallery:after,
.clearfix:after,
section:after {
	content: "";
	display: block;
	clear: both;
	height:0;
}
/* -------------------------animation:LINK------------------------- */
@media only screen and ( min-width : 896px ) {
	main a img,
	.fade,
	.link_block{
		transition: all 0.5s; 
		opacity: 1;
		z-index: 1;
	}
	main a img:hover,
	.fade:hover,
	.link_block:hover{
		opacity: 0.6;
	}
}
/* -------------------------animation:ふんわり表示------------------------- */
.fadein {
	transition: all 0.7s;
	opacity: 0;
	position: relative;
	top:2em;
}
.fadein_start{
	top:0em;
	opacity: 1 !important;
}

/* -------------------youtube-------------------- */
#youtube {
	width: 100%;
	padding-top: 56.25%;
}
#youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}
/* -------------------table scroll-------------------- */
.scroll{
	overflow: auto;　
	white-space: nowrap;
}
.scroll table th,
.scroll table td{
	white-space: nowrap;
}

.scroll::-webkit-scrollbar{
	 height: 5px;
}
.scroll::-webkit-scrollbar-track{
	 background: #F1F1F1;
}
.scroll::-webkit-scrollbar-thumb {
	 background: #BCBCBC;
}

/* ************************************************************************ 
 *	
 *	ボタン
 *	
 * ************************************************************************ */
.banner_button,
.page_top,
header a,
.link_block,
.button,
.mail_button,
.page_back_button,
ul.page_link li a{
	text-decoration: none !important;
	cursor: pointer;
	user-select: none;
	transition: .35s ease-in-out;
	display:block;
}
/* ------------------------------------------- */
/* = ボタンの通常デザイン
/* ------------------------------------------- */
.page_back_button,
.mail_button,
.button{
	display:inline-block;
	line-height:var(--base_line_height);
	z-index:0;
	color:#fff !important;
	text-align:center;
	overflow:hidden;
	font-weight:var(--font-semi-bold);
	box-shadow: var(--shadow-sm);
	border-radius: var(--kadomaru_button);
}
.page_back_button,
.button{
	font-size:95%;
	background:var(--button-color);
	z-index:1;
}
.button{
	padding:0.9em 5em 0.9em 4em;
}
.page_back_button{
	padding:0.9em 4em 0.9em 5em;
}
.page_back_button::before,
.button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:var(--button-hover-color);
	opacity: 0;
	transition: opacity 0.5s;
}
.page_back_button:hover::before,
.button:hover::before {
	opacity: 1;
}
.button::after{
	content: "";
	display:inline-block;
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f105';
	margin-top:-0.7em;
	position: absolute;
	top: 50%;
	right: 2em;
	transition: .35s ease-in-out;
}
.button:hover::after{
	position: absolute;
	right: 1em;
}
.page_back_button::after{
	content: "";
	display:inline-block;
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f104';
	margin-top:-0.7em;
	position: absolute;
	top: 50%;
	left: 2em;
	transition: .35s ease-in-out;
}
.back_button:hover::after{
	position: absolute;
	left: 1em;
}
/* ------------------------------------------- */
/* = メールボタン
/* ------------------------------------------- */
.mail_button{
	padding:0.9em 0em;
	background:var(--point-color);
	white-space: nowrap;
	font-weight:var(--font-semi-bold);
	margin:1em auto;
	font-size:110%;
	display:block;
	max-width:350px;
}
.mail_button:before{
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f0e0';
	font-size:130%;
	display:inline-block;
	position: relative;
	top:0.1em;
	margin-right:0.3em;
	vertical-align: baseline;
}
.mail_button:hover{
	background:var(--point-hover-color);
}
@media only screen and ( max-width : 450px ) {
	.mail_button{
		font-size:100%;
		display:block;
	}
}
/* ------------------------------------------- */
/* = headerメールボタン
/* ------------------------------------------- */
/* header */
.head_mail .mail_button{
	padding:0.8em 2.5em 0.8em 2.5em;
	white-space: nowrap;
	display:block;
	font-size:80%;
}
.head_mail .mail_button{
	background:var(--button-color);
}

@media print, screen and ( min-width : 1200px ) {
	.head_mail .mail_button::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: -1;
		background:var(--button-hover-color);
		opacity: 0;
		transition: opacity 0.5s;
	}
	.head_mail .mail_button:hover::after {
		opacity: 1;
	}
	#header.layout_2.nav_color .head_mail .mail_button{
		background:var(--point-color);
	}
	#header.layout_2.nav_color .head_mail .mail_button::after {
		background:var(--point-hover-color);
	}
}
@media only screen and ( max-width :1200px ) {
	.head_mail .mail_button{
		font-size:100%;
		padding:0.4em 0em;
	}
	.nav_color .head_mail .mail_button{
		background:#fff;
		color:var(--primary-color) !important;
	}
}
/* ------------------------------------------- */
/* = サムネイル付きボタン
/* ------------------------------------------- */
.banner_button{
	z-index:0;
	color:#fff !important;
	font-size:100%;
	line-height:var(--base_line_height);
	padding:1px;
	text-align:left;
	overflow:hidden;
	background:var(--button-color);
	overflow:hidden;
	margin:0.5%;
	display:inline-flex;
	justify-content: flex-end;
	align-items: center;
	max-width:47%;
}
.banner_button span{
	flex-grow:0;
	flex-basis:auto;
	flex-basis:calc(100% - 25%);
	padding-left:2em;
	padding-right:2.5em;
}
.banner_button img{
	width:25%;
	flex-basis:25%;
	flex-grow:1;
	flex-shrink: 0;
}
.banner_button:hover{
	background:var(--button-hover-color);
}
.banner_button:after{
	content: "";
	display:inline-block;
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f105';
	margin-top:-0.7em;
	position: absolute;
	top: 50%;
	right: 1.5em;
	transition: .35s ease-in-out;
}
.banner_button:hover:after{
	position: absolute;
	top: 50%;
	right: 0.5em;
}
@media only screen and ( max-width :750px ) {
	.banner_button{
		display:flex;
		max-width:100%;
		margin:0.5em 0;
	}
	.banner_button span{
		font-size:90%;
		padding-left:1em;
		padding-right:3.5em;
	}
}
/* ------------------------------------------- */
/* = tel
/* ------------------------------------------- */
@media print, screen and ( min-width : 1200px ) {
	.tel_number{
		pointer-events: none;
	}
}
@media (min-width: 897px) {
	a[href^="tel:"] {
		pointer-events: none;
		cursor: default;
	}
}
/* ------------------------------------------- */
.tel_sub,
.tel_number{
	text-align:center;
}
.sub_text{
	display:block;
	font-size:75%;
}
.page_tel_link .tel_sub{
	font-size:90%;
	line-height:var(--base_line_height);
}
/* ページでのサイズ */
.tel_number{
	font-size:320%;
	line-height:100%;
	white-space: nowrap;
	margin:0.25em;
}
/* Footerだけ特別 */
.page_contact .tel_number{
	font-size:240%;
	line-height:100%;
}
.tel_number:before{
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f095';
	font-size:70%;
	margin-right:0.1em;
	display:inline-block;
	position: relative;
	top:-0.1em;
	vertical-align: baseline;
}
@media only screen and ( max-width :1200px ) {
	.tel_number,
	.page_contact .tel_number{
		font-size:170%;
		line-height:100%;
		background:#fcfcfc;
		border-radius: var(--kadomaru);
		border:1px solid #ccc;
		padding:0.6em 0 0.5em 0;
		cursor: pointer;
		display:block;
		margin:0.5em auto;
		max-width:350px;
	}
}
/* headerだけ特別 */
.head_tel .tel_number{
	font-size:160%;
	text-align:center;
	margin-bottom:0em;
}
.head_tel .tel_sub{
	font-size:70%;
	margin-bottom:0.4em;
	letter-spacing:0.02em;
	opacity: 0.8;
	display:block;
}
@media only screen and ( max-width :1200px ) {
	.head_tel .tel_sub{
		font-size:80%;
	}
	#header.nav_color .head_tel .tel_sub{
		color:#fff;
	}
	#header.nav_color .head_tel .tel_number{
		border:1px solid  #fff;
		background:none;
		color:#fff;
	}
}
/* Footerだけ特別 */
@media print, screen and ( min-width : 1200px ) {
	.pagecontact_color_2 .tel_number,
	.pagecontact_color_3 .tel_number{
		color:#fff;
	}
}
.speechBubble {
	display: inline-block;
	text-align: center;
	color: var(--primary-color);
	border-radius: 2px;
	font-size:90%;
	font-weight:var(--font-semi-bold);
}
.page_tel_link .speechBubble {
	display: inline-block;
	margin-bottom: 1em;
	padding:0.5em 2em;
	border-bottom: 1px solid var(--primary-color);
	background-color: #ffffff;
	text-align: center;
	color: var(--primary-color);
	border-radius: 2px;
}
.page_tel_link .speechBubble::before {
	content: "";
	position: absolute;
	bottom: -6px;
	left: 50%;
	margin-left:-5px;
	width:10px;
	height:10px;
	border-left:1px solid var(--primary-color);
	border-bottom:1px solid var(--primary-color);
	transform:rotate(-45deg);
	z-index:2;
}
.page_tel_link .speechBubble::after {
	content: "";
	position: absolute;
	bottom: -5px;
	left: 50%;
	margin-left:-5px;
	width:10px;
	height:10px;
	transform:rotate(-45deg);
	background-color: #ffffff;
}


/* ************************************************ 
 *	
 *	layout
 *	
 * ************************************************ */
#wrap{
	margin-inline: auto; /* 横幅自由 */
	overflow:hidden;
}
/* --------------------inner_block-------------------- */
.inner_block{
	margin-inline: auto;
	width: min(90%, 1050px);
}
#header .inner_block{
	margin-inline: auto;
	width: min(100%, 1500px);
}
#footer .inner_block{
	margin-inline: auto;
	width: min(90%, 1300px);
}
/* 小さめ */
.small_width{
	width: min(90%, 950px);
	margin-inline: auto;
}
.inner_block .small_width{
	width: min(100%, 950px);
}

/* スペースの指定 */
section,
.contents_list_block,
.single_box,
#footer .inner_block{
	padding:5em 0;
}
@media only screen and ( max-width : 896px ) {
	body.home .contents_css section .flex_left_img,
	body.home .contents_css section .flex_right_img{
		margin-top:-5em;
	}
}

/* ************************************************************************ 
 *	
 *	HEADER
 *	
 * ************************************************************************ */
/* ------------------------------------------- */
/* = hunberger
/* ------------------------------------------- */
#nav-toggle {
	z-index:5;
	background:var(--button-color);
	cursor: pointer;
	cursor: hand;
	width: 60px;
	height: 60px;
	padding:10px 15px;
	overflow:hidden;
	border-radius: var(--nav_kadomaru);
}
#nav-toggle span {
	display: block;
	position: absolute;
	height: 2px;
	width: 30px;
	background: #fff;
	left: 15px;
	transition: .35s ease;
}
#nav-toggle:after {
	content: "MENU";
	position: absolute;
	bottom: 8px;
	left: 0;
	display: block;
	width:100%;
	font-size:60%;
	text-align:center;
	color:#fff;
}
.nav_open #nav-toggle:after {
	content: "CLOSE";
}
.nav_open #nav-toggle span {
	background: #fff;
}
.nav_open #nav-toggle:after{
	opacity: 1;
}
#nav-toggle span:nth-child(1) {
	top: 13px;
}
#nav-toggle span:nth-child(2) {
	top: 21px;
}
#nav-toggle span:nth-child(3) {
	top: 29px;
}
.nav_open #nav-toggle span:nth-child(1) {
	top: 20px;
	-webkit-transform: rotate(315deg);
	-moz-transform: rotate(315deg);
	transform: rotate(315deg);
}
.nav_open #nav-toggle span:nth-child(2) {
	width: 0;
	left: 50%;
}
.nav_open #nav-toggle span:nth-child(3) {
	top: 20px;
	-webkit-transform: rotate(-315deg);
	-moz-transform: rotate(-315deg);
	transform: rotate(-315deg);
}
#header.layout_3.nav_open.nav_color #nav-toggle{
	background:none;
	border:1px solid #fff;
}
/* ------------------------------------------- */
/* = SNSアイコン（Foote共通）
/* ------------------------------------------- */
.social-icons-wrapper{
	display:flex;
	justify-content: center;
	align-items: stretch;
	text-align:center;
}
.social-icons-wrapper a{
	color:#555;
	font-size:30px;
	padding-left:10px;
}
.social-icons-wrapper a:first-child{
	padding-left:0px;
}

@media only screen and ( max-width : 1200px ) {
	.social-icons-wrapper a{
		font-size:44px;
		padding: 0 13px;
	}
}
.head_sns .social-icons-wrapper{
	display: flex;
	justify-content: center; /* 左右中央揃え */
	align-items: center;		/* 天地中央揃え */
}
.fa-line{
	color:#00B900
}
@media only screen and ( max-width :1200px ) {
	#header.nav_color .social-icons-wrapper a{
		color:#fff;
	}
}
/* ------------------------------------------- */
/* = header
/* ------------------------------------------- */
#header{
	position: fixed;
	top: 0px;
	left:0%;
	width:100%;
	z-index:10;
	line-height:100%;
}
/* ---.layout_3ヘッダー透過---------------------------------------- */
#header:not(.layout_3.home #header) {
	background: #fff;
}
.home #header.layout_3{
	transition: 0.5s;
}
.cover_color_cover1.home #header.layout_3{
	background: linear-gradient(0deg,rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.67) 100%);
}
.scrollstart #header.layout_3,
.scrollstart.cover_color_cover1.home #header.layout_3{
	background:#fff;
}

/* ---#header .inner_block---------------------------------------- */
#header .header_inner{
	position: relative;
	display:flex;
	justify-content: space-between;
	align-items: center;
	gap:15px;
}
@media print, screen and ( min-width : 1200px ) {
	#header.layout_2 .header_inner,
	#header.layout_2 .global-nav_inner{
		width: min(90%, 1200px);
		margin-inline: auto;
	}
}
#header .logo{
	line-height:100%;
	font-size:100%;
	flex-shrink: 0;
	flex-grow: 0;
}
#header .logo img{
	width: 100%;
	height: 100%;
	object-fit: contain;
}
/* = #header.layout_3のロゴは切り替え-------------------------- */
.home #header.layout_3 .logo,
.home #header.layout_3 .logo a.fade {
	width: 100%;
	height: 100%;
	position: relative;
	display: block;
}
.home #header.layout_3 .logo .logo-white,
.home #header.layout_3 .logo .logo-black {
	position: absolute;
	top: 0%;
	left: 0; /* 左寄せ */
	object-fit: contain; 
}
.home #header.layout_3 .logo .logo-white,
.home #header.layout_3 .logo .logo-black {
	transition: opacity 0.3s ease-in-out, visibility 0.3s;
}
.home .logo-white {
	visibility: visible; opacity: 1;
}
.home .logo-black {
	visibility: hidden; opacity: 0;
}
body.scrollstart.home .logo-white {
	visibility: hidden; opacity: 0;
}
body.scrollstart.home .logo-black {
	visibility: visible; opacity: 1;
}
@media print, screen and ( min-width : 1200px ) {
	body.home #header.layout_3.nav-is-open-pc .logo-black{
		visibility: visible; opacity: 1;
	}
}

/* text_logo */
.text_logo{
	font-size:150%;
	color:#333;
}
@media print, screen and ( min-width : 1200px ) {
	#header {
		transition: box-shadow 0.5s ease-in-out;
	}
	.scrollstart #header{
		box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.1);
	}
	/* = レイアウト1のinner------------------ */
	#header.layout_1 .header_inner,
	#header.layout_3 .header_inner{
		height:var(--pc_header_height);
		padding:0 2.5%;
	}
	/* = レイアウト2のinner------------------ */
	#header.layout_2 {
		position: relative; 
	}
	#header.layout_2 #global-nav {
		position: relative;
		width: 100%;
		z-index: 9;
	}
	/* = layout_2 ナビ固定 */
	body.layout_2.sticky #header.layout_2 #global-nav {
		position: fixed !important;
		top: 0 ;
		left: 0;
		width: 100%;
		z-index: 10;
		box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.1);
	}
	/* スクロール時の余白を埋めるCSS */
	body.layout_2.sticky #header.layout_2 {
		padding-bottom: var(--layout_2_nav_height); 
	}
	body.home #header.layout_3.nav-is-open-pc {
		background:#fff;
	}

	/* = flex1--------------------------- */
	#header .logo {
		max-width: 250px;
	}
	#header .logo img {
		width: 100%;
		height: calc(var(--pc_header_height) - 40px); 
		object-fit: contain;
	}
	.home #header.layout_3 .logo,
	.home #header.layout_3 .logo a.fade {
		height: calc(var(--pc_header_height) - 40px); 
	}
	#global-nav{
		flex-grow:1;
		flex-basis:auto;
	}
	/* = flex2--------------------------- */
	.global-nav_inner{
		display:flex;
		align-items: center;
	}
	#nav_block{
		flex-grow:1;
		flex-basis:auto;
	}
	.head_tel{
		flex-basis:210px;
		flex-grow:0;
		white-space: nowrap;
	}
	.head_mail{
		flex-basis:180px;
		flex-grow:0;
	}
	#nav-toggle {
		display:none;
	}
}
@media only screen and ( max-width : 1200px ) {
	#header .header_inner{
		height:var(--sp_header_height);
		padding:5px;
	}
	#header .logo {
		flex-grow:1;
		flex-basis:auto;
		padding-left:2.5%;
		max-width: 170px;
	}
	#header .logo a{
		display:inline-block;
	}
	#header .logo img {
		width: 100%;
		height: calc(var(--sp_header_height) - 30px); 
		object-fit: contain;
	}
	.home #header.layout_3 .logo,
	.home #header.layout_3 .logo a.fade {
		height: calc(var(--sp_header_height) - 30px); 
	}
	.head_tel{
		margin-bottom:1em;
	}
	.head_sns{
		padding-top:3em;
	}
}

/* ------------------------------------------- */
/* = header navigation
/* ------------------------------------------- */
#nav_block{
	position: relative;
}
.menu a{
	display:block;
	line-height:var(--base_line_height);
	font-weight:var(--font-semi-bold);
	letter-spacing:0.05em;
}
.menu a br{
	display:none;
}
/* ========================================================= */
/* 共通スタイル (PC環境 1200px以上) */
/* ========================================================= */
@media print, screen and ( min-width : 1200px ) {
	#nav_block ul.menu{
		display:flex;
		align-items: stretch;
		height:100%;
	}
	#nav_block ul.menu > li{
		padding:0px;
		display:flex;
		justify-content: center;
		align-items: center;
		height:100%;
		min-width:5em;
		transition: all .5s;
	}
	#nav_block ul > li > a{
		text-align:center;
		color:currentColor;
		font-size:95%;
		line-height:150%;
		width:100%;
		transition: all .5s;
		display:block;
	}
	
	/* ========================================================= */
	/* LAYOUT 1 固有のスタイル (90px) */
	/* ========================================================= */
	#header.layout_1 .global-nav_inner,
	#header.layout_3 .global-nav_inner{
		justify-content: flex-end;
		gap:15px;
	}
	#header.layout_1 #global-nav ,
	#header.layout_1 #nav_block ul.menu > li,
	#header.layout_3 #global-nav ,
	#header.layout_3 #nav_block ul.menu > li{
		height: var(--pc_header_height);
	}
	#header.layout_1 #nav_block ul.menu,
	#header.layout_3 #nav_block ul.menu {
		justify-content: flex-end;
	}
	#header.layout_1 #nav_block ul.menu > li > a,
	#header.layout_3 #nav_block ul.menu > li > a {
		padding:15px 15px;
		color:currentColor;
	}
	/* Layout 1: ホバーアニメーション */
	#header.layout_1 #nav_block ul.menu > li:hover,
	#header.layout_3 #nav_block ul.menu > li:hover {
		background: rgba(0, 0, 0, 0.02);
	}
	#nav_block ul.menu > li:after {
		content: "";
		position: absolute;
		bottom: 0; /* 0% から 0 に */
		left: 50%; /* 0 から 50% に変更 */
		display: block;
		height: 3px;
		width: 0; /* 100% から 0 に変更 */
		transition: all .5s;
		background: var(--button-color);
		opacity: 0;
		transform: translateX(-50%); 
	}

	#nav_block ul.menu > li:hover:after {
		width: 100%; /* ホバーで幅を100%に戻す */
		opacity: 1;
	}
	/* Layout 1: 親アイコンの色 */
	#header.layout_1 #nav_block ul.menu > li.menu-item-has-children > a::after,
	#header.layout_3 #nav_block ul.menu > li.menu-item-has-children > a::after {
		color: var(--primary-color);
	}
	/* pearent---------- */
	#header.layout_1 #nav_block ul.menu > li.menu-item-has-children > a,
	#header.layout_3 #nav_block ul.menu > li.menu-item-has-children > a{
		padding-right:35px !important;
	}
	#nav_block ul.menu > li.menu-item-has-children > a::after{
		font-family: "Font Awesome 6 Free"; 
		font-weight: 900; 
		content: '\f107';
		position: absolute;
		top: 50%;
		right: 10px;
		display: inline-block;
		margin-top:-0.7em;
		color:var(--primary-color);
	}
	#header.layout_2.nav_color ul.menu > li.menu-item-has-children > a::after,
	.scrollstart #header.layout_2.nav_color ul.menu > li.menu-item-has-children > a::after {
		color:#fff !important;
	}
	/* ========================================================= */
	/* LAYOUT 2 固有のスタイル (60px) */
	/* ========================================================= */
	#header.layout_2 .header-util-wrap{
		display:flex;
		align-items: center;
		justify-content: flex-end;
		height:var(--pc_header_height);
		gap:15px;
	}
	#header.layout_2 #global-nav {
		background: rgba(255, 255, 255, 0.9);
	}
	/*  背景あり */
	#header.layout_2.nav_color #global-nav {
		background:var(--primary-color);
	}
	#header.layout_2 #global-nav:before {
		content: "";
		position: absolute;
		top:0em;
		left: 0;
		display: block;
		width: 100%;
		height:1px;
		background: rgba(0, 0, 0, 0.2);
		z-index:4;
	}
	#header.layout_2 #global-nav:after {
		content: "";
		position: absolute;
		bottom:0em;
		left: 0;
		display: block;
		width: 100%;
		height:1px;
		background: rgba(0, 0, 0, 0.2);
		z-index:4;
	}
	#header.layout_2.nav_color #global-nav:before,
	#header.layout_2.nav_color #global-nav:after{
		display:none;
	}
	#header.layout_2 #nav_block ul.menu {
		/*  メニュー数多いならcenterで */
		justify-content: space-between;
		/*  justify-content: center; */
		width: 100%;
	}
	#header.layout_2 #nav_block ul.menu > li {
		width: 100%;
		/*  centerしたらコメントアウト消す */
		/* width: auto */
		/* flex-grow: 0; */
	}
	#header.layout_2 #nav_block ul.menu > li:after {
		display:none;
	}
	/* Layout 2: メニューの線 */
	#header.layout_2 #nav_block ul.menu:before {
		content: "";
		position: absolute;
		top: 0.5em;
		bottom:0.5em;
		left: 0;
		display: block;
		width: 1px;
		background: rgba(0, 0, 0, 0.2);
		z-index:4;
	}
	#header.layout_2 #nav_block ul.menu > li:before {
		content: "";
		position: absolute;
		top: 0.5em;
		bottom:0.5em;
		right: 0;
		display: block;
		width: 1px;
		background: rgba(0, 0, 0, 0.2);
		z-index:4;
	}
	#header.layout_2.nav_color #nav_block ul.menu:before,
	#header.layout_2.nav_color #nav_block ul.menu > li:before {
		background: rgba(255, 255, 255, 0.8);
	}

	/* Layout 2: a タグのスタイル（色、線、中央揃え） */
	#header.layout_2 #nav_block ul.menu > li > a {
		white-space: nowrap;
		line-height:var(--layout_2_nav_height);
		z-index:3;
		/*  centerしたらpaddingも */
		padding:0;
	}
	#header.layout_2.nav_color #nav_block ul.menu > li > a {
		color:#fff;
	}
	/* Layout 2: ホバーアニメーション */
	#header.layout_2 #nav_block ul.menu > li a:before {
		content: "";
		position: absolute;
		bottom: 0%;
		left: 0;
		display: block;
		height: 100%; /* 100% の高さでホバーエフェクト */
		width: 100%;
		transition: all .5s;
		background:#f6f8f9;
		opacity: 0;
		z-index:-1;
	}
	#header.layout_2.nav_color #nav_block ul.menu > li a:before {
		background: rgba(0, 0, 0, 0.1);
	}

	#header.layout_2 #nav_block ul.menu > li a:hover:before ,
	#header.layout_2 #nav_block ul.menu > li.menu-item-has-children:hover a:before {
		opacity: 1;
	}

	/* Layout 2: 親アイコンのスタイル */
	#header.layout_2 #nav_block ul.menu > li.menu-item-has-children > a::after {
		line-height:var(--base_line_height);
		position: relative;
		right:-1em;
		transform: scale(0.7);
	}
	/* ========================================================= */
	/* LAYOUT 3 背景なし文字白 */
	/* ========================================================= */
	.cover_color_cover1.home #header.layout_3 #nav_block ul.menu > li > a,
	.cover_color_cover1.home  #header.layout_3 #nav_block ul.menu > li.menu-item-has-children > a::after,
	.cover_color_cover1.home  #header.layout_3 .head_sns a,
	.cover_color_cover1.home  #header.layout_3 .tel_sub,
	.cover_color_cover1.home  #header.layout_3 .tel_number{
		color:#fff;
	}
	body.home #header.layout_3.nav-is-open-pc #nav_block ul.menu > li > a,
	body.home #header.layout_3.nav-is-open-pc #nav_block ul.menu > li.menu-item-has-children > a::after,
	body.home #header.layout_3.nav-is-open-pc .head_sns a,
	body.home #header.layout_3.nav-is-open-pc .tel_sub{
		color:currentColor;
	}
	.cover_color_cover1.scrollstart #header.layout_3 #nav_block ul.menu > li > a {
		color:currentColor;
	}
	body.home #header.layout_3.nav-is-open-pc #nav_block ul.menu > li.menu-item-has-children > a::after,
	.cover_color_cover1.scrollstart #nav_block ul.menu > li.menu-item-has-children > a::after {
		color:var(--primary-color) !important;
	}
	body.home #header.layout_3.nav-is-open-pc .head_sns a,
	.cover_color_cover1.scrollstart #header.layout_3 .head_sns a {
		color:#555;
	}
	.cover_color_cover1.scrollstart #header.layout_3 .tel_sub {
		color:currentColor;
	}
	body.home #header.layout_3.nav-is-open-pc .tel_number,
	.cover_color_cover1.scrollstart #header.layout_3 .tel_number{
		color:var(--primary-color);
	}
	/* ========================================================= */
	/* サブメニューのスタイル（全レイアウト共通） */
	/* ========================================================= */
	#global-nav .header-nav-child:after{
		content: "";
		display: inline-block;
		position: absolute;
		top: 0em;
		bottom:0em;
		width: 100%;
		height: 100%;
		background-color:#f6f8f9;
		z-index:-1;
	}
	.header.nav_color #global-nav .header-nav-child:before{
		content: "";
		display: inline-block;
		position: absolute;
		top: 0em;
		bottom:0em;
		width: 100%;
		height: 100%;
		background:#000;
		opacity: 1;
		z-index:-2;
	}
	.header.nav_color #global-nav .header-nav-child:after{
		content: "";
		display: inline-block;
		position: absolute;
		top: 0em;
		bottom:0em;
		width: 100%;
		height: 100%;
		background:var(--primary-color);
		opacity: 0.9;
		z-index:-1;
	}
	#header.layout_1 #global-nav .header-nav-child,
	#header.layout_3 #global-nav .header-nav-child{
		position: fixed;
		top: var(--pc_header_height);
		left: 0vw;
	}
	#header.layout_2 #global-nav .header-nav-child{
		position: fixed;
		top: calc(var(--pc_header_height) + var(--layout_2_nav_height));
		left: 0vw;
	}
	body.layout_2.sticky #header.layout_2 #global-nav .header-nav-child{
		position: fixed;
		top: var(--layout_2_nav_height);
		left: 0vw;
	}
	#global-nav .header-nav-child{
		width: 100%;
		overflow:hidden;
	}
	#global-nav .header-nav-child .inner_block{
		padding:4em 5%;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	#global-nav .nav-parent-title{
		flex-grow:0;
		font-size:200%;
		text-align:center;
		min-width:300px;
		border-right:1px solid rgba(0,0,0,0.2);
		margin-right:50px;
		padding:1em 1em 1em 0;
	}
	#global-nav .nav-parent-title a{
		font-weight:var(--font-bold);
	}
	header.nav_color #global-nav .nav-parent-title{
		border-right:1px solid rgba(255,255,255,0.2);
		color:#fff;
	}
	#global-nav .nav-parent-title span.sub{
		display:block;
		font-size:50%;
		color:currentColor;
	}
	#global-nav .nav-parent-title span.eng {
		color:var(--primary-color);
	}
	#global-nav .nav-parent-title a{
		color:currentColor;
	}
	header.nav_color #global-nav .nav-parent-title span.eng,
	header.nav_color #global-nav .nav-parent-title a{
		color:#fff;
	}
	#nav_block .sub-menu{
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		grid-gap: 10px 20px;
		flex-grow:1;
		flex-basis:auto;
	}
	#nav_block .sub-menu > li {
		display:block;
		border-bottom:1px solid rgba(0,0,0,0.2);
		overflow:hidden;
	}
	.header.nav_color #nav_block .sub-menu > li {
		border-bottom:1px solid rgba(255,255,255,0.6);
	}
	.header.nav_color #nav_block .sub-menu:before
	.header.nav_color #nav_block .sub-menu > li:before {
		display:none;
	}
	#nav_block .sub-menu > li > a{
		padding:0.7em 2em 0.7em 0.7em;
		line-height:var(--base_line_height);
		text-align:left;
	}
	.header.nav_color #nav_block .sub-menu > li > a{
		color:#fff;
	}
	#nav_block .sub-menu > li > a:after{
		display:inline-block;
		font-family: "Font Awesome 6 Free"; 
		font-weight: 900; 
		content: '\f105';
		position: absolute;
		right:1em;
		transition: all .5s;
		color:var(--primary-color);
	}
	.header.nav_color #nav_block .sub-menu > li > a:after{
		color:#fff;
	}
	#nav_block .sub-menu > li > a:hover:after{
		position: absolute;
		right:0em;
	}
	#global-nav .header-nav-child {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease-out 0s;
	}
	#global-nav .menu-item-has-children:hover .header-nav-child {
		max-height: 500px;
		transition: max-height 0.5s ease-out 0.2s;
	}
}
@media only screen and ( max-width : 1200px ){
	#global-nav{
		background-color:#f6f8f9;
		transition: all .5s;
		position: fixed;
		top: var(--sp_header_height);
		right: -100%;
		width:100%;
		height:100svh;
		overflow:auto;
		z-index:4;
		box-sizing: border-box;
	}
	#header.nav_color #global-nav{
		background:var(--button-color);
	}
	.nav_open_side #global-nav{
		position: fixed;
		top: var(--sp_header_height);
		right: 0%;
	}
	#header.layout_3 #global-nav{
		position: fixed;
		top: 0;
	}
	.global-nav_inner{
		margin:0em auto;
		width: min(80%, 350px);
		max-width:350px;
		padding-top:5em;
		padding-bottom:5em;
	}
	#nav_block .menu{
		margin-bottom:2em;
	}
	#nav_block .menu li{
		border-bottom:1px solid var(--primary-color);
	}
	#nav_block .menu > li:first-child{
		border-top:1px solid var(--primary-color);
	}
	/* 背景あり---------- */
	#header.nav_color #nav_block .menu li{
		border-bottom:1px solid rgba(255,255,255,0.6);
	}
	#header.nav_color #nav_block .menu > li:first-child{
		border-top:1px solid rgba(255,255,255,0.6);
	}
	#nav_block .menu > li > a{
		padding:1.3em;
		text-align:center;
		font-size:100%;
	}
	#header.nav_color #nav_block .menu > li > a{
		color:#fff;
	}
	/* pearent---------- */
	#nav_block li.menu-item-has-children > a{
		text-align:center;
		pointer-events: none;
		cursor: pointer;
	}
	#nav_block li.menu-item-has-children > a:after{
		font-family: "Font Awesome 6 Free"; 
		font-weight: 900; 
		content: '\f078';
		display: inline-block;
		position: absolute;
		top: 1em;
		right: 0.5em;
		color:#fff;
		line-height:100%;
		padding:0.6em;
		background:var(--button-color);
		border-radius: var(--nav_kadomaru);
		cursor: pointer;
	}
	#nav_block li.sp-nav-button-open > a:after{
		content: "\f077";
	}
	#header.nav_color #nav_block li.menu-item-has-children > a:after{
		background:#fff;
		color:var(--primary-color);
	}
	/* sub-menu---------- */
	#global-nav .header-nav-child{
		position: relative !important; /* fixed/absoluteを上書き */
					top: auto !important;
					left: auto !important;
					margin: 0 !important;
					padding: 0 !important;
		display:none;
	}
	#global-nav .nav-parent-title{
		display:none;
	}
	#nav_block .sub-menu{
		margin-bottom:1em;
	}
	#nav_block .sub-menu li{
		border-bottom:none;
		margin-bottom:4px;
		background:rgba(255,255,255,1);
		border-radius: var(--nav_kadomaru);
	}
	#nav_block .sub-menu li a{
		padding:0.7em 2em 0.7em 1em;
		text-align:left;
	}
	#nav_block .sub-menu > li > a:before{
		font-family: "Font Awesome 6 Free"; 
		font-weight: 900; 
		content: '\f105';
		position: absolute;
		right:1em;
		color:var(--primary-color);
	}
	#nav_block .sub-menu li:last-child{
		border-bottom:none !important;
	}
}

/* ************************************************************************ 
 *	
 *	FOOTER
 *	
 * ************************************************************************ */
/* ------------------------------------------- */
/* = page top
/* ------------------------------------------- */
.page_top{
	display:block;
	background:var(--button-color);
	padding:10px;
	color:#fff;
	width:40px;
	height:40px;
	border:1px solid #fff;
	border-radius: var(--nav_kadomaru);
	z-index:3;
}
.page_top::before{
	position:absolute;
	content: "";
	width:15px;
	height:15px;
	border-right: 2px solid #FFF;
	border-top: 2px solid #FFF;
	top:0;
	bottom:0;
	left:0;
	right:0;
	margin:auto;
	transform:rotate(-45deg);
}
@media print, screen and ( min-width : 1200px ) {
	.page_top{
		position: fixed;
		bottom: -5px;
		right: 5px;
		transition: all .5s ease;
		opacity: 0;
		z-index:2;
	}
	/* スクロールで表示 */
	.scrollstart60 .page_top{
		position: fixed;
		bottom: 5px;
		right: 5px;
		opacity: 1;
	}
}
@media only screen and ( max-width : 1200px ) {
	.page_top{
		display:none;
	}
}
/* ------------------------------------------- */
/* = footer
/* ------------------------------------------- */
#footer{
	position: relative;
	background:var(--contents_list-color);
	overflow:hidden;
}
@media print, screen and ( min-width : 896px ) {
	#footer{
		font-size:90%;
		line-height:var(--base_line_height2);
	}
}
#footer a{
	color:currentColor;
}
#footer .social-icons-wrapper a,
#footer .social-icons-wrapper a:hover{
	color:#555;
}
#footer h3,
#footer a:hover{
	color: var(--primary-color);
}
/* footer_infomation------------------------ */
.footer_infomation address{
	font-style:normal;
	line-height:var(--base_line_height);
}
/* f_info ------------------------ */
.f_info{
	position: relative;
}
.f_info h2{
	font-size:160%;
	margin-bottom:1em;
}
/* f_map ---------------- */
.f_map{
	border-radius: var(--kadomaru);
}
.f_map iframe{
	width:100%;
	height:350px;
}
/* f_sitemap ---------------- */
.f_sitemap ul.menu span{
	display:block;
	padding-left:1.5em;
	position: relative;
}
.f_sitemap ul.menu span:before{
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f105';
	color: var(--primary-color);
	position: absolute;
	top: 0em;
	left: 0;
}
.f_sitemap ul.menu > li{
	padding-top:0.6em;
}
.f_sitemap ul.menu > li > span > a {
	font-weight:var(--font-bold);
}
.f_sitemap ul.menu > li > span{
	position: relative;
	padding-bottom:0.8em;
	margin-bottom:1em;
}
.f_sitemap ul.menu > li > span:after{
	content: "";
	display:block;
	background:rgba(0,0,0,0.2);
	width:100%;
	height:1px;
	position: absolute;
	bottom: 0;
	left: 0;
}
.f_sitemap .sub-menu{
	padding-left:1em;
}
.f_sitemap .sub-menu li{
	margin-bottom:0.8em;

}
.f_sitemap .sub-menu li:last-child{
	margin-bottom:0em;
}
.f_sitemap .sub-menu li a{
	font-size:95%;
	font-weight:var(--font-semi-bold) !important;
}

@media print, screen and ( min-width : 896px ) {
	#footer .inner_block{
		display:flex;
		gap:3%;
	}
	.f_info{
		flex-shrink: 0;
		width: 30%; /* f_infoの基準となる幅を設定 (例として300px) */
	}
	.f_sitemap{
		flex-grow: 1;
		flex-basis: 0; 
		min-width: 0;
	}
	.f_map:empty {
		display: none;
	}
	.f_map:not(:empty) {
		flex-shrink: 0;
		width: 40%;
	}
	.no-map .f_sitemap{
		flex-basis: 0;
		flex-grow: 1;
	}
	.no-map .f_sitemap .menu{
		display: flex;
		justify-content: flex-end;
		gap:5%;
	}
	.no-map .f_sitemap .menu > li{
		padding:0;
	}
	.foot_sns{
		justify-content: flex-start;
	}
}
@media only screen and ( max-width : 896px ) {
	#footer .inner_block{
		width: min(80%, 450px);
		display:block;
	}
	.f_info{
		text-align:center;
	}
	.f_info,
	.f_map{
		padding-bottom:2em;
	}
}
/* ------------------------------------------- */
/* = copyright
/* ------------------------------------------- */
.foot_copyright{
	padding:1.5em;
	text-align:center;
	width:100%;
	font-size:80%;
	background:#fff;
}

/* ------------------------------------------- */
/* = .flowting_menu
/* ------------------------------------------- */
@media print, screen and ( min-width : 1200px ) {
	.flowting_menu{
		display:none;
	}
}
@media only screen and ( max-width : 1200px ) {
	#footer.plan2{
		margin-bottom:4em;
	}
	.flowting_menu{
		position: fixed;
		bottom: -100%;
		left: 0px;
		width:100%;
		opacity: 0;
		transition: all .5s ease;
		z-index:5;
		display: flex;
	}
	.flowting_menu li {
		flex-grow: 1;
	}
	/* スクロールで表示 */
	.scrollstart .flowting_menu{
		position: fixed;
		bottom: 0px;
		left: 0px;
		opacity: 1;
	}
	.flowting_menu a{
		color:#fff;
		padding:20px 0em;
		font-size:80%;
		line-height:100%;
		display:block;
		text-align:center;
	}
	.ftm_tel:before,
	.ftm_mail:before{
		content: "";
		font-family: "Font Awesome 6 Free"; 
		font-weight: 900; 
		margin-right:0.5em;
		transform: translateY(1px);
		vertical-align: bottom;
		border-radius: 50%;
		background:rgba(255,255,255,0.2);
		padding:0.5em;
	}
	.ftm_tel{
		background:var(--button-color);
	}
	.ftm_tel:before{
		content: '\f095';
	}
	.ftm_mail{
		background:var(--point-color);
	}
	.ftm_mail:before{
		content: '\f0e0';
	}
}
/* ************************************************ 
 *	
 *	page_contact
 *	
 * ************************************************ */
.page_contact .inner_block{
	text-align:center;
	line-height:var(--base_line_height);
	overflow:hidden;
	z-index:2;
}
/* ------------------------------------------- */
/* = 背景
/* ------------------------------------------- */
/* 背景画像なし */
.page_contact_normal{
	background:var(--button-color);
}
/* 背景画像あり */
.page_contact:after{
	content: '';
	position: absolute;
	left: 0%;
	bottom: 0%;
	top: 0%;
	width: 100%;
	height: 100%;
	z-index:1;
}
body.cover_color_cover1 .page_contact_bg:after{
	background-color: rgba(0,0,0,0.4);
}
body.cover_color_cover2 .page_contact_bg:after{
	background-color: rgba(255,255,255,0.6);
}
/* ------------------------------------------- */
/* = テキスト
/* ------------------------------------------- */
/* 文字白くする場合 */
.page_contact_normal h2,
.page_contact_normal h2 span.eng,
body.cover_color_cover1 .page_contact_bg h2,
body.cover_color_cover1 .page_contact_bg h2 span.eng,
.pagecontact_color_2 .contact_colum,
.pagecontact_color_2 .contact_colum .speechBubble,
.pagecontact_color_3 .contact_colum,
.pagecontact_color_3 .contact_colum .speechBubble{
	color:#fff;
}
.page_contact h2{
	margin-bottom:1.5em;
}
.page_contact h3{
	margin-bottom:1em;
	padding-bottom:1em;
}
.page_contact h3:after{
	content: '';
	position: absolute;
	left: 40%;
	top: 100%;
	width: 20%;
	height: 1px;
	background-color: var(--primary-color);
}
.pagecontact_color_2 h3:after,
.pagecontact_color_3 h3:after{
	background-color:rgba(255,255,255,0.5);
}
/* ------------------------------------------- */
/* = お問い合わせカラム
/* ------------------------------------------- */
.contact_colum{
	border-radius: var(--kadomaru);
	overflow:hidden;
}
.pagecontact_color_3 .contact_colum:after{
	content: '';
	position: absolute;
	left: 0%;
	bottom: 0%;
	top: 0%;
	width: 100%;
	height: 100%;
	opacity: 0.95;
	z-index:-1;
	background-color: var(--primary-color);
}
.pagecontact_color_1 .contact_colum{
	background-color: #fff;
}
.pagecontact_color_2 .contact_colum{
	background-color: rgba(0,0,0,0.2);
}
body.cover_color_cover2 .pagecontact_color_2 .contact_colum{
	background-color: rgba(0,0,0,0.7);
}
@media print, screen and ( min-width : 896px ) {
	/* 共通 */
	.contact_colum{
		display:flex;
	}
	.single_contact_column{
		max-width:550px;
		margin-inline: auto;
	}
	/* 背景あり */
	.page_contact .h2{
	}
	.page_contact .foot_tel,
	.page_contact .foot_mail{
		flex-grow:1;
		flex-basis:50%;
		padding:4em 5%;
	}
	.page_contact .foot_mail{
		border-left:1px solid rgba(255,255,255,0.5);
	}
	.pagecontact_color_1 .foot_mail{
		border-left:1px solid rgba(0,0,0,0.2);
	}
}

@media only screen and ( max-width : 896px ) {
	.contact_colum{
		margin-inline: auto;
		width: min(100%, 600px);
	}
	.page_contact .foot_tel,
	.page_contact .foot_mail{
		padding:3em 2em;
	}
	.page_contact .foot_mail{
		border-top:1px solid rgba(255,255,255,0.5);
	}
	.pagecontact_color_1 .foot_mail{
		border-top:1px solid rgba(0,0,0,0.2);
	}
}
/* ------------------------------------------- */
/* = お問い合わせボタン
/* ------------------------------------------- */
.pagecontact_color_2 .mail_button,
.pagecontact_color_2 .mail_button:hover,
.pagecontact_color_3 .mail_button,
.pagecontact_color_3 .mail_button:hover{
	background:#fff;
	color:var(--point-color) !important;
}
.pagecontact_color_2 .mail_button:hover,
.pagecontact_color_3 .mail_button:hover{
	opacity: 0.5;
}

/* ************************************************ 
 *	
 *	contents_css（投稿single、固定ページ共通）
 *	
 * ************************************************ */
.contents_css p{
	margin-bottom:3em;
	line-height:220%;
}
.single_txt p{
	margin-bottom:1.5em;
}
.contents_css p,
.contents_css h3,
.contents_css h4,
.contents_css h5,
.contents_css h6{
	text-align: justify;
}
/* ------------------------------------------- */
/* = 固定ページのタイトル（page_css）
/* ------------------------------------------- */
.contents_css h2{
	text-align:center;
	color:currentColor;
	margin-top:0;
	padding-bottom:0.8em;
	margin-bottom:2em;
	letter-spacing:0.1em;
}
.contents_css h2:before{
	content: "";
	display:inline-block;
	background-color: var(--primary-color);
	width:10%;
	height:2px;
	position: absolute;
	top: 100%;
	left: 45%;
}
.single_txt h2:before{
	display:none;
}
.contents_css .flex_right_img h2,
.contents_css .flex_left_img h2{
	margin-bottom:1em;
}
.page_contact h2 .eng,
.contents_css h2 .eng{
	font-size:50%;
	line-height:100%;
	padding-top:0.5em;
	display:block;
	color:var(--primary-color);
}
.contents_css h2 .sub{
	display:block;
	font-size:50%;
	padding-top:0.5em;
	color:var(--primary-color);
}
.single_txt h2,
.contents_css h3{
	padding-bottom:0.6em;
	color:var(--primary-color);
	margin-bottom:1em;
	text-align:left;
	letter-spacing:0.1em;
}
.single_txt h2:before,
.contents_css h3:before{
	content: "";
	display:inline-block;
	background:#ccc;
	width:100%;
	height:2px;
	position: absolute;
	top: 100%;
	left: 0%;
}
.single_txt h2:after,
.contents_css h3:after{
	content: "";
	display:inline-block;
	background:var(--primary-color);
	width:30%;
	height:2px;
	position: absolute;
	top: 100%;
	left: 0%;
}
.contents_css h4{
	padding-bottom:0.6em;
	color:var(--primary-color);
	border-bottom:1px solid var(--primary-color);
	margin-bottom:1em;
}
.contents_css h5,
.contents_css h6{
	padding-bottom:0.6em;
	color:var(--primary-color);
	border-bottom:1px solid #ccc;
	letter-spacing:0.02em;
	margin-bottom:1em;
}
/* ------------------------------------------- */
/* = テキスト装飾
/* ------------------------------------------- */
hr{
	height:0px;
	margin:2em 0em 2em 0em;
	border:0;
	border-bottom:1px solid #ccc;
}
.font90{
	font-size:90%;
	line-height:var(--base_line_height);

}
.font80{
	font-size:80%;
	line-height:var(--base_line_height);
}
.waku_block{
	padding:2em;
	background:#f6f8f9;
	border:1px solid #ccc;
}
/* -------------------------list------------------------- */
.single_txt ul:not(.thumbnail):not(.thumbnail):not(.slider),
.single_txt ol{
	margin-left:2em;
	margin-bottom:3em;
}
.single_txt ul:last-of-type.
.single_txt ol:last-of-type{
	margin-bottom:0em;
}
.icon_list li,
.single_txt ul:not(.thumbnail):not(.slider) li{
	padding-left:1.5em;
	padding-bottom:0.2em;
	line-height:var(--base_line_height2);
}
.contents_css ol{
	margin-left:2em;
}
.contents_css ol li{
	padding-bottom:0.2em;
	line-height:180%;
}
.single_txt ol{
	margin-left:4em;
}
.icon_list li:before,
.single_txt ul:not(.thumbnail):not(.slider) li:before{
	content: "▼";
	display: inline-block;
	position: absolute;
	top: 0em;
	left: 0%;
	color:var(--primary-color);
	transform: scale(0.6) rotate(-90deg);
}
.check_list li{
	padding-left:1.5em;
	padding-bottom:0.5em;
	line-height:140%;
}
.check_list li::before {
	display: inline-block;
	width: 1em;
	height: 1em;
	position: absolute;
	top: 0.3em;
	left: 0em;
	border: 0.1em solid #dcdcdc;
	background:#fff;
	content: '';
}
.check_list li::after {
	display: inline-block;
	width: 1em;
	height: 0.6em;
	position: absolute;
	top: 0.4em;
	left: 0.2em;
	border-bottom: 0.25em solid var(--point-color);
	border-left: 0.25em solid var(--point-color);
	transform: rotate(-45deg) translateY(-1.5px);
	content: '';
}
span.check{
	display: inline-block;
	width:1em;
	height:1em;
	margin-right:0.3em;
}
span.check::before {
	display: inline-block;
	width: 1em;
	height: 1em;
	position: absolute;
	top: 0.2em;
	left: 0em;
	border: 0.1em solid #dcdcdc;
	content: '';
	background:#fff;
}
span.check::after {
	display: inline-block;
	width: 1em;
	height: 0.6em;
	position: absolute;
	top: 0.3em;
	left: 0.2em;
	border-bottom: 0.22em solid var(--point-color);
	border-left: 0.22em solid var(--point-color);
	transform: rotate(-45deg) translateY(-1.5px);
	content: '';
}
/* -------------------------table------------------------- */
.contents_css table{
	border-collapse: collapse;
	border-spacing: 0;
	width:100%;
	border:1px solid #ccc;
	background:#fff;
}
.contents_css table th,
.contents_css table td{
	border:1px solid #ccc;
	padding:1em;
	font-size:95%;
	line-height:180%;
	vertical-align:middle;
	font-weight:normal;
	text-align:left;
}
.contents_css table th{
	background:#eee;
	font-weight:600;
}

@media only screen and ( max-width : 896px ) {
	.contents_css table{
		font-size:90%;
	}
}
/* -------------------------text------------------------- */
.bold{
	font-weight:var(--font-bold);
}
small, .small{
	font-size:80%;
	line-height:var(--base_line_height);
}
.big{
	font-size:150%;
	line-height:var(--base_line_height2);
	font-weight:var(--font-bold);
}
@media only screen and ( max-width : 896px ) {
	.big{
		font-size:120%;
		line-height:var(--base_line_height2);
	}
}
sup{
	font-size:50%;
}
.red{
	color: var(--point-color);
}
.text_center{
	text-align:center !important;
}
@media print, screen and ( min-width : 896px ) {
	.text_center_pc{
		text-align:center !important;
	}
}
.text_right{
	text-align:right !important;
}
.mb0{
	margin-bottom:0em !important;
}
.mb05{
	margin-bottom:0.5em !important;
}
.pd0{
	padding:0em !important;
}
.pdt0{
	padding-top:0em !important;
}
.pdb0{
	padding-bottom:0em !important;
}
.pd1{
	padding:1em;
}
.mb1{
	margin-bottom:1em !important;
}
.mb2{
	margin-bottom:2em !important;
}
.mb3{
	margin-bottom:3em !important;
}
.mb4{
	margin-bottom:4em !important;
}
.mb5{
	margin-bottom:5em !important;
}
.pl1{
	padding-left:1em;
}
.indent1em{
	padding-left:1em;
	text-indent:-1em;
}
.indent1em_list li{
	padding-left:3em;
}
/* ------------------------------------------- */
/* = メールスパム対策
/* ------------------------------------------- */
.atto:after{
	content: "@";
	display: inline-block;
	font-style:normal;
}


/* ************************************************ 
 *	
 *	BLOG
 *	
 * ************************************************ */
.single_box{
	width: min(90%, 950px);
	margin-inline: auto;
}
.single_box .entry_title{
	margin-bottom:1em;
}

.entry_info{
	color:var(--primary-color);
	font-size:90%;
	line-height:var(--base_line_height);
	font-weight:600;
}
.entry_days{
	color:var(--primary-color);
	margin-right:0.5em;
	display:inline-block;
}
header .entry_info{
	padding:0.6em 1em;
	background:#f6f8f9;
	margin-bottom:2em;
	vertical-align: middle;
}
.author{
	font-size:90%;
	line-height:var(--base_line_height);
	display:inline-block;
}
.entry_cat{
	font-size:75%;
	line-height:var(--base_line_height);
	color:var(--primary-color);
	border:1px solid var(--primary-color);
	line-height:160%;
	padding:0 1em;
	margin-right:0.5em;
	display:inline-block;
	top:-0.2em;
	vertical-align: middle;
	border-radius: 2em;
}
.single_mainimg{
	border-radius: var(--kadomaru);
}
.single_txt{
	padding:0em 0em 2em 0em;
}
.single_box .entry-tax{
	border-top:1px solid #ccc;
	text-align:right;
	padding:1em 0em;
	font-size:90%;
	line-height:var(--base_line_height);
}
.single_mainimg img{
	max-width:100%;
}
section.related_box{
	padding:3em 0;
	margin:3em 0;
	font-size:95%;
}

/* = ブログ基本___________________ */
blockquote{
	background:#f2f2f3;
	border:1px solid #fff;
	padding:2em;
	color:#555;
	margin-bottom:1em;
	font-size:90%;
}
blockquote p{
	line-height:160%;
}
.wp-caption{
	max-width:100%;
	background:#f2f2f3;
}
.wp-caption img{
	width:100%;
}
p.wp-caption-text{
	font-size:80%;
	padding:1em;
	color:#666;
	margin:0 !important;
}
.alignleft,
img.alignleft {
	display: inline;
	float: left;
	margin-right: 5%;
	max-width:40%;
}
.alignright,
img.alignright {
	display: inline;
	float: right;
	margin-left: 5%;
	max-width:40%;
}
.aligncenter,
img.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
}
.alignleft,
.alignright,
.aligncenter {
	margin-top:0.5em;
	margin-bottom: 1em;
}
.alignnone{
	float:none;
}

/* 記事がないとき */
.no_post{
	text-align:center;
	padding:4em 0em;
	color:#aaa;
	margin-bottom:2em;
	background:#f2f2f3;
	width:100%;
}
.no_post .button{
	font-size:90%;
}
/* ------------------------------------------- */
/* = カテゴリータイトル
/* ------------------------------------------- */
.contents_css h2.category_title{
	background:rgba(0,0,0,0.3);
	border-radius: var(--kadomaru);
	padding:0.6em 0;
	color:#fff;
	margin-bottom:2em;
	text-align:center;
	z-index:1;
	font-size:100%;
	line-height:var(--base_line_height);
}
.contents_css h2.category_title:before{
	display:none;
}
@media only screen and ( max-width : 896px ) {
	.category_title{
		font-size:100%;
		line-height:var(--base_line_height);
	}
}
/* ------------------------------------------- */
/* = カテゴリーリスト
/* ------------------------------------------- */
.cat_list{
	margin-bottom:2em;
}
.cat_list li{
	padding:0.4em;
	display:inline-block;
}
.entry-tax a,
.cat_list a{
	padding:0em 1.5em;
	margin:0.1em;
	text-align:center;
	color:var(--primary-color);
	font-size:90%;
	line-height:300%;
	padding-bottom:0.1em;
	background:#f6f8f9;
	display:inline-block;
	border-radius: var(--kadomaru);
}
.entry-tax a:before,
.cat_list a:before{
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f02b';
	margin-right:0.3em;
	display:inline-block;
}
.cat_list a:hover,
.entry-tax a:hover{
	background:var(--primary-color);
	color:#fff;
	opacity: 1;
	text-decoration:none;
}
@media only screen and ( max-width :750px ) {
	.entry-tax a,
	.cat_list a{
		font-size:80%;
	}
}
/* ------------------------------------------- */
/* = 一般的な投稿のリスト
/* ------------------------------------------- */
.loop_post li{
	border-bottom:1px solid #dcdcdc;
}
.loop_post li:first-child{
	border-top:1px solid #dcdcdc;
}
.loop_post .link_block{
	padding:1em 0em;
	font-weight:normal;
}
.loop_post a{
	color:currentColor;
}
.loop_post .entry_info{
	margin-bottom:0.5em;
	vertical-align: middle;
}
.loop_post h2.entry_title{
	margin-bottom:0.6em;
}
.loop_post .bassui{
	font-size:80%;
	line-height:var(--base_line_height);
	color:#555;
	letter-spacing:0.01em;
	margin-bottom:1em;
}
.loop_post a{
 	display:flex;
	justify-content: flex-end;
	align-items: center;
	width:100%;
}
.loop_post .loop_thmb{
	flex-basis:200px;
	margin:0;
	border-radius: var(--kadomaru);
	overflow:hidden;
}
.loop_post .loop_info{
	flex-grow:1;
	flex-basis:calc(100% - 200px);
	padding-left:4%;
}

@media only screen and ( max-width :750px ) {
	.loop_post a{
		align-items: flex-start;
	}
	.loop_post .loop_thmb{
		flex-basis:140px;
	}
	.loop_post .loop_info{
		flex-grow:1;
		flex-basis:calc(100% - 150px);
		padding-left:4%;
		font-size:90%;
	}
	.loop_post .entry_cat{
		max-width:14em;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}
/* ------------------------------------------- */
/* = トップページお知らせ
/* ------------------------------------------- */
.list_news{
	border-top:1px solid rgba(0,0,0,0.3);
}
.list_news a{
	padding:1em;
	color:currentColor;
	border-bottom:1px solid rgba(0,0,0,0.3);
}
.list_news a:hover{
	background:#dcdcdc;
	background-color: rgba(0,0,0,0.05);
	padding-left:2em;
}
.list_news .link_block:hover{
	opacity: 1;
}
.list_news dt{
	white-space: nowrap;
}
.list_news .entry_days{
	font-size:90%;
}
.list_news dt .entry_cat{
	background:none;
}
.list_news dt,
.list_news dd{
	line-height:var(--base_line_height);
}
.list_news dt .entry_cat{
	max-width:14em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
@media print, screen and ( min-width : 896px ) {
	.list_news a{
		display:flex;
	}
	.list_news dt{
		flex-basis: 13em;
		padding-top:0em;
		padding-right:1em;
	}
	.list_news dt .entry_cat{
		width:110px;
		text-align:center;
		padding:0 0.5em;
	}
	.list_news dd{
		flex-grow:0;
	}
}
@media only screen and ( max-width : 896px ) {
	.list_news dt,
	.list_news dd{
		margin-bottom:0.3em;
	}
	.list_news a{
		padding:1em;
	}
}



/* ************************************************ 
 *	
 *	pager
 *	
 * ************************************************ */
.pager{
	text-align:center;
}
.page-numbers{
	display:flex;
	justify-content: center;
	align-items: center;
	gap:15px;
	margin-bottom:10px;
}
.page-numbers a,
.page-numbers span.current{
	display:block;
	text-decoration: none;
	background:#fff;
	line-height:50px;
	width:50px;
	padding:0;
	border:1px solid var(--primary-color);
	text-align:center;
	border-radius: 50%;
	color:var(--primary-color);
	transition: all 0.5s; 
}
@media ( max-width : 896px ) {
	.pager{
		font-size:90%;
	}
	.page-numbers{
		gap:8px;
	}
	.page-numbers a,
	.page-numbers span.current{
		line-height:40px;
		width:40px;
	}
}
.page-numbers.next,
.page-numbers.prev{
	width:5em;
	border-radius: 3px;
	border:none;
	font-size:100%;
}
.pager a:hover,
.pager span.current{
	background:var(--primary-color);
	color:#fff;
}
/* ------------------------------------------- */
/* = 前後のリンク
/* ------------------------------------------- */
ul.single_navigation {
	display: flex;
	justify-content: space-between;
	align-items: stretch;
}
ul.single_navigation li {
	flex: 1;
	max-width: 45%;
}
.previous_post_link {
	text-align: left;
	margin-right: auto;
}
.next_post_link {
	text-align: right;
	margin-left: auto;
}
@media screen and (max-width: 767px) {
	ul.single_navigation {
		flex-direction: column; /* 縦並びにする */
		gap: 15px;
	}
	ul.single_navigation li {
		max-width: 100%; /* スマホでは横幅いっぱい */
		width: 100%;
	}
}
/* --- li a の基本設定を変更 --- */
ul.single_navigation li a {
	display: flex;
	align-items: center;
	height: 100%;
	border-radius: 5px;
	color: currentColor;
	text-decoration: none;
	transition: background 0.5s , border 0.5s;
	background: #fff;
	font-size: 90%;
	padding: 15px 20px;
	position: relative;
	border:1px solid #dcdcdc;
}

ul.single_navigation li a:hover {
	background:#f6f8f9;
	border:1px solid #ccc;
}
/* --- 前の記事（左寄せ・アイコンが左） --- */
.previous_post_link a {
	justify-content: flex-start; /* 左寄せ */
	text-align: left;
}
.previous_post_link a::before {
	content: '\f104';
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	margin-right: 15px;
	color: #333;
}

/* --- 次の記事（右寄せ・アイコンが右） --- */
.next_post_link a {
	justify-content: flex-end; /* 右寄せ（これが text-align:right の代わり！） */
	text-align: right;
}
.next_post_link a::after {
	content: '\f105';
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	margin-left: 15px;
	color: #333;
}
/* ************************************************ 
 *	
 *	page_title
 *	
 * ************************************************ */
/* ------------------------------------------- */
/* = サイトの背景共通
/* ------------------------------------------- */
.site_bgimage{
	background-position: 50% 50%;
	background-repeat: no-repeat;
	-moz-background-size: cover;
	background-size: cover;
}
/* ------------------------------------------- */
/* = サブテキスト（コンテンツリストと共通）
/* ------------------------------------------- */
.jp_sub,
.eng_sub{
	display:block;
	margin-top:0.3em;
	letter-spacing:0.1em;
	line-height:var(--base_line_height);
	font-size:60%;
}
/* ------------------------------------------- */
/* = ページタイトル
/* ------------------------------------------- */
section.page_title{
	padding:0;
}
.page_title:not(.custom_title) h1,
.page_title:not(.custom_title) p{
	text-align:center;
	display:block;
	letter-spacing:0.1em;
	font-size:280%;
	line-height:var(--base_line_height);
	font-weight:var(--font-bold);
	z-index:1;
}
/* 英語をちょっと大きく */
.page_title:not(.custom_title) .eng_title .eng{
	font-size:150%;
	line-height:100%;
}

.page_title.site_bgimage h1,
.page_title.site_bgimage p{
	padding:3em 0.5em;
}
.page_title.normal_page_title h1,
.page_title.normal_page_title p{
	padding:2.5em 0.5em;
}

@media only screen and ( max-width : 700px ) {
	.page_title:not(.custom_title) h1,
	.page_title:not(.custom_title) p{
		font-size:160%;
	}
	.page_title.site_bgimage h1,
	.page_title.site_bgimage p{
		padding:5em 0.5em;
	}
	.page_title.normal_page_title h1,
	.page_title.normal_page_title p{
		padding:3em 0.5em;
	}
}
.normal_page_title{
	background:var(--button-color);
	color:#fff;
}
body.layout_2 .normal_page_title:after{
	content: "";
	display: inline-block;
	position: absolute;
	top: 0em;
	bottom:0em;
	width: 100%;
	height: 100%;
	background:var(--primary-color);
	opacity: 0.2;
	mix-blend-mode: multiply;
}
.page_title_404{
	padding:1.6em 0.5em;
	font-size:80%;
}

/* ************************************************ 
 *	
 *	パンくず
 *	
 * ************************************************ */
#breadcrumb{
	font-size:80%;
	position: relative;
	padding:1.5em 0;
	background:#fcfcfc;
	color:#333;
	font-weight:400;
}
#breadcrumb .inner_block{
	overflow:hidden;
}
#breadcrumb br{
	display:none;
}
#breadcrumb a{
	color:#555;
	font-weight:400;
}
#breadcrumb a:hover{
	color: var(--primary-color);
}

/* ************************************************ 
 *	
 *	カラム（ブログ）
 *	
 * ************************************************ */
ul.colum_2,
ul.colum_3,
ul.colum_4{
	display: grid;
}

@media print, screen and ( min-width : 896px ) {
	ul.colum_2 {
		grid-template-columns: repeat(2, 1fr);
		gap: 50px;
	}
	ul.colum_3 {
		grid-template-columns: repeat(3, 1fr);
		gap: 40px;
	}
	ul.colum_4{
		grid-template-columns: repeat(4, 1fr);
		gap: 25px;
	}
}
@media only screen and ( max-width : 896px ) and ( min-width : 600px ) {
	ul.colum_2{
		grid-template-columns: 1fr;
		gap: 50px;
	}
	ul.colum_3,
	ul.colum_4{
		grid-template-columns: repeat(2, 1fr);
		gap: 25px;
	}
}
@media only screen and ( max-width : 600px ) {
	ul.colum_2,
	ul.colum_3{
		width: 100%;
		grid-template-columns: 1fr;
		gap: 30px;
	}
	ul.colum_2 li,
	ul.colum_3 li{
		width: 100%; /* 念のため */
	}
	ul.colum_4 {
		grid-template-columns: repeat(2, 1fr);
		gap: 15px;
	}
}
.contents_css ul.colum_2 h3:before,
.contents_css ul.colum_3 h3:before,
.contents_css ul.colum_4 h3:before,
.contents_css ul.colum_2 h3:after,
.contents_css ul.colum_3 h3:after,
.contents_css ul.colum_4 h3:after{
	display:none;
}

/* --------------------------------------------- */
.img_caption{
	display:block;
	text-align:center;
	color:#777;
	padding-top:0.2em;
	font-size:80%;
}
/* ------------------------------------------- */
/* = リスト内容のテキスト部
/* ------------------------------------------- */
.site_list a{
	color:currentColor;
}
.contents_css .site_list h2,
.contents_css .site_list h3{
	font-size:120%;
	line-height:var(--base_line_height);
	padding:0;
	margin:0 0 0.6em 0!important;
	color:currentColor;
	text-align:left;
	border:none;
	font-weight:var(--font-bold);
	color:currentColor;
	letter-spacing:0.03em;
}
.site_list h2:before,
.site_list h3:before,
.site_list h3:after{
	display:none;
}

.site_list h2 i.fa-solid,
.site_list h3 i.fa-solid,
.top_news dd i.fa-solid{
	display:inline-block;
	color:#aaa;
	margin-left:0.3em;
	font-size:80%;
}

/* ------------------------------------------- */
/* = 横並びブログリスト
/* ------------------------------------------- */
.contents_css .colum_3.site_list h2,
.contents_css .colum_3.site_list h3{
	font-size:110%;
}
.contents_css .colum_4.site_list h2,
.contents_css .colum_4.site_list h3{
	font-size:95%;
}
@media print, screen and ( min-width : 600px ) {
	.colum_3.list_blog h2,
	.colum_3.list_blog h3,
	.colum_4.list_blog h2,
	.colum_4.list_blog h3{
		min-height:3em;
	}
}
@media only screen and ( max-width : 896px ) {
	.colum_4.list_blog h2,
	.colum_4.list_blog h3{
		min-height:3em;
	}
}
/* カテゴリー表示 */
.blog_list_cat{
	position: absolute;
	top: 0%;
	right: 0%;
	color:#fff;
	background:var(--button-color);
	z-index:3;
	font-size:70%;
	line-height:var(--base_line_height);
	padding:0.3em 0.8em 0.5em 0.8em;
	border-radius: var(--kadomaru);
	border-top-left-radius: 0px;
	border-bottom-right-radius: 0px;
}
.blog_list_cat span:nth-child(n+2):before{
	content: "/";
	margin:0 0.5em;
}
.list_blog .entry_days{
	font-size:80%;
	line-height:100%;
	margin:0;
}
.list_blog .list_img{
	margin-bottom:0.5em;
	border-radius: var(--kadomaru);
	overflow:hidden;
}
/* ************************************************ 
 *	
 *	contents_list
 *	
 * ************************************************ */
/* 共通の背景 */
.contents_list_block{
	overflow:hidden;
}
.contents_list_block:before{
	content: "";
	display: inline-block;
	position: absolute;
	top: 14em;
	bottom:0em;
	margin-left: calc(-50vw + 50%);
	width: 100vw;
	height:100%;
	background:var(--contents_list-color);
	z-index:-1;
}
.contents_list01 li,
.contents_list02 li{
	border-radius: var(--kadomaru);
	overflow:hidden;
}
.contents_list01 .list_text h2 span,
.contents_list02 .list_text h2 span{
	display:block;
}
/* --- スマホ（デフォルト：1列） --- */
.contents_list01,
.contents_list02{
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	padding: 0;
}
.contents_list01 li,
.contents_list02 li {
	flex-basis: 100%; /* 1列なので横幅いっぱい */
}
@media print, screen and ( min-width : 896px ) {
	/* 01----------------------------------- */
	.contents_list01 {
		gap: 2%;
	}
	/* 3列のとき */
	.contents_list01 li {
		flex-basis: calc((100% - 4%) / 3);
		flex-grow: 0;
		flex-shrink: 0;
	}
	/* 2列のとき (less-than-three) */
	.contents_list01.less-than-three li {
		flex-basis: calc((100% - 2%) / 2);
	}
	/* 02----------------------------------- */
	.contents_list02 {
		gap: 0.5%;
	}
	/* 3列のとき */
	.contents_list02 li {
		flex-basis: calc((100% - (0.5% * 2)) / 3);
		flex-grow: 0;
		flex-shrink: 0;
	}
	/* 2列のとき (less-than-three) */
	.contents_list02.less-than-three li {
		flex-basis: calc((100% - 0.5%) / 2);
	}
}
@media ( max-width : 1200px ) and ( min-width : 896px ) {
	.contents_list01,
	.contents_list02{
		font-size:1.3vw;
	}
}
/* -------------------01------------------------ */
.contents_list01 .list_text{
	padding:1.5em;
	transition: all .5s;
	background:#fff;
	line-height:var(--base_line_height);
}
.contents_list01 .list_text h2{
	font-size:105%;
	padding-right:2.5em;
}
.contents_list01 .list_text h2 .eng{
	color:var(--primary-color);
	font-size:80%;
	line-height:var(--base_line_height);
	margin-top:0.3em;
}
.contents_list01 .list_text:after{
	display:block;
	position: absolute;
	top:50%;
	right:1.5em;
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f061';
	color:var(--primary-color);
	transition: all .5s;
	font-size:130%;
	margin-top:-0.7em;
}
/* hover */
.contents_list01 a:hover,
.contents_list02 a:hover,
.contents_list01 a:hover img{
	opacity: 1;
}
.contents_list01 a:hover .list_text{
	background:#fcfcfc;
}
.contents_list01 a:hover .list_text:after{
	position: absolute;
	top:50%;
	right:1em;
}
/* -------------------02------------------------ */
.zoomimg_bg{
	height:320px;
}
@media only screen and ( max-width : 896px ) {
	.zoomimg_bg{
		height:250px;
	}
}
.contents_list02 .list_text h2{
	font-size:170%;
	padding:0 1em;
	text-align:center;
	letter-spacing:0.1em;
}
.contents_list02 .list_text h2 .eng{
	font-size:130%;
}
.contents_list02 .jp_sub,
.contents_list02 .eng_sub{
	display:block;
	line-height:var(--base_line_height);
	letter-spacing:0.2em;
	font-size:70%;
}
.contents_list02 .eng_sub{
	letter-spacing:0.1em;
	font-size:70% !important;
}
/* 背景画像だから高さを取得 */
.contents_list02 .list_text{
	position: absolute;
	left:0%;
	top:0;
	padding:0 !important;
	display:flex;
	justify-content: center;
	align-items: center;
	overflow:hidden;
	padding:10%;
	z-index:3;
	height: 100%;
	width: 100%;
}
/* ------------------------------------------- */
.zoomimg{
	overflow:hidden;
}
ul.contents_list a{
	overflow:hidden;
}

ul.contents_list a .zoomimg{
	transform: scale(1);
	transition: all .5s;
	width:100%;
}
@media print, screen and ( min-width : 800px ) {
	.contents_list01.less-than-three a .zoomimg{
		height:260px;
	}
}
ul.contents_list a .zoomimg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
ul.contents_list a:hover .zoomimg{
	transform: scale(1.2);
}

/* ************************************************ 
 *	
 *	TOP
 *	
 * ************************************************ */
.more{
	padding-top:2em;
	display:block;
	text-align:center;
}
.single_box .more{
	padding-top:3em;
}

.flex_left_img .more,
.flex_right_img .more{
	padding-top:1em;
}

/* ************************************************ 
 *	
 *	TOP ギャラリー
 *	
 * ************************************************ */
.top_gallery{
	padding-top:0 !important;
	padding-bottom:0 !important;
}
/* ------------------------------------------- */
/* = ギャラリーなし画像1枚表示
/* ------------------------------------------- */
@media only screen and ( max-width : 750px ) {
	.top_gallery .pc_img{
		display:none !important;
	}
}
@media print, screen and ( min-width : 750px ) {
	.top_gallery .sp_img{
		display:none !important;
	}
}
/* ------------------------------------------- */
/* = ギャラリー表示
/* ------------------------------------------- */
.imgslider img{
	width:100%;
}
.top_gallery a img{
	opacity: 1;
	transition: all .5s;
}
.top_mainimg a:hover img{
	opacity: 0.6;
}
/* 読み込み時------------------------------------------- */
.slider{
	opacity: 0;
	transition: opacity .3s linear;
}
.slider.slick-initialized{
	opacity: 1;
}
/* 基本------------------------------------------- */
.slick-box,
.slider li,
.slider li a{
	position: relative;
	display:block;
}
.slider a{
	cursor: pointer;
}
/* dot------------------------------------------- */
.slide-dots {
	height: 0px;
	position: absolute;
	bottom:8%;
	text-align: center;
	width:100%;
	z-index:4;
}
.slide-dots li {
	display: inline-block;
	margin:0px 8px;
	position: relative;
}
.slide-dots li button {
	position: relative;
	text-indent: -9999px;
	height: 10px;
	width: 10px;
}
.slide-dots li button::before {
	background:#e9e9e9;
	content: "";
	cursor: pointer;
	height: 10px;
	width: 10px;
	position: absolute;
	top: 0px;
	left: 0px;
	border-radius: 50%; 
}
.slide-dots li.slick-active button::before {
	background:var(--primary-color);
}
.slide-dots button {
	background: none;
	border: none;
	outline: none;
}
/* ------------------------------------------- */
/* = 背景スライダー
/* ------------------------------------------- */
@media print, screen and ( min-width : 1200px ) {
	.bgslider li{
		height:calc(100vh - var(--pc_header_height));
	}
	body.layout_2 .bgslider li{
		height:calc(100vh - var(--layout_2_nav_total_height));
	}
	body.layout_3 .bgslider li{
		height:100vh;
	}
}
@media only screen and ( max-width : 1200px ) {
	.bgslider li{
		height:calc(100svh - var(--sp_header_height));
	}
	body.layout_3 .bgslider li{
		height:100vh;
	}
}
.bgslider li div{
	height: 100%;
	width:100%;
}
.bgslider li a{
	height: 100%;
	width:100%;
}
/* --------------------------------------------- */
.slide_text,
.slide_text2{
	position: absolute;
	left:0%;
	top:0;
	padding:0 !important;
	display:flex;
	justify-content: center;
	align-items: center;
	overflow:hidden;
	padding:10%;
	height: 100%;
	width: 100%;
	z-index:3;
}
@keyframes textfadein{
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
.add-animation .slide_text > *{
	animation: textfadein 1s linear 1.5s normal both;
}
.slide_text2 > *{
	animation: textfadein 1s linear 0.5s normal both;
}
.slide_text p,
.slide_text2 p{
	font-size:2.5vw;
	line-height:180%;
	text-align:center;
	font-weight:var(--font-bold);
	line-height:var(--base_line_height2);
}
@media only screen and ( max-width : 700px ) {
	.slide_text2 p,
	.slide_text p{
		font-size:5vw;
		padding-bottom:5%;
	}
}
.slide_text .big,
.slide_text2 .big{
	font-size:150%;
	line-height:160%;
	display:block;
	margin:0.5em 0;

}
/* ************************************************ 
 *	
 *	ページのギャラリー
 *	
 * ************************************************ */
.page_gallery{
	margin:0em auto 0em auto;
	max-width:700px;
	width:100%;
}
.single_txt .page_gallery{
	margin:0em auto 3em auto;
}
.single_txt ul.page_gallery .thumbnail,
.single_txt ul.page_gallery .slider{
	padding:0;
	margin:0;
	border-radius: var(--kadomaru);
}
.page_gallery .slider{
	margin-bottom:1em;
}
.page_gallery .thumbnail li:before,
.page_gallery .slider li:before{
	display:none;
}
.page_gallery .slider li img,
.page_gallery .thumbnail img{
	width:100%;
	cursor: pointer;
}
.page_gallery .thumbnail img{
	padding:0.5px;
}
.slide-one .slick-track li{
	width:25% !important;
}
.slide-arrow{
	background:var(--button-color);
	z-index:5;
	width:30px;
	height:30px;
	margin-top:-15px;
	overflow:hidden;
	cursor: pointer;
}
.prev-arrow{
	position: absolute;
	top: 50%;
	left: 0%;
	border-radius: 5px 0 0 5px;
}
.next-arrow{
	position: absolute;
	top: 50%;
	right: 0%;
	border-radius: 5px 0 0 5px;
}
.prev-arrow {
 	transform: rotate(180deg);
	margin-right: 20px;
}
.prev-arrow::before,
.next-arrow::before{
	position:absolute;
	content: "";
	width:10px;
	height:10px;
	border-right: 2px solid #FFF;
	border-top: 2px solid #FFF;
	top:0;
	bottom:0;
	left:0;
	right:0;
	margin:auto;
	transform:rotate(45deg);
}
/* ************************************************ 
 *	
 *	お問い合わせ
 *	
 * ************************************************ */
.must{
	background:var(--point-color);
	color:#fff;
	display:inline-block;
	padding:0.3em 0.8em 0.5em 0.8em;
	font-size:70%;
	line-height:100%;
	position: relative;
	top:-0.1em;
	font-weight:normal;
	margin-left:1em;
	border-radius: 3px;
}
.mail_form dt{
	font-weight:var(--font-bold);
}
@media print, screen and ( min-width : 896px ) {
	.mail_form {
		display: flex;
		flex-wrap: wrap;
		align-items: stretch; /* これでdtとddの高さが揃います */
		overflow: hidden;
	}
	.mail_form dt,
	.mail_form dd {
		margin: 0;
		border-bottom: 1px solid rgba(0, 0, 0, 0.1);
		padding: 30px 20px; /* 余白を統一 */
		box-sizing: border-box;
	}
	.mail_form dt {
		flex-basis: 30%;
		display: flex; /* ラベルを上下中央にするためだけにflexを使用 */
		align-items: center;
	}
	.mail_form dd {
		flex-basis: 70%;
		display: block;
	}
}
@media only screen and ( max-width : 896px ) {
	.mail_form dt{
		padding-bottom:0.5em;
	}
	.mail_form dd{
		padding-bottom:1.5em;
	}
}
.submit_block{
	text-align:center;
	padding:2em 0 3em 0;
}
.contact_information{
	background:#fff;
	padding:1.5em;
	border:1px solid #ccc;
	font-size:80%;
	line-height:var(--base_line_height);
}
.wpcf7-not-valid-tip {
	display: inline-block; 
	width:80%;
	margin-top:0.5em;
	background-color: #ff6d6d !important; 
	color: white !important; 
	border-radius: 4px; 
	padding: 4px 8px; 
	font-size: 60%; 
	font-weight: normal; 
	box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
.wpcf7-not-valid {
	/* 入力欄の枠を赤くする */
	border: 1px solid #ff6d6d !important;
	box-shadow: 0 0 5px rgba(255, 109, 109, 0.5);
}

/* --------確認ページ------------------------------------- */
.confirm_area,
.thanks_area {
	display: none;
}
.soushin_disabled input{
	opacity:0.3;
	pointer-events: none;
}
.wpcf7-response-output{
	display: none;
}
/* --------個人情報保護方針------------------------------------- */
.privacy{
	font-size:90%;
}
.privacy_blo{
	padding:2em;
	background:#f6f8f9;
	text-align:right !important;
}
.privacy_blo p{
	text-align:right !important;
	margin-bottom:0;
	line-height:var(--base_line_height);
}
/* ************************************************ 
 *	
 *	画像の表示
 *	
 * ************************************************ */
.img_left,
.img_right,
.center_img{
	border-radius: var(--kadomaru);
	overflow:hidden;
}


@media print, screen and ( min-width : 896px ) {
	.img_left{
		width:47%;
		margin-right:6%;
		float:left;
		margin-bottom:1em;
	}
	.img_left_text{
		width:47%;
		float:right;
	}
	.img_right{
		width:47%;
		margin-left:6%;
		margin-bottom:1em;
		float:right;
	}
	.img_right_text{
		width:47%;
		float:left;
	}
 	.flex_left_img,
 	.flex_right_img{
		display:flex;
		justify-content: center;
		align-items: center;
		margin-left: calc(-50vw + 50%);
		width: 100vw;
	}
	.flex_left_img .img,
	.flex_right_img .img{
		flex-basis:45%;
		max-width:650px;
		overflow:hidden;
		flex: 1;
	}
	.flex_left_img .text,
	.flex_right_img .text{
		flex-basis:55%;
		max-width:780px;
		padding:0 5%;
	}
	.flex_right_img .img{
		order: 2;
	}
	.flex_right_img .text{
		order: 1;
	}
	.center_img{
		margin-bottom:2em;
	}
}
@media print{
 	.flex_left_img,
 	.flex_right_img{
		margin-left:0;
		width: 100%;
	}
}



@media only screen and ( max-width : 896px ) {
	.flex_left_img .img,
	.flex_right_img .img{
		margin-left: calc(-50vw + 50%);
		width: 100vw;
		margin-bottom:2em;
		overflow:hidden;
	}
	.img_left,
	.img_right{
		margin-bottom:1.5em;
	}
}

/* ************************************************ 
 *	
 *	ページ内で使えるリスト
 *	
 * ************************************************ */

/* 共通：liの基本スタイル */
.colum_3_c > li, .colum_2_c > li {
	padding: 2em;
	background: #f6f8f9;
	border-radius: 8px; /* 少し角を丸めるだけで今っぽくなります */
}

/* 背景色がある場所では中身を白にする */
.gray_bg .colum_3_c > li, .color_bg .colum_3_c > li,
.gray_bg .colum_2_c > li, .color_bg .colum_2_c > li {
	background: #fff;
}

/* デスクトップ：Gridで並べる */
@media print, screen and ( min-width : 896px ) {
	.colum_2_c { display: grid; gap: 40px; grid-template-columns: repeat(2, 1fr); }
	.colum_3_c { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
}

/* モバイル：1列にする（Gridのままが楽！） */
@media only screen and ( max-width : 895px ) {
	.colum_2_c, .colum_3_c {
		display: grid;
		grid-template-columns: 1fr;
		gap: 20px;
	}
}
.colum_2_c h3, .colum_3_c h3, 
.colum_2_c h4, .colum_3_c h4 {
	position: relative;
	margin-bottom: 1.5em;
	padding-bottom: 0.8em;
	text-align: center;
	background: transparent; /* 背景は透過させておく */
	border-bottom:1px solid var(--primary-color);
}
.colum_2_c h3::before,
.colum_3_c h3::before,
.colum_2_c h4::before,
.colum_3_c h4::before{
	content: "";
	position: absolute;
	top: calc(100% - 7px);
	left: 50%;
	margin-left:-8px;
	width:16px;
	height:16px;
	border-left:1px solid var(--primary-color);
	border-bottom:1px solid var(--primary-color);
	transform:rotate(-45deg);
	z-index:2;
	background:#f6f8f9;
}
.color_bg .colum_2_c h3::before,
.color_bg .colum_3_c h3::before,
.color_bg .colum_2_c h4::before,
.color_bg .colum_3_c h4::before,
.gray_bg .colum_2_c h3::before,
.gray_bg .colum_3_c h3::before,
.gray_bg .colum_2_c h4::before,
.gray_bg .colum_3_c h4::before{
	background:#fff;
}

.colum_2_c h3, .colum_3_c h3{
	font-size:120%;
}
.colum_2_c h4, .colum_3_c h4{
	font-size:110%;
}

.colum_2_c p, .colum_3_c p {
	font-size:95%;
	line-height:180%;
}
/* ベースのh3のデザインを消す */

.contents_css .colum_2_c h3:after,
.contents_css .colum_3_c h3:after{
	display:none;
}


/* ************************************************ 
 *	
 *	ページリンク
 *	
 * ************************************************ */
ul.page_link{
	display: grid;
}
@media print, screen and ( min-width : 1200px ) {
	ul.page_link{
		grid-template-columns: 1fr 1fr 1fr;
		grid-gap: 10px;
	}
}
@media only screen and ( max-width : 1200px ) and ( min-width : 600px ) {
	ul.page_link{
		grid-template-columns: 1fr 1fr;
		grid-gap: 5px;
	}
}
@media only screen and ( max-width : 600px ) {
	ul.page_link{
		grid-template-columns: 1fr;
		grid-gap: 5px;
	}
}
ul.page_link li a{
	padding:1em 2em;
	text-align:center;
	color:var(--primary-color);
	background:#f6f8f9;
}
ul.page_link li a:hover{
	background:var(--primary-color);
	color:#fff;
}
ul.page_link li a::after{
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f107';
	position: absolute;
	top: 50%;
	right: 10px;
	display: inline-block;
	margin-top:-0.7em;
}

/* ************************************************ 
 *	
 *	その他CSS
 *	
 * ************************************************ */

/* TOP--------------------------------- */
body.home .contents_css section p{
	margin-bottom:1.5em;
}
.top_contents_block section:nth-of-type(2n):before,
.color_bg:before{
	content: "";
	display: inline-block;
	position: absolute;
	top: 0em;
	bottom:0em;
	margin-left: calc(-50vw + 50%);
	width: 100vw;
	height: 100%;
	background:var(--contents_list-color);
	z-index:-1;
}
section.related_box:before,
.gray_bg:before{
	content: "";
	display: inline-block;
	position: absolute;
	top: 0em;
	bottom:0em;
	margin-left: calc(-50vw + 50%);
	width: 100vw;
	height: 100%;
	background:#f6f8f9;
	z-index:-1;
}
.map iframe{
	width:100%;
	height:300px;
}
.width100{
	margin-left: calc(-50vw + 50%);
	width: 100vw;
}
.shadow{
	box-shadow: 5px 5px 5px 0px rgba(0, 0, 0, 0.1);
}
.marker {
	background: linear-gradient(transparent 40%, #fff38a 60%);
}
.kakudai{
	display:block;
	overflow:hidden;
}
.kakudai img{
	width:100%;
	transform: scale(1);
	transition: all .5s;
}
.kakudai:hover{
	opacity: 1 !important;
}
.kakudai:hover img{
	transform: scale(1.2);
	opacity: 1 !important;
}
.kakudai:after{
	font-family: "Font Awesome 6 Free"; 
	font-weight: 900; 
	content: '\f00e';
	background:rgba(0,0,0,0.6);
	color:#fff;
	position: absolute;
	right: 0%;
	left: 0%;
	bottom: 0%;
	top: 0%;
	width:100%;
	padding-top:40%;
	text-align:center;
	font-size:30px;
	opacity: 0;
	transition: all .5s;
	z-index:2;
}
.kakudai:hover:after{
	opacity: 1;
}
/* ************************************************ 
 *	
 *	ログイン中（管理バー表示時）のみ適用
 *	
 * ************************************************ */
@media print, screen and ( min-width : 1100px ) {
	/* bodyに .admin-bar クラスがある時だけ発動 */
	body.admin-bar.layout_1 #header,
	body.admin-bar.layout_3 #header {
		top: 32px;
	}
	
	body.admin-bar #header.layout_1 #global-nav .header-nav-child,
	body.admin-bar #header.layout_3 #global-nav .header-nav-child {
		top: calc(var(--pc_header_height) + 32px); 
	}
	
	body.admin-bar #header.layout_2 #global-nav .header-nav-child {
		top: calc(var(--pc_header_height) + var(--layout_2_nav_height) + 32px);
	}
	
	body.admin-bar.layout_2.sticky #header.layout_2 #global-nav {
		position: fixed;
		top: 32px;
	}
	
	body.admin-bar.layout_2.sticky #header.layout_2 #global-nav .header-nav-child {
		top: calc(var(--layout_2_nav_height) + 32px);
	}
}

/* スマホ・タブレット（管理バーが46pxになる場合があるため調整） */
@media (max-width: 1200px) {
	/* 画面幅によって管理バーの高さが変わるので注意 */
	body.admin-bar #header {
		position: fixed;
		top: 32px; /* 782px以上は32px */
	}
	
	@media (max-width: 782px) {
		body.admin-bar #header {
			top: 46px; /* 782px以下は管理バーが太くなるため46px */
		}
	}

	body.admin-bar #global-nav,
	body.admin-bar .nav_open_side #global-nav {
		/* スマホ時も管理バーの高さを考慮 */
		top: calc(var(--sp_header_height) + 32px);
	}
	
	@media (max-width: 782px) {
		body.admin-bar #global-nav,
		body.admin-bar .nav_open_side #global-nav {
			top: calc(var(--sp_header_height) + 46px);
		}
	}
}
/* ************************************************ 
 *	
 *	印刷用
 *	
 * ************************************************ */
@media print {
	#header, 
	footer, 
	#sidebar, 
	#global-nav,
	.page_top,
	.contents_list_block,
	.page_contact,
	.page_title,
	#breadcrumb,
	.related_box{
		display: none !important;
	}
	.inner_block {
		width: 95% !important;
	}
	img, table, canvas, svg {
		max-width: 100% !important;
		height: auto !important;
	}

	h1, h2, h3, h4, h5, h6 {
		page-break-after: avoid;
		page-break-inside: avoid;
	}
	
	table, figure {
		page-break-inside: avoid;
	}
	* {
		-webkit-print-color-adjust: exact !important;
		print-color-adjust: exact !important;
		color-adjust: exact !important;
	}
	.contents_list_block:before,
	.top_contents_block section:nth-of-type(2n):before,
	.color_bg:before,
	section.related_box:before,
	.gray_bg:before{
		left:-2.5%;
		margin-left:0%;
		width: 105%;
		height: 100%;
	}
}


