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

#home section p {
	line-height:2;
}

/*mainvisual
***************************************/
#loadimg {
	clear: both;
	text-align: center;
}
#loading {
	display: none;
}
#loadimg img {
	width: 32px;
	padding: 20% 0;
}

#mainvisual {
	position:relative;
	background:url(../../images/index/mainvisual_pc.png) no-repeat center bottom;
	padding-top:47.9%;
	background-size:cover;
	margin-top:140px;
}

#mainvisual .mv_box {
	width:82%;
	position:absolute;
	top: 7%;
	left: 12%;
}

#mainvisual .mv_box p {
	width:75%;
	font-size:clamp(30px, 3.6vw, 68px);
	color:#FFF;
	font-weight:700;
	line-height:1.3;
	letter-spacing:0.1em;
}

#mainvisual .mv_box img {
	width:12.82%;
	position:relative;
	top:-2.5rem;
	height:fit-content;
}

@media (max-width: 1600px) {
}

@media (max-width: 1200px) {
}

@media (max-width: 980px) {
#mainvisual {
	position:relative;
	background:url(../../images/index/mainvisual_sp.png) no-repeat center bottom;
	padding-top:122%;
	background-size:cover;
	margin-top:85px;
}

#mainvisual .mv_box {
	width:100%;
	position:absolute;
	top: 0;
	left: 0;
}

#mainvisual .mv_box p {
	width:100%;    
	text-align: center;
    margin-top: 49%;
	letter-spacing:0;
	font-size:clamp(30px, 6vw, 68px);
}

#mainvisual .mv_box img {
	position:absolute;
	right:2rem;
	top:5rem;
	width:24%;
}

}

@media (max-width: 480px) {
}

.index_title01 {
	margin-bottom:2rem;
}

.index_title01 span {
	font-size:clamp(36px, 6vw, 120px);
	line-height:0.8;
	color:#17309b;
	display:block;
	margin-bottom:1rem;
	z-index: 1;
	position: relative;
}

.index_title01 span b {
	color:#fff100;
}

.index_title01 strong {
	font-size:clamp(18px, 1.4vw, 20px);
	font-weight:700;
	display:block;
	z-index: 1;
	position: relative;
}

.index_title01 em {
	display:block;
	text-align:right;
	font-size:clamp(22px, 1.6vw, 30px);
	font-style:normal;
	font-weight:700;
	margin-top:1rem;
}

#index01 .title_box01 p {
	font-size:clamp(13px, 1.1vw, 14px);
}

#index01 .title_box01 p a:before {
	content:url(../../images/arrow-bk.png);
	margin-right:1rem;
}

#index01 ul {
	height:194px;
	overflow:auto;
}

#index01 ul li {
	border-bottom:1px solid #DDD;
}

#index01 ul li:first-child {
	border-top:1px solid #DDD;
}

#index01 ul li a {
	display:block;
	padding:2rem 12rem 2rem 4rem;
	background:#fafafa;
	position:relative;
	
	display:flex;
	-webkit-flex-wrap: wrap; /* Safari */
	flex-wrap:         wrap;
	-webkit-align-items: center; /* 縦方向中央揃え（Safari用） */
	align-items: center; /* 縦方向中央揃え */
	-webkit-justify-content: space-between;
	justify-content: space-between;
	transition: background-color 0.4s ease;
}

#index01 ul li a strong {
	font-family: "Arial", "Noto Sans JP", sans-serif;
	width: 80%;
	font-size: clamp(16px, 1.4vw, 18px);
}

#index01 ul li a:after {
	content:url(../../images/arrow-blue.png);
	right:4.5rem;
	/*中央*/
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	-webkit- transform: translateY(-50%);
	margin: auto;
	display:inline-block;
  transition: right 0.4s ease;
}

/* hover時 */
#index01 ul li a:hover {
  background: #EEEEEE; /* 少し濃い色 */
}

/* hover時：矢印を少し右へ */
#index01 ul li a:hover:after {
  right: 3.5rem;
}

#index01 ul li a span {
	width:20%;
}

#index01 ul li a span em.date-year {
	font-size:clamp(18px, 1.8vw, 24px);
	font-style:normal;
	margin-right:1.5rem;
}

#index01 ul li a span em.date-month-day {
	font-style:normal;
	font-size:clamp(24px, 3.6vw, 48px);
	margin-right:3rem;
	position:relative;
	top:2px;
}

@media (max-width: 680px) {
#main #primary section#index01 {
	padding-bottom:9rem;
}

#index01 .title_box01.w20 {
	width:100%;
	position:relative;
}

#index01 .title_box01.w20 p {
	position:absolute;
	right:0;
	top:0;
	z-index:1;
}

#index01 ul.w76 {
	width:100%;
}

#index01 ul li a {
    padding: 2rem 8rem 2rem 2rem;
	-webkit-align-items: flex-start;
	align-items: flex-start;
}

#index01 ul li a span {
	width: 25%;
}

#index01 ul li a strong {
	width: 75%;
	line-height: 1.4;
}

