@charset "utf-8";

/* ==============================

	共通

============================== */
body, html {
	width: 100%;
	font-size: 16px;

	-webkit-appearance: none;
	-webkit-text-size-adjust: 100%;
}

body{
	color: #000;
	line-height: 1.5;
	text-align: justify;
	font-family: 'Noto Sans JP', sans-serif;
}

a,
a img {
	transition: all 0.2s ease 0s;
}

a:hover,
a:hover img {
	opacity: 0.5;
}




.bold {
	font-weight: bold;
}

h2{
	text-align: center;
	font-size: 3rem;
	line-height: 1.2;
	font-weight: normal;
}

h2 p {
	font-size: 1.2rem;
	line-height: 1.2;
}


@media only screen and (max-width: 767px){
	body{
		/*font-size: 12px;*/
        font-size: 16px;
		line-height: 1.5;
	}	
	h2{
		font-size: 2rem;
	}
	
	 h2 p {
		font-size: 1rem;
	}
}





/* ==============================

	カラー

============================== */
.line_y {
	background: linear-gradient(transparent 60%, #FBED11 0%);
}




/* ==============================

	ボタン

============================== */
/* メイン */
.btn a {
	line-height: 60px;
	display: block;
	text-align: center;
	background: none;
	border-radius: 30px;
	border: 2px solid #000;
	color: #FFF;
	font-weight: bold;
	width: 400px;
	margin: 0 auto;
	color: #000;
}

.btn i {
	margin-left: 5px;
}

.btn a:hover {
	color: #ccc;
}

.btn a span {
	margin-left: 20px;
}

@media only screen and (max-width: 767px){
/* メイン */
.btn a {
		width: 100%;
	}
}



/* コロナ */
.safe_modal_btn span {
	line-height: 60px;
	display: block;
	text-align: center;
	background: none;
	border-radius: 30px;
	border: 2px solid #000;
	color: #FFF;
	font-weight: bold;
	width: 400px;
	margin: 0 auto;
	color: #000;
}

.safe_modal_btn span:hover {
	color: #ccc;
}

@media only screen and (max-width: 767px){
/* コロナ */
.safe_modal_btn span {
		width: 100%;
	}
}





/* ==============================

	その他

============================== */

/* PC/SP切り分け */
.sp_disp {
	display:none;
}

@media only screen and (max-width: 767px){
	.pc_disp {
		display:none;
	}

	.sp_disp {
		display:block;
	}
}

.shadow {
	filter: drop-shadow(0px 0px 6px rgba(30,30,30,0.1));
}





/* ==============================

レイアウト

============================== */
.wrap {
	padding-top: 90px;
}

.inner {
	width: 1000px;
	margin: 0 auto;
}


/* パンくず */
.breadcrumb {
/*	padding: 20px 0;*/
padding: 0;
font-size: 14px;
}
.single-largeha .breadcrumb{ margin-bottom: 25px;}
.breadcrumb ul{
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	align-items: stretch;
}

.breadcrumb ul li:after{
	content: "▶";
	margin-right: 10px;
	color: #B3B3B3;
}

.breadcrumb ul li:last-child:after{
	content: "";
}

.breadcrumb ul li a{
	color: #000;
	margin-right: 10px;
}

.breadcrumb ul li:last-child{
	color: #78ABDC;
	margin-right: 0px;
}



@media only screen and (max-width: 767px) {
	body {
		width: 100%;
	}

	.inner {
		width: 90%;
		margin: 0 auto;
	}

/*
.wrap { padding-top: 50px;}
.breadcrumb{ font-size: 2.5vw; margin: 0 0 -10px;}
.single-largeha .breadcrumb{ margin-bottom: -10px;}
.breadcrumb ul li a{ margin-right: 0;}
*/
.wrap{ padding-top: calc(6.25vw + 20px);}
.breadcrumb{ font-size: 2.5vw; padding: 5% 0 3.75%;}
.breadcrumb ul li a{ margin-right: 0.5em;}
.breadcrumb ul li:after{ margin-right: 0.5em;}
}





/* ==============================

ヘッダー

============================== */
/* header */
header {
	width: 100%;
	padding: 20px;
	position: fixed;
	background-color: #fff;
	z-index: 9999;
	transition: all 0.5s ease 0s;
    min-width: 1040px;
}

header .inner {
	width: 1280px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
}

header a {
	color: #000;
}

.header_logo {
	width: 200px;
	transition: all 0.5s ease 0s;
}

.header_logos {
	display: flex;
    max-width: 200px;
}

.header_largeha_logo {
	width: 160px;
	margin-left: 20px;
}
.header_largeha_logo img {
	height: 100%;
}

@media only screen and (max-width: 767px){
	header {
		padding: 10px;
        min-width: 1px;
	}

	header .inner {
		width: 90%;
	}

	header .header_logo {
		width: 40%;
	}

	.header_largeha_logo {
		width: 30%;
	}
}

@media (max-width: 1280px) and (min-width: 768px) {
	header .inner {
		width: 100%;
	}
}


/* スクロール後のヘッダー */
header.scroll-nav {
	/* 余白を狭くする */
	padding: 10px 0px;

  }

  .scroll-nav .header_logo  {
	  width: 140px;
  }
  .scroll-nav .header_largeha_logo  {
	  width: 100px;
  }





/* グローバルナビゲーション */
.gNav-menu {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
}

.gNav-menu li a {
	font-weight: bold;
}



@media only screen and (min-width: 768px){
	/*
    #gNav .gNav-menu > li:not(.show):first-child,
	#gNav .gNav-menu li.pc-hide {
		display: none;
	  }
      */

	  .gNav-menu > li {
		padding: 0px 30px;
		border-right: 1px solid #000;
		position: relative;
	}

	.gNav-menu > li:last-child {
		border-right: none;
	}

	.gNav-menu li ul {
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		background: #fff;
		font-size: 14px;
		display: none;
	}
	.gNav-menu li ul li a {
		padding: 15px;
		display: block;
		border-bottom: 1px dashed #E6E6E6;
	}
	.gNav-menu li ul li span {
		display: none;
	}
	.gNav-menu > li:hover ul {
		display: block;
	}
}


@media only screen and (max-width: 767px){
	/* ハンバーガーアイコン */
	#hamburger .btn-gNav{
		position: fixed;
		top: 15px;
		right: 15px;
		width: 30px;
		height: 24px;
		z-index: 3;
		box-sizing: border-box;
		cursor: pointer;
		-webkit-transition: all 400ms;
		transition: all 400ms;
	  }
	  
	  #hamburger .btn-gNav span{
		position: absolute;
		width: 100%;
		height: 4px;
		background: #666;
		border-radius: 10px;
		-webkit-transition: all 400ms;
		transition: all 400ms;
	  }
	
	  #hamburger .btn-gNav span:nth-child(1) {
		top:0;
	  }
	  #hamburger .btn-gNav span:nth-child(2) {
		top:10px;
	  }
	  #hamburger .btn-gNav span:nth-child(3) {
		top:20px;
	  }
	  #hamburger .btn-gNav.open span:nth-child(1){
		top: 6px;
		-webkit-transform: rotate(-45deg);
		-moz-transform   : rotate(-45deg);
		transform        : rotate(-45deg);
	  }
	  #hamburger .btn-gNav.open span:nth-child(2),#hamburger .btn-gNav.open span:nth-child(3){
		top: 6px;
		-webkit-transform: rotate(45deg);
		-moz-transform   : rotate(45deg);
		transform        : rotate(45deg);
	  }

	  /* メニュー */
	  #gNav{
		position: fixed;
		top: -100%;
		left: 0;
		width: 100%;
		height: 100%;
		font-size: 16px;
		box-sizing: border-box;
		z-index: 2;
		padding-top: 54px;
		transition: .3s;
	 	opacity: 0;
		transition: all 0.2s ease 0s;
	}

	  #gNav.open{
		top: 0px;
		opacity: 1;
	}

	  #gNav .gNav-menu{
		width: 100%;
		height:100%;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		text-align: center;
	}

	#gNav.open .gNav-menu{
		flex-wrap: nowrap;
	  }
	
	  #gNav .gNav-menu li{
		display: block;
		padding : 0;
		width: 100%;
		background: #FBFAF4;
	}
	
	  #gNav .gNav-menu li a{
		display: block;
		padding : 0;
		width: 100%;
	  }
	
