@charset "utf-8";

/*****************************************************************

SP 共通レイアウト定義

*****************************************************************/

/* ====== BASE Module SET ===== */
html{
scroll-padding-top: 60px;
}
body{
}

img{
max-width: 100%;
}

.tel_dis{ cursor: pointer; }

.sp_i{ display: inline; }
.sp_b{ display: block; }

.pc_i{ display: none; }
.pc_b{ display: none; }

.pc_ib{ display: none; }
.sp_ib{ display: inline-block; *display: inline; zoom: 1; }

#sub ul a,
.link{
display: block;
position: relative;
text-decoration: none;
overflow: hidden;
}

#sub ul a::after,
.link::after{
content:"";
display: block;
width:10px;
height:10px;
border-top:1px solid #999;
border-right:1px solid #999;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
position: absolute;
right:10px;
top:50%;
margin-top:-7px;
}

/*============================================================
Page / column
============================================================*/
#page{
overflow: hidden;
padding-top: 62px;
}

.inner{
}


/*============================================================
TopContentsStyle
============================================================*/


/*============================================================
Nav
============================================================*/
.btn_sp_menu{
position: absolute;
top: 15px;
right: 5px;
display: block;
width: 30px;
height: 30px;
background: url("../images/btn_sp_btn.png") no-repeat;
background-size: 100% auto;
z-index: 110;

}
.menu_on{
overflow: hidden;
}
.menu_on  .btn_sp_menu{
background-image: url("../images/btn_sp_btn_on.png")
}
#page_header{
position: fixed;
z-index: 100;
}
#page_header .out_menu{
display: none;
}
#page_header .logo {
width: 200px;
}
.main_menu{ display: none; }

.sp_menu{
transform: translateX(100%);
transition: 0.25s transform;
color: #fff;
background: #2d498a;
overflow: auto;
bottom: 0;
left: 0;
top: 0;
padding: 50px 0;
width: 100%;
position: fixed;
z-index: 100;
scrollbar-width: none;
}
.sp_menu::-webkit-scrollbar{
display: none;
}

.menu_on .sp_menu{
transform: translateX(0);
}
.sp_menu a{
color: #fff;
text-decoration: none;
display: block;
}
.sp_menu form{
position: relative;
padding: 10px 15px 15px 15px;
}
.sp_menu .inp_search{
width: 100%;
border: 0 solid #000;
padding:  10px 10px 10px 30px;
display: block;
border-radius: 30px;
box-sizing: border-box;
}
.sp_menu .btn_search{
position: absolute;
display: block;
top: 20px;
left: 25px;
width: 18px;
}
.sp_menu .sub_menu{
display: block;
position: static;
}
.sp_menu .sp_main_menu a{
padding: 10px 10px 10px 15px;
border-bottom: 1px solid #fff;
position: relative;
}

.sp_menu .sp_main_menu{
font-weight: bold;
font-size: 18px;
}
.sp_menu .sp_main_menu a::before{
content: "";
display: block;
position: absolute;
top: 50%;
width: 10px;
height: 10px;
right: 15px;
border-top: 3px solid #fff;
border-right: 3px solid #fff;
transform: rotate(45deg);
margin-top: -7px;
}
.sp_menu .sp_main_menu .parent_menu::before{
transform: rotate(135deg);
}
.sp_menu .sp_main_menu a.on::before{
transform: rotate(-45deg);
margin-top: -2px;
}
.sp_menu .sub_menu{
background: #ebebeb;
/*display: none;*/

display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.25s;
}
.sp_menu .sub_menu a::before{
content:  normal;
}
.sp_menu .on+.sub_menu{
/*display: block;*/
grid-template-rows: 1fr;
}
.sp_menu .sp_main_menu dl{
margin-left: 1em;
overflow: hidden;
}
.sp_menu .sp_main_menu{
border-top: 1px solid #fff;
}
.sp_menu .sp_main_menu dt{
padding: 0;
color: #000;

position: relative;
}
.sp_menu .sp_main_menu dt::before{
display: block;
content: "";
position: absolute;
top: 50%;
width:5px;
height: 5px;
left: 0;
border-top: 2px solid #d45f61;
border-right: 2px solid #d45f61;
transform: rotate(45deg);
margin-top: -2px;
}
.sp_menu .sp_main_menu dd{
/*display: none;
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.25s;*/
display: block;
}
.sp_menu .sp_main_menu .on+dd{
/*display: block;*/
grid-template-rows: 1fr;
}
.sp_menu .sp_main_menu ul{
font-weight: normal;
}
.sp_menu .sp_main_menu dl ul a{
padding: 5x 0 5px 15px;
}
.sp_menu .sub_menu a{
color: #3684c6;
border: 0;
}
.sp_menu .sub_menu ul  a{
color: #000;
}
.sp_menu .sp_min_menu{
margin-top: 15px;
}
.sp_menu .sp_min_menu a{
padding: 5px 0 5px 15px;
}

/*============================================================
Main
============================================================*/
#main{
width: 100%;
}

/* Main Design */
#main p,
#main ul,
#main dl,
#main ol,
#main blockquote,
#main pre,
#main td,
#main th{
}

#main table{
margin-bottom: 1em;
}

#main td,
#main th{
margin-bottom: 0;
}

#main h1,
#main h2,
#main h3,
#main h4,
#main h5,
#main h6{
}

/* default */
#main ul ul,
#main ul p,
#main ul blockquote,
#main ul pre,
#main ul dl,
#main dl dl,
#main dl p,
#main dl ul,
#main dl ol,
#main blockquote p,
#main blockquote ul,
#main blockquote dl,
#main blockquote ol,
#main ol blockquote,
#main ol pre,
#main ol p,
#main td p,
#main td ul,
#main td dl{
}

