@charset "UTF-8";
body {
  font-size: 16px;
font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  color: #333333;
}
img {
  height: auto;
  max-width: 100%;
}


main {
	overflow: hidden;
}



.img {overflow: hidden;
white-space: nowrap;
text-indent: 999%;}


.flex {
  display: flex;
  justify-content: space-between; /* 左右両端揃え */
  align-items: center;  
}

.wrap {
	width: 1400px;
	margin: 0 auto;
	overflow: hidden;
}
.wrap2 {
	width: 1100px;
	margin: 0 auto;
	overflow: hidden;
}

header .wrap {
	max-width: 1400px;
	width: 94%;
}

header h1 {
	width: 300px;
}

header {
background:rgba(255,255,255,0.6);
padding: 20px;
position: fixed;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 3;
}

header nav {
	width: 60%;
}


header ul {
	text-align: right;

}

header ul li {
	display: inline-block;
	margin-left: 4%;

}
header ul li a {
  display: block; /* 常に block にしておく */
	padding-right: 20px;
	background: url("../images/head_menu.png") no-repeat;
	background-position: right center;
	font-weight: bold;
}


header ul li a:hover {
color: #332fc8;
	background: url("../images/head_menu_on.png") no-repeat;
	background-position: right center;
}

footer {
	background: #030328;
	padding: 35px 0;
}
footer aside {
	width: 50%;
	text-align: right;
}

footer small,footer aside a {
color: white;
}
footer aside a {
display: inline-block;
margin-right: 5%;
	text-decoration: underline;
}



h3.title {
	font-size: 50px;
	color: #332fc8;
	font-weight: bold;
	text-align: center;
	margin-bottom: 5%;
}

h3.title img {
	display:block;
	margin: 20px auto 0;
}

p.greeting {
	text-align: center;
	font-size: 23px;
	font-weight: bold;
}




section.to_link {
background: url("../images/to_link.png") no-repeat;
background-position: center;
	background-size: cover;
	padding: 90px 0;
}
section.to_link2 {
background: url("../images/to_link2.png") no-repeat;
background-position: center;
	background-size: cover;
	padding: 60px 0;
}

section.to_link h3 {
	color: white;
	font-size: 1.8rem;
	text-align: center;
	margin-bottom: 3%;
	font-weight: bold;
	line-height: 160%;
}

section.to_link dl {
	background: white;
	padding: 40px;

}

section.to_link dt {
	text-align: center;
	color: #332fc8;
	font-size: 30px;
	font-weight: bold;
	padding-bottom: 3%;
	margin-bottom: 4%;
	border-bottom: 1px solid;
}
section.to_link dd {
	text-align: center;
	font-size: 20px;
	font-weight: bold;
}

section.to_link dd a {
	display: block;
	margin-top: 5%;
}

#access {
padding: 65px 0;

}
#access article {
	padding-bottom: 5%;
}
#access aside p {
	text-align: center;
	padding-bottom: 3%;
	font-size: 23px;
}

#access {
padding: 65px 0;

}


#support {
background: linear-gradient(to top left, #f0f2ff 50%, #dfe2fe 50%);
padding: 65px 0 0;
	margin-bottom: 7%;
}

#support .philosophy {
	padding: 40px 0;
}




#support .philosophy .sec {
	margin-bottom: 6%;
}

#support .philosophy .sec1 {
position: relative;
	z-index: 1;
}
#support .philosophy .sec2 {
position: relative;
    z-index: 0;
    margin-top: -150px;
}

#support .philosophy .sec article.wrap2 {
  position: relative;
filter: drop-shadow(0 0 20px #a6a6a6);
    overflow: visible;
  z-index: 2;
}
#support .philosophy .sec article.wrap2::before {
  content: "";
  position: absolute;
  top: 0;
    left: -80%;
bottom: 0;
  width: 120%; /* 少し広めに */
  background: #fff;
  z-index: -1;

}

#support .philosophy .sec_rev article::before {
display: none;
}
#support .philosophy .sec_rev article::after {
content: "";
    position: absolute;
    top: 0;
    left: auto;
    right: -50%;
    bottom: 0;
    width: 100%;
    background: #fff;
    z-index: -1;
}

/* 左側テキスト */
#support .philosophy .sec article div {
  background: #fff;
position: relative;
	padding:3rem 2rem;
}
#support .philosophy .sec_rev article div {
	padding-top: 8rem;
}



/* 左側テキスト */
#support .philosophy .sec_rev article div {
margin-left: auto;
}

#support .philosophy article.pic dl {
	width: 48%;
}
#support .philosophy article.pic dt {
	line-height: 200%;
}

#support .philosophy article.pic dt span {
  font-size: 2.2rem;
	display: inline-block;
	color: white;
	background: #332fc8;
	font-weight: bold;
	padding:10px 5px;
	margin-bottom: 10px;
}
#support .philosophy article.pic dd {
  font-size: 1.1rem;
	font-weight: bold;
	margin-top: 20px;
}

#support .philosophy aside {
	margin-top: 3%;
}

#support .philosophy aside dt {
	background: #332fc8;
	color: white;
	font-weight: bold;
	padding:2.4rem 2.5em;
    font-size: 1.4rem;
width: 21%;
    position: relative;
    z-index: 1;
}

#support .philosophy aside dd {
    font-size: 1.4rem;
    font-weight: bold;
    margin-top: 20px;
    width: 93%;
    padding: 3rem 3rem 3rem 8rem;
    border: 1px solid #332fc8;
    margin-left: -75px;
}
#support .philosophy aside dd span {
background:linear-gradient(transparent 60%, #dbe0fa 60%);
}

#support .wrap3 {
	width: 900px;
	margin: 5% auto;
	background: url("../images/wrap3_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
	padding: 2rem 6rem;
}

#support .wrap3 li {
	color: white;
	font-size: 1.3rem;
	background: url("../images/check.png") no-repeat;
	background-position: left center;
	padding-left: 40px;
	font-weight: bold;
	margin: 15px 0;
}

#support .slide_infinite dt {
	text-align: center;
	font-weight: bold;
	font-size: 1.6rem;
	margin-bottom: 3%;
}

#support .slide_infinite dt span {
	color: #332fc8;
	background:linear-gradient(transparent 60%, #dbe0fa 60%);
}

/* ラッパーで横幅制限 & overflow隠す */
.slider-wrapper {
  overflow: hidden;
  width: 100%; /* 必要に応じて調整 */
}

/* スライダー全体 */
.slider {
  display: flex;
  width: calc(6 * 400px * 2); /* スライド幅 * 枚数 * 2 */
  animation: scroll 60s linear infinite; /* 無限スクロール */
}

/* 各スライド */
.slider .img {
  flex: 0 0 400px; /* スライド幅 */
}

/* 画像サイズ調整 */
.slider .img img {
  width: 100%;
  display: block;
}



#overview {
padding: 65px 0;

}
#overview .floor1 {
background: url("../images/overview_1f.png") no-repeat;
background-position: 75% top;
    background-size: 1920px auto;
	padding-top: 190px;
}

#overview .floor2 {
	margin: 3% 0;
	padding: 3% 0;
  background: linear-gradient(
    to right,
    #ffffff 0%,        /* 左端の紫 */
    #ffffff 10%,       /* 左側の紫領域 */
    #eceffe 10%,       /* 白い中央領域開始 */
    #eceffe 70%,       /* 白い中央領域終了 */
    #eceffe 70%,       /* 右側の紫領域開始 */
    #eceffe 100%       /* 右端の紫 */
  );
}


#overview .floor2 .bk {
background: url("../images/overview_2f.png") no-repeat;
background-position: 35% top;
    background-size: 1920px auto;
	padding-top: 45px;
}


#overview .map {
	display: block;
	margin: 5% auto;
}

#overview ul.flex {
	margin: 5% 0;
    flex-wrap: wrap;
    gap: 10px;
}


#overview ul.flex li {
  flex: 1 0 calc(33.333% - 10px); /* 横3個（100% ÷ 3） */
}

#overview ul.flex li dl {
	position: relative;
	margin: -15% 10% 0;
	z-index: 1;
	background: #332fc8;
	padding: 5%;
	min-height: 160px;
}
#overview ul.flex li dt {
	text-align: center;
	color: white;
	padding-bottom: 3%;
	margin-bottom: 3%;
	font-size: 1.2rem;
	border-bottom: 1px solid;
}

#overview ul.flex li dt span {
	font-size: 0.8rem;
}

#overview ul.flex li dd {
	color: white;
}

#overview .floor2 h3 {
	width: 47%;
	margin-left: auto;
line-height: 200%;
}
#overview .floor2 h3 span {
    font-size: 2.2rem;
    display: inline-block;
    color: white;
    background: #332fc8;
    font-weight: bold;
    padding: 10px 5px;
    margin-bottom: 10px;
}
#overview .floor2 .end {
	display: block;
	margin: 4% auto;
}
#overview .floor2 aside {
font-size: 1.2rem;
    font-weight: bold;
	padding: 3rem;
	background: white;
	margin: 0 5%;
}