#gNav.open .gNav-menu li a{ text-decoration: none; 	line-height: 50px; 	display: block; background: none;}
#gNav.open .gNav-menu > li:first-child a{ background:none;}
.gNav-menu li ul{ font-size: 14px;}
#gNav.open .gNav-menu li{ background: #FBFAF4; background-size: 10px 3px; background-image: linear-gradient(to right, #999, #999 2px, transparent 3px, transparent 10px); background-repeat: repeat-x;}
#gNav.open .gNav-menu li li{ background: none;}
#gNav.open .gNav-menu li a{ display: inline-block; background: none; width: auto;}

/*追加230221*/
#gNav.open .gNav-menu .toggle-menu{ display: none;}
#gNav.open .gNav-menu .toggle-menu li a{ background: none; line-height: 1em; padding-bottom: 1.5em;}
#gNav.open .gNav-menu li{ position: relative;}
#gNav.open .gNav-menu li .toggle-icon{ position: absolute; right: 20px; top: 10px; width: 20px; height: 20px; border: 4px solid #000; border-left: none; border-top: none; transform: rotate(45deg); cursor: pointer; transition: 0.3s;}
#gNav.open .gNav-menu li .toggle-icon.is-open{ top: 20px; transform: rotate(-45deg) rotateX(180deg);}
}





