@charset "UTF-8";

/*----------------------

・目次・

# Universal
# 変数 & Main Bg Color
# Parts Default Setting
# Header
# Footer
# Contents
# Index_module
# Article_module
# レスポンシブ
# Print

----------------------*/


/* Universal
------------------------------------------------------------------*/
@import url(https://fonts.googleapis.com/earlyaccess/notosansjp.css);

* {
	-webkit-box-sizing: border-box;
		box-sizing: border-box;
}

html{
	font-size: 62.5%;
	margin: 0;
	padding: 0;
	border: 0;
}

body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
}

body{
	line-height: 1.6;
	font-size: 1.6rem;
	font-family: "Noto Sans JP", "Helvetica Neue", "Hiragino Kaku Gothic ProN", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	width: 100%;
	height: auto;
	background: #ffffff;
	font-weight: 400;
}

a:focus-visible{
	outline: 2px solid rgba(217, 145, 53, 0.7);
}

/* 変数 & Main Bg Color
------------------------------------------------------------------*/
:root{
	--txt-color: #333;
	--sub-txt-color: #666;
	--link-color: #1a0dab;
	--white-bg: #fff;
	--gray-bg: #f2f2f2;
	--sub-gray-bg: #dfdfdf;
	--pc-max-width: 1200px;
	--default-tr: all ease 0.2s;
}

body{
	color: var(--txt-color);
}
header {
	background: var(--white-bg);
}
footer {
	background: var(--gray-bg);
}

iframe[title="YouTube"]{
	aspect-ratio: 16 / 9;
}


/* Parts Default Setting
------------------------------------------------------------------*/
ol, ul {
	list-style: none;
}

.textRed {
	color: #cc0000;
}
.textBold {
	font-weight: 600;
}
.textR {
	text-align: right;
}
.textC {
	text-align: center;
}
.textL {
	text-align: left;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
	border: 1px solid #b5b5b5;
}

p {
	text-align: left;
	border: none;
}

img {
	position: relative;
}

a {
	display: inline-block;
	text-decoration: none;
	color: var(--link-color);
}

a:hover {
	text-decoration: underline;
}

a:hover .image {
	filter: alpha(opacity=70);
	opacity: 0.7;
}

sup, sub {
	height: 0;
	line-height: 1;
	vertical-align: baseline;
	position: relative;
}

sup {
	bottom: 1ex;
}

sub {
	top: .5ex;
}

em {
	font-style: italic;
}

b, strong {
	font-weight: 600;
}

.disnon {
	display: none;
}


/* Header
------------------------------------------------------------------*/
header{
	padding-top: 1.5rem;
	position: relative;
	background: rgba(255, 255, 255, 0.95);
}
.header_inner{
	max-width: var(--pc-max-width);
	margin: 0 auto;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
}
.header_top{
	order: 1;
}
#main_logo a{
	width: 100%;
	max-width: 180px;
}
#main_logo img{
	width: 100%;
	height: auto;
}
.utility_wrap{
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: end;
	order: 2;
}
.utility_wrap .utility_menu ul{
	display: flex;
	flex-direction: row;
	margin-right: 1rem;
}
.utility_wrap .utility_menu ul li{
	display: flex;
	align-items: center;
}
.utility_wrap .utility_menu ul li a{
	font-size: 1.4rem;
	color: var(--sub-txt-color);
	margin-right: 3.5rem;
}
.utility_wrap .search_wrap .search form{
	max-width: 180px;
	background: #fff;
	display: flex;
	align-items: center;
	border: 1px solid #808080;
	padding: 0.5rem 0.7rem 0.5rem 0.8rem;
	height: 26px;
	background: none;
}
.utility_wrap .search_wrap .search form input{
	width: 100%;
	height: 100%;
	font-size: 1.3rem;
}
.utility_wrap .search_wrap .search input[type="submit"] {
	height: 100%;
	width: 16px;
	border: none;
	background: url(../images/search.svg) no-repeat;
	background-size: contain;
	background-position: center;
	cursor: pointer;
	margin-left: 0.7rem;
}
.global_menu{
	width: 100%;
	order: 3;
}
.global_menu > div > ul{
	display: flex;
	flex-direction: row;
	gap: 0 0;
}
.global_menu > div > ul > li{
	flex: 1;
	text-align: center;
	position: relative;
}
.global_menu > div > ul > li > span{
	display: block;
}
.global_menu > div > ul > li > span > a{
	display: block;
	padding: 2rem 1rem;
	position: relative;
	transition: all ease 0.2s;
}
.global_menu > div > ul > li > span > a:hover{
	opacity: 0.7;
	text-decoration: none;
}