#overview .floor2 aside dt {
    border: 1px solid #332fc8;
    font-weight: bold;
	color:  #332fc8;
    padding: 2.4rem 2.1em;
    font-size: 1.4rem;
    width: 17%;
	text-align: center;
}

section.item {
	margin: 0px auto 65px;
	background: url("../images/item_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
	padding: 2rem;
}
section.item h3 {
	background: white;
	padding:1rem 0.5rem;
	text-align: center;
	color: #332fc8;
	font-size: 2.5rem;
	font-weight: bold;
	letter-spacing: 0.1rem;
}
section.item h3 span {
	font-size: 1.7rem;
}
section.item p {
	color: white;
	margin: 3% 0;
	font-size: 1.5rem;
}
section.item p span {
	font-size: 1.2rem;
}
section.item ul {
	margin: 2% 0;
flex-wrap: wrap; 
  gap: 10px; 
}

section.item li {
  flex: 1 0 calc(20% - 10px); /* 1行に5個（100% ÷ 5 = 20%） */
  box-sizing: border-box;
  text-align: center;
  padding: 10px;
	color: white;
}
section.item li img {
	display: block;
	margin-bottom: 6%;
}

section.item li span {
	display: block;
	text-align: center;
	min-height: 40px;
}






section.item aside {
font-size: 1.2rem;
    font-weight: bold;
	padding: 2rem;
	background: white;
}

section.item aside dt {
    border: 1px solid #332fc8;
    font-weight: bold;
	color:  #332fc8;
    padding: 3rem 1em;
    font-size: 1.4rem;
    width: 20%;
	text-align: center;
}
section.item aside dd {
	width: 75%;
}


#faq {
padding: 65px 0;

}


/* 必須 */
.accordion-content {
  display: none;
}


.accordion-header {
  background:url("../images/q_icon.png") no-repeat #dbe0fa;
	background-position: 10px center;
  padding: 2.5rem 20px 2.5rem 110px;
  margin: 10px 0 0;
  transition: background .3s ease;
  cursor: pointer;
	font-size:25px;
  position: relative;
	font-weight: bold;
}

.accordion-header::before,
.accordion-header::after{
    position: absolute;
    content: '';
    top: 1px;
    right: 30px;
    bottom: 0;
    width: 25px;
    height: 2px;
    margin: auto;
    background: #332fc8;
}
.accordion-header::after{
  transform:rotate(-90deg);
  transition:transform 0.3s;
}
.accordion-header.active::after{transform:rotate(0deg);}

.accordion-content {
  background:url("../images/a_icon.png") no-repeat #eceffc;
	background-position: 10px 1.5rem;
  padding: 2.5rem 70px 2.5rem 110px;
	font-size:25px;
	line-height: 160%;
  position: relative;
	font-weight: bold;
}

.accordion-header span,
.accordion-content span{
  position: relative;
}


.greet_area {
	background: url("../images/greetarea_bk.png") no-repeat;
	background-position: center right;
	background-size: 46%;
	padding: 5% 0;
}

.greet_area dl {
	width: 52%;
	padding: 120px 0 200px;
}

.greet_area dd {
	font-weight: bold;
	line-height: 200%;
	margin-top: 8%;
	
}



.fix_btn {
	display: block;
	width: 50px;
	position: fixed;
	right: 0%;
	top: 15%;
	z-index: 3;
}
.fix_btn img {
	width: 100%;
}
.fix_btn li:first-of-type {
	margin-bottom: 10px;
}


#case {
background: url("../images/case_bk.png") no-repeat;
background-position: center;
background-size: cover;
padding: 130px 0;
}
#case .title {
color: white;
}

#case .list {
background: white;
padding: 2rem 6rem;
	margin-bottom: 5%;
}

#case .list ul li {
	color: #332fc8;
font-size: 1.3rem;
background: url(../images/check.png) no-repeat;
background-position: left center;
padding-left: 40px;
font-weight: bold;
margin: 15px 0;
}

#case article {
	width: 900px;
	margin: 2% auto;
	position: relative;
	background: white;
	padding:30px;
}

#case article .ab {
	position: absolute;
    left: -7px;
    top: 15px;
	z-index: 1;
}
#case article:nth-of-type(2) .ab {
	position: absolute;
	left: auto;
    right: -7px;
    top: 15px;
	z-index: 1;
}


#case article div{
padding-left: 30px;
}

#case article div h3 {
	margin-bottom: 30px;
}

#case article div dl {
	border-bottom: 3px solid white;
}

#case article div dt,#case article div dd {
	display: table-cell;
	font-weight: bold;
	font-size: 1.1rem;
}
#case article div dt {
	border-right: 3px solid white;
	background: #d4dafa;
	padding: 10px;
	line-height: 120%;
	vertical-align: middle;
	text-align: center;
}
#case article div dd {
	background: #e9edfc;
	width: 340px;
	padding: 10px;
	line-height: 120%;
}

#feature {
    background: linear-gradient(to top left, #f0f2ff 50%, #dfe2fe 50%);
    padding: 100px 0;
}

#feature article {
	margin: 3% 0;
}


#feature article:nth-of-type(odd) dl {
	width: 550px;
	padding-left: 25px;
}
#feature article:nth-of-type(2n) dl {
	width: 550px;
	padding-right: 25px;
}


#feature dt span {
    font-size: 2.2rem;
    display: inline-block;
    color: white;
    background: #332fc8;
    font-weight: bold;
    padding: 10px 5px;
    margin-bottom: 10px;
}
#feature dt span:last-of-type {
	margin-bottom: 0;
}

#feature dd {
	font-weight: bold;
    font-size: 1.1rem;
	margin-top: 30px;
}

#feature article:nth-of-type(1) dt {
background: url("../images/feature_num1.png") no-repeat;
background-position: right bottom;
background-size: contain;
}
#feature article:nth-of-type(2) dt {
background: url("../images/feature_num2.png") no-repeat;
background-position: right bottom;
background-size: contain;
}
#feature article:nth-of-type(3) dt {
background: url("../images/feature_num3.png") no-repeat;
background-position: right bottom;
background-size: contain;
}
#feature article:nth-of-type(4) dt {
background: url("../images/feature_num4.png") no-repeat;
background-position: right bottom;
background-size: contain;
}


.fv_sub {
	background: url("../images/wrap3_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
}

.fv_sub article {
	position: relative;
	z-index: 1;
    margin-top: -90px;
}


.fv_sub article ul {
    filter: drop-shadow(0 0 20px #a6a6a6);
}

.fv_sub dl {
	padding-top: 20px;
}

.fv_sub dt {
	color: white;
	text-align: center;
	font-size: 1.3rem;
	font-weight: bold;
}
.fv_sub dd {
text-align: center;
}

.full div {
  background-repeat: no-repeat;
  background-size: 1920px auto;
  background-position: center;
  height: 804px;
  margin: 0;
}
.full div.img01 {
background-image: url("../images/fv_slide1.png");
}
.full div.img02 {
background-image: url("../images/fv_slide2.png");
}
.full div.img03 {
background-image: url("../images/fv_slide3.png");
}
.full div.img04 {
background-image: url("../images/fv_slide4.png");
}

.fv {
	position: relative;
}

.fv article {
	width: 100%;
	height: 804px;
	position: absolute;
	background: url("../images/fv_cover.png") no-repeat;
	background-position: center;
	background-size: 1920px;
	left: 0;
	top: 0;
}
.fv article h1 {
	margin-top: 150px;
}



@media (min-width: 1401px) {
.sp {
        display: none !important;
    }
}



@media (min-width: 1025px) and (max-width: 1400px) {
.sp {
        display: none !important;
    }

img {
max-width: 100%;
height: auto !important;
}



.wrap {
	width: 1000px;
	margin: 0 auto;
	overflow: hidden;
}
.wrap2 {
	width: 900px;
	margin: 0 auto;
	overflow: hidden;
}

header .wrap {
	max-width: 1100px;
	width: 94%;
}

header h1 {
	width: 300px;
}

header {
background:rgba(255,255,255,0.6);
padding: 20px;
position: fixed;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 3;
}

header nav {
	width: 75%;
}


header ul {
	text-align: right;

}

header ul li {
	display: inline-block;
	margin-left: 4%;

}
header ul li a {
  display: block; /* 常に block にしておく */
	padding-right: 20px;
	background: url("../images/head_menu.png") no-repeat;
	background-position: right center;
	font-weight: bold;
}


header ul li a:hover {
color: #332fc8;
	background: url("../images/head_menu_on.png") no-repeat;
	background-position: right center;
}

footer {
	background: #030328;
	padding: 35px 0;
}
footer aside {
	width: 50%;
	text-align: right;
}

footer small,footer aside a {
color: white;
}
footer aside a {
display: inline-block;
margin-right: 5%;
	text-decoration: underline;
}



h3.title {
	font-size: 50px;
	color: #332fc8;
	font-weight: bold;
	text-align: center;
	margin-bottom: 5%;
}

h3.title img {
	display:block;
	margin: 20px auto 0;
}

p.greeting {
	text-align: center;
	font-size: 23px;
	font-weight: bold;
}




section.to_link {
background: url("../images/to_link.png") no-repeat;
background-position: center;
	background-size: cover;
	padding: 90px 0;
}
section.to_link2 {
background: url("../images/to_link2.png") no-repeat;
background-position: center;
	background-size: cover;
	padding: 60px 0;
}

section.to_link h3 {
	color: white;
	font-size: 1.8rem;
	text-align: center;
	margin-bottom: 3%;
	font-weight: bold;
	line-height: 160%;
}

section.to_link dl {
	background: white;
	padding: 40px;

}

section.to_link dt {
	text-align: center;
	color: #332fc8;
	font-size: 30px;
	font-weight: bold;
	padding-bottom: 3%;
	margin-bottom: 4%;
	border-bottom: 1px solid;
}
section.to_link dd {
	text-align: center;
	font-size: 20px;
	font-weight: bold;
}

section.to_link dd a {
	display: block;
	margin-top: 5%;
}

#access {
padding: 65px 0;

}
#access article {
	padding-bottom: 5%;
}
#access aside p {
	text-align: center;
	padding-bottom: 3%;
	font-size: 23px;
}