#index01 ul li a::after {
	right: 1.5rem;
}

}


#main #primary section#index02 {
	padding-top:0;
}

#index02 .index_title01 {
	margin-bottom:9rem;
	position:relative;
}

#index02 .index_title01:before {
	content:url(../../images/title_bg01.png);
	position:absolute;
	left: calc(50% - 20%);
	top: -50%;
}

#index02 h3 {
	margin-bottom:4.5rem;
	font-size:clamp(20px, 3vw, 36px);
	line-height:1.6;
	font-weight:900;
}

#index02 h3 strong {
	display:block;
	font-weight:900;
	font-size:clamp(26px, 4vw, 50px);
	color:#17309b;
}

#index02 .column-outside-left {
  flex:1;
  margin-left:calc(50% - 50vw);
  margin-right:4%
}

#index02 .column-outside-left img {
  width:100%;
  height:auto
}

#index02 p {
	font-size:clamp(16px, 1.4vw, 18px);
	margin-bottom:2rem;
}

@media (max-width: 980px) {
#index02 .box1600.ai-center {
	-webkit-align-items: flex-start;
	align-items: flex-start;
}
}

@media (max-width: 680px) {
#index02 h3 {
	margin-bottom:2rem;
}

#index02 .column-outside-left {
	width:100%;
	flex: inherit;
	margin-left: calc(50% - 50vw);
	margin-right: 0;
	margin-bottom:3rem;
}

#index02 .w55 {
	width:100%;
}

}

#main #primary section#index03 {
	padding-top:9rem;
	position:relative;
}

#index03 .index_title01 {
    display: flex; /* 子要素をフレックスボックスコンテナとして配置 */
    align-items: center; /* 子要素を垂直方向の中央に揃える */
    width: 100%; /* コンテナの幅を設定 */
	position:relative;
	margin-bottom:6rem;
}

#index03 .index_title01:after {
    content: "";
    flex: 1;
	height:1px;
	width:100%;
	background:#111;
	display:block;
	margin-left:2rem;
	position:relative;
	top:-1.5em;
}

#index03 .index_title01 span strong {
	color:#111;
	margin-top:1rem;
}

#index03 .message_box {
	background:url(../../images/index/index03_bg.png) no-repeat bottom center #17309b;
	background-attachment:fixed;
	background-size:cover;
	padding-top:12rem;
	padding-bottom:12rem;
	color:#FFF;
	position:relative;
}

@media (max-width: 980px){
#index03 .message_box {
	background:url(../../images/index/index03_bg.png) no-repeat bottom center #17309b;
}
}

#index03 .message_box .deco {
	overflow: clip;
	height:auto;
}

#index03 .message_box .textbox {
	width:67%;
}

#index03 .message_box .imgbox {
	position:absolute;
	width:26%;
	right:2rem;
	top:-3rem;
	text-align:right;
}

#index03 .message_box h3 {
	font-size:clamp(26px, 3.8vw, 64px);
	margin-bottom:6rem;
	font-weight:700;
	line-height:1.4;
}

#index03 .message_box p {
	line-height:2;
	margin-bottom:3rem;
	font-size:clamp(16px, 1.4vw, 18px);
}

#index03 .message_box span {
	display:block;
	text-align:right;
	font-family: "HGS行書体", "ＭＳ Ｐ明朝", "MS PMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", serif;
	font-size:clamp(24px, 2vw, 32px);
	padding-top:1.5rem;
}

@media (max-width: 980px) {
#index03 .deco {
	display:none;
}
}

@media (max-width: 680px) {
#index03 .message_box {
	padding-top:9rem;
	padding-bottom:9rem;
}

#index03 .message_box h3 {
	margin-bottom:3rem;
}

#index03 .message_box .textbox {
	width:100%;
}

#index03 .message_box .imgbox {
  width: 22%;
  top: -45%;
}

}

@media (max-width: 480px) {
#index03 .message_box .imgbox {
  width: 22%;
  right: 2rem;
  top: -35%;
}
}

#main #primary section#index04 {
	padding-top:6rem;
	position:relative;
}

#index04 .index_title01 {
	margin-bottom:9rem;
}

#index04 .box_wrapper dl {
	width:46.9%;
	background:#fafafa;
}

#index04 .box_wrapper dl dt {
	background:#17309b;
	color:#FFF;
	font-size:clamp(20px, 1.8vw, 24px);
	padding:2rem 1rem;
	text-align:center;
}

#index04 .box_wrapper dl dd img {
	width:100%;
	height:auto;
}

#index04 .box_wrapper dl dd .textbox {
	padding:3rem 3rem 6rem 3rem;
	text-align:center;
}

#index04 .box_wrapper dl dd h3 {
	font-size:clamp(20px, 1.8vw, 24px);
	text-align:center;
	position:relative;
	margin-bottom: -0.65em;
	color:#182d9a;
}

#index04 .box_wrapper dl:nth-child(2) dd h3 {
	color:#0f2b60;
}