.global_menu > div > ul > li > span > a:before,
.global_menu > div > ul > li:last-child > span > a:after{
	content: "";
	height: calc(100% - 40px);
	width: 1px;
	background: #999;
	position: absolute;
}
.global_menu > div > ul > li > span > a:before{
	left: 0;
	top: 2rem;
}
.global_menu > div > ul > li:last-child > span > a:after{
	right: 0;
	top: 2rem;
}

.global_menu ul.g_menu{
	display: none;
	position: absolute;
	left: 50%;
	top: 100%;
	min-width: 70%;
	z-index: 10;
	transform: translateX(-50%);
}
.global_menu ul.g_menu li a{
	display: block;
	padding: 1.5rem 2rem;
	font-size: 1.2rem;
	background: var(--gray-bg);
	transition: all ease 0.2s;
}
.global_menu ul.g_menu li a:hover{
	text-decoration: none;
	opacity: 0.7;
}
.global_menu ul.g_menu li:not(:last-child) a{
	border-bottom: 1px solid #fff;
}
.global_menu ul.g_menu li a:before,
.global_menu ul.g_menu li a:after{
	display: none;
}

.top_navi{
	width: 100%;
	text-align: center;
	background: #f7f7f7;
}
.breadcrumb{
	text-align: left;
	max-width: var(--pc-max-width);
	margin: 0 auto;
	padding: 2.2rem 0 2.3rem;
	line-height: 0;
}
.breadcrumb li{
	display: inline-block;
	font-size: 1.2rem;
	line-height: 1.4;
}
.breadcrumb li span{
	margin: 0 1rem;
	color: #a6a6a6;
}
.pc_menu_wrap{
	width: 100%;
	position: absolute;
	top: 130.27px;
	left: 0;
	background: rgba(255, 255, 255, 0.95);
	z-index: 10;
}
.pc_menu_wrap .menu_box{
	width: 100%;
	max-width: var(--pc-max-width);
	margin: 0 auto;
	padding-bottom: 4rem;
}

/* Footer
------------------------------------------------------------------*/
footer{
  position: sticky;
  top: 100vh;
  padding-top: 4rem;
  margin-top: 10rem;
}
#footer_inner{
	text-align: center;
}
.f_logo{
	max-width: 240px;
	margin: 0 auto;
}
.f_logo img{
	width: 100%;
	height: auto;
}
.ft_main{
	margin-top: 3rem;
}
.ft_main ul{
	display: flex;
	flex-direction: row;
	justify-content: center;
}
.ft_main ul li:not(:first-child){
	margin-left: 4rem;
}
.copyright{
	margin-top: 3rem;
	padding: 2rem 2rem;
	font-size: 1.4rem;
	background: var(--sub-gray-bg);
}
.to_top{
	background-repeat: no-repeat;
	background-position: center center;
	background-color: var(--link-color);
	border-radius: 3rem;
	background-size: 50%;
	width: 35px;
	height: 35px;
	position: fixed;
	bottom: 47px;
	right: 20px;
	display: block;
	transition: all ease 0.2s;
}
.to_top a{
	width: 100%;
	height: 100%;
	display: block;
	text-indent: -9999px;
	overflow: hidden;
	background: url(../images/arrow_right.png) no-repeat;
	background-position: center center;
	background-size: auto 18px;
	transform: rotate(-90deg);
}

/* Contents
------------------------------------------------------------------*/
#container{
	display: flex;
	flex-direction: column;
	width: 100%;
	min-height: 100vh;
}
#contents{
	flex: 1;
}
.main_column{
	max-width: var(--pc-max-width);
	margin: 0 auto;
}
.main_column_middle{
	max-width: var(--pc-max-width);
	margin: 0 auto 0 auto;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 2rem;
}
main_column_middle > *{
	margin-top: 2rem;
}
div#contents:has(#contents_sub){
	max-width: var(--pc-max-width);
	margin: 0 auto;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: start;
	gap: 4rem;
}
div#contents:has(#contents_sub) main{
	max-width: calc(75% - 2rem);
}
div#contents:has(#contents_sub) #contents_sub{
	max-width: calc(25% - 2rem);
	background: #f7f7f7;
	margin-top: 4rem;
	padding: 1.5rem 2rem 2rem;
}
div#contents:has(#contents_sub) #contents_sub h2,
div#contents:has(#contents_sub) #contents_sub h3,
div#contents:has(#contents_sub) #contents_sub h4{
	margin-top: 0;
}