#access {
padding: 65px 0;

}


#support {
background: linear-gradient(to top left, #f0f2ff 50%, #dfe2fe 50%);
padding: 65px 0 0;
	margin-bottom: 7%;
}

#support .philosophy {
	padding: 40px 0;
}




#support .philosophy .sec {
	margin-bottom: 6%;
}

#support .philosophy .sec1 {
position: relative;
	z-index: 1;
}
#support .philosophy .sec2 {
position: relative;
    z-index: 0;
    margin-top: -150px;
}

#support .philosophy .sec article.wrap2 {
  position: relative;
filter: drop-shadow(0 0 20px #a6a6a6);
    overflow: visible;
  z-index: 2;
}
#support .philosophy .sec article.wrap2::before {
  content: "";
  position: absolute;
  top: 0;
    left: -80%;
bottom: 0;
  width: 120%; /* 少し広めに */
  background: #fff;
  z-index: -1;

}

#support .philosophy .sec_rev article::before {
display: none;
}
#support .philosophy .sec_rev article::after {
content: "";
    position: absolute;
    top: 0;
    left: auto;
    right: -50%;
    bottom: 0;
    width: 100%;
    background: #fff;
    z-index: -1;
}

/* 左側テキスト */
#support .philosophy .sec article div {
  background: #fff;
position: relative;
	padding:3rem 2rem;
}
#support .philosophy .sec_rev article div {
	padding-top: 8rem;
}
	#support .philosophy .sec article div article.pic img {
		width: 400px;
	}


/* 左側テキスト */
#support .philosophy .sec_rev article div {
margin-left: auto;
}

#support .philosophy article.pic dl {
	width: 48%;
}
#support .philosophy article.pic dt {
	line-height: 200%;
}

#support .philosophy article.pic dt span {
  font-size: 1.6rem;
	display: inline-block;
	color: white;
	background: #332fc8;
	font-weight: bold;
	padding:10px 5px;
	margin-bottom: 10px;
}
#support .philosophy article.pic dd {
  font-size: 1.1rem;
	font-weight: bold;
	margin-top: 20px;
}

#support .philosophy aside {
	margin-top: 3%;
}

#support .philosophy aside dt {
background: #332fc8;
color: white;
font-weight: bold;
padding: 2.4rem 0;
font-size: 1.4rem;
width: 21%;
position: relative;
z-index: 1;
text-align: center;
}

#support .philosophy aside dd {
    font-size: 1.2rem;
    font-weight: bold;
    margin-top: 20px;
    width: 93%;
    padding:3rem 1rem 3rem 7rem;
    border: 1px solid #332fc8;
    margin-left: -75px;
}
#support .philosophy aside dd span {
background:linear-gradient(transparent 60%, #dbe0fa 60%);
}

#support .wrap3 {
	width: 900px;
	margin: 5% auto;
	background: url("../images/wrap3_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
	padding: 2rem 6rem;
}

#support .wrap3 li {
	color: white;
	font-size: 1.3rem;
	background: url("../images/check.png") no-repeat;
	background-position: left center;
	padding-left: 40px;
	font-weight: bold;
	margin: 15px 0;
}

#support .slide_infinite dt {
	text-align: center;
	font-weight: bold;
	font-size: 1.6rem;
	margin-bottom: 3%;
}

#support .slide_infinite dt span {
	color: #332fc8;
	background:linear-gradient(transparent 60%, #dbe0fa 60%);
}

/* ラッパーで横幅制限 & overflow隠す */
.slider-wrapper {
  overflow: hidden;
  width: 100%; /* 必要に応じて調整 */
}

/* スライダー全体 */
.slider {
  display: flex;
  width: calc(6 * 400px * 2); /* スライド幅 * 枚数 * 2 */
  animation: scroll 60s linear infinite; /* 無限スクロール */
}

/* 各スライド */
.slider .img {
  flex: 0 0 400px; /* スライド幅 */
}

/* 画像サイズ調整 */
.slider .img img {
  width: 100%;
  display: block;
}



#overview {
padding: 65px 0;

}
#overview .floor1 {
background: url("../images/overview_1f.png") no-repeat;
background-position: 75% top;
    background-size:1200px auto;
	padding-top: 190px;
}

#overview .floor2 {
	margin: 3% 0;
	padding: 3% 0;
  background: linear-gradient(
    to right,
    #ffffff 0%,        /* 左端の紫 */
    #ffffff 10%,       /* 左側の紫領域 */
    #eceffe 10%,       /* 白い中央領域開始 */
    #eceffe 70%,       /* 白い中央領域終了 */
    #eceffe 70%,       /* 右側の紫領域開始 */
    #eceffe 100%       /* 右端の紫 */
  );
}


#overview .floor2 .bk {
background: url("../images/overview_2f.png") no-repeat;
background-position: 35% top;
    background-size: 1200px auto;
	padding-top: 45px;
}


#overview .map {
	display: block;
	margin: 5% auto;
}

#overview ul.flex {
	margin: 5% 0;
    flex-wrap: wrap;
    gap: 10px;
}


#overview ul.flex li {
  flex: 1 0 calc(33.333% - 10px); /* 横3個（100% ÷ 3） */
}

#overview ul.flex li dl {
	position: relative;
	margin: -15% 10% 0;
	z-index: 1;
	background: #332fc8;
	padding: 5%;
	min-height: 160px;
}
#overview ul.flex li dt {
	text-align: center;
	color: white;
	padding-bottom: 3%;
	margin-bottom: 3%;
	font-size: 1.1rem;
	border-bottom: 1px solid;
}

#overview ul.flex li dt span {
	font-size: 0.7rem;
}

#overview ul.flex li dd {
	color: white;
        font-size: 0.9rem;
}

#overview .floor2 h3 {
	width: 47%;
	margin-left: auto;
line-height: 200%;
}
#overview .floor2 h3 span {
    font-size:1.8rem;
    display: inline-block;
    color: white;
    background: #332fc8;
    font-weight: bold;
    padding: 10px 5px;
    margin-bottom: 10px;
}
#overview .floor2 .end {
	display: block;
	margin: 4% auto;
}
#overview .floor2 aside {
font-size: 1.2rem;
    font-weight: bold;
	padding: 3rem 1rem;
	background: white;
	margin: 0 5%;
}

#overview .floor2 aside dt {
    border: 1px solid #332fc8;
    font-weight: bold;
	color:  #332fc8;
    padding: 2.4rem 0;
    font-size: 1.4rem;
    width: 17%;
	margin-right: 1rem;
	text-align: center;
}

section.item {
	margin: 0px auto 65px;
	background: url("../images/item_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
	padding: 2rem;
}
section.item h3 {
	background: white;
	padding:1rem 0.5rem;
	text-align: center;
	color: #332fc8;
	font-size: 2.5rem;
	font-weight: bold;
	letter-spacing: 0.1rem;
}
section.item h3 span {
	font-size: 1.7rem;
}
section.item p {
	color: white;
	margin: 3% 0;
	font-size: 1.5rem;
}
section.item p span {
	font-size: 1.2rem;
}
section.item ul {
	margin: 2% 0;
flex-wrap: wrap; 
  gap: 10px; 
}

section.item li {
  flex: 1 0 calc(20% - 10px); /* 1行に5個（100% ÷ 5 = 20%） */
  box-sizing: border-box;
  text-align: center;
  padding: 10px;
	color: white;
}
section.item li img {
	display: block;
	margin-bottom: 6%;
}

section.item li span {
	display: block;
	text-align: center;
	min-height: 40px;
}






section.item aside {
font-size: 1.2rem;
    font-weight: bold;
	padding: 2rem;
	background: white;
}

section.item aside dt {
    border: 1px solid #332fc8;
    font-weight: bold;
	color:  #332fc8;
    padding: 3rem 1em;
    font-size: 1.4rem;
    width: 20%;
	text-align: center;
}
section.item aside dd {
	width: 75%;
}


#faq {
padding: 65px 0;

}


/* 必須 */
.accordion-content {
  display: none;
}


