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

/*--------------------
01.共通
02.header
03.main
04.footer


--------------------*/

/*----------
01.共通
----------*/
html { scroll-behavior: smooth;}

*{
box-sizing: border-box;
}

*:focus {
outline: none;
}

:root{
    --color-blue: #004c76;
    --color-yellow: #fec52e; 
    --color-green: #a6c30e; 
}


.wrapper{
width: 100%;
overflow: hidden;
font-family: 'Noto Sans JP', sans-serif;
color: #323232;
position: relative;
}

.pc{
display: block;
}

.sp{
display: none;
}

.sp_375{
display: none;
}


.tab{
display: none;
}

.contents_in{
max-width: 1180px;
width: 88.6%;
margin: 0 auto;
padding: 50px 0;
}

a{
color: #323232;
}

a:hover{
color: #323232;
}

a:link{
color: #323232;
}

@media screen and (min-width: 769px) {

    a[href^="tel:"] {
        pointer-events: none;
    }
}

/*
img{
width: 100%;
height: auto;
display: block;
}
*/

p{
/*    font-size: clamp(14px, 1.33vw, 22px);*/
    font-size: 16px;
    line-height: 1.8;
}

.underline{
	text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
	text-decoration-color: var(--color-yellow);
}

strong{
    font-weight: 600;
}

.text_link a{
    display: inline-block;
    position: relative;
}
.text_link a::before{
    content: '';
    display: block;
    border-image-width: 0;
    height: 1px;
    width: 0;
    background: #000;
    position: absolute;
    bottom: 2px;
    left: 0;
    transition: .3s ease;
}
.text_link a[target="_blank"]::after {
    content: "";
    display: inline-block;
    width: .8em;
    height: .8em;
    position: relative;
    top: 0;
    right: 0;
    margin-left: .5em;
    background: url(../images/blank.png) no-repeat;
    background-size: contain;
}
.text_link a:hover::before{
    width: 100%;
}

/*--- button ---*/

button{
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}



.btn_ptn01{
	max-width: 380px;
}

.btn_ptn01 a{
	display: block;
	position: relative;
	background: var(--color-green);
	color: #fff;
	padding: 23px 0 24px;
	text-align: center;
	font-size: 16px;
	border-radius: 40px;
	transition: .3s ease;
}

.btn_ptn01 a:hover{
	background: var(--color-blue);
}

.btn_ptn01 a::after{
	content: '';
	display: block;
	width: 6px;
	height: 12px;
	background-color: #fff;
	-webkit-mask-image: url('../images/arrow01.svg');
    -webkit-mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-image: url('../images/arrow01.svg');
    mask-size: 100% 100%;
    mask-repeat: no-repeat;
    mask-position: 0 0;
	position: absolute;
	top: 50%;
	right: 26px;
	transform: translateY(-50%);
}

.btn_ptn02{
	position: relative;
	width: fit-content;
	margin: 20px 0 0 auto;
	font-size: 12px;
}
.btn_ptn02 span::after, 
.btn_ptn02 a::after{
	content: '';
	display: block;
	width: 6px;
	height: 12px;
	background-color: #fff;
	-webkit-mask-image: url('../images/arrow01.svg');
    -webkit-mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-image: url('../images/arrow01.svg');
    mask-size: 100% 100%;
    mask-repeat: no-repeat;
    mask-position: 0 0;
	position: absolute;
	top: 50%;
	right: 11px;
	transform: translateY(-50%);
}

.btn_ptn02 a::before, 
.btn_ptn02 span::before{
	content: '';
	display: block;
	width: 30px;
	height: 30px;
	background: var(--color-green);
	border-radius: 50%;
	position: absolute;
	top: 0;
	right: 0;
	transition: .3s ease;
}

.btn_ptn02:hover a::before, 
.btn_ptn02:hover span::before{
	background: var(--color-blue);
}

.btn_ptn02 a, 
.btn_ptn02 span{
	display: block;
	width: fit-content;
	padding-right: 40px;
	line-height: 30px;
}


.btn_ptn03 {
	max-width: 280px;
	width: 100%;
}
.btn_ptn03 a{
	display: block;
	width: 100%;
	position: relative;
	background: #fff;
	border: 1px solid #e8e8e8;
	color: #626262;
	padding: 21px 0 21px;
	text-align: center;
	font-size: 16px;
	border-radius: 40px;
}

.btn_ptn03 a::after{
	content: '';
	display: block;
	background-color: #fff;
	-webkit-mask-image: url('../images/arrow01.svg');
    -webkit-mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-image: url('../images/arrow01.svg');
    mask-size: 100% 100%;
    mask-repeat: no-repeat;
    mask-position: 0 0;
	width: 6px;
	height: 12px;
	position: absolute;
	top: 50%;
	right: 26px;
	transform: translateY(-50%);
	z-index: 2;
}

.btn_ptn03 a::before{
	content: '';
	display: block;
	width: 30px;
	height: 30px;
	background: var(--color-green);
	border-radius: 50%;
	position: absolute;
	top: 50%;
	right: 14px;
	transform: translateY(-50%);
	transition: .3s ease;
	z-index: 1;
}

