@charset "utf-8";

/* **  initialization */
html {
	font-size: 18px;
	line-height: 1.6;
}
html.fs_l{ font-size: 20px;}
html.fs_s{ font-size: 16px;}


body {
	font-family: Helvetica, Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	/* lig
	font-family: font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji; */
	/* nintendo
	font-family: YakuHanJPs, Roboto, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", Arial, nc3Jp, sans-serif; */
	/* NdN
	font-family: BlinkMacSystemFont,Roboto,"Segoe UI","Helvetica Neue",HelveticaNeue,YuGothic,"Yu Gothic Medium","Yu Gothic",Verdana,Meiryo,sans-serif; */
	/* 無印
	font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Meiryo, メイリオ, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック体', 'Yu Gothic', YuGothic, 'MS PGothic', Osaka, arial, sans-serif; */
	/* トヨタ */
	font-family: YuGothic,"Yu Gothic","游ゴシック体","游ゴシック","Hiragino Kaku Gothic ProN","HiraKakuPro-W3","メイリオ",Meiryo,Verdana,sans-serif;
	min-height: 100vh;
	text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
}

:root{
	--header-anime-time: .2s;
}

pre{
	display: inline-block;
	position: relative;
	z-index: 999;
	vertical-align: top;
	white-space: pre-wrap;
	margin: 1px;
	padding: 2px 6px;
	border: 1px solid gainsboro;
	background: #fffff2;
	font-family: 'Meiryo UI', sans-serif;
	font-size: 11px;
	line-height: 1.2;
}

/* **  common */

.wrapper{
	padding-top: 100px;
}

@media screen and (max-width: 767px) {
	/* ～759  スマホで表示 */
	.hide-sm { display: none !important;}
}
@media screen and (max-width: 1269px) {
	/* ～1199  スマホ、タブレットで表示 */
	.hide-md { display: none !important;}
}
@media screen and (min-width: 768px) {
	/* 760～  タブレット、PCで表示 */
	.hide-md-up { display: none !important;}
}
@media screen and (min-width: 1270px) {
	/* 1200～  PCで表示 */
	.hide-lg-up { display: none !important;}

	.wrapper{
		padding-top: 140px;
	}
}

.dib{
	display: inline-block;
}

.transition-none {
	transition-property: none !important;
}


/* ***  scroller */
.scroller {
	scrollbar-color: #fff transparent;
	scrollbar-width: thin;
}
.container::-webkit-scrollbar {
	width: 8px;
}
.scroller::-webkit-scrollbar-track {
	background-color: transparent;
}
.scroller::-webkit-scrollbar-thumb {
	background-color: #fff;
	border-radius: 8px;
}

/* ***  icon */
.icon{
	display: inline-block;
	position: relative;
	vertical-align: middle;
	width: 1em;
	height: 1em;
}


.icon .svg{
	width: 100%;
	height: 100%;
}