.accordion-header {
  background:url("../images/q_icon.png") no-repeat #dbe0fa;
	background-position: 10px center;
background-size: 55px;
  padding: 2.5rem 20px 2.5rem 110px;
  margin: 10px 0 0;
  transition: background .3s ease;
  cursor: pointer;
	font-size:21px;
  position: relative;
	font-weight: bold;
}

.accordion-header::before,
.accordion-header::after{
    position: absolute;
    content: '';
    top: 1px;
    right: 30px;
    bottom: 0;
    width: 25px;
    height: 2px;
    margin: auto;
    background: #332fc8;
}
.accordion-header::after{
  transform:rotate(-90deg);
  transition:transform 0.3s;
}
.accordion-header.active::after{transform:rotate(0deg);}

.accordion-content {
  background:url("../images/a_icon.png") no-repeat #eceffc;
background-size: 55px;
	background-position: 10px 2rem;
  padding: 2.5rem 70px 2.5rem 110px;
	font-size:18px;
	line-height: 160%;
  position: relative;
	font-weight: bold;
}

.accordion-header span,
.accordion-content span{
  position: relative;
}


.greet_area {
	background: url("../images/greetarea_bk.png") no-repeat;
	background-position: center right;
	background-size: 46%;
	padding: 5% 0;
}

.greet_area dl {
	width: 52%;
	padding: 120px 0 100px;
}

.greet_area dd {
	font-weight: bold;
	line-height: 200%;
	margin-top: 8%;
	
}



.fix_btn {
	display: block;
	width: 50px;
	position: fixed;
	right: 0%;
	top: 15%;
	z-index: 3;
}
.fix_btn img {
	width: 100%;
}
.fix_btn li:first-of-type {
	margin-bottom: 10px;
}


#case {
background: url("../images/case_bk.png") no-repeat;
background-position: center;
background-size: cover;
padding: 130px 0;
}
#case .title {
color: white;
}

#case .list {
background: white;
padding: 2rem 3rem;
	margin-bottom: 5%;
}

#case .list ul li {
	color: #332fc8;
font-size: 1.2rem;
background: url(../images/check.png) no-repeat;
background-position: left center;
background-size: contain;
padding-left: 40px;
font-weight: bold;
margin: 15px 0;
}

#case article {
	width: 900px;
	margin: 2% auto;
	position: relative;
	background: white;
	padding:30px;
}

#case article .ab {
	position: absolute;
    left: -7px;
    top: 15px;
	z-index: 1;
}
#case article:nth-of-type(2) .ab {
	position: absolute;
	left: auto;
    right: -7px;
    top: 15px;
	z-index: 1;
}


#case article div{
padding-left: 30px;
}

#case article div h3 {
	margin-bottom: 30px;
}

#case article div dl {
	border-bottom: 3px solid white;
}

#case article div dt,#case article div dd {
	display: table-cell;
	font-weight: bold;
	font-size: 1.1rem;
}
#case article div dt {
	border-right: 3px solid white;
	background: #d4dafa;
	padding: 10px;
	line-height: 120%;
	vertical-align: middle;
	text-align: center;
}
#case article div dd {
	background: #e9edfc;
	width: 340px;
	padding: 10px;
	line-height: 120%;
}

#feature {
    background: linear-gradient(to top left, #f0f2ff 50%, #dfe2fe 50%);
    padding: 100px 0;
}

#feature article {
	margin: 3% 0;
}
	#feature article img {
		width: 400px;
	}

#feature article:nth-of-type(odd) dl {
	width: 550px;
	padding-left: 25px;
}
#feature article:nth-of-type(2n) dl {
	width: 550px;
	padding-right: 25px;
}


#feature dt span {
    font-size: 1.8rem;
    display: inline-block;
    color: white;
    background: #332fc8;
    font-weight: bold;
    padding: 10px 5px;
    margin-bottom: 10px;
}
#feature dt span:last-of-type {
	margin-bottom: 0;
}

#feature dd {
	font-weight: bold;
    font-size: 1.1rem;
	margin-top: 30px;
}

#feature article:nth-of-type(1) dt {
background: url("../images/feature_num1.png") no-repeat;
background-position: right bottom;
background-size: contain;
}
#feature article:nth-of-type(2) dt {
background: url("../images/feature_num2.png") no-repeat;
background-position: right bottom;
background-size: contain;
}
#feature article:nth-of-type(3) dt {
background: url("../images/feature_num3.png") no-repeat;
background-position: right bottom;
background-size: contain;
}
#feature article:nth-of-type(4) dt {
background: url("../images/feature_num4.png") no-repeat;
background-position: right bottom;
background-size: contain;
}


.fv_sub {
	background: url("../images/wrap3_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
}

.fv_sub article {
	position: relative;
	z-index: 1;
    margin-top: -90px;
}


.fv_sub article ul {
    filter: drop-shadow(0 0 20px #a6a6a6);
}

.fv_sub dl {
	padding-top: 20px;
}

.fv_sub dt {
	color: white;
	text-align: center;
	font-size: 1.3rem;
	font-weight: bold;
}
.fv_sub dd {
text-align: center;
}

.full div {
  background-repeat: no-repeat;
  background-size: 1920px auto;
  background-position: center;
  height: 804px;
  margin: 0;
}
.full div.img01 {
background-image: url("../images/fv_slide1.png");
}
.full div.img02 {
background-image: url("../images/fv_slide2.png");
}
.full div.img03 {
background-image: url("../images/fv_slide3.png");
}
.full div.img04 {
background-image: url("../images/fv_slide4.png");
}

.fv {
	position: relative;
}

.fv article {
	width: 100%;
	height: 804px;
	position: absolute;
	background: url("../images/fv_cover.png") no-repeat;
	background-position: center;
	background-size: 1920px;
	left: 0;
	top: 0;
}
.fv article h1 {
	margin-top: 150px;
}


}










@media (min-width: 768px) and (max-width: 1024px) {
.pc {
display: none !important;
}

img {
max-width: 100%;
height: auto !important;
}




.wrap {
	width: 92%;
	margin: 0 auto;
	overflow: hidden;
}
.wrap2 {
	width: 92%;
	margin: 0 auto;
	overflow: hidden;
}


/*ハンバーガーメニュー*/

.header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 5;
padding:  0;
width: 100%;
background-color: rgba(255, 255, 255, 0.8); 
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}
.header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2rem 1rem;
}
.logo {
width:40%;
}

/* ハンバーガーボタンのデザイン */
.drawer__button {
  position: relative;
  width: 2.5rem;
  height: 2.5rem;
  background-color: transparent;
  border: none;
  cursor: pointer;
  z-index: 999; /* メニューを開いている時もクリックできるよう設定 */
}
/* ハンバーガーボタン内の線 */
.drawer__button > span {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2rem;
  height: 2px;
  background-color:#032f84;
  transform: translateX(-50%);
}
.drawer__button > span:first-child {
  transform: translate(-50%, calc(-50% - 0.5rem));
  transition: transform 0.3s ease;
}
.drawer__button > span:nth-child(2) {
  transform: translate(-50%, -50%);
  transition: opacity 0.3s ease;
}
.drawer__button > span:last-child {
  transform: translate(-50%, calc(-50% + 0.5rem));
  transition: transform 0.3s ease;
}
/* 展開時のデザイン */
.drawer__button.active > span:first-child {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.drawer__button.active > span:nth-child(2) {
  opacity: 0;
}
.drawer__button.active > span:last-child {
  transform: translate(-50%, -50%) rotate(45deg);
}
/* メニューのデザイン */
.drawer__nav {
  position: fixed; /* 追従ヘッダーなどでも表示できるよう設定しておく */
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.5);
  transition: opacity 0.3s ease;
  opacity: 0;
  visibility: hidden;
}
.drawer__nav.active {
  opacity: 1;
  visibility: visible;
}
.drawer__nav__inner {
  position: relative;
  width:100%;
  height: 100%;
        background-color: white;
        padding: 1rem 0 0;
  margin: 0 0 0 auto;
  overflow: scroll;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}
.drawer__nav.active .drawer__nav__inner {
  transform: translateX(0);
}

	.drawer__nav__inner article {
padding-top:18%;
background: url(../images/logo.png) no-repeat;
background-position: center 2%;
background-size:40%;
	}


.drawer__nav__menu {
list-style: none;
padding-left: 0;
background: #f0f2ff;
padding:0 1rem;

}
.drawer__nav__menu2 {
background: white;
padding-top: 0.5rem;
}


.drawer__nav__link {
  display: block;
  color: black;
  text-decoration: none;
	text-align: center;
  padding: 2rem 1rem;
  border-bottom: solid 1px #194aa2;
}
.drawer__nav__menu2 .drawer__nav__link {
  display: block;
  color: black;
  text-decoration: none;
  padding:1rem;
}


/**/
.drawer__nav__item:last-of-type .drawer__nav__link,
.drawer__nav__menu2 .drawer__nav__item .drawer__nav__link
{
border: none;
}



/* ハンバーガーメニュー展開時、背景を固定 */
body.active {
  height: 100%;
  overflow: hidden;
}