#main *:last-child{
margin-bottom: 0;
}

/* ===== top_head ===== */
#main .top_head{
/* font-size: 187.5%;*/
}
.check_page #main .top_head{
margin-bottom: 1em;
}

/*============================================================
Page / column
============================================================*/

#main .top_slide .slick-slide{
padding:  0;
}
#main .top_slide .slick-dots{
bottom: 10px;
}
.top_slide .slick-prev {
left: 2%;
}
.top_slide .slick-next {
right: 2%;
}

#main .top_menu ul{
grid-template-columns: repeat(2, 1fr);  column-gap: 10px; row-gap: 20px;
}
#main .top_menu{
padding: 30px 0;
}
#main .top_menu ul .ico{
width: 40px;
margin-top: -20px;
}
#main .news_list a{
display: block;
}
#main .news_list b{
padding:  10px;
margin-top: 10px;
}

/* ===== sec_top_access ===== */
#main .sec_top_access{
padding: 20px 0;
}
#main .sec_top_access .top_head{
font-size: 150%;
text-align: left;
margin: 0 0 1em 0;
}
#main .access_area{
display: block;
}
#main .access_area .map_area{
aspect-ratioa: 4/3;
margin-top: 15px;
}
#main .access_data_area{
margin-top: 20px;
display: block;
}
#main .access_data_area h3{
font-size: 125.0%;
margin: 1.5em 0  0.5em 0;
}


/*============================================================
chk_area
============================================================*/
#main .chk_area h2{
font-size: 112.5%;
line-height: 1.5;
}
#main .total{
padding:  0 20px;
}
#main .totalOn{
padding:  20px;
margin: 30px auto;
}


#main .total h2 strong{
font-size: 125%;
}
#main .total h3 {
font-size: 125%;
line-height: 1.5;
text-align: left;
}

/*============================================================
page_2nd
============================================================*/

#main .side_menu{
padding: 20px 10px;
}
#main .side_menu h2{
font-size: 112.5%;
}
#main .side_menu li{ line-height: 1.5;}
#main .side_menu_sec{
position: relative;
top: 0;
left: 0;
transform: none;

transition: none;
border-radius: 10px;
width: auto;
pointer-events: auto;
padding: 0;
overflow: hidden;
margin-bottom: 10px;
}
#main .current_on+.side_menu_sec{
pointer-events: auto;
transform: none;
width: 100%;
transition: none;
padding: 0;
}

#main .side_menu_sec .btn_menu_close{
display: none;
}
#main .current_on+.side_menu_sec .btn_menu_close{
}


#main .side_menu_sec ul{
opacity: 1;
transition: none;
min-width: auto;
}

#main .current_on+.side_menu_sec ul{
opacity: 1;
transition: none;
}
#main .side_menu_sec a{
padding:  15px 10px 15px 40px;
background-position: 10px 52%;
}
#main .side_menu .side_parent{
background: none;
transition: 0.2s;
}
#main .side_menu .current_on{
background-size: 22px 0;
}

/* ===== path ===== */
#main .path{
margin:  0;
padding: 15px 0 25px 0;
font-size: 88%;
}
/* ===== main_content ===== */
#main .main_content_area{
display: flex;
flex-wrap: wrap;
}
#main .sub_area{
width: 100%;
min-width: 100%;
order: 2;
}

#main .main_content{
padding: 45px 0;
width: 100%;
margin-left: 0;
height:  auto;
order: 1;
}
/* ===== top_head ===== */
#main .top_head{
line-height: 1;
text-align: center;
margin-bottom: 2em;
font-size: 225%;
}

/*============================================================
main_content
============================================================*/

#main .main_content h1{
font-size: 187.5%;
}
#main .main_content h2{
font-size: 150%;
padding-left: 10px;
}
#main .main_content h2::before{
width: 5px;
}
#main .main_content h3{
font-size: 150%;
}

/*============================================================
images_float
============================================================*/
figure {
width: 100%;
}

#main .img_r ,#main .img_l{
float: unset;
margin: 1em auto;
display: block;
}

/*============================================================
Table・flow
============================================================*/

#main .simple_table {
width: auto;
}

#main .js-scrollable td,
#main .js-scrollable th {
white-space: nowrap;
}
#main .js-scrollable table {
margin-bottom: 0;
}
#main .js-scrollable {
margin-bottom: 30px;
}

#main .simple_flow .flow_stepbox .flow_steptitle {
min-width: unset;
}

#main .sideflow {
gap: 20px;
}
#main .sideflow > li {
max-width: unset;
display: block;
}
#main .sideflow > li:not(:first-child) dl::before {
display: none;
}

#main .sideflow > li dl dt {
display: flex;
align-items: center;
}
#main .sideflow > li .sideflow_icon {
margin: 0 1em;
}


/*============================================================
document page
============================================================*/
#main .book_box {
    flex-direction: column;
    align-items: center;
}

#main .book_img {
    margin-bottom: 3%;
}
/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
XXXX
============================================================*/

/*============================================================
Footer
============================================================*/
.bnr_area{
padding:  25px 0;
}
.bnr_area li{ text-align: left;}
#page_footer{
padding: 25px 0 30px 0;
}
#page_footer p{
line-height: 1.5;
font-size: 78%;
margin-bottom: 1em;
}
#page_footer strong{
font-size: 125%;
}
.foot_menu{
display: none;
}
