@charset "utf-8";

/*ページ内共通設定ここから*/
:root{
    --main-color:#cf7a77;
    --accent-color:#cfa476;
}

#main {margin: 0;}
#main *{box-sizing: border-box; border-radius: 0;}
html {scroll-behavior: smooth;}
#main h2,#main p,#main ul,#main li{margin: 0; padding: 0; line-height: normal;}
#main a{text-decoration: none; transition: .4s all;}
#main ul{list-style: none;}
#main img{width: 100%;}
#main h2{font-weight: bold; text-shadow: unset;}

#main section{margin-top: 0;}

#main {
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    box-sizing: border-box;
}

@media screen and (max-width:1024px){
    #main .section_inner {
        padding: 0 2%;
        box-sizing: border-box;
    }

    #main section {
        overflow: hidden;
        margin-top: 0;
        margin-left: 0;
        margin-right: 0;
    }
}

@media screen and (max-width:768px){
    #main .sp_none {
        display: none;
    }
}

/*ページ内共通設定ここまで*/


/*section001ここから*/
#main .section001{
	margin-bottom: 60px;
}

#main .section001 .media_sp{
	display: none;
}

@media screen and (max-width:1024px){
    #main .section001{
        margin-bottom: 6%;
    }
}

@media screen and (max-width:768px){
	#main .section001 .media_pc{
		display: none;
	}

	#main .section001 .media_sp{
		display: block;
	}
}
/*section001ここまで*/


/*section002,section006ここから*/
#main .section002,
#main .section006{
	margin-bottom: 100px;
}

#main .section002 h2,
#main .section006 h2{
	margin-bottom: 40px;
	text-align: center;
	font-size: 30px;
    background: rgba(0, 0, 0, 0);
    border: none;
}

#main .section002 h2 + p,
#main .section006 h2 + p{
	margin-bottom: 60px;
    font-size: 18px;
    text-align: center;
}

#main .section002 ul,
#main .section006 ul{
	display: -webkit-flex;
	display: flex;
}

#main .section002 ul li,
#main .section006 ul li{
    width: 33%;
    max-width: calc(940px / 3);
    box-sizing: border-box;
}

#main .section002 ul li:not(:last-of-type),
#main .section006 ul li:not(:last-of-type){
    margin-right: 10px;
}

#main .section002 ul li a,
#main .section006 ul li a{
    position: relative;
    display: block;
    height: 100%;
    padding: 15px 15px 32px;
    color: #fff;
    text-align: center;
    box-sizing: border-box;
    box-shadow: 2px 2px 5px 1px #888;
    background: var(--main-color);
}

#main .section002 ul li a::after,
#main .section006 ul li a::after{
    content: "";
    position: absolute;
    bottom: 5px;
    left: 50%;
    width: 0;
    height: 0;
    transform: translateX(-50%);
    border: 8px solid #fff;
    border-color: #fff transparent transparent;
    transition: .4s all;
}

#main .section002 ul li a > div,
#main .section006 ul li a > div {
    position: relative;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
}

#main .section002 ul li span,
#main .section006 ul li span{
    display: block;
    margin-bottom: 15px;
    font-size: 30px;
    font-weight: bold;
    text-align: center;
}

#main .section002 ul li p,
#main .section006 ul li p{
    font-size: 23px;
    line-height: 1.2;
    text-align: center;
    font-weight: bold;
}

@media screen and (min-width:1025px){
    #main .section002 ul li a:hover,
    #main .section006 ul li a:hover{
        background: #fff;
        color: var(--main-color);
    }

    #main .section002 ul li a:hover::after,
    #main .section006 ul li a:hover::after{
        bottom: 0;
        border-color: var(--main-color) transparent transparent;
    }
}

@media screen and (max-width:1024px){
    #main .section002,
    #main .section006{
        margin-bottom: 10%;
    }

    #main .section002 h2,
    #main .section006 h2{
        margin-bottom: 6%;
    }

    #main .section002 h2 + p,
    #main .section006 h2 + p{
        margin-bottom: 6%;
    }

    #main .section002 ul,
    #main .section006 ul{
        padding-bottom: 2%;
    }

    #main .section002 ul li,
    #main .section006 ul li{
        width: calc(96% / 3);
    }

    #main .section002 ul li:not(:last-of-type),
    #main .section006 ul li:not(:last-of-type){
        margin-right: 2%;
    }

    #main .section002 ul li a,
    #main .section006 ul li a{
        padding: 6% 6% 12%;
    }

    #main .section002 ul li span,
    #main .section006 ul li span{
        margin-bottom: 4%;
        font-size: calc(1vw * calc(26 / 7.68));
    }
    #main .section002 ul li p,
    #main .section006 ul li p{
        font-size: calc(1vw * calc(20 / 7.68));
    }
}