.wrap {
	width: 92%;
	margin: 0 auto;
	overflow: hidden;
}
.wrap2 {
	width: 92%;
	margin: 0 auto;
	overflow: hidden;
}


header .wrap {
	max-width: 1400px;
	width: 94%;
}



footer {
	background: #030328;
	padding: 35px 0;
}
	footer .area {
		display: block;
	}
	footer .area article {
		text-align: center;margin-bottom: 10px;	}

footer aside {
	width: 100%;
	text-align: inherit;
}

footer small,footer aside a {
color: white;
	font-size: 12px;
}
footer aside a {
display: inline-block;
	text-align: inherit;
	text-decoration: underline;
}



h3.title {
font-size: 40px;
color: #332fc8;
font-weight: bold;
text-align: center;
margin-bottom: 7%;
}

h3.title img {
	display:block;
	margin: 10px auto 0;
}

p.greeting {
	text-align: center;
	font-size: 22px;
	font-weight: bold;
}




section.to_link {
background: url("../images/to_link.png") no-repeat;
background-position: center;
	background-size: cover;
	padding: 8% 0;
}
section.to_link2 {
background: url("../images/to_link2.png") no-repeat;
background-position: center;
	background-size: cover;
	padding: 30px 0;
}



section.to_link h3 {
	color: white;
	font-size: 1.2rem;
	text-align: center;
	margin-bottom: 5%;
	font-weight: bold;
	line-height: 160%;
}

section.to_link dl {
	background: white;
	padding: 4%;
	margin-bottom: 3%;

}

section.to_link dt {
	text-align: center;
	color: #332fc8;
	font-size: 20px;
	font-weight: bold;
	padding-bottom: 3%;
	margin-bottom: 4%;
	border-bottom: 1px solid;
}
section.to_link dd {
	text-align: center;
	font-size: 16px;
	font-weight: bold;
}

section.to_link dd a {
	display: block;
	margin: 5% auto 0;
	width: 80%;
	
}

#access {
padding: 65px 0;

}
#access article {
	padding-bottom:0;
	display: block;
}
	#access article img {
		display: block;
		margin: 0% auto 5%;
	}


#access aside p {
text-align: center;
        padding-bottom: 3%;
        font-size: 22px;
        font-weight: bold;
        margin: 6% 0 6%;
}

#access {
padding: 10% 0;

}


#support {
background: linear-gradient(to top left, #f0f2ff 50%, #dfe2fe 50%);
padding:10% 0 0;
	margin-bottom: 7%;
}

#support .philosophy {
	padding: 40px 0;
}

	#access img.sp {
		display: block;
		margin: 0 auto;
	}


#support .philosophy .sec {
	margin-bottom: 6%;
}

#support .philosophy .sec1 {
position: relative;
	z-index: 1;
}
#support .philosophy .sec2 {
position: relative;
    z-index: 0;
    margin-top: -2.5rem;
}

#support .philosophy .sec article.wrap2 {
  position: relative;
filter: drop-shadow(0 0 5px #a6a6a6);
    overflow: visible;
  z-index: 2;
}
#support .philosophy .sec article.wrap2::before {
  content: "";
  position: absolute;
  top: 0;
    left: -80%;
bottom: 0;
  width: 120%; /* 少し広めに */
  background: #fff;
  z-index: -1;

}

#support .philosophy .sec_rev article::before {
display: none;
}
#support .philosophy .sec_rev article::after {
content: "";
    position: absolute;
    top: 0;
    left: auto;
    right: -50%;
    bottom: 0;
    width: 100%;
    background: #fff;
    z-index: -1;
}

	#support .philosophy .sec article {
		display: block;
	}
	#support .philosophy .sec article img {
		width: 100%;
	}

/* 左側テキスト */
#support .philosophy .sec article div {
  background: #fff;
position: relative;
	padding:1rem 1rem 1rem 0rem;
}
#support .philosophy .sec_rev article div {
	padding:3rem 0rem 1rem 1rem;
}



/* 左側テキスト */
#support .philosophy .sec_rev article div {
margin-left: auto;
}

#support .philosophy article.pic dl {
	width: 100%;
	margin-top: 5%;
}
#support .philosophy article.pic dt {
	line-height: 200%;
}

#support .philosophy article.pic dt span {
  font-size: 1.6rem;
	display: inline-block;
	color: white;
	background: #332fc8;
	font-weight: bold;
	padding:5px 5px;
	margin-bottom: 10px;
}
#support .philosophy article.pic dd {
  font-size: 22px;
	font-weight: bold;
	margin-top: 0px;
}

#support .philosophy aside {
margin-top: 3%;
}
#support .philosophy aside dl {
display: block;
width: 100%;
padding: 1rem;
border: 1px solid #332fc8;
	position: relative;
	margin-top: 15%;
}

#support .philosophy aside dt {
background: #332fc8;
color: white;
font-weight: bold;
position: absolute;
padding: 0.5rem 1rem;
font-size: 1rem;
width: auto;
display: inline-block;
top: -20px;
left: -7px;
}

#support .philosophy aside dd {
    font-size:22px;
    font-weight: bold;
    margin-top: 20px;
    width:auto;
    padding: 0;
    border:none;
    margin-left:0;
}
#support .philosophy aside dd span {
background:linear-gradient(transparent 60%, #dbe0fa 60%);
}

#support .wrap3 {
	width:92%;
	margin: 5% auto;
	background: url("../images/wrap3_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
	padding:1rem;
}

#support .wrap3 li {
color: white;
font-size: 22px;
background: url(../images/check.png) no-repeat;
background-size: 5%;
line-height: 160%;
background-position: left top;
padding-left: 7%;
font-weight: bold;
margin: 15px 0;
}

#support .slide_infinite dt {
	text-align: center;
	font-weight: bold;
	font-size: 22px;
	margin-bottom: 3%;
}

#support .slide_infinite dt span {
	color: #332fc8;
	background:linear-gradient(transparent 60%, #dbe0fa 60%);
}

/* ラッパーで横幅制限 & overflow隠す */
.slider-wrapper {
  overflow: hidden;
  width: 100%; /* 必要に応じて調整 */
}

/* スライダー全体 */
.slider {
  display: flex;
  width: calc(6 * 400px * 2); /* スライド幅 * 枚数 * 2 */
  animation: scroll 60s linear infinite; /* 無限スクロール */
}

/* 各スライド */
.slider .img {
  flex: 0 0 400px; /* スライド幅 */
}

/* 画像サイズ調整 */
.slider .img img {
  width: 100%;
  display: block;
}



#overview {
padding:15% 0;

}
#overview .floor1 {
background: url("../images/overview_1f_sp.png") no-repeat;
background-position: right top;
    background-size:80%;
	padding-top: 30%;
}

#overview .floor2 {
	margin: 5% 0;
	padding: 5% 0;
  background:#eceffe;
}


#overview .floor2 .bk {
background: url("../images/overview_2f_sp.png") no-repeat;
background-position: left top;
    background-size:80%;
	padding-top: 30%;
}


#overview .map {
	display: block;
	margin: 5% auto;
}

#overview ul.flex {
	margin: 5% 0;
    flex-wrap: wrap;
    gap: 10px;
	align-items: normal;
}

#overview ul.flex li {
        flex: 1 0 calc(50% - 10px);
        box-sizing: border-box;
        text-align: center;
        padding:0px;
}

#overview ul.flex li dl {
	position: relative;
	margin: -8% 2% 0;
	z-index: 1;
	background: #332fc8;
	padding: 5%;
	min-height:auto;
	min-height: 230px;

}
#overview ul.flex li dt {
	text-align: center;
	color: white;
	padding-bottom: 3%;
	margin-bottom: 3%;
	font-size: 22px;
	border-bottom: 1px solid;

}

#overview ul.flex li dt span {
	display: block;
	font-size:16px;
}

#overview ul.flex li dd {
	color: white;
	font-size: 16px;
	min-height: 100px;
}

#overview .floor2 h3 {
	width: 100%;
	margin-left: auto;
line-height: 200%;
        text-align: center;
}
#overview .floor2 h3 span {
    font-size:32px;
    display: inline-block;
    color: white;
    background: #332fc8;
    font-weight: bold;
    padding:5px;
    margin-bottom: 10px;
}
#overview .floor2 .end {
	display: block;
	margin: 4% auto;
}
#overview .floor2 aside {
font-size: 1.2rem;
    font-weight: bold;
	padding: 1rem;
	background: white;
	margin: 1%;
}

#overview .floor2 aside dt {
    border: 1px solid #332fc8;
    font-weight: bold;
	color:  #332fc8;
    padding:2em 0;
    font-size: 22px;
    width: 25%;
	text-align: center;
}
	#overview .floor2 aside dd {
		font-size:22px;
		padding-left: 5%;
	}