#index04 .box_wrapper dl dd h3 span {
	display:inline-block;
	padding:0 1.5rem;
	background:#fafafa;
}

#index04 .box_wrapper dl dd p {
	padding:3rem 0;
	border-top:1px solid #182d9a;
	border-bottom:1px solid #182d9a;
	color:#182d9a;
	font-size:clamp(18px, 1.8vw, 24px);
	font-weight:700;
	line-height:1.6;
}

#index04 .box_wrapper dl:nth-child(2) dd p {
	border-top:1px solid #0f2b60;
	border-bottom:1px solid #0f2b60;
	color:#0f2b60;
}

#index04 .box_wrapper dl dd .detail_btn01 {
	text-align:center;
	margin-top:3rem;
}

#index04 .box_wrapper dl dd .detail_btn01 a {
	display:inline-block;
	padding:1.5rem 6rem;
	background:#182d9a;
	color:#FFF;
	text-align:center;
	font-size:clamp(16px, 1.4vw, 18px);
	font-weight:700;
  transition: background-color 0.3s ease, color 0.3s ease;
}

#index04 .box_wrapper dl dd .detail_btn01 a:after {
    content: "\f08e";
    font-family: FontAwesome;
    margin-left:0.5rem;
	font-size:clamp(18px, 1.6vw, 20px);
	position:relative;
	top:3px;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* hover時の色変更 */
#index04 .box_wrapper dl dd .detail_btn01 a:hover {
  background: #fff100;
  color: #111;
}

/* FontAwesome のアイコンも文字色と連動させたい場合 */
#index04 .box_wrapper dl dd .detail_btn01 a:hover:after {
  color: #111;
}



@media (max-width: 980px) {
#index04 .index_title01 {
	margin-bottom:4.5rem;
}

#main #primary section#index04{
	padding-bottom:9rem;
}

#index04 .index_title01 .w34 {
	width:100%;
	text-align:center;
	margin-bottom:3rem;
}

.index_title01 em {
	text-align:center;
}

#index04 .index_title01 .w62 {
	width:100%;
}

#index04 .box_wrapper dl dd .detail_btn01 a {
	padding:1.5rem 4.5rem;
}

}

@media (max-width: 680px) {
#index04 .box_wrapper dl {
	width:100%;
	margin-bottom:4.5rem;
}

#index04 .box_wrapper dl:last-child {
	margin-bottom:0;
}

}

#main #primary section#index05 {
	padding-top:0;
	padding-bottom:0;
	position:relative;
}

#index05 .box_wrapper {
	background:#17309b;
	padding-top:7.7%;
	padding-bottom:6%;
	position:relative;
}

#index05 .box_wrapper .deco {
  overflow: clip;
}

#index05 .box_wrapper .imgbox {
	position:absolute;
	text-align:right;
	right:0;
	top: -11%;
	width: 78%;
}

#index05 .index_title01 {
	margin-bottom:6rem;
}

#index05 .index_title01 span {
	color:#FFF;
}

#index05 .index_title01 span strong {
	color:#FFF;
  margin-top: 1rem;
}

#index05 .textbox p {
	font-size:clamp(26px, 3.6vw, 64px);
	font-weight:700;
	line-height:1.4;
	color:#FFF;
}

#index05 .textbox .detail_btn02 a {
	display:inline-block;
	padding:4.5rem 3rem;
	width:100%;
	max-width:472px;
	font-size:clamp(28px, 2.4vw, 36px);
	color:#FFF;
	border:1px solid #FFF;
	text-align:center;
	position:relative;
	
}

#index05 .textbox .detail_btn02 a:after {
  content: url(../../images/arrow-white.png);
  right: 4.5rem;
  position: absolute;
  top: 44%;
  transform: translateY(-44%);
  -webkit- transform: translateY(-44%);
  margin: auto;
  display: inline-block;
}

/* 矢印にアニメーション設定 */
#index05 .textbox .detail_btn02 a:after {
  transition: transform 0.3s ease;
}

/* ホバー時に少し右へ */
#index05 .textbox .detail_btn02 a:hover:after {
  transform: translate(10px, -44%);
}



@media (max-width: 980px) {
#index05 .box_wrapper {
    padding-top: 15%;
    padding-bottom: 18%;
}

#index05 .box_wrapper .imgbox {
	position:relative;
	top:inherit;
	width:100%;
	padding-left:2rem;
	margin-bottom:3rem;
}

#index05 .index_title01 {
	text-align:center;
	margin-bottom:3rem;
}

#index05 .textbox p.w65 {
	width:100%;
	margin-bottom:3rem;
}

#index05 .textbox p.w65 br {
	display:none;
}

#index05 .detail_btn02.w30 {
	width:100%;
	text-align:center;
}

#index05 .textbox .detail_btn02 a {
  padding: 2rem 1rem;
  font-size: clamp(24px, 2.4vw, 36px);
}

}

@media (max-width: 980px) {
}





@media (max-width: 1200px){
}

@media (max-width: 980px){
}

@media (max-width: 680px){
}

@media (max-width: 480px){
}
