@charset "utf-8";
/* Reset */
@import url('https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,300;0,400;0,500;0,700;1,300&family=Noto+Sans+JP:wght@300;400;700&display=swap');
html{font-size: 62.5%; scroll-behavior: smooth; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch;}
body{color: #000; line-height: 1.9; word-spacing: 0; font-size: 1.6rem; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; -moz-text-size-adjust: 100%; font-family: 'Noto Sans JP', serif; font-weight: 400;}

*{margin: 0; padding: 0; box-sizing: border-box; border: 0; outline: none;}
h1, h2, h3, h4, h5, h6{font-size: 100%; font-weight: 500;}
ol, ul{list-style: none;}
table{border-collapse: collapse; border-spacing: 0;}
th{text-align: left; font-weight: normal;}
a{color: inherit; text-decoration: none;}
img{vertical-align: bottom; max-width: 100%;}

[class*="container-"]{margin: 0 auto; width: calc(100% - 60px);}
.container-1200{max-width: 1200px;}
.container-1400{max-width: 1400px;}
.container-1600{max-width: 1600px;}

.cap,
[class*="cap-"]{font-size: 1rem; line-height: 1.4;}
.cap-abs_right{position: absolute; bottom: 7px; right: 7px; text-align: right;}
.cap-abs_left{position: absolute; bottom: 7px; left: 7px;}
.cap-right{padding-top: 5px; text-align: right;}
.cap-left{padding-top: 5px;}
.shadow{color: #fff; text-shadow: 0 0 1px rgba(0,0,0,.8), 0 0 2px rgba(0,0,0,.8), 0 0 3px rgba(0,0,0,.8), 0 0 4px rgba(0,0,0,.8), 0 0 5px rgba(0,0,0,.8), 0 0 6px rgba(0,0,0,.8), 0 0 7px rgba(0,0,0,.8), 0 0 8px rgba(0,0,0,.8), 0 0 9px rgba(0,0,0,.8), 0 0 10px rgba(0,0,0,.8);}

.center{text-align: center !important;}
.left{text-align: left !important;}
.right{text-align: right !important;}
.bold{font-weight: bold;}
.txt-red{color: #a81d34;}

a[href^="tel:"]{pointer-events: none;}
.only-sp{display: none!important;}
.group{padding: 140px 0;}

@media (max-width: 768px){
    body{font-size: 1.4rem; line-height: 1.7;}
    [class*="container-"]{width: calc(100% - 40px);}
    .only-pc{display: none!important;}
    .only-sp{display: block!important;}
    .group{padding: 70px 0;}
}

@media print {
    body{color-adjust: exact; -webkit-print-color-adjust: exact; print-color-adjust: exact;}
}

/* Animate */
.fade-in{opacity: 0; filter: blur(5px) brightness(105%); transition: opacity 1.3s ease, filter 1s ease;}
.fade-in.is-view{opacity: 1; filter: blur(0) brightness(100%);}

.fade-up{opacity: 0; transform: translateY(40px); -webkit-transform: translateY(40px); filter: blur(5px) brightness(105%); transition: opacity 1s ease, transform 1s ease, filter 1s ease;}
.fade-up.is-view{opacity: 1; transform: translateY(0); -webkit-transform: translateY(0); filter: blur(0) brightness(100%);}

.fade-down{opacity: 0; transform: translateY(-40px); -webkit-transform: translateY(-40px); filter: blur(5px) brightness(105%); transition: opacity 1s ease, transform 1s ease, filter 1s ease;}
.fade-down.is-view{opacity: 1; transform: translateY(0); -webkit-transform: translateY(0); filter: blur(0) brightness(100%);}

.fade-left{opacity: 0; transform: translateX(-40px); -webkit-transform: translateX(-40px); filter: blur(5px) brightness(105%); transition: opacity 1s ease, transform 1s ease, filter 1s ease;}
.fade-left.is-view{opacity: 1; transform: translateY(0); -webkit-transform: translateY(0); filter: blur(0) brightness(100%);}

.fade-right{opacity: 0; transform: translateX(40px); -webkit-transform: translateX(40px); filter: blur(5px) brightness(105%); transition: opacity 1s ease, transform 1s ease, filter 1s ease;}
.fade-right.is-view{opacity: 1; transform: translateY(0); -webkit-transform: translateY(0); filter: blur(0) brightness(100%);}

.zoom-in{opacity: 0; overflow: hidden; transform: scale(0.7,0.7); -webkit-transform: scale(0.7,0.7); transition: opacity 1s ease, transform 1s ease;}
.zoom-in.is-view{opacity: 1; transform: scale(1,1); -webkit-transform: scale(1,1);}

.zoom-out{opacity: 0; overflow: hidden; transform: scale(1.3,1.3); -webkit-transform: scale(1.3,1.3); transition: opacity 1s ease, transform 1s ease;}
.zoom-out.is-view{opacity: 1; transform: scale(1,1); -webkit-transform: scale(1,1);}

.roll-left{position: relative; overflow: hidden; z-index: 2;}
.roll-left img{opacity: 0; transition: opacity 1s ease .5s;}
.roll-left:after{content: ''; position: absolute; top: 0; bottom: 0; background: #a81d34;}
.roll-left.is-view img{opacity: 1;}
.roll-left.is-view:after{animation: rollLeft 1s ease;}

@keyframes rollLeft{
    0%{left: 0; right: 100%;}
    50%{left: 0; right: 0;}
    100%{left: 100%; right: 0;}
}
@-webkit-keyframes rollLeft{
    0%{left: 0; right: 100%;}
    50%{left: 0; right: 0;}
    100%{left: 100%; right: 0;}
}

.roll-right{position: relative; overflow: hidden; z-index: 2;}
.roll-right img{opacity: 0; transition: opacity 1s ease .5s;}
.roll-right:after{content: ''; position: absolute; top: 0; bottom: 0; background: #a81d34;}
.roll-right.is-view img{opacity: 1;}
.roll-right.is-view:after{animation: rollRight 1s ease;}

@keyframes rollRight{
    0%{right: 0; left: 100%;}
    50%{right: 0; left: 0;}
    100%{right: 100%; left: 0;}
}
@-webkit-keyframes rollRight{
    0%{right: 0; left: 100%;}
    50%{right: 0; left: 0;}
    100%{right: 100%; left: 0;}
}

@media (min-width: 768px){
    .delay1{transition-delay: .2s;}
    .delay2{transition-delay: .4s;}
    .delay3{transition-delay: .6s;}
}

/* Header */
#logo{background: #fff; position: fixed; top: 0; left: 0; z-index: 1000;}

@media (max-width: 1080px){
    #logo {width: auto;}
    #logo img{height: 60px; width: auto;}
}

@media (max-width: 768px){    
    #logo img{height: 50px; }
}

/* Main */
.flexbox {display: flex; flex-wrap: wrap; justify-content: space-between;}
.arrow {position: relative;}
.arrow:after {content: ''; position: absolute; top: 50%; right: 7.5%; margin-top: -4px; display: inline-block; padding: 4px; transform: rotate(-45deg); -webkit-transform: rotate(-45deg); border: solid #fff; border-width: 0 2px 2px 0;}

.tit-h2 {margin-bottom: 36px; text-align: center;}
.tit-h2 .en {font-family: 'Barlow', serif; font-weight: 600; color: #a81d34; font-size: 1.8rem; line-height: 1; margin-bottom: 5px; display: inline-block; padding-bottom: 5px; border-bottom: 1px solid #a81d34;}
.tit-h2 .jp {font-size: 2.8rem; font-weight: bold; display: block; color: #a81d34;}
.tit-h3 {text-align: center;}
.tit-h3 span:nth-of-type(1) {display: block; font-size: 3.2rem; font-weight: bold; line-height: 1.2; margin-bottom: 10px;}
.tit-h3 span:nth-of-type(2) {display: block; font-size: 6rem; color: #a81d34; line-height: 1.2; font-weight: bold;}

.main{isolation: isolate; overflow: hidden;}

@media (max-width: 768px){
	.tit-h2 {margin-bottom: 4vw;}
    .tit-h2 .en {font-size: 1.6rem;}
    .tit-h2 .jp {font-size: 2.2rem;}
}

/* MV */
#mv {position: relative;}
#mv > img {width: 100%;}
#mv .mv-txt {position: absolute; left: 0; color: #fff; width: 100%; text-align: center; letter-spacing: 0.1em;}
#mv .mv-txt .img-text {width: 45%; max-width: 830px;}
#mv .mv-txt a {display: block; max-width: 442px; width: 24%; margin: 0 auto;}
#mv .mv-txt a img {width: 100%;}
#mv .mv-txt a:hover {opacity: 0.8;}

@media (min-width: 769px){
	#mv .mv-txt {top: 50%; transform: translateY(-50%); -webkit-transform: translateY(-50%);}
}

@media (max-width: 768px){
	#mv .mv-txt{top: 29%;}
	#mv .mv-txt .img-text {width: 100%; max-width: 768px;}
    #mv .mv-txt a {width: 80%;}
}

/* Box1 */
#box1 {padding: 40px 0; background: #f1f1f1;}
#box1 h3 {margin-bottom: 40px;}
#box1 h3 span {display: block; text-align: center;}
#box1 h3 span:nth-of-type(1) {font-size: 2.4rem; line-height: 1; margin-bottom: 20px;}
#box1 h3 span:nth-of-type(2) {font-size: 4.2rem; line-height: 1; font-weight: bold;}
#box1 .row1 {padding-bottom: 106px; background: url(../img/line.png) no-repeat; background-size: auto; background-position: bottom center;}
#box1 .row1 li {width: 23.93%; position: relative;}
#box1 .row2 {position: relative;}
#box1 .row2 p {position: absolute; max-width: 800px; width: 80%; text-align: center; top: -30px; left: 0; right: 0; margin: 0 auto; background: #a81d34; color: #fff; font-size: 3rem; font-weight: bold; padding: 0 10px; border-radius: 10px; z-index: 1;}
#box1 .row2 .inner {background: #fff; padding: 40px; border: 2px solid #a81d34; border-radius: 10px; align-items: center;}
#box1 .row2 .inner .col1 {width: 43.24%;}
#box1 .row2 .inner .col2 {width: 41.8%;}

@media (max-width: 1600px){
	#box1 h3 span:nth-of-type(2) {font-size: 3rem;}
}

@media (max-width: 1080px){
	#box1 .row1 {background-size: 79% auto; padding-bottom: 5vw;}
	#box1 .row2 p {font-size: 1.8rem; top: -16px;}
}

@media (max-width: 768px){
	#box1 {padding: 8vw 0;}
    #box1 h3 {margin-bottom: 8vw;}
    #box1 h3 span:nth-of-type(1) {font-size: 2rem; margin-bottom: 10px;}
    #box1 h3 span:nth-of-type(2) {font-size: 2.4rem; }
    #box1 .row1 {background: none; padding: 0; margin-bottom: 15vw;}
    #box1 .row1 li {width: 49%; margin-bottom: 2%;}
    #box1 .row2 .inner {padding: 12vw 8vw 8vw;}
    #box1 .row2 .inner .col1 {width: 100%; margin-bottom: 5vw;}
    #box1 .row2 .inner .col2 {width: 100%;}
    #box1 .row2 p {font-size: 1.6rem; padding: 10px; top: -40px;}
}

/* About */
#about {padding: 100px 0 140px;}
#about h3 {font-size: 6rem; font-weight: 600; line-height: 1.4; text-align: center; margin-bottom: 40px;}
#about .main-txt {margin-bottom: 60px; text-align: center;}
#about .map {background: #f3ffd5; margin-bottom: 50px;}
#about .map .locate {max-width: 1100px; width: 100%; margin: 0 auto; padding: 60px 0;}
#about .map .locate .hide {display: none;}
#about .map .locate .hide > ul {padding-bottom: 30px;}
#about .map .locate .hide > ul > li {width: 32%;}
#about .map .locate .hide > ul > li h4 {font-size: 2.2rem; font-weight: bold; border-bottom: 2px dotted #000; padding-bottom: 20px; margin-bottom: 20px;}
#about .map .locate .hide > ul > li > ul > li {padding-left: 45px; position: relative; margin-bottom: 10px; font-size: 15px;}
#about .map .locate .hide > ul > li > ul > li > span {width: 30px; height: 30px; background: #f08200; display: flex; flex-wrap: wrap; justify-content: space-around; align-items: center; color: #fff; position: absolute; top: 0; left: 0;}
#about .map .locate .hide > ul > li:nth-of-type(2) > ul > li > span {background: #00afd5;}
#about .map .locate .hide > ul > li:nth-of-type(3) > ul > li {padding-left: 120px; position: relative;}
#about .map .locate .hide > ul > li:nth-of-type(3) > ul > li p:nth-of-type(1) {position: absolute; left: 0; top: 0; padding-left: 45px;}
#about .map .locate .hide > ul > li:nth-of-type(3) > ul > li p:nth-of-type(1) span {width: 30px; height: 30px; display: flex; flex-wrap: wrap; justify-content: space-around; align-items: center; color: #fff; position: absolute; top: 0; left: 0;}
#about .map .locate .hide > ul > li:nth-of-type(3) > ul > li p:nth-of-type(1) .color1 {background: #fddf90;}
#about .map .locate .hide > ul > li:nth-of-type(3) > ul > li p:nth-of-type(1) .color2 {background: #a2d6ca;}
#about .map .locate .hide > ul > li:nth-of-type(3) > ul > li p:nth-of-type(2) > span {display: block; position: relative;}
#about .map .locate .hide > ul > li:nth-of-type(3) > ul > li p:nth-of-type(2) > .rel {padding-left: 45px;}
#about .map .locate .hide > ul > li:nth-of-type(3) > ul > li p:nth-of-type(2) > .rel > span {width: 30px; height: 30px; background: #f08c98; display: flex; flex-wrap: wrap; justify-content: space-around; align-items: center; color: #fff; position: absolute; top: 0; left: 0;}
#about .map .locate .btn {display: block; width: 100%; cursor: pointer; border: 2px solid #6e7d49; color: #6e7d49; font-size: 2.4rem; font-weight: bold; text-align: center; border-radius: 100px; padding: 10px 0; background: url(../img/ic_plus.png) no-repeat; background-position: center right 20px;}
#about .map .locate .btn.active{background-image: url(../img/ic_minus.png);}

#about .list li {width: 31.67%;}

@media (max-width: 1600px){
	#about h3 {font-size: 3rem;}
}

@media (max-width: 768px){
	#about {padding: 10vw 0 14vw;}
    #about h3 {font-size: 2.4rem; margin-bottom: 8vw;}
    #about .main-txt {margin-bottom: 8vw; text-align: left;}
    #about .main-txt br {display: none;}
    #about .map {margin: 0 -30px 8vw -30px;}
    #about .map .locate {padding: 5vw 6vw;}
    #about .map .locate .hide > ul > li {width: 100%; margin-bottom: 5vw;}
    #about .map .locate .hide > ul > li h4 {font-size: 1.8rem;}
    #about .map .locate .btn {font-size: 1.8rem;}    
	
    #about .row1 {width: 100%; margin-bottom: 5vw;}
    #about .row2 {width: 100%;}
    #about .row2 li{width: 100%;margin-bottom: 10px;padding: 20px;}    
    
    #about .map .locate .hide > ul > li:nth-of-type(3) > ul > li {padding-left: 100px;}
	
	#about .list li{width: 100%; margin: 0 0 5vw; text-align: center;}
	#about .list li:last-of-type{margin: 0;}
}

/* Merit */
#merit {background: #a81d34; padding: 100px 0 150px;}
#merit .tit-h2 {margin-bottom: 20px;}
#merit .tit-h2 .en {color: #fff; border-color: #fff;}
#merit .tit-h2 .jp {color: #fff;}
#merit h3 {font-size: 6rem; font-weight: 600; text-align: center; color: #fff; margin-bottom: 160px; line-height: 1;}
#merit .box {padding: 0 80px 80px; border: 2px solid #fff; border-radius: 10px; color: #fff; position: relative; margin-bottom: 160px;}
#merit .box > img {position: absolute; top: -80px; left: -80px; width: 57.15%;}
#merit .box .txt {width: 40%; margin: 0 0 100px auto; position: relative; padding-top: 130px;}
#merit .box .txt .tit-num {width: 140px; height: 140px; background: #fff; color: #a81d34; display: flex; flex-wrap: wrap; justify-content: space-around; align-items: center; text-align: center; line-height: 1; border-radius: 10px; font-weight: bold; position: absolute; top: -35px; left: 0;}
#merit .box .txt .tit-num div span:nth-of-type(1) {font-size: 2.4rem;}
#merit .box .txt .tit-num div span:nth-of-type(2) {font-size: 7.8rem;}
#merit .box .txt h4 {font-size: 2.6rem; font-weight: bold; margin-bottom: 20px;}
#merit .box .list {background: #751424; padding: 40px;}
#merit .box .list h4 {font-size: 2.6rem; font-weight: bold; margin-bottom: 20px; text-align: center;}

#merit #merit1 .list ul li {width: 32%; background: #fff; color: #a81d34; display: flex; flex-wrap: wrap; justify-content: space-between; padding: 20px; border-radius: 20px; margin-bottom: 2%; align-items: center;}
#merit #merit1 .list ul li span:nth-of-type(1) {width: 58px;}
#merit #merit1 .list ul li span:nth-of-type(2) {width: calc(100% - 68px); font-size: 2rem; font-weight: bold; line-height: 1.3;}
#merit #merit1 .list ul li:nth-of-type(4),
#merit #merit1 .list ul li:nth-of-type(5),
#merit #merit1 .list ul li:nth-of-type(6) {margin-bottom: 0;}
#merit #merit1 .list > p {font-size: 2rem; text-align: right; font-weight: bold;}

#merit #merit2 > img {left: auto; right: -80px;}
#merit #merit2 .txt {margin: 0 auto 100px 0;}
#merit #merit2 .list ul li {width: 32%; text-align: center;}
#merit #merit2 .list ul li h5 {font-size: 2rem; font-weight: bold; margin: 10px 0;}

#merit #merit3 .list ul li {width: 32.5%; text-align: center; border: 2px solid #fff; margin-bottom: 2%; border-radius: 20px; padding: 20px 15px;}
#merit #merit3 .list ul li h5 {font-size: 2rem; font-weight: bold; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 2px dotted #ccc; line-height: 1.4;}
#merit #merit3 .list ul li h5 span {font-size: 1.6rem;}
#merit #merit3 .list ul li p{letter-spacing: -0.05em;}

#merit #box-slide {padding-top: 80px; margin-bottom: 70px;}
#merit #box-slide .slick-arrow {position: absolute; top: 50%; width: 50px; height: 50px; margin-top: -25px; text-indent: -9999px; border: none; outline: none; z-index: 10; cursor: pointer;}
#merit #box-slide .slick-next,
#merit #box-slide .slick-next:hover,
#merit #box-slide .slick-next:focus {background: url("../img/btn_next.png") no-repeat top left; right: -25px; background-size: cover;}
#merit #box-slide .slick-prev,
#merit #box-slide .slick-prev:hover,
#merit #box-slide .slick-prev:focus {background: url("../img/btn_prev.png") no-repeat top left; left: -25px; background-size: cover;}
#merit #box-slide .slick-dots{display: flex; justify-content: center; margin: 30px 0 60px;}
#merit #box-slide .slick-dots li{width: 10px; height: 10px; border-radius: 100%; border: 1px solid #fff; margin: 0 10px; text-indent: -9999px; cursor: pointer;}
#merit #box-slide .slick-dots li.slick-active{background: #fff;}
#merit #box-slide .lb {position: absolute; top: -40px; left: 0; right: 0; margin: 0 auto; background: #fff; color: #a81d34; font-size: 3rem; font-weight: bold; width: 300px; display: block; text-align: center; padding: 10px 0; border-radius: 10px;}
#merit #box-slide h4 {font-size: 2.6rem; font-weight: bold; text-align: center; margin-bottom: 50px;}
#merit #box-slide .item {text-align: center; width: 352px;}
#merit #box-slide .item h5 {margin: 10px 0; font-size: 2rem; font-weight: bold;}

#merit4{display: flex; justify-content: space-between; flex-wrap: wrap;}
#merit4 .item{width: 48.43%; padding: 50px 55px 60px; border: 2px solid #fff; border-radius: 10px; color: #fff;}
#merit4 h4{font-size: 2.6rem; font-weight: bold; text-align: center; margin-bottom: 10px;}
#merit4 .item1 .img{margin-top: 30px; text-align: center;}
#merit4 .item2 .img{margin-top: 100px; text-align: center;}

@media (max-width: 1600px){
	#merit h3 {font-size: 3rem;}
}

@media (max-width: 1080px){
	#merit h3 {margin-bottom: 60px;}
    #merit .box {border: none; border-radius: none; padding: 0; margin-bottom: 0;}
    #merit .box > img {width: 100%; position: static;}
    #merit .box .txt {width: 100%; margin: 0 !important; padding: 10vw 5vw;}
    #merit .box .txt .tit-num {position: static; margin: 0 auto 5vw;}    
    #merit .box .txt .tit-num div span:nth-of-type(1) {font-size: 1.8rem;}
    #merit .box .txt .tit-num div span:nth-of-type(2) {font-size: 3.2rem;}
    #merit .box .txt .tit-num{width: 100px;height: 100px;top: -60px;}
    #merit .box .txt h4{font-size: 2.2rem; margin-bottom: 10px;}
    #merit .box .list {padding: 5vw;}
    #merit .box .list h4 {font-size: 2rem;}    
    #merit .box .list ul li {width: 100% !important; margin: 0 0 5vw 0 !important;}    
    #merit #box-slide .slick-dots li {width: 10px !important; margin: 0 10px !important;}
	
	#merit4 .item{padding: 5vw 5vw 6vw;}
}

@media (max-width: 768px){
	#merit {padding: 10vw 0 0;}
    #merit .tit-h2{ margin-bottom: 10px; padding: 0 5vw;}
    #merit .container-1400 {width: 100%;}
    #merit h3 {margin-bottom: 8vw; font-size: 3rem;}
    #merit .box {border: none; border-radius: none; padding: 0; margin-bottom: 0;}
    #merit .box > img {width: 100%; position: static;}
    #merit .box .txt {width: 100%; margin: 0 !important; padding: 10vw 5vw;}
    #merit .box .txt .tit-num {position: static; margin: 0 auto 5vw;}    
    #merit .box .txt .tit-num div span:nth-of-type(1) {font-size: 1.8rem;}
    #merit .box .txt .tit-num div span:nth-of-type(2) {font-size: 3.2rem;}
    #merit .box .txt .tit-num{width: 100px;height: 100px;top: -60px;}
    #merit .box .txt h4{font-size: 2rem; margin-bottom: 10px; text-align: center;}
    #merit .box .list {padding: 5vw;}
    #merit .box .list h4 {font-size: 2rem;}
    #merit .box .list ul li {width: 100% !important; margin: 0 0 5vw 0 !important;}
    #merit #merit1 .list ul li span:nth-of-type(2) {font-size: 1.8rem;}
    #merit #merit1 .list ul li span:nth-of-type(2) br {display: none;}
    #merit #merit1 .list > p {font-size: 1.6rem;}
    #merit #merit2 .list ul li h5 {font-size: 1.6rem;}
    #merit #merit3 .list {padding-bottom: 20vw;}
    #merit #merit3 .list ul li h5 {font-size: 1.6rem;}
    #merit #merit3 .list ul li h5 span {font-size: 1.4rem;}
    #merit #merit3 .list ul li:last-of-type {margin-bottom: 0;}
	#merit #box-slide{margin-bottom: 14vw;}
    #merit #box-slide .lb {font-size: 2rem; top: -27px;}
    #merit #box-slide h4 {font-size: 2.2rem; padding: 0;}
	#merit #box-slide .slick-dots{margin: 20px 0 30px;}
    #merit #box-slide .slick-dots li {width: 10px !important; margin: 0 10px !important;}
    #merit #box-slide .slick-next,
    #merit #box-slide .slick-next:hover,
    #merit #box-slide .slick-next:focus {right: 0;}
    #merit #box-slide .slick-prev,
    #merit #box-slide .slick-prev:hover,
    #merit #box-slide .slick-prev:focus {left: 0;}
    #merit #box-slide .item img {max-width: 352px; width: 100%; margin: 0 auto; display: block;}
	#merit4{padding: 0 5vw 14vw;}
	#merit4 .item{width: 100%;}
	#merit4 .item1{margin-bottom: 5vw;}
	#merit4 .item2 .img{margin: 30px 0;}
	#merit4 h4{font-size: 2.2rem;}
}

/* Box2 */
#box2 {padding: 100px 0;}
#box2 .row1 {max-width: 1068px; width: 100%; margin: 0 auto 40px; align-items: center;}
#box2 .row1 .col1 {width: 45%;}
#box2 .row1 .col2 {width: 50%;}
#box2 .row1 .col2 p {font-size: 2.8rem; font-weight: bold; padding-bottom: 20px; border-bottom: 4px dotted #a81d34;}
#box2 .row1 .col2 p span {color: #a81d34;}
#box2 .row2 .list1 li {width: 32.15%; margin-bottom: 1.775%;}
#box2 .row2 .list2 li {width: 49.3%;}

@media (max-width: 1600px){
	#box2 .row1 .col2 p {font-size: 2rem;}
}

@media (max-width: 768px){
	#box2 {padding: 10vw 0;}
    #box2 .row1 .col1 {width: 100%; margin-bottom: 5vw;}
    #box2 .row1 .col2 {width: 100%;}
    #box2 .row1 .col2 p {font-size: 2rem;}
    #box2 .row2 .list1 li {width: 48%; margin: 0 4% 4% 0; text-align: center;}
	#box2 .row2 .list1 li:nth-of-type(2n){margin-right: 0;}
    #box2 .row2 .list2 li {width: 100%; text-align: center; margin-bottom: 4%;}
	#box2 .row2 .list2 li img{width: 100%;}
    #box2 .row2 .list2 li:last-of-type {margin-bottom: 0;}
}

/* Box3 */
#box3 {padding: 60px 0; background: #f1f1f1;}
#box3 .container-1400 {max-width: 1600px;}
#box3 h3 {line-height: 1; text-align: center; margin-bottom: 50px;}
#box3 h3 span {display: block;}
#box3 h3 span:nth-of-type(1) {font-size: 3.6rem; font-weight: bold; margin-bottom: 15px;}
#box3 h3 span:nth-of-type(2) {font-size: 1.2rem;}
#box3 ul {text-align: center;}
#box3 ul li {display: inline-block; padding: 15px 20px; border: 1px solid #000; margin-bottom: 10px; margin-right: 10px; line-height: 1;}

@media (max-width: 768px){
	#box3 {padding: 10vw 0;}
    #box3 h3 span:nth-of-type(1) {font-size: 2.4rem;}
    #box3 ul li {padding: 10px; margin: 0 5px 5px 0;}
}

/* Users Voice */
#users-voice{ padding: 100px 0; background: url(../img/user_voice_bg.jpg) no-repeat center; background-size: cover;}
#users-voice .card {width: 49%; margin-bottom: 2%; border: 3px solid #a81d34; border-radius: 10px; padding: 30px 50px 50px; background: #fff;}
#users-voice .card .card-head {display: flex; flex-wrap: wrap; justify-content: space-between;}
#users-voice .card .card-head .img {display: block; width: 26.56%;}
#users-voice .card .card-head .title {width: 70%;}
#users-voice .card .card-head .title h5 {font-family: Barlow, serif; font-style: italic; font-size: 1.8rem; color: #a81d34; line-height: 1; margin-bottom: 10px;}
#users-voice .card .card-head .title h3 {font-size: 3rem; font-weight: bold; line-height: 1; padding-bottom: 30px; border-bottom: 4px dotted #bb4e60;}
#users-voice .card .card-content {padding-top: 15px; letter-spacing: -.064em;}

@media (max-width: 768px){
	#users-voice {padding: 10vw 0;}
    #users-voice .card {width: 100%; margin-bottom: 5vw; padding: 6vw;}
    #users-voice .card .card-head .title {align-items: center;}
    #users-voice .card .card-head .title h3 {font-size: 2.2rem; padding-bottom: 20px;}
}

/* Flow */
#flow {padding: 100px 0; background: #a81d34;}
#flow .tit-h2 .en {color: #fff; border-color: #fff;}
#flow .tit-h2 .jp {color: #fff;}
#flow .row1 {margin-bottom: 60px;}
#flow .row1 .card {background: #fff; border-radius: 10px; position: relative; padding: 30px; width: 23%;}
#flow .row1 .card::after {content: ''; position: absolute; right: -36px; top: 50%; transform: translateY(-50%); display: block; width: 0; height: 0; border-top: 16px solid transparent; border-right: 10px solid transparent; border-bottom: 16px solid transparent; border-left: 10px solid #fff;}
#flow .row1 .card:nth-of-type(4)::after {display: none;}
#flow .card .card-img {text-align: center; margin-bottom: 20px;}
#flow .card .card-img .step {position: absolute; top: 20px; left: 20px; font-family: Barlow, serif; color: #a81d34; font-weight: bold; line-height: 1;}
#flow .card .card-img .step span {display: block; line-height: 1;}
#flow .card .card-img .step span:nth-of-type(2) {font-size: 5.4rem;}
#flow .card .card-content h3 {font-size: 2.2rem; font-weight: bold; margin-bottom: 10px;}
#flow .row2 {border: 2px solid white; border-radius: 10px; overflow: hidden; align-items: center;}
#flow .row2 .col1 {width: 50%; text-align: center; color: white;}
#flow .row2 .col1 h3 {font-size: 4.2rem; line-height: 1.4; font-weight: bold; max-width: 480px; width: 100%; margin: 0 auto; border-bottom: 4px dotted white; padding-bottom: 20px; margin-bottom: 30px;}
#flow .row2 .col1 p {margin-bottom: 20px;}
#flow .row2 .col1 a {color: #a81d34; background: white; text-align: center; font-weight: bold; position: relative; font-size: 2.4rem; border-radius: 50px; line-height: 1; padding: 20px 0; display: block; max-width: 400px; width: 100%; margin: 0 auto;}
#flow .row2 .col1 a::before {content: ''; display: block; position: absolute; right: 40px; top: calc(50% - 7px); width: 10px; height: 10px; border: 2px solid #a81d34; border-bottom: none; border-left: none;transform: rotate(45deg);}
#flow .row2 .col1 a:hover {opacity: 0.8;}
#flow .row2 .col2 {width: 50%;}
#flow .row2 .col2 img {width: 100%;}

@media (max-width: 1080px){
	#flow .row1 .card {width: 49%; margin-bottom: 2%;}
    #flow .row1 .card::after {display: none;}
    #flow .row2 .col1 {width: 100%; padding: 5vw;}
    #flow .row2 .col1 h3 {font-size: 3vw;}
    #flow .row2 .col2 {width: 100%;}
}

@media (max-width: 768px){
	#flow {padding: 10vw 0;}
    #flow .row1 {margin-bottom: 0;}
    #flow .row1 .card {width: 100%; margin-bottom: 5vw;}
    #flow .row1 .card::after {display: none;}
    #flow .card .card-content h3 {font-size: 1.8rem;}
    #flow .row2 .col1 {width: 100%; padding: 5vw;}
    #flow .row2 .col1 h3 {font-size: 2.4rem;}
    #flow .row2 .col1 a {font-size: 1.8rem;}
    #flow .row2 .col2 {width: 100%;}
}

/* QA */
#qa {padding: 130px 0 140px; }
#qa .qa-item{margin: 0 0 20px; padding: 2.4% 2.8%; border: 1px solid #e0ddd5; border-radius: 6px;}
#qa .qa-item:last-of-type{margin: 0;}
#qa .qa-question{font-size: 2.2rem; line-height: 1.7; font-weight: bold; position: relative; padding: 0 55px 0 63px; cursor: pointer;}
#qa .qa-question:before{content: 'Q.'; font-size: 5.5rem; line-height: 0.7; color: #a81d34; position: absolute; top: 0; left: 0; font-family: 'Barlow', sans-serif;}
#qa .qa-question i{width: 42px; height: 42px; background: #a81d34; position: absolute; top: 0; right: 0;}
#qa .qa-question i:before{content: ''; width: 20px; height: 2px; background: #fff; position: absolute; left: 11px; top: 20px;}
#qa .qa-question i:after{content: ''; width: 2px; height: 20px; background: #fff; position: absolute; left: 20px; top: 11px;}
#qa .qa-question.is-open i:after{display: none;}
#qa .qa-answer{padding: 20px 55px 0 0; display: none;}
#qa .qa-answer p{letter-spacing: -0.065em;}
#qa .qa-answer a {color: #a81d34; text-decoration: underline;}
#qa .qa-answer a:hover {opacity: 0.8;}
#qa .qa-answer_list li{text-indent: -1em; margin-left: 1em;}
#qa .qa-answer_list li:before{content: '・';}

@media (max-width: 1600px){
	#qa .qa-question {font-size: 1.8rem;}
}

@media (max-width: 768px){
	#qa {padding: 10vw 0;}
    #qa .qa-item{padding: 15px;}
    #qa .qa-question{font-size: 1.8rem; line-height: 1.6; padding: 0 45px 0 40px;}
    #qa .qa-question:before{font-size: 3.6rem; top: 3px;}
    #qa .qa-question i{width: 32px; height: 32px;}
    #qa .qa-question i:before{width: 12px; left: 10px; top: 15px;}
    #qa .qa-question i:after{height: 12px; left: 15px; top: 10px;}
    #qa .qa-answer{padding: 15px 0 0 0;}
}

/* Access */
#access {padding: 130px 0 140px;background: #f1f1f1;}
#access .access-wrap{display: flex; justify-content: space-between; flex-wrap: wrap;}
#access .access-map{width: 50%;}
#access .access-map iframe{width: 100%; height: 440px;}
#access .access-info{width: 45.7%;}
#access .access-rows{margin: 0 0 30px;}
#access .access-rows:last-of-type{margin: 0;}
#access .access-tit{font-size: 2.2rem; font-weight: bold; line-height: 1.5;  border-bottom: 2px dotted #a7003b; padding: 0 0 13px; margin: 0 0 10px;}
#access .access-tel{font-size: 3.6rem; font-weight: 600; font-family: 'Barlow', serif; line-height: 1.6; color: #a7003b;}
#access .access-tel{display: flex; align-items: center; justify-content: flex-start;}
#access .access-tel:before{content: ''; width: 29px; height: 29px; background: url("../img/ic_phone.svg") no-repeat top left/100% 100%; display: inline-block; transform: rotate(-10deg); margin: 0 5px 0 0; position: relative;}

@media (max-width: 768px){
	#access {padding: 10vw 0;}
    #access .access-wrap{width: 100%;}
    #access .access-map{width: 100%;}
    #access .access-map iframe{height: 100vw;}
    #access .access-info{width: 100%; padding: 20px 20px 0;}
    #access .access-tit{font-size: 1.8rem;}
}

/* Daigas */
#daigas{background: #f1f1f1; padding: 100px 0;}
#daigas .outer{background: #fff; border-radius: 10px; border: 3px solid #dddddd; padding: 50px 7%; width: 100%; align-items: center;}
#daigas .img{width: 25%;}
#daigas .inner{width: 71%;}
#daigas h3{font-size: 2.6rem; font-weight: bold; margin-bottom: 10px;}

@media (max-width: 768px){
	#daigas{padding: 10vw 0;}
	#daigas .outer{border: 2px solid #dddddd; padding: 5vw;}	
	#daigas .inner{width: 100%;}
	#daigas h3{font-size: 2.2rem; text-align: center; margin: 0;}	
	#daigas .imgsp{margin: 5vw auto; width: 198px;}
}

/* Contact */
#contact {background: #a81d34; text-align: center; color: #fff; padding: 100px 0 30px;}
#contact .tit-h2 .en {color: #fff; border-color: #fff;}
#contact .tit-h2 .jp {color: #fff;}
#contact .contact-txt{font-size: 2.2rem; margin: 0 0 40px; font-weight: bold;}
#contact .contact-btn {font-size: 2.4rem; font-weight: 600; line-height: 1; background: #fff; color: #a81d34; width: 100%; max-width: 400px; border-radius: 100px; position: relative; display: block; padding: 30px 0; margin: 0 auto 110px; transition: .3s;}
#contact .contact-btn:after{content: ''; position: absolute; top: 50%; right: 7.5%; margin-top: -4px; display: inline-block; padding: 4px; transform: rotate(-45deg); -webkit-transform: rotate(-45deg); border: solid #a81d34; border-width: 0 2px 2px 0;}
#contact .contact-btn:hover{opacity: 0.8;}

#copyright{font-size: 1.2rem; line-height: 1.5; font-family: 'Barlow', serif;}
#pagetop{position: fixed; bottom: 20px; right: 20px; width: 60px; z-index: 100; cursor: pointer;}

@media (max-width: 768px){
	#contact {padding: 10vw  0 5vw;}
    #contact .contact-txt{font-size: 1.8rem;}
    #contact .contact-btn{font-size: 1.6rem; margin: 0 auto 50px;}

    #pagetop{width: 40px; bottom: 10px; right: 10px;}
}