section.item {
	margin: 0px auto 30px;
	background: url("../images/item_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
	padding:1rem;
	width: 100%;
}
section.item h3 {
	background: white;
	padding:1rem 0.5rem;
	text-align: center;
	color: #332fc8;
	font-size: 30px;
	font-weight: bold;
	letter-spacing: 0.1rem;
}
section.item h3 span {
	font-size: 22px;
}
section.item p {
	color: white;
	margin: 3% 0;
	font-size:22px;
}
section.item p span {
	font-size: 18px;
}
section.item ul {
	margin: 2% 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px; 
}

section.item li {
  flex: 1 0 calc(50% - 10px); /* 縦方向に2個（100% ÷ 2 = 50%） */
  box-sizing: border-box;
  text-align: center;
  padding: 15px;
	color: white;
}
section.item li img {
	display: block;
	margin-bottom: 6%;
	width: 100%;
}

section.item li span {
	display: block;
	text-align: center;
	min-height: 40px;
	font-size: 22px;
}






section.item aside {
font-size: 1.2rem;
    font-weight: bold;
	padding: 1rem;
	background: white;
}

	section.item aside dl {
		display: block;
	}


section.item aside dt {
    border: 1px solid #332fc8;
    font-weight: bold;
	color:  #332fc8;
    padding:0.5rem 0em;
    font-size: 22px;
    width: 100%;
	text-align: center;
}
section.item aside dd {
	width: 100%;
	margin-top: 5%;
    font-size:22px;
	text-align: justify;
}


#faq {
padding: 10% 0;

}


/* 必須 */
.accordion-content {
  display: none;
}


.accordion-header {
        background: url(../images/q_icon.png) no-repeat #dbe0fa;
        background-position: 10px center;
        background-size: 7%;
        padding: 1.5rem 30px 1.5rem 10%;
        margin: 10px 0 0;
        transition: background .3s ease;
        cursor: pointer;
        font-size: 24px;
        position: relative;
        font-weight: bold;
}

.accordion-header::before,
.accordion-header::after{
position: absolute;
content: '';
top: 1px;
right: 12px;
bottom: 0;
width: 12px;
height: 2px;
margin: auto;
background: #332fc8;
}
.accordion-header::after{
  transform:rotate(-90deg);
  transition:transform 0.3s;
}
.accordion-header.active::after{transform:rotate(0deg);}

.accordion-content {
  background:url("../images/a_icon.png") no-repeat #eceffc;
	background-position: 10px 1.5rem;
        background-size: 7%;
        padding: 1.5rem 30px 1.5rem 10%;
font-size: 22px;
	line-height: 160%;
  position: relative;
	font-weight: bold;
}

.accordion-header span,
.accordion-content span{
  position: relative;
}


.greet_area {
	background:none;
	padding:0 0 10%;
}

.greet_area dl {
	width:100%;
	padding:15% 0 5%;
}

.greet_area dd {
	font-weight: bold;
	line-height: 200%;
	margin-top: 8%;
	font-size: 22px;
	
}



.fix_btn {
	display: block;
	width: 50px;
	position: fixed;
	right: 0%;
	top: 15%;
	z-index: 3;
}
.fix_btn img {
	width: 100%;
}
.fix_btn li:first-of-type {
	margin-bottom: 10px;
}


#case {
background: url("../images/case_bk.png") no-repeat;
background-position: center;
background-size: cover;
padding: 10% 0 5%;
}
#case .title {
color: white;
}

#case .list {
background: white;
padding:1rem;
	margin-bottom: 5%;
	display: block;
}

#case .list ul li {
color: #332fc8;
font-size:22px;
background: url(../images/check.png) no-repeat;
background-position: left top;
background-size: contain;
padding-left: 8%;
font-weight: bold;
margin: 15px 0;
}

#case article {
	width: 92%;
	margin: 6% auto;
	position: relative;
	background: white;
	padding:1rem;
}

#case article .ab {
	position: absolute;
    left: -7px;
    top: 15px;
	z-index: 1;
}
#case article:nth-of-type(2) .ab {
	position: absolute;
	left: auto;
    right: -7px;
    top: 15px;
	z-index: 1;
}


#case article div{
padding-left: 0px;
	margin-top: 5%;
}

#case article div h3 {
	margin-bottom: 20px;
}

#case article div dl {
	border-bottom: 7px solid white;
background: #e9edfc;
}

#case article div dt,#case article div dd {
	display: table-cell;
	font-weight: bold;
	font-size:  22px;
}
#case article div dt {
	border-right: 3px solid white;
	background: #d4dafa;
	padding: 10px;
	line-height: 120%;
	width: 100px;
	font-size: 22px;
	vertical-align: middle;
	text-align: center;
}
#case article div dd {
	background: #e9edfc;
	width:auto;
	padding: 10px;
	line-height: 120%;
}
	#case aside {
		display: block;
	}
	#case aside img {
		width: 100%;
	}


#feature {
    background:#f0f2ff;
    padding: 15% 0 5%;
}

#feature article {
	margin: 6% 0;
flex-direction: column; /* ← これで縦並び */
}
	#feature article:nth-of-type(2n) {
  flex-direction: column-reverse; /* 縦並び＆上下逆 */
  flex-wrap: wrap;
	}

#feature article:nth-of-type(odd) dl {
	width:100%;
	padding-left: 0px;
margin-top: 5%;
}
#feature article:nth-of-type(2n) dl {
	width:100%;
	padding-right: 0px;
margin-top: 5%;
}
	#feature article dt {
		width: 50%;
	}

#feature dt span {
    font-size: 26px;
    display: inline-block;
    color: white;
    background: #332fc8;
    font-weight: bold;
    padding: 5px;
    margin-bottom: 10px;
}
#feature dt span:last-of-type {
	margin-bottom: 0;
}

#feature dd {
	font-weight: bold;
    font-size: 22px;
	margin-top:5%;
}

#feature article:nth-of-type(1) dt {
background: url("../images/feature_num1.png") no-repeat;
background-position: right bottom;
background-size: contain;

}
#feature article:nth-of-type(2) dt {
background: url("../images/feature_num2.png") no-repeat;
background-position: left bottom;
background-size: contain;
text-align: right;
width: 60%;
margin-left: auto;
}
#feature article:nth-of-type(3) dt {
background: url("../images/feature_num3.png") no-repeat;
background-position: right bottom;
background-size: contain;
}
#feature article:nth-of-type(4) dt {
background: url("../images/feature_num4.png") no-repeat;
background-position: left bottom;
background-size: contain;
text-align: right;
margin-left: auto;
}


.fv_sub {
	background: url("../images/wrap3_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
}

.fv_sub article {
	position: relative;
	z-index: 1;
    margin-top: -90px;
}


.fv_sub article ul {
    filter: drop-shadow(0 0 20px #a6a6a6);
}

.fv_sub dl {
	padding-top: 20px;
}

.fv_sub dt {
	color: white;
	text-align: center;
	font-size: 1.3rem;
	font-weight: bold;
}
.fv_sub dd {
text-align: center;
}

.full div {
  background-repeat: no-repeat;
  background-size: 1920px auto;
  background-position: center;
  height: 804px;
  margin: 0;
}
.full div.img01 {
background-image: url("../images/fv_slide1.png");
}
.full div.img02 {
background-image: url("../images/fv_slide2.png");
}
.full div.img03 {
background-image: url("../images/fv_slide3.png");
}
.full div.img04 {
background-image: url("../images/fv_slide4.png");
}

.fv {
	position: relative;
}
	.fv img.sp {
		display: none !important;
	}
	.fv img.pc {
		display: block !important;
	}

.fv article {
	width: 100%;
	height: 804px;
	position: absolute;
	background: url("../images/fv_cover.png") no-repeat;
	background-position: center;
	background-size: 1920px;
	left: 0;
	top: 0;
}
.fv article h1 {
	margin-top: 150px;
}




}



/*SP_1024*/

@media (max-width: 767px) {
.pc {
display: none !important;
}

img {
max-width: 100%;
height: auto !important;
}



/*ハンバーガーメニュー*/

.header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 5;
padding:  0;
width: 100%;
background-color: rgba(255, 255, 255, 0.8); 
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}
.header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1rem;
}
.logo {
width:40%;
}

/* ハンバーガーボタンのデザイン */
.drawer__button {
  position: relative;
  width: 2.5rem;
  height: 2.5rem;
  background-color: transparent;
  border: none;
  cursor: pointer;
  z-index: 999; /* メニューを開いている時もクリックできるよう設定 */
}
/* ハンバーガーボタン内の線 */
.drawer__button > span {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2rem;
  height: 2px;
  background-color:#032f84;
  transform: translateX(-50%);
}
.drawer__button > span:first-child {
  transform: translate(-50%, calc(-50% - 0.5rem));
  transition: transform 0.3s ease;
}
.drawer__button > span:nth-child(2) {
  transform: translate(-50%, -50%);
  transition: opacity 0.3s ease;
}
.drawer__button > span:last-child {
  transform: translate(-50%, calc(-50% + 0.5rem));
  transition: transform 0.3s ease;
}
/* 展開時のデザイン */
.drawer__button.active > span:first-child {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.drawer__button.active > span:nth-child(2) {
  opacity: 0;
}
.drawer__button.active > span:last-child {
  transform: translate(-50%, -50%) rotate(45deg);
}
/* メニューのデザイン */
.drawer__nav {
  position: fixed; /* 追従ヘッダーなどでも表示できるよう設定しておく */
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.5);
  transition: opacity 0.3s ease;
  opacity: 0;
  visibility: hidden;
}
.drawer__nav.active {
  opacity: 1;
  visibility: visible;
}
.drawer__nav__inner {
  position: relative;
  width:100%;
  height: 100%;
        background-color: white;
        padding: 1rem 0 0;
  margin: 0 0 0 auto;
  overflow: scroll;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}