/* タブ設定
-------------------*/
.tab_block{
	margin-top: 2rem;
}
.tab_block .tab{
	display: flex;
	flex-direction: row;
}
.tab > li {
	flex: 1 1;
	order: -1;
	min-width: 70px;
	padding: .7em 1em .5em;
	border-bottom: solid 1px #f0f0f0;
	border-radius: 0;
	background-color: #e9f0f6;
	color: #535353;
	font-size: .9em;
	text-align: center;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}
.tab > li:hover {
	opacity: .8;
}

.tab > li.select {
	background-color: #fff;
	border-color: #fff #f0f0f0 #fff;
	border-style: solid;
	border-width: 1px 1px 1px;
	border-radius: 5px;
	overflow: hidden;
	color: #333333;
}

.tab > li.select:before {
	content: "";
	width: 100%;
	height: 4px;
	background: #2589d0;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}

/* カラム設定
-------------------*/
.col1of1{
	width: 100%;
}
.col1of2{
	width: 100%;
	max-width: calc((100% - 2rem) / 2);
}
.col1of3{
	width: 100%;
	max-width: calc((100% - 4rem) / 3);
}
.col2of3{
	width: 100%;
	max-width: calc((100% - 4rem) / 3 * 2 + 2rem);
}

.block_title,
.block_title2{
	width: 100%;
	max-width: var(--pc-max-width);
	margin: 0 auto;
}
.title_area,
.page_info{
	max-width: var(--pc-max-width);
	margin: 0 auto;
}
.page_title{
	max-width: var(--pc-max-width);
	margin: 3rem auto 0 auto;
}
.tab_block .tab{
	max-width: var(--pc-max-width);
	margin: 0 auto;
}
.anchor_list{
	max-width: var(--pc-max-width);
	margin: 2rem auto 0 auto;
}
.anchor_list ul{
	display: flex;
	flex-direction: row;
}
.anchor_list ul li{
	margin-right: 1.5rem;
}

h1,h2,h3,h4,h5{
	font-weight: 600;
}

h1 {
	font-size: 2.8rem;
}

h2 span {
	display: inline-block;
}
h2 small{
	display: block;
	color: var(--sub-txt-color);
	font-weight: 500;
}
h3 span {
	display: inline-block;
	width: 100%;
}
h4 span {
	width: 100%;
}
h5 span {
	width: 100%;
}

.h_def-L{
	margin-top: 4rem;
}
.h_def-M{
	margin-top: 2rem;
}
.h_def-S{
	margin-top: 2rem;
}
.main_column_middle > .block_title2 .h_def-L{
	margin-top: 2rem;
}

.h_def-L span{
	font-size: 2.4rem;
}
.h_def-M span{
	font-size: 2rem;
}
.h_def-S span{
	font-size: 1.8rem;
}

.open,
.close{
	width: 100%;
	max-width: var(--pc-max-width);
	margin: 0 auto;
	text-align: right;
	padding: 2.4rem 0;
	border-top: 1px solid #888;
	display: block;
}

.main_image{
	position: relative;
	line-height: 1;
}
.main_image a{
	width: 100%;
}
.main_image img{
	width: 100%;
	height: auto;
	z-index: 2;
}
.main_image .caption{
	font-size: 1.2rem;
	line-height: 1.4;
	position: absolute;
	right: 40px;
	bottom: 30px;
	z-index: 3;
	color: #fff;
}
.main_image .sp_image {
	display: none;
}
.main_image:has(.sp_image) .pc_image{
	display: block;
}

#contents_sub .sub_module{
	width: 100%;
	max-width: var(--pc-max-width);
	margin: 0 auto;
}

.snsBlock{
	margin-top: 1rem;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}
.snsBlock > div{
	line-height: 0;
}
.snsBlock > div > *{
	line-height: 1;
}


/* Index_module
------------------------------------------------------------------*/
article + .index_module ,
.index_module + .index_module {
	margin-top: 3rem;
}
.index_module .list1{
	margin-top: 2rem;
}
.index_module .list1 > li{
	padding-top: 3rem;
	border-top: 1px solid #ccc;
}
.index_module .list1 > li:not(:first-child){
	margin-top: 3rem;
}
.index_module .list1 > li:last-child{
	padding-bottom: 3rem;
	border-bottom: 1px solid #ccc;
}
.index_module .list1 .image_text{
	display: flex;
	flex-direction: row;
}
.index_module .list1 .image_text .image{
	max-width: 200px;
}
.index_module .list1 .image_text .image+.text{
	margin-left: 2rem;
}
.index_module .list1 .image_text .image img{
	width: 100%;
	height: auto;
}