.btn_ptn03 a:hover::before{
	background: var(--color-blue);
}

.btn_g .btn_ptn04 a{
    min-height: 50px;
    padding: 0 40px 0 24px;
    line-height: 1.4;
    text-align: start;
    font-size: 15px;
    display: flex;
    align-items: center;
    color: inherit;
    text-decoration: none; 
}


.btn_ptn04 {
    max-width: 280px;
    width: 100%;
    border: 1px solid #004d75;
    border-radius: 40px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); 
    transition: background-color 0.3s ease; 
}

.btn_ptn04 a {
    padding: 22px 0 23px;
}

.btn_ptn04 a::before {
    content: "";
    display: block;
    width: 18px;
    height: 24px;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    background-size: contain;
    border-radius: 0;
}

.btn_ptn04 a::after{
    display: none;
}

.btn_g .btn_ptn04 a span{
    display: contents;
    font-size: 12px;
}




/*--- parts ---*/

.check_list li{
	line-height: 1.5;
    position: relative;
    padding-left: 1.8em;
    margin-bottom: 6px;
}

.check_list li::before{
	content: "";
    position: absolute;
	display: block;
	width: 1em;
    height: 1em;
    border: 1px solid #000;
    background: #fff;
    top: .3em;
    left: 0;
}

.check_list li::after{
	content: "";
    position: absolute;
	width: 1em;
    height: .5em;
    top: .3em;
    left: 0.2em;
    border-left: 1px solid var(--color-blue);
    border-bottom: 1px solid var(--color-blue);
    transform: rotate(-40deg);
}

.notes_list li{
    font-size: 12px;
    text-indent: -1em;
    padding-left: 1em;
    line-height: 1.5;
    margin-bottom: 6px;
    margin-top: -6px;    /*--- 0819追加 ---*/
}
.notes_list li.no_indent{
	text-indent: inherit;
	padding-left: 0;
}


/*--- animation ---*/

/* text */

.text_bg{
    display: block;
    height: auto;
    width: fit-content;
    position: relative;
    z-index: 1;
    overflow: hidden;
    color: #fff;
    padding: 8px 16px;
}

.text_bg::before{
    content: '';
    display: block;
    width: 0%;
    height: 100%;
    background: var(--color-blue);
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.text_bg .text_bg_inner{
    transform: translateY(120%);
	opacity: 0;
    display: inline-block;
}

.text_bg.appear::before{
    animation: textBg 1s forwards cubic-bezier(.71,.12,.18,.81);
}
.text_bg.appear .text_bg_inner{
    animation: textUp 1s forwards cubic-bezier(.71,.12,.18,.81);
    animation-delay: .5s;
}

@keyframes textBg {
    0% {

        width: 0%;
    }
    10% {

        width: 0%;
    }
    100% {
        width: 100%;
    }
}

@keyframes textUp {
    0% {

        transform: translateY(120%);
        opacity: 0
    }
    100% {
        transform: translateY(0%);
        opacity: 1
    }
}


.text_slide{
	overflow: hidden;
	transform: translate(-100%, 0);
	transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 1s;
	transition-delay: 1s;
}

.text_slide .text_slide_inner{
	display: block;
	transform: translate(100%, 0);
	transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 1s;
	transition-delay: 1s;
}

.text_slide.appear, 
.text_slide.appear .text_slide_inner{
	transform: translate(0, 0);
}

/* グラデーションアニメ */

@keyframes GradietionAnimation { 
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}



/* image */

.img_slide{
	width: 100%;
	padding-top: 61.4%;
	background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover;
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0);
    height: 0;
    position: relative;
    transition: -webkit-clip-path 1s cubic-bezier(.71,.12,.18,.81) 0s;
    transition: clip-path 1s cubic-bezier(.71,.12,.18,.81) 0s;
    transition: clip-path 1s cubic-bezier(.71,.12,.18,.81) 0s, -webkit-clip-path 1s cubic-bezier(.71,.12,.18,.81) 0s;
}

.img_slide.appear {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
}



/*--- 幾何学アニメーション ---*/
.particles_area{
    position: relative;
	z-index: 1;
}
#particles01{ 
    position: absolute;/*描画固定*/
    z-index:-1;/*描画を一番下に*/
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgb(221 239 246) 0%, rgb(183 209 225) 100%);/*背景色*/
}
#particles02{ 
    position: absolute;/*描画固定*/
    z-index:-1;/*描画を一番下に*/
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgb(232 233 237) 0%, rgb(209 213 223) 100%);/*背景色*/
}

.particles_inner{
  position: relative;/*描画を#particles-jsよりも上にするためposition:relative;を指定*/
  z-index: 1;/*z-indexの数字を大きくすることで描画を#particles-jsよりも上に*/
}



/*----------
02.header
----------*/

.sns_link{
	max-width: 135px;
    width: 100%;
}

