/***********************************************
 stage
************************************************/
#stage {
    background: var(--sub-color);
}
#stage .row{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width: calc((100% - 1300px) / 2 + 1300px);
}
@media screen and (max-width: 1400px) {
#stage .row{
    width: calc(100% - 75px);
}
}
#stage .row .column-l{
    width: 65%;
}
#stage .row .column-l .wrap{
    padding: 20px 20px 20px 0;
    background: #fff;
    border-radius: 0 30vw 30vw 0;
    border-top: 2px solid var(--main-color);
    border-right: 2px solid var(--main-color);
    border-bottom: 2px solid var(--main-color);
    box-sizing: border-box;
}
#stage .row .column-l img{
    width: 100%;
    height: auto;
    border-radius: 0 30vw 30vw 0;
    border-top: 2px solid var(--main-color);
    border-right: 2px solid var(--main-color);
    border-bottom: 2px solid var(--main-color);
    box-sizing: border-box;
}
#stage .row .column-r{
    width: 33%;
    box-sizing: border-box;
}
#stage .row .column-r h1 {
    position: relative;
}
#stage .row .column-r h1 a{
    position: absolute;
    content: "";
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 86%;
    padding-top: 20%;
}
#stage .row .column-r h1 img{
    width: 100%;
    height: auto;
}
/***********************************************
 lineup
************************************************/
#top-lineup {
    padding: 70px 0;
    background: var(--sub-color);
}
#top-lineup .inner{
    max-width: 1200px;
    width: 90%;
    margin: 0 auto;
}
#top-lineup .inner .row{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
#top-lineup .inner .row .set{
    width: 30%;
}
#top-lineup .inner .row .set .showcase{
    border-radius: 15vw 15vw 0 0;
    padding: 15px;
    background: #fff;
    border: 2px solid var(--main-color);
    box-sizing: border-box;
    position: relative;
}
#top-lineup .inner .row .set .showcase:before {
    position: absolute;
    content: "";
    right: 7%;
    bottom: -20px;
    width: 65px;
    height: 45px;
    background: url(../images/common/flag.svg) no-repeat;
    background-size: cover;
    border: 5px solid #fff;
}
#top-lineup .inner .row .set .showcase img{
    border-radius: 15vw 15vw 0 0;
    width: 100%;
    height: auto;
    border: 2px solid var(--main-color);
    box-sizing: border-box;
}
#top-lineup .inner .row .set h3 {
    font-size: clamp(0.938rem, 0.866rem + 0.18vw, 1rem);
    margin: 40px 0;
    position: relative;
    padding-left: 60px;
}
#top-lineup .inner .row .set h3:before {
    position: absolute;
    content: "";
    left: 0;
    top: 0;
    width: 56px;
    height: 56px;
}
#top-lineup .inner .row .set h3.dph-ic:before {
    background: url(../images/common/prd-ic01.svg) no-repeat;
    background-size: cover;
}
#top-lineup .inner .row .set h3.spb-ic:before {
    background: url(../images/common/prd-ic02.svg) no-repeat;
    background-size: cover;
}
#top-lineup .inner .row .set h3 span{
    display: block;
    color: var(--main-color);
    font-size: clamp(1.25rem, 0.964rem + 0.71vw, 1.5rem);
    line-height: 120%;
}
#top-lineup .inner .row .set a.more{
    display: flex;
    align-items: center;
    max-width: 280px;
    height: 65px;
    box-sizing: border-box;
    padding: 0 55px 0 25px;
    color: var(--main-color);
    background: #fff;
    border: 2px solid var(--main-color);
    border-radius: 32px;
    font-size: clamp(1rem, 0.714rem + 0.71vw, 1.25rem);
    position: relative;
    filter: drop-shadow(3px 4px 0 rgba(84, 163, 92, 1));
    margin: 0 auto;
}
#top-lineup .inner .row .set a.more:hover{
    background: #fffbe1;
    filter: none;
}
#top-lineup .inner .row .set a.more:before{
    position: absolute;
    content: "";
    right: 15px;
    top: 0;
    bottom: 0;
    margin: auto;
    background: url(../images/common/ar-ic.svg) no-repeat;
    background-size: cover;
    width: 42px;
    height: 42px;
}
/***********************************************
 magazine
************************************************/
#top-magazine {
    padding: 70px 0;
    background: var(--sub-color);
}
#top-magazine .cover-bg{
    background:  linear-gradient(to left, #54a35c 0%, #abcd03 100%);
    border-radius: 50vw 0 0 50vw;
    position: relative;
}
#top-magazine .cover-bg:before{
    position: absolute;
    content: "";
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
    background: url(../images/top/bg.webp) no-repeat;
    background-size: cover;
    background-position: center center;
    border-radius: 50vw 0 0 50vw;
}
#top-magazine .cover-bg .inner{
    max-width: 1230px;
    margin: 0 auto;
    width: 90%;
    position: relative;
    z-index: 3;
    padding: 40px 0;
}
#top-magazine .cover-bg .inner h1{
    font-size: 76px;
    font-weight: 700;
    color: #fff;
    line-height: 120%;
    text-shadow:5px 5px 0 var(--main-color), -2px -2px 0 var(--main-color),
              -2px 2px 0 var(--main-color), 2px -2px 0 var(--main-color),
              0px 2px 0 var(--main-color),  0 -2px 0 var(--main-color),
              -2px 0 0 var(--main-color), 2px 0 0 var(--main-color);
}
#top-magazine .cover-bg .inner h1 span{
    display: block;
}
#top-magazine .cover-bg .inner ul{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 30px;
}
#top-magazine .cover-bg .inner ul li{
    width: 24%;
}
#top-magazine .cover-bg .inner ul li img{
    width: 100%;
    height: auto;
}
#top-magazine .cover-bg .inner ol{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 30px auto -50px auto;
    max-width: 945px;
}
#top-magazine .cover-bg .inner ol li:first-child{
    width: 22%;
}
#top-magazine .cover-bg .inner ol li:first-child img{
    width: 100%;
    height: auto;
}
#top-magazine .cover-bg .inner ol li:last-child{
    width: 75%;
    color: #fff;
    font-size: clamp(1rem, 0.929rem + 0.18vw, 1.063rem);
    line-height: 180%;
}
/***********************************************
 support
************************************************/
#top-support {
    padding: 70px 0;
    background: var(--sub-color);
}
#top-support .inner{
    max-width: 1240px;
    width: 90%;
    margin: 0 auto;
}
#top-support .inner .row{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
#top-support .inner .row .set{
    width: 31%;
    padding: 20px 30px 30px 30px;
    border-radius: 15px;
    border: 2px solid var(--main-color);
    box-sizing: border-box;
    position: relative;
    z-index: 0;
    margin-bottom: 30px;
}
#top-support .inner .row .frm-y{    
    background: #fff5b1;
}
#top-support .inner .row .frm-p{    
    background: #f9d7da;
}
#top-support .inner .row .frm-b{    
    background: #dcf2ff;
}
#top-support .inner .row .set:before{
    position: absolute;
    content: "";
    left: -6px;
    top: -6px;
    width: 100%;
    height: 100%;
    display: block;
    border: 2px solid  var(--main-color);
    background: #fff;
    border-radius: 15px;
    box-sizing: border-box;
    z-index: -1;
}
#top-support .inner .row .set h3{
    padding-top: 80px;
    line-height: 120%;
    text-align: center;
    color: var(--main-color);
    font-size: clamp(1.25rem, 0.964rem + 0.71vw, 1.5rem);
    font-weight: 600;
    margin-bottom: 20px;
    position: relative;
}
#top-support .inner .row .set h3:before{
    position: absolute;
    content: "";
    left: 0;
    right: 0;
    top: 0;
    margin: auto;
    width: 82px;
    height: 71px;
}
#top-support .inner .row .set:nth-of-type(1) h3:before{
    background: url(../images/top/sp-ic01.svg) no-repeat;
    background-size: cover;
}
#top-support .inner .row .set:nth-of-type(2) h3:before{
    background: url(../images/top/sp-ic02.svg) no-repeat;
    background-size: cover;
}
#top-support .inner .row .set:nth-of-type(3) h3:before{
    background: url(../images/top/sp-ic03.svg) no-repeat;
    background-size: cover;
}
#top-support .inner .row .set:nth-of-type(4) h3:before{
    background: url(../images/top/sp-ic04.svg) no-repeat;
    background-size: cover;
}
#top-support .inner .row .set:nth-of-type(5) h3:before{
    background: url(../images/top/sp-ic05.svg) no-repeat;
    background-size: cover;
}
#top-support .inner .row .set:nth-of-type(6) h3:before{
    background: url(../images/top/sp-ic06.svg) no-repeat;
    background-size: cover;
}
#top-support .inner .row .set p{
    margin: 0;
    padding: 0;
}
/***********************************************
 flow
************************************************/
#top-flow {
    padding: 70px 0;
    background: url(../images/common/glid-bg.svg);
    position: relative;
}
#top-flow:before {
    position: absolute;
    content: "";
    left: 0;
    top: 0;
    background: url(../images/top/note-bg.svg) repeat-x;
    height: 10px;
    width: 100%;
}
#top-flow .inner{
    max-width: 1100px;
    width: 90%;
    margin: 0 auto;
}
#top-flow .inner .frm{
    padding: 50px;
    box-sizing: border-box;
    background: #fff;
    border: 3px solid var(--main-color);
    filter: drop-shadow(5px 5px 0 rgba(84, 163, 92, 1));
    border-radius: 1vw;
}
#top-flow .inner .frm ul li:not(:last-child){
    margin-bottom: 30px;
}
#top-flow .inner .frm ul li h3{
    position: relative;
    font-size: clamp(1.375rem, 1.089rem + 0.71vw, 1.625rem);
    display: flex;
    align-items: center;
    min-height: 70px;
    color: var(--main-color);
    border: 2px solid  var(--main-color);
    border-radius: 35px;
    background: var(--sub-color);
    font-weight: 600;
    line-height: 120%;
    padding-left: 100px;
    padding-right: 10px;
    box-sizing: border-box;
    margin-bottom: 15px;
}
#top-flow .inner .frm ul li:last-child h3{
    color: #fff88b;
    background: var(--main-color);
}
#top-flow .inner .frm ul li h3:before{
    position: absolute;
    content: "";
    left: -5px;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 95px;
    height: 96px;
}
#top-flow .inner .frm ul li:nth-of-type(1) h3:before{
    background: url(../images/top/step-01.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(2) h3:before{
    background: url(../images/top/step-02.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(3) h3:before{
    background: url(../images/top/step-03.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(4) h3:before{
    background: url(../images/top/step-04.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(5) h3:before{
    background: url(../images/top/step-05.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(6) h3:before{
    background: url(../images/top/step-06.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(7) h3:before{
    background: url(../images/top/step-07.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li p{
    position: relative;
    padding-left: 95px;
    min-height: 72px;
    display: flex;
    align-items: center;
    margin-left: 75px;
}
#top-flow .inner .frm ul li p:before{
    position: absolute;
    content: "";
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 88px;
    height: 72px;
}
#top-flow .inner .frm ul li:nth-of-type(1) p:before{
    background: url(../images/top/flow-ic01.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(2) p:before{
    background: url(../images/top/flow-ic02.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(3) p:before{
    background: url(../images/top/flow-ic03.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(4) p:before{
    background: url(../images/top/flow-ic04.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(5) p:before{
    background: url(../images/top/flow-ic05.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(6) p:before{
    background: url(../images/top/flow-ic06.svg) no-repeat;
    background-size: cover;
}
#top-flow .inner .frm ul li:nth-of-type(7) p:before{
    background: url(../images/top/flow-ic07.svg) no-repeat;
    background-size: cover;
}
@media screen and (max-width: 1015px) {
/***********************************************
 magazine
************************************************/
#top-magazine .cover-bg .inner h1 span{
    display: inline;
}
}
@media screen and (max-width: 1000px) {
/***********************************************
 support
************************************************/
#top-support .inner .row .set{
    padding: 10px 15px 15px 15px;
}
}
@media screen and (max-width: 900px) {
/***********************************************
 stage
************************************************/
#stage .row .column-l .wrap{
    padding: 14px 14px 14px 0;
}
}
@media screen and (max-width: 850px) {
/***********************************************
 support
************************************************/
#top-support .inner .row .set{
    width: 48%;
}
}
@media screen and (max-width: 768px) {
/***********************************************
 stage
************************************************/
#stage .row{
    width: 95%;
}
/***********************************************
 lineup
************************************************/
#top-lineup .inner .row .set .showcase{
    border-radius: 22vw 22vw 0 0;
    padding: 10px;
}
#top-lineup .inner .row .set .showcase:before {
    bottom: -15px;
    width: 43px;
    height: 32px;
    border: 3px solid #fff;
}
#top-lineup .inner .row .set .showcase img{
    border-radius: 22vw 22vw 0 0;
}
#top-lineup .inner .row .set{
    width: 48%;
    margin-bottom: 30px;
}
#top-lineup .inner .row .set h3 {
    margin: 20px 0 20px 0;
}
}
@media screen and (max-width: 640px) {
/***********************************************
 stage
************************************************/
#stage .row .column-l{
    width: 100%;
}
#stage .row .column-l .wrap{
    padding: 10px 10px 10px 0;
    border-radius: 0 40vw 40vw 0;
}
#stage .row .column-l img{
    border-radius: 0 40vw 40dvw 0;
}
#stage .row .column-r{
    width: 90%;
    margin-top: 10px;
    margin-left: 7.5%;
}
/***********************************************
 magazine
************************************************/
#top-magazine {
    padding: 40px 0;
}
#top-magazine .cover-bg{
    border-radius: 80vw 0 0 0;
}
#top-magazine .cover-bg:before{
    background-size: cover;
    background-position: center right;
    border-radius: 80vw 0 0 0;
}
#top-magazine .cover-bg .inner h1{
    font-size: 48px;
}
#top-magazine .cover-bg .inner ul{
    margin-top: 10px;
}
#top-magazine .cover-bg .inner ul li{
    width: 48%;
    margin-bottom: 15px;
}
#top-magazine .cover-bg .inner ol{
    margin: 20px auto 20px auto;
}
#top-magazine .cover-bg .inner ol li:first-child{
    width: 40%;
    margin: 0 auto;
}
#top-magazine .cover-bg .inner ol li:last-child{
    width: 100%;
}
/***********************************************
 support
************************************************/
#top-support {
    padding: 40px 0;
}
#top-support .inner .row .set{
    width: 100%;
}
/***********************************************
 flow
************************************************/
#top-flow .inner .frm{
    padding: 30px 15px;
    border: 2px solid var(--main-color);
}
#top-flow .inner .frm ul li p{
    margin-left: 0;
}
}
@media screen and (max-width: 500px) {
}
@media screen and (max-width: 450px) {
/***********************************************
 lineup
************************************************/
#top-lineup .inner .row .set .showcase{
    border-radius: 45vw 45vw 0 0;
}
#top-lineup .inner .row .set .showcase img{
    border-radius: 45vw 45vw 0 0;
}
#top-lineup .inner .row .set{
    width: 100%;
}
}
@media screen and (max-width: 350px) {
}
@media screen and (max-width: 300px) {

}