.index_module .list2{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	margin-top: 2rem;
	gap: 2rem;
}
.index_module .list2 > li{
	padding-top: 3rem;
	width: 100%;
	max-width: calc(50% - 1rem);
	border-top: 1px solid #ccc;
}
.index_module .list2 > li:not(:first-child):not(:nth-child(2)){
	margin-top: 3rem;
	padding-top: 3rem;
}
.index_module .list2 > li:last-child,
.index_module .list2 > li:nth-last-of-type(2){
	padding-bottom: 3rem;
	border-bottom: 1px solid #ccc;
}
.index_module .list2 .image_text{
	display: flex;
	flex-direction: row;
}
.index_module .list2 .image_text .image{
	max-width: 200px;
}
.index_module .list2 .image_text .image+.text{
	margin-left: 2rem;
}
.index_module .list2 .image_text .image img{
	width: 100%;
	height: auto;
}

.index_module .list3{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	margin-top: 2rem;
	gap: 2rem;
}
.index_module .list3 > li{
	padding-top: 3rem;
	width: 100%;
	max-width: calc((100% - 4rem) / 3);
	border-top: 1px solid #ccc;
}
.index_module .list3 > li:not(:first-child):not(:nth-child(2)):not(:nth-child(3)){
	margin-top: 3rem;
	padding-top: 3rem;
}
.index_module .list3 > li:last-child,
.index_module .list3 > li:nth-last-of-type(2),
.index_module .list3 > li:nth-last-of-type(3){
	padding-bottom: 3rem;
	border-bottom: 1px solid #ccc;
}
.index_module .list3 .image_text{
	display: flex;
	flex-direction: row;
}
.index_module .list3 .image_text .image{
	max-width: 100px;
}
.index_module .list3 .image_text .image+.text{
	margin-left: 2rem;
}
.index_module .list3 .image_text .image img{
	width: 100%;
	height: auto;
}

.index_module .list4{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	margin-top: 2rem;
	gap: 2rem;
}
.index_module .list4 > li{
	padding-top: 3rem;
	width: 100%;
	max-width: calc(25% - 1.5rem);
	border-top: 1px solid #ccc;
}
.index_module .list4 > li:not(:first-child):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4)){
	margin-top: 3rem;
	padding-top: 3rem;
}
.index_module .list4 > li:last-child,
.index_module .list4 > li:nth-last-of-type(2),
.index_module .list4 > li:nth-last-of-type(3),
.index_module .list4 > li:nth-last-of-type(4){
	padding-bottom: 3rem;
	border-bottom: 1px solid #ccc;
}
.index_module .list4 .image_text{
	display: flex;
	flex-direction: row;
}
.index_module .list4 .image_text .image{
	max-width: 100px;
}
.index_module .list4 .image_text .image+.text{
	margin-left: 2rem;
}
.index_module .list4 .image_text .image img{
	width: 100%;
	height: auto;
}

.index_module .tile1,
.index_module .tile2,
.index_module .tile3,
.index_module .tile4,
.index_module .tile5{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	margin-top: 2rem;
}
.index_module .tile2,
.index_module .tile3,
.index_module .tile4,
.index_module .tile5{
	gap: 2rem 2rem;
}
.index_module .tile1 li{
	width: 100%;
}
.index_module .tile2 li{
	width: 100%;
	max-width: calc(50% - 1rem);
}
.index_module .tile3 li{
	width: 100%;
	max-width: calc((100% - 4rem) / 3);
}
.index_module .tile4 li{
	width: 100%;
	max-width: calc(25% - 1.5rem);
}
.index_module .tile5 li{
	width: 100%;
	max-width: calc(20% - 1.6rem);
}