.drawer__nav.active .drawer__nav__inner {
  transform: translateX(0);
}

	.drawer__nav__inner article {
padding-top:18%;
background: url(../images/logo.png) no-repeat;
background-position: center 2%;
background-size: 54%;
	}


.drawer__nav__menu {
list-style: none;
padding-left: 0;
background: #f0f2ff;
padding:0 1rem;

}
.drawer__nav__menu2 {
background: white;
padding-top: 0.5rem;
}


.drawer__nav__link {
  display: block;
  color: black;
  text-decoration: none;
  padding: 1.5rem 1rem;
  border-bottom: solid 1px #194aa2;
}
.drawer__nav__menu2 .drawer__nav__link {
  display: block;
  color: black;
  text-decoration: none;
  padding:0.5rem;
}


/**/
.drawer__nav__item:last-of-type .drawer__nav__link,
.drawer__nav__menu2 .drawer__nav__item .drawer__nav__link
{
border: none;
}



/* ハンバーガーメニュー展開時、背景を固定 */
body.active {
  height: 100%;
  overflow: hidden;
}



.wrap {
	width: 92%;
	margin: 0 auto;
	overflow: hidden;
}
.wrap2 {
	width: 92%;
	margin: 0 auto;
	overflow: hidden;
}


header .wrap {
	max-width: 1400px;
	width: 94%;
}



footer {
	background: #030328;
	padding: 35px 0;
}
	footer .area {
		display: block;
	}
	footer .area article {
		text-align: center;margin-bottom: 10px;	}

footer aside {
	width: 100%;
	text-align: inherit;
}

footer small,footer aside a {
color: white;
	font-size: 12px;
}
footer aside a {
display: inline-block;
	text-align: inherit;
	text-decoration: underline;
}



h3.title {
font-size: 30px;
color: #332fc8;
font-weight: bold;
text-align: center;
margin-bottom: 7%;
}

h3.title img {
	display:block;
	margin: 10px auto 0;
}

p.greeting {
	text-align: center;
	font-size: 1rem;
	font-weight: bold;
}




section.to_link {
background: url("../images/to_link.png") no-repeat;
background-position: center;
	background-size: cover;
	padding: 8% 0;
}
section.to_link2 {
background: url("../images/to_link2.png") no-repeat;
background-position: center;
	background-size: cover;
	padding: 30px 0;
}

	section.to_link .wrap2 {
		display: block;
	}



section.to_link h3 {
	color: white;
	font-size: 1.2rem;
	text-align: center;
	margin-bottom: 5%;
	font-weight: bold;
	line-height: 160%;
}

section.to_link dl {
	background: white;
	padding: 4%;
	margin-bottom: 3%;

}

section.to_link dt {
	text-align: center;
	color: #332fc8;
	font-size: 20px;
	font-weight: bold;
	padding-bottom: 3%;
	margin-bottom: 4%;
	border-bottom: 1px solid;
}
section.to_link dd {
	text-align: center;
	font-size: 16px;
	font-weight: bold;
}

section.to_link dd a {
	display: block;
	margin: 5% auto 0;
	width: 80%;
	
}

#access {
padding: 65px 0;

}
#access article {
	padding-bottom:0;
	display: block;
}
	#access article img {
		display: block;
		margin: 0% auto 5%;
	}


#access aside p {
text-align: center;
        padding-bottom: 3%;
        font-size: 16px;
        font-weight: bold;
        margin: 6% 0 6%;
}

#access {
padding: 10% 0;

}


#support {
background: linear-gradient(to top left, #f0f2ff 50%, #dfe2fe 50%);
padding:10% 0 0;
	margin-bottom: 7%;
}

#support .philosophy {
	padding: 40px 0;
}




#support .philosophy .sec {
	margin-bottom: 6%;
}

#support .philosophy .sec1 {
position: relative;
	z-index: 1;
}
#support .philosophy .sec2 {
position: relative;
    z-index: 0;
    margin-top: -2.5rem;
}

#support .philosophy .sec article.wrap2 {
  position: relative;
filter: drop-shadow(0 0 5px #a6a6a6);
    overflow: visible;
  z-index: 2;
}
#support .philosophy .sec article.wrap2::before {
  content: "";
  position: absolute;
  top: 0;
    left: -80%;
bottom: 0;
  width: 120%; /* 少し広めに */
  background: #fff;
  z-index: -1;

}

#support .philosophy .sec_rev article::before {
display: none;
}
#support .philosophy .sec_rev article::after {
content: "";
    position: absolute;
    top: 0;
    left: auto;
    right: -50%;
    bottom: 0;
    width: 100%;
    background: #fff;
    z-index: -1;
}

	#support .philosophy .sec article {
		display: block;
	}
	#support .philosophy .sec article img {
		width: 100%;
	}

/* 左側テキスト */
#support .philosophy .sec article div {
  background: #fff;
position: relative;
	padding:1rem 1rem 1rem 0rem;
}
#support .philosophy .sec_rev article div {
	padding:3rem 0rem 1rem 1rem;
}



/* 左側テキスト */
#support .philosophy .sec_rev article div {
margin-left: auto;
}

#support .philosophy article.pic dl {
	width: 100%;
	margin-top: 5%;
}
#support .philosophy article.pic dt {
	line-height: 200%;
}

#support .philosophy article.pic dt span {
  font-size: 1.6rem;
	display: inline-block;
	color: white;
	background: #332fc8;
	font-weight: bold;
	padding:5px 5px;
	margin-bottom: 10px;
}
#support .philosophy article.pic dd {
  font-size: 1rem;
	font-weight: bold;
	margin-top: 0px;
}

#support .philosophy aside {
margin-top: 3%;
}
#support .philosophy aside dl {
display: block;
width: 100%;
padding: 1rem;
border: 1px solid #332fc8;
	position: relative;
	margin-top: 15%;
}

#support .philosophy aside dt {
background: #332fc8;
color: white;
font-weight: bold;
position: absolute;
padding: 0.5rem 1rem;
font-size: 1rem;
width: auto;
display: inline-block;
top: -20px;
left: -7px;
}

#support .philosophy aside dd {
    font-size: 1rem;
    font-weight: bold;
    margin-top: 20px;
    width:auto;
    padding: 0;
    border:none;
    margin-left:0;
}
#support .philosophy aside dd span {
background:linear-gradient(transparent 60%, #dbe0fa 60%);
}

#support .wrap3 {
	width:92%;
	margin: 5% auto;
	background: url("../images/wrap3_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
	padding:1rem;
}

#support .wrap3 li {
color: white;
font-size: 0.8rem;
background: url(../images/check.png) no-repeat;
background-size: 6%;
line-height: 160%;
background-position: left top;
padding-left: 8%;
font-weight: bold;
margin: 15px 0;
}

#support .slide_infinite dt {
	text-align: center;
	font-weight: bold;
	font-size: 1rem;
	margin-bottom: 3%;
}

#support .slide_infinite dt span {
	color: #332fc8;
	background:linear-gradient(transparent 60%, #dbe0fa 60%);
}

/* ラッパーで横幅制限 & overflow隠す */
.slider-wrapper {
  overflow: hidden;
  width: 100%; /* 必要に応じて調整 */
}

/* スライダー全体 */
.slider {
  display: flex;
  width: calc(6 * 200px * 2); /* スライド幅 * 枚数 * 2 */
  animation: scroll 60s linear infinite; /* 無限スクロール */
}

/* 各スライド */
.slider .img {
  flex: 0 0 200px; /* スライド幅 */
}

/* 画像サイズ調整 */
.slider .img img {
  width: 100%;
  display: block;
}



#overview {
padding:15% 0;

}
#overview .floor1 {
background: url("../images/overview_1f_sp.png") no-repeat;
background-position: right top;
    background-size:80%;
	padding-top: 30%;
}

#overview .floor2 {
	margin: 5% 0;
	padding: 5% 0;
  background:#eceffe;
}


#overview .floor2 .bk {
background: url("../images/overview_2f_sp.png") no-repeat;
background-position: left top;
    background-size:80%;
	padding-top: 30%;
}


#overview .map {
	display: block;
	margin: 5% auto;
}

#overview ul.flex {
	margin: 5% 0;
    flex-wrap: wrap;
    gap: 10px;
	align-items: normal;
}

#overview ul.flex li {
        flex: 1 0 calc(50% - 10px);
        box-sizing: border-box;
        text-align: center;
        padding:0px;
}