.ico_l{
	display: inline-block;
	position: relative;
	padding-left: 1.1em;
}
.ico_r{
	display: inline-block;
	position: relative;
	padding-right: 1.1em;
}
/* ico_circle */
.ico_circle{
	display: inline-block;
	position: relative;
	left: -.55em;
	width: .45em;
	height: .45em;
	margin-top: -.25em;
	margin-left: -.45em;
	border-radius: 100%;
	background: #E60012;
}
.ico_circle.ico_green{ background: #23AE68; }
/* ico_circle_arrow */
.ico_circle_arrow:before{
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	width: 100%;
	height: 100%;
	border-radius: 100%;
	background: #E5001B;
}
.ico_circle_arrow:after{
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	right: 12%;
	bottom: 0;
	left: 0;
	width: 30%;
	height: 30%;
	margin: auto;
	border-top: 2px solid #FFF;
	border-right: 2px solid #FFF;
	transform: rotateZ(45deg);
}
.ico_circle_arrow.ico_white_red:before{ background: #fff; }
.ico_circle_arrow.ico_white_red:after{ border-color: #E5001B; }

.ico_circle_arrow.ico_white_green:before{ background: #fff; }
.ico_circle_arrow.ico_white_green:after{ border-color: #23AE68; }

.ico_circle_arrow.ico_green:before{ background: #23AE68; }
.ico_circle_arrow.ico_green:after{ border-color: #fff; }
/* ico_arrow */
.ico_arrow:before{
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	right: 25%;
	bottom: 0;
	width: 55%;
	height: 55%;
	margin: auto;
	border-top: 2px solid #E5001B;
	border-right: 2px solid #E5001B;
	transform: rotateZ(45deg);
}
.ico_arrow.ico_white:before{
	border-color: #fff;
}
/* ico_triangle */
.ico_triangle:before{
	content: "▶";
	position: absolute;
	top: -1px;
	left: 0px;
	color: #E60012;
	line-height: 1;
	transform: scale(.4, .7);
	transform-origin: left center;
}
.ico_triangle.ico_white:before{
	color: #fff;
}
/* ico_plus */
.ico_plus:before,
.ico_plus:after{
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	width: 2px;
	height: 75%;
	margin: auto;
	background-color: #E60012;
	transition: transform 0.3s;
}
.ico_plus:after{
	transform: rotate(90deg);
}
.ico_plus.is_open:before{
	transform: rotate(90deg);
}

.ico_plus.ico_white:before,
.ico_plus.ico_white:after{
	background-color: #fff;
}

/* ico_blank */
.ico_blank{
	position: relative;
	margin-left: 8px;
	background: url("/shared/images/ico_blank.png") no-repeat center / contain;
}

/* ico_pdf */
.ico_pdf{
	position: relative;
	margin-left: 8px;
	background: url("/shared/images/ico_pdf.png") no-repeat center / contain;
}



/* **  header */
.header{
	position: fixed;
	z-index: 10;
	top: 0;
	left: 0;
	right: 0;
	/* background: #fff; */
	background: rgb(255 255 255 / 96%);
}


.header .header_inner{
	display: flex;
	/* justify-content: space-between;
	align-items: center;
	max-width: 1200px;
	width: 100%;
	margin: 0 auto; */
}
.header .header_logo{
	max-width: 250px;
	width: 100%;
	transition: max-width var(--header-anime-time) ease;
}
.header .header_logo a{
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px 25px 17px;
	transition: padding var(--header-anime-time) ease;
}
.header .header_logo a .img{
	max-width: 240px;
	width: 100%;
	max-height: 65px;
	transition: max-height var(--header-anime-time) ease;

}

.header .header_contents{
	display: none;
}

.drawer_hidden{
	display: none;
}
.drawer_toggle{
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	position: absolute;
	z-index: 5;
	right: 0;
	top: 0;
	width: 100px;
	height: 100px;
	border-radius: 0 0 0 20px;
	background: #E60012;
	font-weight: bold;
	font-size: 16px;
	color: #fff;
	cursor: pointer;
	transition: .2s ease;
}
.drawer_toggle .menu_icon,
.drawer_toggle .menu_icon:before,
.drawer_toggle .menu_icon:after{
	content: '';
	display: block;
	height: 2px;
	width: 46px;
	background: #fff;
	transition: all .3s ease;
	position: relative;
	transform-origin: center;
}
.drawer_toggle .menu_icon:before{
	top: -10px;
}
.drawer_toggle .menu_icon:after{
	top: 8px;
}
.drawer_toggle .text{
	display: flex;
	justify-content: center;
	position: relative;
	width: 100%;
	height: 1em;
	line-height: 1;
	overflow: hidden;
	transform: translateY(18px);
}
.drawer_toggle .text .open{
	position: absolute;
	top: 0;
	transition: .2s ease;
}
.drawer_toggle .text .close{
	position: absolute;
	top: 100%;
	transition: .2s ease;
}

.drawer_menu{
	display: flex;
	flex-direction: column;
	position: fixed;
	z-index: 3;
	top: 0;
	right: 0;
	max-width: 500px;
	width: 100%;
	height: 100vh;
	transform: translateX(100%);
	transition: transform .2s ease;
}
.drawer_menu .drawer_menu_info{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	flex: 0 0 100px;
	height: 100px;
	padding: 5px 110px 0 10px;
	background: #fff;
}
.drawer_menu .info_tel{
	font-weight: bold;
	/* font-size: 1.6rem; */
	font-size: clamp(1.33rem, calc(2vw + 1.0rem), 1.6rem);
	line-height: 1;
	color: #E60012;
}
.drawer_menu .info_fontsize{
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 8px;
}
.drawer_menu .info_fontsize .info_link{
	font-weight: bold;
	font-size: clamp(.78rem, 5vw, 1rem);
}
.drawer_menu .info_fontsize .fontsize_selecter{
	margin-left: 12px;
}
.drawer_menu .info_fontsize .select_button{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	vertical-align: text-bottom;
	height: 32px;
	width: 32px;
	border-radius: 5px;
	background: #EAEAEA;
	font-weight: bold;
	transition: background .1s ease-in;
}
.drawer_menu .info_fontsize .select_button.font_m{ font-size: .89rem; }
.drawer_menu .info_fontsize .select_button.font_s{ font-size: .78rem; }

.drawer_menu .info_fontsize .select_button:hover{
	background: #E60012;
	color: #fff;
}
.drawer_menu .info_fontsize .select_button.is_active {
	background: #E60012;
	color: #fff;
	pointer-events: none;
}

.drawer_menu .sp_globalnavi{
	flex: 1 1 auto;
	padding: 10px 5% 27px;
	background: #E60012;
	color: #fff;
	overflow: auto;
}
.drawer_menu .sp_globalnavi .item_l{
	padding: 17px 6px;
	border-bottom: 1px solid #fff;
}
.drawer_menu .sp_globalnavi .title_size_l{
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
	padding-right: .3em;
	font-size: 1.11rem;
	font-weight: bold;
	cursor: pointer;
}
.drawer_menu .sp_globalnavi .title_size_l .icon{
	width: .8em;
	height: 0.8em;
}
.drawer_menu .sp_globalnavi .link_wrap_l{
	overflow: hidden;
	padding-left: 0.5em;
}


.drawer_menu .sp_globalnavi .link_size_l_02{
	margin-top: 24px;
}
.drawer_menu .sp_globalnavi .link_size_l_01 a{
	display: block;
	font-weight: bold;
	font-size: 1.11rem;
}
.drawer_menu .sp_globalnavi .link_size_l_02 a{
	display: block;
	font-weight: bold;
}
.drawer_menu .sp_globalnavi .link_size_l_02 a .link_inner{
	position: relative;
	padding-right: 1.8em;
}
.drawer_menu .sp_globalnavi .link_size_l_02 .icon{
	position: absolute;
	top: 1px;
	right: 0;
	width: 1.3em;
	height: 1.3em;
}

.drawer_menu .sp_globalnavi .link_wrap_m{
	margin-top: 20px;
}
.drawer_menu .sp_globalnavi .link_size_m a{
	display: block;
	font-weight: bold;
}
.drawer_menu .sp_globalnavi .link_size_m a .link_inner{
	position: relative;
	padding-right: 1.2em;
}
.drawer_menu .sp_globalnavi .link_size_m .icon{
	position: absolute;
	top: 1px;
	right: 0;
}

.drawer_menu .sp_globalnavi .link_wrap_s{
	margin-top: 5px;
}
.drawer_menu .sp_globalnavi .link_size_s a{
    display: block;
	position: relative;
	margin-top: 0.24em;
	margin-left: -1px;
    padding: 1px 0 2px;
	/* padding-left: .9em; */
	font-size: .89rem;
	font-weight: bold;
}
.drawer_menu .sp_globalnavi .link_size_s .icon{
}
.drawer_menu .sp_globalnavi .sub_item{
	display: flex;
	flex-wrap: wrap;
	padding: 17px 6px 0;
	font-weight: bold;
}
.drawer_menu .sp_globalnavi .sub_item .link{
    margin-right: 40px;
}

#drawer_check:checked + .drawer_toggle{
	border-radius: 0;
}

#drawer_check:checked + .drawer_toggle .menu_icon{
	background: transparent;
}
#drawer_check:checked + .drawer_toggle .menu_icon:before{
	top: 0px;
	transform: rotate(30deg);
}
#drawer_check:checked + .drawer_toggle .menu_icon:after{
	top: -2px;
	transform: rotate(-30deg);
}

#drawer_check:checked + .drawer_toggle .text .open{
	top: -100%;
}
#drawer_check:checked + .drawer_toggle .text .close{
	top: 0;
}

#drawer_check:checked ~ .drawer_menu{
	transform: translateX(0);
}
#drawer_check:checked ~ .drawer_menu_bg{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: #0006;
}