/* ==============================

フッター

============================== */
/* footer */
footer {
	border-top: 6px solid #E6E6E6;
	background: url(../img/footer_bg.jpg);
	padding: 15px 0;
}

footer .inner{
    width: 100%;
}

.footer_top,
.footer_bottom
 {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
}

.footer_top {
	margin-bottom: 35px;
}

.footer_top .footer_logo{
	width: 90px;
	display: inline-block;
	vertical-align: top;
	margin-right: 10px;
}

.footer_top .footer_name {
	display: inline-block;
	vertical-align: top;
	font-size: 1.6rem;
	font-weight: bold;
}

.footer_top div a {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
	color: #000;
}

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

.footer_top li a{
	color: #000;
}

.footer_top li {
	padding: 0px 20px;
	border-right: 1px solid #000;
}

.footer_top li:last-child {
	border-right: none;
}


.footer_bottom {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: flex-start;
	font-size: 0.9rem;
}

.footer_bottom .copyright a {
	color: #4B4B4B;
}

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

.footer_bottom li a{
	color: #4B4B4B;
}

.footer_bottom li {
	padding: 0px 20px;
	border-right: 1px solid #4B4B4B;
}

.footer_bottom li:last-child {
	border-right: none;
}


@media only screen and (max-width: 767px){
	footer  {
		padding-bottom: 90px;
	}

	footer .inner {
		width: 90%;
	}

	.footer_top ul {
		flex-direction:column;
	}

	.footer_top div{
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		align-items: center;
		margin-bottom: 20px;
	}

	.footer_name {
		line-height: 1;
		margin-left: 10px;
	}

	.footer_top li {
		padding: 5px 0;
		border-right: none;
	}

	.footer_bottom  {
		flex-direction: column-reverse;
		padding: 5px 0;
		border-right: none;
	}

	.footer_bottom ul {
		justify-content: flex-start;
		margin-bottom: 10px;
	}

	.footer_bottom li {
		padding-left: 0;
		padding-right: 20px;
		margin-right: 20px;
	}
}


@media only screen and (min-width: 768px){
	footer .inner {
		padding: 0 140px;
	}
}


@media (max-width: 1280px) and (min-width: 768px) {
	footer .inner {
		padding-left: 40px;
		padding-right: 130px;
	}

	.footer_top ul {
		flex: 1;
		justify-content: flex-end;
	}

	.footer_bottom ul {
		flex: 1;
		justify-content: flex-end;
	}
}





/* ==============================

固定ナビゲーション

============================== */
/* 固定ナビゲーション */

.fix_nav li {
	background-color: #ED7971;
}

.fix_nav a {
	color: #FFF;
}

.fix_nav li:first-child {
	background-color: #FCD25B;
}

.fix_nav li:last-child {
	background-color: #84C638;
}