.index_module .tile1 li,
.index_module .tile2 li,
.index_module .tile3 li,
.index_module .tile4 li,
.index_module .tile5 li{
	background: #f2f2f2;
}
.index_module .tile1 > li > a{
	padding: 2.5rem;
}
.index_module .tile1 li .text,
.index_module .tile2 li .text,
.index_module .tile3 li .text,
.index_module .tile4 li .text,
.index_module .tile5 li .text{
	color: var(--txt-color);
}
.index_module .tile2 li .text,
.index_module .tile3 li .text,
.index_module .tile4 li .text,
.index_module .tile5 li .text{
	padding: 2.5rem;
}
.index_module .tile1 .image .ftag,
.index_module .tile2 .image .ftag,
.index_module .tile3 .image .ftag,
.index_module .tile4 .image .ftag,
.index_module .tile5 .image .ftag{
	position: absolute;
	top: 0;
	left: 0;
	display: inline-block;
	background: var(--link-color);
	color: #fff;
	padding: 0.5rem 1rem;
	z-index: 2;
	line-height: 1.4;
	font-size: 1.2rem;
}
.index_module .tile1 .image,
.index_module .tile2 .image,
.index_module .tile3 .image,
.index_module .tile4 .image,
.index_module .tile5 .image{
	line-height: 0;
	position: relative;
}
.index_module .tile1 img,
.index_module .tile2 img,
.index_module .tile3 img,
.index_module .tile4 img,
.index_module .tile5 img{
	line-height: 1;
}
.index_module .tile2 .image,
.index_module .tile3 .image,
.index_module .tile4 .image,
.index_module .tile5 .image{
	height: auto;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.index_module .tile2 img,
.index_module .tile3 img,
.index_module .tile4 img,
.index_module .tile5 img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.index_module .list{
	display: block;
	text-align: right;
	margin-top: 4rem;
}

.index_module .tile1 > li:not(:first-child){
	margin-top: 2rem;
}
.index_module .tile1 .image_text{
	display: flex;
	flex-direction: row;
}
.index_module .tile1 .image_text .image{
	max-width: 200px;
	height: auto;
}
.index_module .tile1 .image_text .image+.text{
	margin-left: 2.5rem;
}
.index_module .tile1 .image_text .image img{
	width: 100%;
	height: auto;
}


/* Article_module
------------------------------------------------------------------*/
.index_module + article ,
article + article {
	margin-top: 3rem;
}
article .h_def-L,
article .h_def-M,
article .h_def-S{
	width: 100%;
}
article .h_def-L:first-child,
article .h_def-M:first-child,
article .h_def-S:first-child{
	margin-top: 0;
}
.article_image_float:after{
	content: "";
	display: block;
	clear: both;
}
.article_image_float .article_image{
	float: left;
	margin-right: 2rem;
}
.main_column_middle article{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 2rem;
}
article hgroup{
	width: 100%;
}
.article_image_center{
	width: 100%;
}
.article_image_left,
.article_image_right{
	width: 100%;
	max-width: calc(50% - 1rem);
}
.article_image_center .article_image,
.article_image_left .article_image,
.article_image_right .article_image{
	width: 100%;
	height: auto;
}
.article_image_center .article_image{
	margin: 0 auto;
}
.article_image a{
	line-height: 0;
}
.article_image img{
	line-height: 1;
	width: 100%;
	height: auto;
}
.article_text_left,
.article_text_right{
	width: 100%;
	max-width: calc(50% - 1rem);
}
.article_image_right{
	order: 3;
}
.article_text_left{
	order: 2;
}


/* youtube & 動画
-------------------*/
.code iframe,
.mov a{
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
}
.mov a{
	line-height: 0;
}
.mov a > *{
	line-height: 1;
}


/* レスポンシブ
------------------------------------------------------------------*/

/* タブレット (992px以下) */
@media (max-width: 992px) {
	.index_module .list3 li,
	.index_module .list4 li,
	.index_module .tile3 li,
	.index_module .tile4 li{
		max-width: calc(50% - 1rem);
	}
}

/* タブレット/スマートフォン (768px以下) */
@media (max-width: 768px) {
	.main_image .sp_image {
		display: block;
	}
	.main_image:has(.sp_image) .pc_image{
		display: none;
	}
}

/* スマートフォン (576px以下) */
@media (max-width: 576px) {
	.index_module .list2 li,
	.index_module .list3 li,
	.index_module .list4 li,
	.index_module .tile2 li,
	.index_module .tile3 li,
	.index_module .tile4 li{
		max-width: 100%;
	}
}


/* Print
------------------------------------------------------------------*/
@media print {
	header {
		position: relative !important;
	}
	#header2 {
		display: none;
	}
	footer {
		position: relative !important;
	}
	body {
		_zoom: 67% !important;
	}
}