@media screen and (min-width: 768px) {

}
@media screen and (min-width: 1270px) {
	.header{
		/* border-bottom: 1px solid #e5e5e5; */
		/* background: #fff; */
	}

	.header .drawer_area{
		display: none;
	}

	.header .header_logo{
		max-width: 320px;
	}
	.header .header_logo a{
		padding: 25px;
	}
	.header .header_logo a .img{
		max-height: 90px;
	}
	.header .header_contents{
		display: flex;
		flex-direction: column;
		flex: 1 1 auto;
		/* border-left: 1px solid #e5e5e5; */
	}


	/* globalnavi */
	.header .header_contents .globalnavi{
		display: flex;
		justify-content: center;
		height: 100%;
		transition: padding var(--header-anime-time) ease;
	}
	.header .header_contents .globalnavi .item{
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0px 22px;
	}
	.header .header_contents .globalnavi .item .link{
		font-size: 1.11rem;
		font-weight: bold;
		transition: color .1s ease-in;
	}
	.header .header_contents .globalnavi .item .link.is_active,
	.header .header_contents .globalnavi .item .link:hover{
		color: #E60012;
	}

	/* headernavi */
	.header .header_contents .headernavi{
		display: flex;
		align-items: center;
		justify-content: flex-end;
		flex: 0 0 50px;
		width: 100%;
		/* border-bottom: 1px solid #e5e5e5; */
		transition: flex-basis var(--header-anime-time) ease;
	}

	.header .header_contents .headernavi .info_space{
		margin: 0 15px;
	}

	.header .header_contents .headernavi .info_link{
		font-weight: bold;
		font-size: 0.89rem;
	}
	.header .header_contents .headernavi .info_link .icon{
		display: inline-flex;
		align-items: center;
		margin-right: 8px;
	}
	.header .header_contents .headernavi .info_fontsize{
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.header .header_contents .headernavi .info_fontsize .fontsize_selecter{
		margin-left: 12px;
	}
	.header .header_contents .headernavi .info_fontsize .select_button{
		display: inline-flex;
		align-items: center;
		justify-content: center;
		vertical-align: text-bottom;
		height: 28px;
		width: 28px;
		border-radius: 5px;
		background: #EAEAEA;
		font-weight: bold;
		transition: background .1s ease-in;
	}
	.header .header_contents .headernavi .info_fontsize .select_button:hover{
		background: #E60012;
		color: #fff;
	}
	.header .header_contents .headernavi .info_fontsize .select_button.is_active{
		background: #E60012;
		color: #fff;
		pointer-events: none;
	}
	.header .header_contents .headernavi .info_fontsize .select_button.font_m{ font-size: .89rem; }
	.header .header_contents .headernavi .info_fontsize .select_button.font_s{ font-size: .78rem; }

	.header .header_contents .headernavi .info_tel{
		display: flex;
		align-items: center;
		height: 100%;
		padding: 0 20px;
		background: #E60012;
		font: bold 1.33rem Arial, sans-serif;
		color: #fff;
	}


	/* *** is_top */
	.header.is_top .header_logo{
		max-width: 290px;
	}
	.header.is_top .header_logo a{
		padding: 20px;
	}
	.header.is_top .header_logo a .img{
		max-height: 70px;
	}
	.header.is_top .header_contents .headernavi{
		flex-basis: 0;
		overflow: hidden;
		margin-top: -1px;
	}
	.header.is_top .header_contents .globalnavi{
		padding-left: 50px;
	}

}

/* **  footer */
.footer{
	border-top: 1px solid #E5E5E5;
	background: #fff;
}

.footer .footer_inner{
	position: relative;
	max-width: 1760px;
	width: 90%;
	margin: 0 auto;
}
.footer .footer_inner .footer_block{
	padding: 60px 0 80px;
}

.footer .pagetop{
	display: block;
	position: absolute;
	z-index: 1;
	right: 10px;
	top: 0;
	padding: 12px 20px;
	border-radius: 10px 10px 0 0;
	background: #E60012;
	font-weight: bold;
	font-size: .89rem;
	color: #fff;
	transform: translate(0, -100%);
}

.footer .link_area{
	text-align: center;
}
.footer .link_area .title{
	margin-bottom: 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid #E5E5E5;
	font-weight: bold;
}
.footer .link_area .link_list{
	max-width: 1200px;
	margin: auto;
	overflow: hidden;
	text-align: center;
}
.footer .link_area .link_list .link{
	display: inline-block;
	width: 100%;
	margin: 11px 0 0;
	font-weight: bold;
}

.footer .link_area .link_list a:hover{
	color: #E60012;
	transition: color .1s ease;
}

.footer .sitemap{
	display: none;
}


.footer .bottom_area{
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 3.33em;
}

.footer .bottom_area .logo_area{
	display: flex;
}
.footer .bottom_area .logo_area .logo_mark{
	max-width: 80px;
	max-height: 115px;
	margin-right: 30px;
}
.footer .bottom_area .logo_area .logo_text{
	max-width: 186px;
	max-height: 56px;
	margin-top: 10px;
}

.footer .bottom_area .sp_info_area{
	margin: 60px 0 40px;
}
.footer .bottom_area .link_area .link{
	margin-right: 26px;
	padding-left: .9em;
	font-weight: bold;
	font-size: 0.89rem;
}
.footer .bottom_area .link_area .link + .link{
	margin-right: 0;
}

.footer .copyright{
	margin-top: 60px;
	text-align: center;
}

@media screen and (min-width: 768px) {

	.footer .link_area .link_list .link{
		width: auto;
		margin-left: 20px;
		margin-right: 20px;
	}

	.footer .sitemap{
		display: block;
		margin-top: 74px;
	}

	.footer .sitemap .title{
		padding-bottom: 12px;
		border-bottom: 1px solid #E5E5E5;
		text-align: center;
		font-weight: bold;
		cursor: pointer;
	}
	.footer .sitemap .title .icon{
		height: .9em;
		width: .9em;
		vertical-align: baseline;
		position: absolute;
		transform: translate(12px, 5px);
	}
	.footer .sitemap .link_list{
		max-width: 1200px;
		margin: auto;
		overflow: hidden;
	}

	/*
	.sitemap_wrap_l
		.item_l_1 (.item_l_2) pink (coral)
			.link_size_l      orangered

			.sitemap_wrap_m           cornflowerblueグラデ
				.item_m_1 (.item_m_2) darkblue (black)グラデ
					.link_size_m      lightblue

					.sitemap_wrap_s      yellow
						.item_s          yellowgreenグラデ
							.link_size_s gold

	*/
	.footer .sitemap .link_size_l,
	.footer .sitemap .link_size_m,
	.footer .sitemap .link_size_s{
		position: relative;
		display: inline-block;
		font-weight: bold;
	}

	.footer .sitemap_wrap_l{
		display: flex;
		flex-wrap: wrap;
		overflow: hidden;
		max-width: 1200px;
		margin: 0 auto;
		overflow-wrap: anywhere;
		word-break: keep-all;
	}
	.footer .sitemap_wrap_l .item_l_1{
		flex: 0 0 100%;
		margin-top: 50px;
	}
	.footer .sitemap_wrap_l .item_l_2{
		flex: 0 0 33.3%;
		margin-top: 50px;
		padding-right: 1em;

	}
	.footer .sitemap_wrap_l .link_size_l{
		font-size: 1.11rem;
	}
	.footer .sitemap_wrap_l .link_size_l .icon{
		top: -2px;
		margin-left: .7em;
		transform: scale(1.1);
	}

	.footer .sitemap_wrap_m{
		display: flex;
		flex-wrap: wrap;
		margin-top: 10px;
		padding-left: 1em;
	}
	.footer .sitemap_wrap_m .item_m_1{
		flex: 0 0 33.3%;

	}
	.footer .sitemap_wrap_m .item_m_2{
		flex: 0 0 100%;
		padding-right: 1em;
		line-height: 1.3;
	}
	.footer .sitemap_wrap_m .item_m_2 + .item_m_2{
		margin-top: 9px;
	}
	.footer .sitemap_wrap_m .link_size_m .icon{
		top: -2px;
		margin-left: 3px;
	}

	.footer .sitemap_wrap_s{
		display: flex;
		flex-wrap: wrap;
		margin-top: 0.5em;
	}
	.footer .sitemap_wrap_s .item_s{
		flex: 0 0 100%;
		line-height: 1.3;
	}
	.footer .sitemap_wrap_s .item_s + .item_s{
		margin-top: 7px;
	}
	.footer .sitemap_wrap_s .link_size_s{
		padding-left: 1em;
		font-size: .89rem;
	}
	.footer .sitemap_wrap_s .link_size_s .icon{
		margin-right: -1em;
		text-indent: -2.4em;
	}

	.footer .sitemap a:hover{
		color: #E60012;
		transition: color .1s ease;
	}



	.footer .bottom_area{
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
	}
	.footer .bottom_area .logo_area .logo_text{
		margin-top: 0;
	}

	.footer .copyright{
		text-align: inherit;
	}

}