#overview ul.flex li dl {
	position: relative;
	margin: -15% 2% 0;
	z-index: 1;
	background: #332fc8;
	padding: 5%;
	min-height:auto;

}
#overview ul.flex li dt {
	text-align: center;
	color: white;
	padding-bottom: 3%;
	margin-bottom: 3%;
	font-size: 0.9rem;
	border-bottom: 1px solid;
}

#overview ul.flex li dt span {
	display: block;
	font-size: 0.7rem;
}

#overview ul.flex li dd {
	color: white;
	font-size: 0.7rem;
}

#overview .floor2 h3 {
	width: 100%;
	margin-left: auto;
line-height: 200%;
        text-align: center;
}
#overview .floor2 h3 span {
    font-size: 1.2rem;
    display: inline-block;
    color: white;
    background: #332fc8;
    font-weight: bold;
    padding: 0px 5px;
    margin-bottom: 10px;
}
#overview .floor2 .end {
	display: block;
	margin: 4% auto;
}
#overview .floor2 aside {
font-size: 1.2rem;
    font-weight: bold;
	padding: 1rem;
	background: white;
	margin: 1%;
}

#overview .floor2 aside dt {
    border: 1px solid #332fc8;
    font-weight: bold;
	color:  #332fc8;
    padding:2em 0;
    font-size: 0.6rem;
    width: 25%;
	text-align: center;
}
	#overview .floor2 aside dd {
		font-size: 0.6rem;
		padding-left: 5%;
	}


section.item {
	margin: 0px auto 30px;
	background: url("../images/item_bk.png") no-repeat;
	background-position: center;
	background-size: cover;
	padding:1rem;
	width: 100%;
}
section.item h3 {
	background: white;
	padding:1rem 0.5rem;
	text-align: center;
	color: #332fc8;
	font-size: 1.2rem;
	font-weight: bold;
	letter-spacing: 0.1rem;
}
section.item h3 span {
	font-size: 1rem;
}
section.item p {
	color: white;
	margin: 3% 0;
	font-size: 1rem;
}
section.item p span {
	font-size: 0.8rem;
}
section.item ul {
	margin: 2% 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px; 
}

section.item li {
  flex: 1 0 calc(50% - 10px); /* 縦方向に2個（100% ÷ 2 = 50%） */
  box-sizing: border-box;
  text-align: center;
  padding: 5px;
	color: white;
}
section.item li img {
	display: block;
	margin-bottom: 6%;
}

section.item li span {
	display: block;
	text-align: center;
	min-height: 40px;
}






section.item aside {
font-size: 1.2rem;
    font-weight: bold;
	padding: 1rem;
	background: white;
}

	section.item aside dl {
		display: block;
	}


section.item aside dt {
    border: 1px solid #332fc8;
    font-weight: bold;
	color:  #332fc8;
    padding:0.5rem 0em;
    font-size: 1.1rem;
    width: 100%;
	text-align: center;
}
section.item aside dd {
	width: 100%;
	margin-top: 5%;
    font-size: 1rem;
	text-align: justify;
}


#faq {
padding: 10% 0;

}


/* 必須 */
.accordion-content {
  display: none;
}


.accordion-header {
background: url(../images/q_icon.png) no-repeat #dbe0fa;
background-position: 10px center;
background-size: 9%;
padding: 1.5rem 30px 1.5rem 50px;
margin: 10px 0 0;
transition: background .3s ease;
cursor: pointer;
font-size: 16px;
position: relative;
font-weight: bold;
}

.accordion-header::before,
.accordion-header::after{
position: absolute;
content: '';
top: 1px;
right: 12px;
bottom: 0;
width: 12px;
height: 2px;
margin: auto;
background: #332fc8;
}
.accordion-header::after{
  transform:rotate(-90deg);
  transition:transform 0.3s;
}
.accordion-header.active::after{transform:rotate(0deg);}

.accordion-content {
  background:url("../images/a_icon.png") no-repeat #eceffc;
	background-position: 10px 1.5rem;
background-size: 9%;
padding: 1.5rem 10px 1.5rem 50px;
font-size: 16px;
	line-height: 160%;
  position: relative;
	font-weight: bold;
}

.accordion-header span,
.accordion-content span{
  position: relative;
}


.greet_area {
	background:none;
	padding:0 0 10%;
}

.greet_area dl {
	width:100%;
	padding:15% 0 5%;
}

.greet_area dd {
	font-weight: bold;
	line-height: 200%;
	margin-top: 8%;
	
}



.fix_btn {
	display: block;
	width: 50px;
	position: fixed;
	right: 0%;
	top: 15%;
	z-index: 3;
}
.fix_btn img {
	width: 100%;
}
.fix_btn li:first-of-type {
	margin-bottom: 10px;
}


#case {
background: url("../images/case_bk.png") no-repeat;
background-position: center;
background-size: cover;
padding: 15% 0;
}
#case .title {
color: white;
}

#case .list {
background: white;
padding:1rem;
	margin-bottom: 5%;
	display: block;
}

#case .list ul li {
color: #332fc8;
font-size: 1rem;
background: url(../images/check.png) no-repeat;
background-position: left top;
padding-left: 8%;
font-weight: bold;
margin: 15px 0;
background-size: 6%;
}

#case article {
	width: 92%;
	margin: 6% auto;
	position: relative;
	background: white;
	padding:1rem;
}

#case article .ab {
	position: absolute;
    left: -7px;
    top: 15px;
	z-index: 1;
}
#case article:nth-of-type(2) .ab {
	position: absolute;
	left: auto;
    right: -7px;
    top: 15px;
	z-index: 1;
}


#case article div{
padding-left: 0px;
	margin-top: 5%;
}

#case article div h3 {
	margin-bottom: 10px;
}

#case article div dl {
	border-bottom: 3px solid white;
}

#case article div dt,#case article div dd {
	display: table-cell;
	font-weight: bold;
	font-size: 0.8rem;
}
#case article div dt {
	border-right: 3px solid white;
	background: #d4dafa;
	padding: 10px;
	line-height: 120%;
	font-size: 0.8rem;
	vertical-align: middle;
	text-align: center;
}
#case article div dd {
	background: #e9edfc;
	width: 340px;
	padding: 10px;
	line-height: 120%;
}
	#case aside {
		display: block;
	}



#feature {
    background:#f0f2ff;
    padding: 15% 0 5%;
}

#feature article {
	margin: 6% 0;
flex-direction: column; /* ← これで縦並び */
}
	#feature article:nth-of-type(2n) {
  flex-direction: column-reverse; /* 縦並び＆上下逆 */
  flex-wrap: wrap;
	}

#feature article:nth-of-type(odd) dl {
	width:100%;
	padding-left: 0px;
margin-top: 5%;
}
#feature article:nth-of-type(2n) dl {
	width:100%;
	padding-right: 0px;
margin-top: 5%;
}


#feature dt span {
    font-size: 1.4rem;
    display: inline-block;
    color: white;
    background: #332fc8;
    font-weight: bold;
    padding: 0px 5px;
    margin-bottom: 10px;
}
#feature dt span:last-of-type {
	margin-bottom: 0;
}

#feature dd {
	font-weight: bold;
    font-size: 1.1rem;
	margin-top:5%;
}

#feature article:nth-of-type(1) dt {
background: url("../images/feature_num1.png") no-repeat;
background-position: right bottom;
background-size: contain;
}
#feature article:nth-of-type(2) dt {
background: url("../images/feature_num2.png") no-repeat;
background-position: left bottom;
background-size: contain;
text-align: right;
}
#feature article:nth-of-type(3) dt {
background: url("../images/feature_num3.png") no-repeat;
background-position: right bottom;
background-size: contain;
}
#feature article:nth-of-type(4) dt {
background: url("../images/feature_num4.png") no-repeat;
background-position: left bottom;
background-size: contain;
text-align: right;
}


.fv_sub {
	background: url("../images/wrap3_bk.png") no-repeat;
	background-position: center 40px;
	background-size: cover;
}

.fv_sub article {
	position: relative;
	z-index: 1;
    margin-top: -12%;
width: 86%;
}


.fv_sub article ul {
    filter: drop-shadow(0 0 20px #a6a6a6);
}

.fv_sub dl {
	padding-top: 20px;
}

.fv_sub dt {
	color: white;
	text-align: center;
	font-size: 1rem;
	font-weight: bold;
}
.fv_sub dd {
text-align: center;
}

.full div {
  background-repeat: no-repeat;
  background-size: 1920px auto;
  background-position: center;
  height:400px;
  margin: 0;
}
.full div.img01 {
background-image: url("../images/fv_slide1.png");
}
.full div.img02 {
background-image: url("../images/fv_slide2.png");
}
.full div.img03 {
background-image: url("../images/fv_slide3.png");
}
.full div.img04 {
background-image: url("../images/fv_slide4.png");
}

.fv {
	position: relative;
        background: url(../images/wrap3_bk.png) no-repeat;
background-position: center;
	background-size: cover;
        padding-bottom: 8%;
}


.fv article {
width: 100%;
    height:auto;
    position: absolute;
    background:none;
    left: 0;
    top: 0;

}
.fv article h1 {
	margin-top: 0%;
	width: 100%;
}



}