/* PC_サイド */
@media only screen and (min-width: 768px){
	.fix_nav {
		z-index: 9990;
		position: fixed;
		right: 0;
		top: 50%;
		transform: translate(0%, -50%);
	}

	.fix_nav li {
		background-color: #ED7971;
		text-align: center;
		height: 120px;
		display: table;
	}

	.fix_nav a {
		color: #FFF;
		display: block;
		width: 90px;
		font-size: 0.9rem;
		display: table-cell;
		vertical-align: middle;
	}

	.fix_nav a img {
		width: 45px;
		margin: 0 auto;
		}

	.fix_nav li:first-child {
		margin-bottom: 1px;
		background-color: #FCD25B;
	}

	.fix_nav li:first-child a img {
		width: 30px;
	}

	.fix_nav li:last-child {
		margin-top: 1px;
		background-color: #84C638;
	}

/*	
	.fix_nav li:last-child a {
		font-size: 1.2rem;
		display: flex;
		writing-mode: vertical-rl;
		align-items: center;
	}
*/
}



/* SP_下部 */
@media only screen and (max-width: 767px){
	.fix_nav {
		position: fixed;
		bottom: 0;
		right: 0px;
		width: 100%;
		z-index: 9990;
		font-weight: bold;
	}

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

	.fix_nav li {
		width: calc(100% / 2);
		padding: 10px 5px;
		font-size: 1rem;
		display: table;
		text-align: center;
		line-height: 60px;
	}

	.fix_nav li a {
		display: table-cell;
		vertical-align: middle;

		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		align-items: center;
		height: 60px;
	}

	.fix_nav a img {
		width: 26%;
		display: inline-block;
		margin-right: 6px;
	}

	.fix_nav a span {
		line-height: 1.4;
	}

	.fix_nav li:first-child a img {
		width: 16%;
	}
}




/* ==============================

	レイアウト1

============================== */
/* MV */
.layout_01 .mv {
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	align-items: center;
}

.layout_01 .mv_ttl {
	border-radius: 0 0 40px 0;
	height: 400px;
	width: 52%;
	position: relative;
	margin-right: 8%;
}

.layout_01 .mv_ttl h1 {
	position: absolute;
	left: 80px;
	bottom: 30px;
	font-size: 2.6rem;
	color: #FFF;
	filter: drop-shadow(0px 0px 5px rgba(0,0,0,1));
}

.layout_01 .mv_description {
	width: 30%;
	font-size: 1.1rem;
	font-weight: bold;
}


@media only screen and (max-width: 767px){
	.layout_01 .mv_wrap {
		display: flex;
		flex-direction: column
	}

	.layout_01 .mv_wrap .mv{
		order: 2;
	}

	.layout_01 .mv_wrap .breadcrumb {
		order: 1;
	}
	.layout_01 .mv_ttl {
		width: 100%;
		height: 220px;
		margin-bottom: 30px;
	}
	.layout_01 .mv_ttl {
		margin-right: 0;
		margin-bottom: 10px;
	}
	.layout_01 .mv_ttl h1 {
		left: 20px;
		bottom: 10px;
		font-size: 1.8rem;
	}

	.layout_01 .mv_description {
		width: 90%;
		font-size: 0.8rem;
		margin: 0 auto;
		margin-bottom: 20px;
	}

}


/* パンくず */
.breadcrumb {
	margin-bottom: 110px;
}


@media only screen and (max-width: 767px){
	.breadcrumb {
		margin-bottom: 0px;
	}
}




/* ==============================

	レイアウト3

============================== */

@media only screen and (max-width: 767px){
	.layout_03 .mv_wrap {
		display: flex;
		flex-direction: column
	}

	.layout_03 .mv_wrap .mv{
		order: 2;
	}

	.layout_03 .mv_wrap .breadcrumb {
		order: 1;
	}
}



/* パンくず */
.layout_03 .breadcrumb {
	margin-bottom: 50px;
}

@media only screen and (max-width: 767px){
	.layout_03 .breadcrumb {
		margin-bottom: 0px;
	}
}



/* ==================================

コロナのモーダル

================================== */
#safe_modal {
    display: none;
}

#safe_modal {
    align-items: center;
    justify-content: center;
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
}

#safe_modal #safe_modal_bg {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background: rgba(0, 0, 0, .9);
    cursor: pointer
}

#safe_modal ul {
    background: #fff;
    width: 1080px;
    margin: 0 auto;
    padding: 30px;
    box-sizing: border-box;
    position: relative
}

#safe_modal ul span.safe_modal_close {
    position: absolute;
    right: 0;
    top: -1.25em;
    font-size: 24px;
    font-weight: 700;
    color: #fff;
    cursor: pointer
}