@media screen and (max-width:768px){
    #main .section002 h2,
    #main .section006 h2{
        font-size: calc(1vw * calc(15 / 3.75));
    }

    #main .section002 h2 + p,
    #main .section006 h2 + p{
        font-size: calc(1vw * calc(12 / 3.75));
    }

    #main .section002 ul,
    #main .section006 ul{
        display: block;
    }

    #main .section002 ul li,
    #main .section006 ul li{
        width: 100%;
        max-width: none;
    }

    #main .section002 ul li:not(:last-of-type),
    #main .section006 ul li:not(:last-of-type){
        margin: 0 0 2%;
    }

    #main .section002 ul li a,
    #main .section006 ul li a{
        padding: 2% 6%;
        text-align: left;
    }

    #main .section002 ul li a::after,
    #main .section006 ul li a::after{
        display: none;
    }

    #main .section002 ul li a > div,
    #main .section006 ul li a > div {
        top: 0;
        left: 0;
        transform: none;
        display: -webkit-flex;
        display: flex;
        -webkit-align-items: center;
        align-items: center;
    }

    #main .section002 ul li span,
    #main .section006 ul li span{
        display: inline-block;
        margin: 0 4% 0 0;
        font-size: calc(1vw * calc(20 / 3.75));
    }

    #main .section002 ul li p,
    #main .section006 ul li p{
        display: inline-block;
        width: 92%;
        font-size: calc(1vw * calc(15 / 3.75));
        text-align: center;
    }
}
/*section002,section006ここまで*/


/*section003～section005,section007～section009ここから*/
#main section:not(.section001,.section002,.section006){
	margin-bottom: 100px;
    padding-top: 100px;
    margin-top: -100px;
}

#main section:not(.section001,.section002,.section006) h2{
    width: 100%;
    max-width: 600px;
    margin: 0 auto 40px;
    padding: 10px 0;
    font-size: 23px;
    text-align: center;
    box-sizing: border-box;
    background: var(--accent-color);
    color: #fff;
}

#main section:not(.section001,.section002,.section006) h2 + p{
    margin-bottom: 60px;
    font-size: 18px;
    text-align: center;
}

#main section:not(.section001,.section002,.section006) .column_box{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
}

#main section:not(.section001,.section002,.section006) .cnt_img{
    width: 50%;
    max-width: 297px;
    margin-right: 60px;
}

#main section:not(.section001,.section002,.section006) .cnt_txt{
    width: 50%;
    max-width: 673px;
    font-size: 18px;
}

@media screen and (max-width:1024px){
    #main section:not(.section001,.section002,.section006){
        margin-bottom: 10%;
    }

    #main section:not(.section001,.section002,.section006) h2{
        margin-bottom: 4%;
    }

    #main section:not(.section001,.section002,.section006) h2 + p{
        margin-bottom: 6%;
    }

    #main section:not(.section001,.section002,.section006) .cnt_img{
        margin-right: 6%;
    }
    #main section:not(.section001,.section002,.section006) .cnt_txt{
        width: 53%;
    }
}

@media screen and (max-width:768px){
    #main section:not(.section001,.section002,.section006) h2{
        width: 80%;
        max-width: none;
        padding: 2% 4%;
        font-size: calc(1vw * calc(15 / 3.75));
    }

    #main section:not(.section001,.section002,.section006) h2 + p{
        font-size: calc(1vw * calc(12 / 3.75));
    }

    #main section:not(.section001,.section002,.section006) .column_box{
        display: block;
    }

    #main section:not(.section001,.section002,.section006) .cnt_img{
        width: 100%;
        margin: 0 auto 4%;
    }

    #main section:not(.section001,.section002,.section006) .cnt_txt{
        width: 100%;
        max-width: 600px;
        margin: 0 auto;
        font-size: calc(1vw * calc(12 / 3.75));
    }
}
/*section003～section005,section007～section009ここまで*/


/*section004、section008個別対応ここから*/

#main section.section004 h2 + p,
#main section.section008 h2 + p {
    /*text-align: left;*/
}

#main section.section004 .cnt_img,
#main section.section008 .cnt_img {
    margin-right: 0;
    order: 2;
}

#main section.section004 .cnt_txt,
#main section.section008 .cnt_txt {
    margin-right: 60px;
}

@media screen and (max-width:1024px){
    #main section.section004 .cnt_txt,
    #main section.section008 .cnt_txt {
        margin-right: 6%;
    }
}

@media screen and (max-width:768px){
    #main section.section004 .cnt_txt,
    #main section.section008 .cnt_txt {
        margin-right: auto;
    }
    #main section.section004 .cnt_img,
    #main section.section008 .cnt_img {
        margin-right: auto;
    }
}
/*section004、section008個別対応ここまで*/


/*section009個別対応ここから*/
#main .section009 .column_box {
    margin-bottom: 100px;
}