.sns_link ul{
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.sns_link li{
	width: 25px;
}

header .btn_menu{
	display: block;
	width: 90px;
	height: 90px;
	background: url("../images/glare.png") no-repeat left -2px;
    background-size: 100% auto;
	background-color: var(--color-blue);
	position: fixed;
	top: 0;
	right: 0;
	padding: 23px 29px;
	z-index: 10;
}

header .btn_menu .menu_line{
	display: block;
	width: 32px;
	height: 1px;
	background: #fff;
	margin-bottom: 9px;
}

header .btn_menu .menu_text{
	font-size: 12px;
	color: #fff;
	display: block;
	margin-top: 10px;
}

/*  固定ボタン */
.fix_area{
	display: block;
	width: 90px;
	position: fixed;
	top: 90px;
	right: 0;
	z-index: 10;
}

.fix_area .fix_btn_g li a{
	color: #fff;
	font-size: 12px;
	background: rgb(0 76 118 / 95%);
	display: flex;
	width: 100%;
	height: 112px;
	text-align: left;
	align-items: center;
	justify-content: center;
	writing-mode: vertical-rl;
	position: relative;
    line-height: 1.4;
}


.fix_area .fix_btn_g li a::before{
	content: '';
	display: block;
	width: 26px;
	height: 26px;
	background: url("../images/icon_event.png") no-repeat center;
	background-size: contain;
	margin-bottom: 6px;
	filter: drop-shadow(3px 5px 2px rgba(0, 0, 0, 0.1));
}

.fix_area .fix_btn_g li a::after{
	content: '';
	display: block;
	width: 10px;
	height: 100%;
	background: #fff;
	opacity: .3;
	position: absolute;
	top: 0;
	left: 0;
	transition: .5s cubic-bezier(.71,.12,.18,.81);
}
.fix_area .fix_btn_g li a:hover::after{
	width: 100%;
	opacity: .1;
}

.fix_area .fix_btn_g li:last-of-type a{
	border-radius: 0 0 0 20px;
	overflow: hidden;
}

/*    オンライン説明会ボタンがある時
.fix_area .fix_btn_g .event a{
    height: 136px;
    background: #0183c7;
    background: linear-gradient(135deg, #00d0e6, #0483c8, #00a5e6); 
    background-size: 300% 300%;
    animation: GradietionAnimation 5s ease infinite;
}
.fix_area .fix_btn_g .form a{
	background: rgb(244 146 65 / 95%);
}
.fix_area .fix_btn_g .contact a{
	background: rgb(132 185 178 / 95%);
}


.fix_area .fix_btn_g .event a::before{
	background: url("../images/icon_event.png") no-repeat center;
	background-size: contain;
}


.fix_area .fix_btn_g .form a::before{
	background: url("../images/icon_form.png") no-repeat center;
	background-size: contain;
}

.fix_area .fix_btn_g .contact a::before{
	background: url("../images/icon_contact.png") no-repeat center;
	background-size: contain;
}


/* オンライン説明会ボタンない時 */
.fix_area .fix_btn_g .form a{
	background: #0183c7;
    background: linear-gradient(135deg, #00d0e6, #0483c8, #00a5e6); 
    background-size: 300% 300%;
    animation: GradietionAnimation 5s ease infinite;
}
.fix_area .fix_btn_g .contact a{
	background: rgb(244 146 65 / 95%);
}

.fix_area .fix_btn_g .form a::before{
	background: url("../images/icon_form02.png") no-repeat center;
	background-size: contain;
}

.fix_area .fix_btn_g .contact a::before{
	background: url("../images/icon_contact02.png") no-repeat center;
	background-size: contain;
}


/*  ナビゲーション */

header nav{
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	background: var(--color-blue);
	z-index: 11;
	color: #fff;
	transform: translateY(-110%);
	transition: .8s cubic-bezier(.71,.12,.18,.81);
	overflow: hidden;
}

header nav.show{
	transform: translateY(0);
}

.nav_sitename a,
.header_nav_g a,
.nav_btn_g a{
	color: #fff;
}

header .nav_inner{
    height: calc(100vh - 114px);
    overflow-y: scroll;
}

header .contents_in{
    padding-top: 0;
}

.nav_top{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 30px 0;
    margin-bottom: 40px;
}

.nav_sitename {
	font-size: 32px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: #fff;
	display: block;
}
.nav_sitename .name_small{
	font-size: 14px;
	display: block;
	margin-bottom: 6px;
	letter-spacing: 0;
	font-weight: 400;
}

.btn_close{
	display: block;
	width: 48px;
	height: 48px;
	position: relative;
}
.btn_close .menu_line{
	display: block;
	width: 48px;
	height: 1px;
	background: #fff;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	transform: rotate(45deg) translateY(-50%);
}
.btn_close .menu_line:nth-of-type(2){
	transform: rotate(-45deg) translateY(-50%);
}

.nav_main{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 8px;
}

.header_nav_g{
	display: block;
	max-width: 380px;
	width: 32%;
}

.header_nav_g .nav_img{
	width: 100%;
	padding-top: 39.45%;
	background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover;
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0);
    height: 0;
    position: relative;
    transition: -webkit-clip-path 1s cubic-bezier(.71,.12,.18,.81) 0s;
    transition: clip-path 1s cubic-bezier(.71,.12,.18,.81) 0s;
    transition: clip-path 1s cubic-bezier(.71,.12,.18,.81) 0s, -webkit-clip-path 1s cubic-bezier(.71,.12,.18,.81) 0s;
	transition-delay: .5s;
	margin-bottom: 15px;
}

nav.show .header_nav_g .nav_img {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
}

.header_nav_g .nav_category .nav_en{
	font-size: 20px;
	margin-bottom: 10px;
}
.header_nav_g .nav_category .nav_title{
	font-size: 22px;
	display: inline-block;
	padding-left: 22px;
	line-height: 1.4;
	position: relative;
}
.header_nav_g .nav_category{
	margin-bottom: 26px;
	letter-spacing: 0.02em;
}

.header_nav_g .nav_lower li{
	padding-left: 22px;
	font-size: 14px;
	line-height: 1.4;
	margin-bottom: 12px;
	position: relative;
}

.header_nav_g .nav_category .nav_title::before, 
.header_nav_g .nav_lower li::before{
	content: '';
	display: block;
	width: 10px;
	height: 1px;
	background: #fff;
	position: absolute;
	top: .75em;
	left: 2px;
}

.header_nav_g .nav_category .nav_title:hover::before, 
.header_nav_g .nav_lower li:hover::before{
	animation: navLine .8s forwards ease;
}


@keyframes navLine {
    0% {

        width: 10px;
    }
    20% {
        transform: translateX(10px);
        width: 0px;
    }
    30% {
        transform: translateX(0px);
        width: 0px;
    }
    100% {
        transform: translateX(0);
        width: 10px;
    }
}

.header_nav_g .nav_category .toggle_switch{
    display: none;
}

.nav_btn_g.top{
    padding-bottom: 20px;
/*    border-bottom: 1px dotted #fff;*/
    margin-bottom: 20px;
}
.nav_btn_g.bottom{
    padding-top: 20px;
/*    border-top: 1px dotted #fff;*/
    margin-bottom: 40px;
}

.nav_btn_g ul{
    display: flex;
    justify-content: space-between;
}

.nav_btn_g li{
    width: 23.65%;
    /*width: 32%; お知らせ非表示の場合 */
    max-width: 380px;
}


.nav_btn_g .cv_link li{
/*    width: 32%;*/
    width: 48.98%;/* オンライン説明会非表示の場合 */
    max-width: none; /*　オンライン説明会非表示の場合*/ 
}

.nav_btn_g li a{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 50px;
    padding: 14px 6px;
    text-align: center;
    border: 1px solid #fff;
    transition: .3s ease;
    font-size: 14px;
    line-height: 1.4;
}

.nav_btn_g li a:hover{
    background: #fff;
    color: var(--color-blue);
}

.nav_btn_g .cv_link li a{
    background: #fff;
    color: var(--color-blue); 
    font-size: 16px;
    height: 62px;
}


.nav_btn_g .cv_link li a:hover{
    background: none;
    color: #fff;
}


.header_info{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.header_copy{
    font-size: 30px;
    font-weight: 600;
    text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 10px;
    margin-bottom: 30px;
    letter-spacing: 0.02em;
}


/*----------
03.main
----------*/




/*----------
04.footer
----------*/


.btn_top{
    display: block;
    position: fixed;
    bottom: -100px;
    right: 0;
    width: 90px;
    z-index: 10;
    transition: .5s ease;
}
.btn_top.show{
    bottom: 20px;
}
.btn_top.bottom{
    bottom: 7vw;
}
.btn_top span{
    font-size: 12px;
    display: block;
    color: #bfbfbf;
    width: 45px;
    padding: 30px 13px 12px 18px;
    border: 1px solid #bfbfbf;
    border-radius: 50px;
    font-family: "Oswald", sans-serif;
    font-weight: 400;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: sideways;
    position: relative;
    margin: 0 auto;
    cursor: pointer;
}
.btn_top span::before{
    content: '';
    display: block;
    width: 6px;
    height: 12px;
    background-color: #bfbfbf;
    -webkit-mask-image: url(../images/arrow01.svg);
    -webkit-mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-image: url(../images/arrow01.svg);
    mask-size: 100% 100%;
    mask-repeat: no-repeat;
    mask-position: 0 0;
    position: absolute;
    top: 12px;
    right: 0;
    left: 0;
    margin: 0 auto;
    transform: rotate(-90deg);
}


.cv_area{
	width: 100%;
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
}

.cv_area a{
	display: block;
	color: #fff;
	font-size: 26px;
	font-weight: 600;
	text-align: center;
	padding: 75px 0 90px;
	letter-spacing: 0.1em;
	text-decoration: underline;
	text-underline-offset: 15px;
	position: relative;
}

.cv_area a::before{
	content: '';
	display: block;
	width: 30px;
	height: 30px;
	background: #FFF;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	transition: .3s ease;
	z-index: 1;
}

.cv_area a::after{
	content: '';
	display: block;
	width: 6px;
	height: 12px;
	background-color: #fff;
	-webkit-mask-image: url('../images/arrow01.svg');
    -webkit-mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-image: url('../images/arrow01.svg');
    mask-size: 100% 100%;
    mask-repeat: no-repeat;
    mask-position: 0 0;
	position: absolute;
	top: 50%;
	right: 31px;
	transform: translateY(-50%);
	z-index: 1;
}

.cv_area .btn_event{
	width: 50%;
    /*アニメーションの指定*/
    transition: all 0.3s ease-out;
/*
    background: var(--color-yellow);
    background: linear-gradient(135deg, #fee223, #ffb000, #ff829e);
*/
	background: #0183c7;
    background: linear-gradient(90deg, #00d0e6, #0483c8, #00a5e6);
    background-size: 300% 300%;
    animation: GradietionAnimation 12s ease infinite;
}

.cv_area .btn_event a::after{
	background-color: #0183c7;
}

.cv_area .btn_form{
	width: 50%;
    /*アニメーションの指定*/
    transition: all 0.3s ease-out;
/*
    background: var(--color-blue);
    background: linear-gradient(135deg, #007f99, #005984, #007f99); 
*/
	background: #f49241;
	background: linear-gradient(90deg, #f2c042, #f49241, #ffb56f); 
    background-size: 300% 300%;
    animation: GradietionAnimation 12s ease infinite;
}
.cv_area .btn_form a::after{
	background-color: #f49241;
}

.cv_area .btn_event:hover, 
.cv_area .btn_form:hover {
    color: #fff;
/*    background-position: 99% 50%;*/
    opacity: .9;
}

footer{
	background-color: #f8f8f9;
	background: linear-gradient(to bottom, #f8f8f9 0%, transparent 40%, transparent 100%), url(../images/bg_footer.png);
	background-position: center bottom;
/*	background-size: 100% auto;*/
	background-size: cover;
	background-repeat: no-repeat;
	padding: 50px 0 16.6vw;
}

footer .footer_top{
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
}

.footer_sitemap{
	display: flex;
}

.footer_sitemap_list{
	margin-right: 22px;
}

.footer_sitemap_list .nav_category{
	margin-bottom: 28px;
}

.footer_sitemap_list .nav_category{
	
}

.footer_sitemap_list .nav_category a{
	font-weight: 600;
	color: var(--color-blue);
}

.footer_sitemap_list .nav_category:has(+ .nav_lower){
	margin-bottom: 16px;
}

.footer_sitemap_list .nav_category:has(+ .sns_link){
	margin-bottom: 36px;
}


.footer_sitemap_list .toggle_switch{
	display: none;
}

.footer_sitemap_list ul.nav_lower{
	margin-bottom: 24px;
}

.footer_sitemap_list ul.nav_lower li{
	font-size: 12px;
	line-height: 28px;
    padding-left: 4px;
}

.footer_info .footer_copy{
	font-size: 40px;
	font-weight: 600;
	line-height: 2;
	color: var(--color-blue);
	display: block;
	text-decoration: underline;
	text-decoration-thickness: 2px;
    text-underline-offset: 12px;
	margin-bottom: 65px;
	margin-top: -20px;
}

.footer_info .footer_copy span{
	padding-left: 2em;
	display: block;
}

.footer_sitename{
	display: block;
	margin-bottom: 10px;

}

.footer_sitename a{
	color: var(--color-blue);
	font-size: 37px;
	font-weight: 600;
	letter-spacing: 0.06em;
}
.footer_sitename span{
	font-size: 14px;
	margin-bottom: 10px;
	font-weight: 400;
	display: block;
	letter-spacing: 0;
}

.footer_info .department{
	display: block;
	background: var(--color-blue);
	color: #fff;
	font-size: 18px;
	padding: 4px 8px 6px;
	width: fit-content;
	margin-bottom: 6px;
}

.footer_info .notes{
	font-size: 14px;
}
.footer_info .notes span{
	font-size: 12px;
}
.footer_info .address{
	line-height: 1.6;
	margin-top: 16px;
}
.footer_info .address span{
	font-size: 12px;
}

.footer_bottom{
	padding: 0;
}
.footer_bottom .bottom_link{
	margin-bottom: 22px;
}

.footer_bottom .bottom_link li{
	display: inline-block;
	margin-right: 30px;
	font-size: 12px;
	line-height: 2.0;
}
p.copyright{
	font-size: 12px;
}

.toggle_line {
    display: block;
    width: 12px;
    height: 1px;
    background-color: var(--color-blue);
    position: absolute;
    top: 50%;
    right: 0;
	left: 0;
	margin: 0 auto;
    transform: translateY(-1px);
    transition: all 0.4s;
}

.toggle_switch .toggle_line:first-child {
    transform: translateY(-1px) rotate(90deg);
}

.toggle_switch.active .toggle_line{ transform: translateY(-.1rem) rotate(180deg);}



@media all and (max-width: 1280px){
/*----------
01.共通
----------*/


/*----------
02.header
----------*/
    
   .nav_btn_g li a, 
   .nav_btn_g .cv_link li a{
        font-size: 13px;
    }
    
    .header_nav_g{
        width: 32%;
    }

/*----------
03.main
----------*/

/*----------
04.footer
----------*/
    

}



@media all and (max-width: 1024px){
/*----------
01.共通
----------*/
	
.contents_in{
	width: 94%;
}

.tab{
	display: block;
}



/*----------
02.header
----------*/

    .nav_btn_g ul{
        width: 100%;
    }
    .header_info{
        display: block;
        margin-bottom: 28px;
    }
/*     
    .header_sitename a, 
    .lower .header_sitename a{
        font-size: 28px;
    }
    .header_sitename a .name_small, 
    .lower .header_sitename a .name_small{
        font-size: 12px;
    }
     */
    header .btn_menu{
        width: 72px;
        height: 72px;
        padding: 19px 23px;
    }
    header .btn_menu .menu_line{
        width: 26px;
        margin-bottom: 8px;
    }
    header .btn_menu .menu_text{
        font-size: 10px;
        text-align: center;
    }
    .fix_area{
        top: 72px;
        width: 72px;
    }
    .fix_area .fix_btn_g li a::after{
        width: 6px;
    }

/*----------
03.main
----------*/

/*----------
04.footer
----------*/
    
    .btn_top{
        width: 72px;
    }
	
	footer{
		background-size: 1500px auto;
		padding: 20px 0 180px;
	}
	
	.footer_info .footer_copy{
		font-size: 28px;
	}
	.footer_sitename{
		margin-bottom: 6px;
	}
	.footer_sitename a{
		font-size: 20px;
	}
	.footer_sitename span {
		font-size: 11px;
		margin-bottom: 6px
	}
	.footer_info .department{
		font-size: 14px;
	}
	.footer_info .notes{
		font-size: 12px;
	}
	.footer_info .address{
		font-size: 12px;
	}
    

}

@media screen and (orientation: portrait) {

}


@media all and (max-width: 768px){

/*----------
01.共通
----------*/

.pc{
display: none;
}

.sp{
display: block;
}

.tab{
display: none;
}


.contents_in{
width: 90.6%;
/*	padding: 40px 0;*/
}
	

	
	

	

	.btn_ptn01{
		max-width: 338px;
		margin: 0 auto;
	}
	.btn_ptn02{
		margin: 16px 0 0 auto;
	}
	
	.btn_ptn03{
		max-width: 218px;
		margin: 0 auto;
	}
	.btn_ptn03 a{
		padding: 18px 0;
	}
	.btn_ptn03 a::before{
		right: 11px;
	}
	.btn_ptn03 a::after{
		right: 23px;
		width: 5.5px;
		height: 11px
	}
	.btn_ptn04{
		margin-top:10px
	}
	
	
/*--- parts ---*/

	.check_list li{
		padding-left: 1.6em;
	}

	.check_list li::before{
		width: .8em;
		height: .8em;
		top: .4em;
	}


/*----------
02.header
----------*/
/*     
    .header_sitename{
        left: 18px;
    }
    .header_sitename a .name_small, 
    .lower .header_sitename a .name_small, 
    .nav_sitename .name_small{
        font-size: 9px;
    }

    .header_sitename a{
        font-size: 20px;
    }
    .lower .header_sitename{
        top: 6px;
    }
    .lower .header_sitename a{
        font-size: 16px;
    } */
    /* .header_sitename .header_note{
        font-size: 10px;
        margin-top: 6px;
    }
    .lower .header_sitename .header_note{
        font-size: 8px;
        margin-top: 5px;
    } */
    
    header .btn_menu{
        width: 56px;
        height: 56px;
        padding: 20px 19px;
    }
    header .btn_menu .menu_line{
        width: 18px;
        margin-bottom: 6px;
    }
    header .btn_menu .menu_text{
        display: none;
    }

    
    
/*  固定ボタン　SP  */
    
    .fix_area{
        width: 100%;
        top: auto;
        bottom: 0;
    }
    .fix_btn_g{
        display: flex;
        justify-content: flex-start;
        align-items: stretch;
    }
    .fix_area .fix_btn_g li{
/*        width: 28%;  オンライン説明会ありの場合 */
        width: 50%;/* オンライン説明会なしの場合 */
    }
    .fix_area .fix_btn_g .event{
        width: 44%;
    }
    .fix_area .fix_btn_g li:last-of-type a{
        border-radius: 0;
    }
    .fix_area .fix_btn_g .event a,
    .fix_area .fix_btn_g li a{
        writing-mode: inherit;
        height: 52px;
        font-size: 14px;/* オンライン説明会なしの場合 */
    }
    .fix_area .fix_btn_g li a::before{
        margin-right: 4px;
        margin-bottom: 0;
/*
        width: 22px;
        height: 22px;
*/
        width: 26px;/* オンライン説明会なしの場合 */
        height: 26px;
    }
    .fix_area .fix_btn_g li a::after{
        height: 5px;
        width: 100%;
    }
    
    .fix_area .fix_btn_g li a:hover::after{
        height: 100%;
        width: 100%;
    }
    
/*  ナビゲーション */
    
    .nav_top{
        padding: 10px 18px 0;
        margin-bottom: 18px;
    }
    
    .nav_sitename{
        font-size: 18px;
    }
    
    
    .btn_close{
        width: 32px;
        height: 32px;
    }
    .btn_close .menu_line{
        width: 44px;
    }
    
    header .contents_in{
        width: 85.33%;
		padding-bottom: 100px;
    }
    header .nav_inner {
        height: calc(100vh - 60px);
    }
    
    .nav_main{
        display: block;
        margin-bottom: 20px;
    }
    .header_nav_g{
        width: 100%;
        margin: 0 auto 10px;
    }

    .header_nav_g .nav_category{
        position: relative;
        margin-bottom: 10px;
    }
    .header_nav_g .nav_category .nav_en{
        display: none;
    }
    .header_nav_g .nav_img{
        margin-bottom: 0;
    }
    
    .header_nav_g .nav_category .nav_title{
        position: absolute;
        bottom: 0;
        left: 0;
        width: calc(100% - 42px);
        height: 42px;
        font-size: 20px;
        background: rgb(0 76 118 / 80%);
    }
    .header_nav_g .nav_category .nav_title a{
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
    }
    
    .header_nav_g .nav_category .toggle_switch{
        display: block;
        background: #fff;
        width: 42px;
        height: 42px;
        position: absolute;
        bottom: 0;
        right: 0;
    }
    .header_nav_g .nav_category .nav_title::before{
        top: 50%;
    }
    .header_nav_g .nav_lower{
        padding-bottom: 10px;
        display: none;
    }
    .header_nav_g .nav_lower li:last-of-type{
        margin-bottom: 0;
    }
    
    .nav_btn_g{
        margin-bottom: 40px;
    }
    .nav_btn_g ul{
        display: block;
    }
    
    .nav_btn_g .cv_link {
        display: flex;
        max-width: 380px;
        margin: 0 auto;
    }
    .nav_btn_g .cv_link li,
    .nav_btn_g li{
        width: 100%;
        margin: 0 auto;
    }
    .nav_btn_g li a{ border-bottom: none;}
    .nav_btn_g li:last-of-type a{ border-bottom: 1px solid;}   
    .nav_btn_g .cv_link li a{ border-right: 1px solid var(--color-blue); font-size: 14px; height: 74px;}
    .nav_btn_g .cv_link li:last-of-type a{ border: none;}

    .nav_btn_g li a:hover {
        background: transparent;
        color: #fff;
    }
    .nav_btn_g .cv_link li a:hover {
        background: #fff;
        color: var(--color-blue);
    }

    
    .nav_btn_g.top{
        padding-bottom: 0;
        border: none;
    }
    .nav_btn_g.bottom{
        padding-top: 0;
        border: none;
    }
    
    .header_copy{
        font-size: 22px;
        line-height: 2.0;
    }
    
    .copyright{
        
    }
/*----------
03.main
----------*/

/*----------
04.footer
----------*/
    .btn_top{
        display: none;
    }
	
	.cv_area{
		display: block;
	}
	
	.cv_area .btn_event, 
	.cv_area .btn_form{
		width: 100%;
	}
	
	.cv_area a{
		font-size: 18px;
		text-underline-offset: 10px;
		padding: 48px 0 52px;
	}
  

	footer{
		padding: 0 0 150px;
		background-size: 1200px auto;
        margin-bottom: 48px;
	}
	
	footer .footer_top{
		display: block;
		width: 100%;
		background: #f8f8f9;
	}
	
	.footer_sitemap{
		width: 100%;
		display: block;
		margin: 0 auto 50px;
	}
	.footer_sitemap_list{
		margin: 0;
	}
	.footer_sitemap_list .nav_category{
		background: #fff;
		border-top: 1px solid var(--color-blue);
		padding: 0 68px 0 0;
		font-size: 15px;
		position: relative;
		margin-bottom: 0;
	}
	.footer_sitemap_list .nav_category a{
		width: 100%;
		padding: 25px 25px 25px 4.7vw ;
		display: block;
		line-height: 1.2;
	}
	
	.footer_sitemap_list .nav_category:has(+ .nav_lower){
		margin-bottom: 0;
    }
	
	.footer_sitemap_list .nav_category:has(+ .sns_link){
		border-bottom: 1px solid var(--color-blue);
		margin-bottom: 36px;
	}
	
	
	.footer_sitemap_list .toggle_switch{
		display: block;
		border-left: 1px solid rgb(0 76 118 / 40%);
		width: 68px;
		height: 100%;
		position: absolute;
		top: 0;
		right: 0;
	}
	
	.footer_sitemap_list ul.nav_lower{
		margin-bottom: 0;
	}
	
	.footer_sitemap_list ul.nav_lower li{
		font-size: 15px;
		line-height: 1.2;
	}
	
	.footer_sitemap_list ul.nav_lower li a{
		display: block;
		padding: 25px 85px 25px 4.7vw ;
		background-image: linear-gradient(to right, rgb(0 76 118 / 40%), rgb(0 76 118 / 40%) 2.5px, transparent 2.5px, transparent 8px);
		background-size: 6px 1px;
		background-position: left top;
		background-repeat: repeat-x;
	}
	
	.footer_sitemap_list ul.nav_lower{
		display: none;
	}
	
	.footer_sitemap_list .sns_link{
		max-width: 165px;
		margin: 0 auto;
	}
	
	.footer_info{
		width: 90.6%;
		margin: 0 auto;
	}
	.footer_info .footer_copy{
		font-size: 22px;
		margin: -10px 0 40px;
	}
	.footer_bottom .bottom_link li{
		display: block;
	}
	
	
	

}



@media all and (max-width: 375px){

/*----------
01.共通
----------*/

.sp_375{
display: block;
}

	
}

.mg_l_1em{
    margin-left: 1em;
}

.s_01 .accordion_one {
    max-width: 1024px;
    margin: 0 auto;
   
/* 
    border-top: 1px solid;
    border-left: 1px solid;
    border-right: 1px solid;
*/
    margin-bottom: 1em;

    }
    .s_01 .accordion_one .accordion_header {
    /* background-color: #db0f2f; */
    background-color: #f4f4f4;
    /* color: #fff; */
    font-size: 18px;
    font-weight: bold;
    padding: 15px 2%;
    position: relative;
    z-index: +1;
    cursor: pointer;
    transition-duration: 0.2s;
    }
    .s_01 .accordion_one:nth-of-type(2) .accordion_header {
        /* background-color: #ff9a05; */
    background-color: #f4f4f4;
    }
  /*  .s_01 .accordion_one:nth-of-type(3) .accordion_header {
        background-color: #1c85d8;
    }*/
    .s_01 .accordion_one .accordion_header:hover {
    opacity: .8;
    }
    .s_01 .accordion_one .accordion_header .i_box {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 50%;
    right: 5%;
    width: 40px;
    height: 40px;
    /* border: 1px solid #fff; */
    margin-top: -20px;
    box-sizing: border-box;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    transform-origin: center center;
    transition-duration: 0.2s;
    }
    .s_01 .accordion_one .accordion_header .i_box .one_i {
    display: block;
    width: 18px;
    height: 18px;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    transform-origin: center center;
    transition-duration: 0.2s;
    position: relative;
    }
    .s_01 .accordion_one .accordion_header.open .i_box {
    -webkit-transform: rotate(-360deg);
    transform: rotate(-360deg);
    }
    .s_01 .accordion_one .accordion_header .i_box .one_i:before, .s_01 .accordion_one .accordion_header .i_box .one_i:after {
    display: flex;
    content: '';
    /* background-color: #fff; */
    
    background-color: #484848;
    border-radius: 10px;
    width: 16px;
    height: 2px;
    /* width: 18px;
    height: 4px; */
    position: absolute;
    top: 7px;
    left: 0;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
    transform-origin: center center;
    }
    .s_01 .accordion_one .accordion_header .i_box .one_i:before {
    width: 2px;
    height: 16px;
    /* width: 4px;
    height: 18px; */
    top: 0;
    left: 7px;
    }
    .s_01 .accordion_one .accordion_header.open .i_box .one_i:before {
    content: none;
    }
    .s_01 .accordion_one .accordion_header.open .i_box .one_i:after {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    }
    .s_01 .accordion_one .accordion_inner {
    display: none;
    padding: 10px 1em;
    /* border-left: 2px solid #db0f2f;
    border-right: 2px solid #db0f2f;
    border-bottom: 2px solid #db0f2f; */
    /*border-bottom: 1px solid;*/
    box-sizing: border-box;
    }
    .s_01 .accordion_one:nth-of-type(2) .accordion_inner {
    /* border-left: 2px solid #ff9a05;
    border-right: 2px solid #ff9a05;
    border-bottom: 2px solid #ff9a05; */
/*    border-bottom: 1px solid ;*/
    }
    .s_01 .accordion_one:nth-of-type(3) .accordion_inner {
   /* border-left: 2px solid #1c85d8;
    border-right: 2px solid #1c85d8;
    border-bottom: 2px solid #1c85d8;*/
    }
    .s_01 .accordion_one .accordion_inner .box_one {
    /* height: 300px; */
    }
    .s_01 .accordion_one .accordion_inner p.txt_a_ac {
    margin: 0;
    }
    @media screen and (max-width: 1024px) {
    .s_01 .accordion_one .accordion_header {
        font-size: 18px;
    }
    .s_01 .accordion_one .accordion_header .i_box {
        width: 30px;
        height: 30px;
        margin-top: -15px;
    }
    }
    @media screen and (max-width: 767px) {
    .s_01 .accordion_one .accordion_header {
        font-size: 15px;
        text-align: left;
        /* padding: 15px 60px 15px 15px; */
        padding: 10px 60px 10px 15px;        
    	border-bottom: 1px solid;
	padding: 20px 11%;
    	text-align: center;
    }

    .box_one li{
        padding-left: 0!important;
    }

    .box_one  li:last-child{
        padding-bottom:0em!important;
    }

    }