.safe p.safe_modal_btn {
    text-align: center;
    margin: 15px auto 0
}

.safe p.safe_modal_btn span:hover {
    opacity: .7
}

.safe p.pdf_link {
    text-align: center;
    margin-top: 1em;
    font-size: 15px;
    line-height: 1.25em
}

.safe p.pdf_link a {
    color: #c83232;
    text-decoration: underline
}

.safe p.pdf_link a:hover {
    text-decoration: none
}

.safe ul li:nth-child(2) {
    border-top: 1px solid #002d75
}

@media screen and (max-width:768px) {
    #safe_modal ul {
        width: 90%;
        max-height: 84%;
        padding: 2.5% 2.5% 0;
        overflow-x: hidden;
        overflow-y: scroll;
        -webkit-overflow-scrolling: touch
    }

    #safe_modal span.safe_modal_close {
        position: absolute;
        right: 7.5vw;
        top: 2.5vw;
        font-size: 7.5vw;
        font-weight: 700;
        color: #fff;
        cursor: pointer
    }

    .safe p.safe_modal_btn {
        margin-top: 2.5%
    }

    .safe p.pdf_link {
        font-size: 2.5vw
    }

    .safe ul li:nth-child(2) {
        border-top: none
    }

    .safe ul li:last-child {
        border-bottom: none
    }
}

.safe {
    padding: 0
}

.safe h2 {
    text-align: center;
    margin: 0 auto;
    padding: 0;
    font-size: 24px;
    letter-spacing: .05em;
    font-weight: 700;
    line-height: 1.5;
    color: #26acea
}

.safe h3 {
    text-align: center;
    margin: 0 auto;
    padding: 0;
    letter-spacing: .1em
}

.safe h3 span {
    display: inline-block;
    font-size: 20px;
    padding: .5em 2em;
    background: #002d75;
    color: #fff;
    font-weight: 700;
    border-radius: 50px
}

.safe ul {
    margin-top: 30px
}

.safe ul li {
    display: table;
    width: 100%;
    border-bottom: 1px solid #002d75
}

.safe ul li:first-child {
    border-top: 1px solid #002d75
}

.safe ul li h4 {
    display: table-cell;
    vertical-align: middle;
    width: 180px;
    text-align: center;
    line-height: 1.25em;
    font-size: 20px;
    font-weight: 700;
    color: #002d75
}

.safe ul li figure {
    display: table-cell;
    vertical-align: middle;
    width: 140px;
    padding: 0 20px;
    text-align: center
}

.safe ul li figure img {
    width: 100%;
    display: inline-block
}

.safe ul li p {
    display: table-cell;
    vertical-align: middle;
    font-size: 15px;
    line-height: 1.5
}

@media screen and (max-width:768px) {
    .safe .inner {
        padding: 2.5%;
        margin: 5% 3%;
        border-radius: 1.5vw
    }

    .safe h2 {
        margin: 0 auto;
        font-size: 3.5vw;
        letter-spacing: 0;
        line-height: 1.25em
    }

    .safe h3 {
        margin: 0 auto
    }

    .safe h3 span {
        font-size: 4vw
    }

    .safe ul {
        margin-top: 5%
    }

    .safe ul li {
        display: block;
        padding: 2.5% 0
    }

    .safe ul li h4 {
        display: block;
        width: 100%;
        font-size: 4vw
    }

    .safe ul li figure {
        display: block;
        width: 100%;
        padding: 0;
        text-align: center;
		margin: 0;
    }

    .safe ul li figure img {
        width: 25%
    }

    .safe ul li p {
        display: block;
        font-size: 3vw;
        margin: 0
    }
}




/* ==================================

アコーディオン

================================== */
.acbox{
	width: auto;
	font-size:0px; /* ラベルと開く部分を分離する時は数値を入れる */
	margin:0 10px; /* ボックス全体の位置調整 */
}
  
  .acbox label{
	width: auto;
	font-size: 1.4rem; /* ラベルの文字サイズ */
	text-align: left;
	background: #FFF; /* ラベルの背景色 */
	position: relative;
	display: block;
	padding:20px;
	border-radius: 10px; /* ラベルの角の丸み */
	cursor: pointer;
	margin-top: 15px;
  }
  
  .acbox label img {
	width: 8%;
	display: inline-block;
	margin-right: 10px;
  }

  .acbox input{
	display: none;
  }

