main {
    background-color: #f9f7fa;
}

.main_visual_wrap {
	width:100%;
    height:678px;
	margin:0 auto;
    overflow: hidden;
}
.main_visual_slider {
    width: 100%;
    height: 100%;
	position:relative;
}
.main_visual_slider .swiper-slide {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}
.main_visual_slider .txt {
    width: min(1024px,100%);
	margin:160px auto 0;
	color:#fff;
    text-align: left;
}
.main_visual_slider .txt img {
    max-width: 402px;
}
.main_visual_slider .txt p{
	font-size:80px;
	font-weight:bold;
	letter-spacing:-4px;
}
.main_visual_wrap .main-pagination {
	position:absolute;
    bottom: auto;
    top: 160px;
	right:calc(50% - 520px);
    left: auto;
    z-index: 10;
    pointer-events: auto;
	/* transform:translateX(50%);
    width:min(1024px,100%); */
    width: auto;
    display: flex;
    flex-flow: column wrap;
    align-items: flex-end;
    gap: 10px;
}
.main_visual_wrap .main-pagination span  {
	width:24px;
	height:22px;
	display:block;
	position:relative;
    cursor: pointer;
	font-size:0;
	background:url(../img/main/pager-normal.png) no-repeat 0 0;
	background-size:contain;
    opacity: 1;
    margin: 0 !important;
    border-radius: 0;
}
.main_visual_wrap .main-pagination .swiper-pagination-bullet-active {
	background:url(../img/main/pager-active.png) no-repeat 0 0;
	transition: all 0.5s ease;
}

@media (max-width:1024px) {
    
    .main_visual_slider .txt {
        padding-inline: 20px;
        margin-top: 120px;
    }
    .main_visual_slider .txt p{
        font-size: 60px;
        margin-top: 10px;
    }
    .main_visual_wrap .main-pagination {
        right: 20px;
    }
}
@media (max-width:768px) {
    .main_visual_wrap {
        height: 420px;
    }
}
@media (max-width:640px) {
    .main_visual_wrap .main-pagination {
        right: auto;
        left: 25px;
        bottom: 20px;
        flex-flow: row wrap;
        gap: 7px;
    }
    .main_visual_slider .txt p{
        font-size: 50px;
    }
}

.main01 {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    align-items: center;
    margin-top: -115px;
    position: relative;
    z-index: 9;
}
.main01 .bo-tit {
    color: #fff;
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    border-bottom: 2px solid #fff;
}
.main01 .bo-tit h2 {
    font-size: 24px;
    font-weight: 700;
    padding-bottom: 10px;
}
.main01 .bo-tit a {
    font-size: 32px;
    font-weight: 700;
}
.main01 > div {
    width: calc(50% - 5px);
    height: stretch;
}
.main01 .right {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 10px;
}
.main01 .lat1 {
    padding: 25px 30px 25px 70px;
    box-sizing: border-box;
    background: url(../img/main/main_box_01.jpg) no-repeat center / cover;
    position: relative;
    height: 100%;
}
.main01 .lat2 {
    background: #453d6d;
    padding: 24px 30px;
}
.main01 .lat3 {
    background: #2e3d6e;
    padding: 24px 30px;
}
@media (max-width:1024px) {
    .main01 {
        padding-inline: 0;
    }
}
@media (max-width:768px) {
    .main01 {
        padding-inline: 25px;
        margin-top: 45px;
    }
    .main01 > div {
        width: 100%;
        height: auto;
    }
    .main01 .right {
        gap: 30px;
        margin-top: 30px;
    }
}

.main02 {
	margin-block:105px 100px;
}
.main02 .banner_tit {
	font-size:42px;
	text-align:center;
	letter-spacing:-0.5px;
	color:#202020;
	text-transform:uppercase;
	font-weight:500;
}
.main02 .banner_txt {
	font-size:16px;
	text-align:center;
	letter-spacing:-1px;
	color:#585858;
	line-height:23px;
	margin:25px 0 50px;
}
.main02 .main_banner {
	font-size:0;
	text-align:center;
}
.main02 .main_banner li {
	width:calc(20% - 6px);
	height:252px;
	min-width:195px;
	margin-right:6px;
	margin-top:6px;
	display:inline-block;
	background-color:#fff;
	font-size:24px;
	font-weight:bold;
	letter-spacing:-1px;
	vertical-align:top;
}
.main02 .main_banner li:last-child {
	margin-right:0
}
.main02 .main_banner li a {
	color:#575757;
	display:block;
	text-align:center;
	height:100%;
}
.main02 .main_banner li a span {
	display:block;
	text-align:center;
}
.main02 .main_banner li a .banner_stit {
	padding-top:45px;
}
.main02 .main_banner li a .banner_ico {
	height:100px;
	line-height:100px;
	padding-top:35px;
}
.main02 .main_banner li a .banner_ico img {
	vertical-align: middle;
}

.main03 {
	width:100%;
}
.main03 ul {
	display: flex;
    flex-flow: row wrap;
	background-color:#19191b;
}
.main03 ul li {
	display:flex;
    flex-flow: column wrap;
    justify-content: center;
	font-size:24px;
	color:#fff;
	height:300px;
	vertical-align:top;
	position:relative;
    text-align:center;
}
.main03 ul li.banner1:after {
	content:'';
	display:block;
	width:100%;
	height:100%;
	background:url(../img/main/main_banner_01.jpg) no-repeat center center;
	background-size:cover;
	opacity:0.15;
	z-index:40;
}
.main03 ul li.banner2 {
	background-color:#104690;
}
.main03 ul li.banner2:after {
	content:'';
	display:block;
	width:100%;
	height:100%;
	background:url(../img/main/main_banner_02.png) no-repeat 124% 166%;
	opacity:0.08;
	z-index:40;
}
.main03 ul li.banner3:after {
	content:'';
	display:block;
	width:100%;
	height:100%;
	background:url(../img/main/main_banner_03.jpg) no-repeat center center;
	background-size:cover;
	z-index:40;
}
.main03 ul li.type50 {
	width:50%;
}
.main03 ul li.type25 {
	width:25%;
}
.main03 ul li p {
	position:absolute;
	text-align:center;
	z-index:50;
}
.main03 ul li span {
	letter-spacing:-3px;
}
.main03 ul li a {
	color:#fff;
	font-size:15px;
	font-weight:normal;
	width:135px;
	height:35px;
	line-height:35px;
	text-align:center;
	border:1px solid #fff;
	display:block;
	margin-top:10px;
	cursor:pointer;
	letter-spacing:-1px;
}
.main03 ul li a:hover,.main03 ul li a:focus {
	background-color:#fff;
	color:#104690;
	transition: all 0.5s ease;
}
.main03 ul li.banner1 p {
	position:absolute;
	top:50%;
	left:75%;
	transform:translate(-75%,-50%);
}
.main03 ul li.banner2 p {
	position:absolute;
	top:50%;
	left:50%;
	transform: translate(-50%,-50%);
}
@media (max-width:768px) {
    .main03 ul li.banner1 p {
        position:absolute;
        top:50%;
        left:50%;
        transform: translate(-50%,-50%);
    }
    .main03 ul li.type25 {
        width: 50%;
    }
    .main03 ul li.banner3 {
        display: none;
    }
}