#main .section009 .column_box > div img{
    display: block;
    max-width: 240px;
}

#main .section009 .column_box > div img:last-of-type{
    margin: -10% 0 0 auto;
}

#main .section009 .column_box + div {
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
    box-shadow: 2px 2px 5px 1px #888;
}

#main .section009 .column_box + div a {
    position: relative;
    display: block;
    padding: 30px 0;
    background: var(--main-color);
    color: #fff;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
}

#main .section009 .column_box + div a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    width: 10px;
    height: 10px;
    border: 3px solid #fff;
    border-width: 3px 3px 0 0;
    transform: translateY(-50%) rotate(45deg);
    transition: .4s all;
}

@media screen and (min-width:1025px){
    #main .section009 .column_box + div a:hover {
        background: #fff;
        color: var(--main-color);
    }

    #main .section009 .column_box + div a:hover::after {
        border-color: var(--main-color);
    }
}

@media screen and (max-width:1024px){
    #main .section009 .column_box {
        margin-bottom: 10%;
    }   

    #main .section009 .column_box + div a {
        padding: 9% 0;
    }
}
/*section009個別対応ここまで*/


/*section007個別対応ここから*/
#main .section007 .column_box > div{
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
}

#main .section007 .column_box > div img{
    width: 49%;
}

#main .section007 .column_box > div img:first-of-type{
    margin-right: 2%;
}
/*section007個別対応ここまで*/


/*section005個別対応ここから*/
#main section.section005 {
    margin-bottom: 180px;
}

@media screen and (max-width:1024px){
    #main section.section005 {
        margin-bottom: 18%;
    }
}
/*section005個別対応ここまで*/


/*section002,section006アニメーション対応ここから*/
#main .section002 h2 span,
#main .section006 h2 span {
    position: relative;
    display: inline-block;
}

#main .section002 h2 span.is_active::after,
#main .section006.is_active h2 span::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0%;
    height: 15px;
    background: var(--accent-color);
    z-index: -1;
    animation: line-draw .4s linear 0s 1 alternate forwards;
}

@media screen and (max-width:500px){
    #main .section002 h2 span.is_active::after,
    #main .section006.is_active h2 span::after {
        height: 10px;
    }
}

@keyframes line-draw {
    0%{
        width: 0%;
    }

    100%{
        width: 100%;
    }
}
/*section002アニメーション対応ここまで*/


/*section003～section005,section007～section009アニメーション対応ここから*/
#main .section003 h2,
#main .section005 h2,
#main .section007 h2,
#main .section009 h2 {
    transform: translateX(-20px);
    opacity: 0;
}

#main .section003 h2 + p,
#main .section005 h2 + p,
#main .section007 h2 + p,
#main .section009 h2 + p{
    transform: translateX(20px);
    opacity: 0;
}

#main .section003.is_active h2,
#main .section005.is_active h2,
#main .section007.is_active h2,
#main .section009.is_active h2{
    transform: translateX(-20px);
    animation: lfadeIn .8s ease-out 0s 1 alternate forwards;
}

#main .section003.is_active h2 + p,
#main .section005.is_active h2 + p,
#main .section007.is_active h2 + p,
#main .section009.is_active h2 + p {
    transform: translateX(20px);
    animation: rfadeIn .8s ease-out 0s 1 alternate forwards;
}

#main .section004 h2,
#main .section008 h2 {
    transform: translateX(20px);
    opacity: 0;
}

#main .section004 h2 + p,
#main .section008 h2 + p {
    transform: translateX(-20px);
    opacity: 0;
}

#main .section004.is_active h2,
#main .section008.is_active h2 {
    transform: translateX(20px);
    animation: rfadeIn .8s ease-out 0s 1 alternate forwards;
}

#main .section004.is_active h2 + p,
#main .section008.is_active h2 + p {
    transform: translateX(-20px);
    animation: lfadeIn .8s ease-out 0s 1 alternate forwards;
}

#main .section003 .column_box,
#main .section004 .column_box,
#main .section005 .column_box,
#main .section007 .column_box,
#main .section008 .column_box,
#main .section009 .column_box {
    opacity: 0;
}

#main .section003.is_active .column_box,
#main .section004.is_active .column_box,
#main .section005.is_active .column_box,
#main .section007.is_active .column_box,
#main .section008.is_active .column_box,
#main .section009.is_active .column_box {
    animation: cfadeIn .8s ease-out .4s 1 alternate forwards;
}

@keyframes lfadeIn {
    0%{
        transform: translateX(-20px);
        opacity: 0;
    }

    100%{
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes rfadeIn {
    0%{
        transform: translateX(20px);
        opacity: 0;
    }

    100%{
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes cfadeIn {
    0%{
        opacity: 0;
    }

    100%{
        opacity: 1;
    }
}

/*section003～section005,section007～section009アニメーション対応ここまで*/