.acbox label:after{
	font-size: 1rem;
	content:"▶"; /* ラベルのアイコン */
	position: absolute;
	top: 50%;
	right: 15px;
	margin-top: -14px;
  }
  
  .acbox input:checked ~ label::after {
	content:"▲"; /* ラベルをクリックした後のアイコン */
  }
  
  .acbox div{
	height: 0px;
	overflow: hidden;
	opacity: 0;
	transition: 0.15s; /* 開閉スピードの設定 */
  }
  
  .acbox input:checked ~ div{
	height: auto;
	padding: 20px; /* 開いた部分の枠内の余白 */
	border-radius: 0 0 10px 10px;
	background: #fff; /* 開いた部分の背景色 */
	opacity: 1;
  }
    
  .acbox input:checked ~ label {
	border-radius: 10px 10px 0 0;
  }
  
  .acbox-under{
	font-size: 1.0rem; /* 開いた部分の文字サイズ */
	margin-bottom: 10px;
	border-radius: 0 0 10px 10px;
}

	.acbox-under img {
		width: 8%;
		display: inline-block;
		margin-right: 10px;
	}

	.acbox-under p{
		width: 90%;
	}


.qa .btn {
	margin-top: 100px;
	margin-bottom: 150px;
}



@media only screen and (max-width: 767px){
	.qa_list .inner {
		width: 100%;
	}
	.qa_list h2 {
		margin-bottom: 20px;
	}

	.qa_list_cat {
		padding-top: 10px;
		margin-bottom: 50px;
	}

	.qa_list_cat h3 {
		width: 90%;
		margin:  0 auto;
		text-align: center;
		border-radius: 20px 20px 0 0;
		padding: 0;
	}

	.qa_list_cat ul {
		padding: 10px;
		border-radius: 0;
	}

	.acbox label:before,
	.acbox .acbox-under:before {
		margin-right: 10px;
	}

	.qa_list_cat ul li label p,
	.qa_list_cat ul li .acbox-under p {
		width: 80%;
	}

	.qa .btn {
		margin-top: 30px;
		margin-bottom: 50px;
	}

	.btn a {
		width: 100%;
	}
}


/* ==================================

オーバーレイ

================================== */
.modal{
    display: none;
    height: 100vh;
    position: fixed;
    top: 0;
	left: 0;
    width: 100%;
	z-index: 9999;
}
.modal__bg{
    background: rgba(0,0,0,0.8);
    height: 100vh;
    position: absolute;
    width: 100%;
}
.modal__content{
    background: #fff;
    left: 50%;
    padding: 40px;
    position: absolute;
    top: 50%;
    transform: translate(-50%,-50%);
    width: 60%;
	overflow: scroll;
	height: 100%;
}

@media only screen and (max-width: 767px){
	.modal__content{
		background: none;
		width: 90%;
		height: 90%;
		padding: 0;
	}
	.js-modal-close {
		color: #FFF;;
	}
}


/*footer調整_220523*/
@media (max-width: 1280px) and (min-width: 768px) {
footer .inner{ padding:0 40px; min-width: 1000px;}
}
@media screen and (max-width:767px){
footer .inner{ padding:0; min-width: 240px;}
}
.footer_top2 dl{ display: flex; align-items: center; justify-content: space-between;}
.footer_top2 dl dt{ width: calc(100% - 540px); display: flex; align-items: center; justify-content: space-between;}
.footer_top2 dl dd{ width: 540px; padding-left: 40px;}
.footer_top2 dl dt .footer_logo{ width: calc(100% - 120px);}
.footer_top2 dl dt .footer_logo a{ display: flex; align-items: center; flex-direction: row;}
.footer_top2 dl dt .footer_logo figure{ width: 90px; margin: 0;}
.footer_top2 dl dt .footer_logo p{ font-size: 26px; font-weight: bold; color: #000; margin-left: 0.5em;}
.footer_top2 dl dt .twitter{ width: 40px; margin-left: 20px;}
.footer_top2 dl dt .instagram{ width: 40px; margin-left: 20px;}
.footer_top2 dl dd ul{ display: flex; justify-content: space-between; flex-wrap: wrap; align-items: flex-start;}
.footer_top2 dl dd ul li{ padding: 0px 20px; border-right: 1px solid #000;}
.footer_top2 dl dd ul li:last-child{ border-right: none;}
.footer_top2 dl dd ul li a{ color: #000;}
@media screen and (max-width:767px){
.footer_top2 dl dt{ width: 66.66%; flex-wrap: wrap; justify-content: center; align-items: flex-start;}
.footer_top2 dl dd{ width: 33.33%; padding-left: 2.5%;}
.footer_top2 dl dt a{ width: 100%;}
.footer_top2 dl dt .footer_logo{ width: 100%;}
.footer_top2 dl dt .footer_logo figure{ width: 25%;}
.footer_top2 dl dt .footer_logo p{ font-size: 4.5vw; letter-spacing: 0;}
.footer_top2 dl dt .twitter{ text-align: center; width: 7.5vw; margin: 5% 2.5vw 0;}
.footer_top2 dl dt .instagram{ text-align: center; width: 7.5vw; margin: 5% 2.5vw 0;}
.footer_top2 dl dd ul{ flex-direction:column;}
.footer_top2 dl dd ul li{ padding:0.25em 0; border-right: none;}
.footer_top2 dl dd ul li a{ font-size: 2.5vw;}
.footer_bottom li{ padding: 0 1em; margin: 0.5em 0; font-size: 2.5vw;}
}


/*目次カスタマイズ*/
#toc_container{ width: 100% !important; position: relative;}
#toc_container:after{ content: ""; width: 100%; height: 0; background: rgba(255,255,255,0.8); position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;}
#toc_container.contracted:after{ height: 50%;}
#toc_container:after{
background: -webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,0)),color-stop(10%,hsla(0,0%,100%,.8)),to(#fff));
background: linear-gradient(180deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.8) 10%,#fff);
}
#toc_container p.toc_title span.toc_toggle{ display: none !important;}
#toc_container p.toc_title span.toc_toggle_txt{ display: inline-block; vertical-align: middle; font-size: 90%; margin-left: 1em; color: #f19ca6; cursor: pointer;}
#toc_container p.toc_title span.toc_toggle_txt:hover{ text-decoration: underline;}
#toc_container p.toc_title span.toc_toggle_txt:before{ content: "[非表示]";}
#toc_container.contracted p.toc_title span.toc_toggle_txt:before{ content: "[表示する]";}
#toc_container span.toc_toggle_btn{ display: flex; align-items: center; justify-content: center; width: 160px; height: 40px; border: 1px solid #0066cc; color: #0066cc; background: #fff; cursor: pointer; transition: 0.3s; /*position: absolute; left: 0; right: 0; bottom: -60px;*/ position: relative; margin: auto; z-index: 5;}
#toc_container span.toc_toggle_btn:hover{ background: #0066cc; color: #fff;}
#toc_container span.toc_toggle_btn:before{ content: "非表示"; line-height: 1em; padding-bottom: 0.25em;}
#toc_container.contracted span.toc_toggle_btn:before{ content: "もくじを表示する"; line-height: 1em; padding-bottom: 0.25em;}
#toc_container ul.toc_list{ display: block !important; width: 100% !important; height: auto !important; overflow: hidden !important; opacity: 1.0 !important; margin: 0 !important; padding: 0 !important;}
#toc_container.contracted ul.toc_list{ height: 240px !important;}
@media only screen and (max-width: 767px){
#toc_container span.toc_toggle_btn{ dwidth: 33.33vw; height: 10vw;}
#toc_container.contracted ul.toc_list{ height: 50vw !important;}
}


/*pagetop*/
#pagetop{ position: fixed; right: 10px; bottom: 10px; width: 160px; z-index: 99;}
@media only screen and (max-width: 767px){
#pagetop{ position: fixed; right: 1.25vw; bottom: 20vw; width: 20vw;}
}

@media print, screen and (min-width:768px){
.smp{ display:none !important;}
}
@media screen and (max-width:767px){
.pc{ display:none !important;}
}


/* 種目選択のチェックボックススタイル調整 - 余白削除版 */
.search2_box_in dl dd ul {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.search2_box_in dl dd ul li {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 120px !important;
  /* 余白を完全に削除 */
  box-sizing: border-box !important;
}

.search2_box_in dl dd ul li label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important; /* 文字をセンタリング */
  padding: 8px !important; /* 均等なパディング */
  background: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  font-size: 14px !important;
  min-height: 40px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  gap: 0 !important; /* チェックボックスを隠すのでgapも0に */
  /* 余白を完全に削除 */
  margin: 0 !important;
  /* トランジションを完全に無効化 */
  transition: none !important;
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -o-transition: none !important;
}

.search2_box_in dl dd ul li label:hover {
  background: #f5f5f5 !important;
  border-color: #bbb !important;
}

.search2_box_in dl dd ul li input[type="checkbox"] {
  display: none !important; /* チェックボックスを完全に非表示 */
  margin: 0 !important;
  padding: 0 !important; /* パディングも削除 */
  flex-shrink: 0 !important;
  width: 0 !important; /* 幅を0に */
  height: 0 !important; /* 高さを0に */
  position: absolute !important;
  align-self: center !important;
  /* ブラウザのデフォルト余白を削除 */
  outline: none !important;
  vertical-align: baseline !important;
}

.search2_box_in dl dd ul li label span,
.search2_box_in dl dd ul li label {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.search2_box_in dl dd ul li input[type="checkbox"]:checked ~ *,
.search2_box_in dl dd ul li:has(input[type="checkbox"]:checked) label {
  background: #e3f2fd !important;
  border-color: #2196f3 !important;
  color: #1976d2 !important;
}

/* ガールズの項目は長いので、幅を広く */
.search2_box_in dl dd ul li:nth-child(9) {
  min-width: 200px !important;
}

.search2_box_in dl dd ul li:nth-child(9) label {
  white-space: normal !important;
}

/* より強力な余白削除（必要に応じて追加） */
.search2_box_in dl dd ul li *,
.search2_box_in dl dd ul li *::before,
.search2_box_in dl dd ul li *::after {
  box-sizing: border-box !important;
  transition: none !important;
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -o-transition: none !important;
}

/* ブラウザ固有のチェックボックス余白を削除 */
.search2_box_in dl dd ul li input[type="checkbox"] {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  border: none !important; /* 枠を非表示 */
  border-radius: 0 !important;
  position: relative !important;
}

/* チェック状態のスタイル - チェックマークは非表示 */
.search2_box_in dl dd ul li input[type="checkbox"]:checked {
  background: transparent !important;
  border: none !important; /* チェック時も枠を非表示 */
}

/* チェックマークを完全に非表示 */
.search2_box_in dl dd ul li input[type="checkbox"]:checked::after {
  display: none !important;
}

/* タブレット対応 */
@media screen and (max-width: 768px) {
  .search2_box_in dl dd ul {
    gap: 6px !important;
  }
  
  .search2_box_in dl dd ul li {
    flex: 0 0 calc(50% - 3px) !important;
    min-width: auto !important;
  }
  
  .search2_box_in dl dd ul li:nth-child(9) {
    flex: 0 0 100% !important;
    min-width: auto !important;
  }
  
  .search2_box_in dl dd ul li label {
    padding: 6px !important; /* 均等なパディング */
    font-size: 13px !important;
    min-height: 36px !important;
    gap: 0 !important; /* チェックボックス非表示なのでgapも0 */
    justify-content: center !important; /* タブレットでもセンタリング */
  }
  
  .search2_box_in dl dd ul li input[type="checkbox"] {
    width: 14px !important;
    height: 14px !important;
  }
}

/* スマホ対応 */
@media screen and (max-width: 480px) {
  .search2_box_in dl dd ul {
    gap: 4px !important;
  }
  
  .search2_box_in dl dd ul li {
    flex: 0 0 calc(50% - 2px) !important;
    min-width: auto !important;
  }
  
  .search2_box_in dl dd ul li:nth-child(9) {
    flex: 0 0 100% !important;
    min-width: auto !important;
  }
  
  .search2_box_in dl dd ul li label {
    padding: 4px !important; /* 均等なパディング */
    font-size: 12px !important;
    min-height: 32px !important;
    gap: 0 !important; /* チェックボックス非表示なのでgapも0 */
    justify-content: center !important; /* スマホでもセンタリング */
  }
  
  .search2_box_in dl dd ul li input[type="checkbox"] {
    width: 12px !important;
    height: 12px !important;
  }
}