@charset "UTF-8";

/* ================================================
===================================================
===================================================
Base
===================================================
===================================================
================================================ */
body{-webkit-text-size-adjust: 100%;color: #292929;font-family: 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;padding: 0;height: auto;font-size: 16px;}
img {width: 100%;}
body * {
  box-sizing : border-box;
}
/*++++++++++++++++++++++++++
	Link : Img
++++++++++++++++++++++++++*/
/*  PC  */
@media screen and (min-width: 641px){a:hover img {filter: alpha(opacity=75);-moz-opacity:0.75;opacity:0.75;}a:hover{filter: alpha(opacity=75);-moz-opacity:0.75;opacity:0.75;}
/* hover */.hover,a.hover{text-decoration:none ;-webkit-transition: background-color 0.4s linear;-moz-transition: background-color 0.4s linear;-o-transition: background-color 0.4s linear;transition: background-color 0.4s linear;filter: alpha(opacity=100);-moz-opacity:1;opacity:1;}}
dl,dt,dd,ul,ol,li{margin: 0px;padding: 0px;list-style:none;}
/*++++++++++++++++++++++++++
	汎用クラス
++++++++++++++++++++++++++*/
td {text-align: left;}
th {font-weight: normal;text-align: center;}
section {clear: both;margin: 0;padding: 0;}
/* ================================================
===================================================
===================================================
Base end
===================================================
===================================================
================================================ */

/* ================================================
===================================================
===================================================
reset
===================================================
===================================================
================================================ */
/* 
	html5doctor.com Reset Stylesheet
	v1.6.1
	Last Updated: 2010-09-17
	Author: Richard Clark - http://richclarkdesign.com 
	Twitter: @rich_clark
*/
 
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tfoot, thead, 
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {padding: 0;border: 0;outline: 0;font-size: 100%;vertical-align: baseline;margin: 0;font-style: normal;}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {display:block;}
nav ul {list-style:none;padding:0 ;}
blockquote, q {quotes:none;}
blockquote:before, blockquote:after,
q:before, q:after {content:'';content:none;}
.clear_both {clear: both;}
a {margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent;}
h1, h2, h3, h4, h5, h6 {font-size:100%;font-weight:normal;}
address{font-style:normal ;}
/* ================================================
===================================================
===================================================
reset end
===================================================
===================================================
================================================ */

/*++++++++++++++++++++++++++
	背景
++++++++++++++++++++++++++*/
html{
    scroll-padding-top: 30px;
}
.wrapper {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "游ゴシック", "Yu Gothic", "メイリオ", "sans-serif";
    max-width: 800px;
    width: 90%;
    margin: auto;
}
body{
    background-color: #009045;
    color: #171717;
    font-size: 16px;
    font-weight:normal;
    line-height: 1.7em;
    position: relative;
    overflow-x: hidden;
}
img{
    vertical-align: bottom;
    width: 100%;
    height: 100%;
}
body a:hover{
    opacity: 1;
}
body a:hover img{
    opacity: 1;
}
.maincontents{
    background-image: url(../images/content_back.jpg);
    background-position: center;
    background-size: 100%;
    background-repeat: repeat-y;
    position: relative;
    z-index: 1000;
    box-shadow: 0 0 15px rgba(0, 0, 0, .3);
    overflow: hidden;
    max-width: 500px;
    width: 100%;
    margin: auto;
    background-color: #009045;
}
@media only screen and (max-width: 500px) {
    .maincontents{
        box-shadow: none;
    }
}
/*++++++++++++++++++++++++++
	ボタン
++++++++++++++++++++++++++*/

a{text-decoration:none; color:#171717;}
a:link{text-decoration:none; color:#171717;}
a:visited{text-decoration:none; color:#171717;}
a:hover{text-decoration:none; color:#171717;}
a:active {text-decoration:none; color:#171717;}

/*++++++++++++++++++++++++++
	共通コンテンツ
++++++++++++++++++++++++++*/
.sp{
    display: none;
}
.pc{
    display:block;
}
@media only screen and (max-width: 500px) {
.sp{
     display: block;
}
.pc{
     display: none;
}
}
hgroup{
    margin-bottom: 30px;
    & figure{
        margin: auto auto 15px;
        width: 80%;
    }
    & h2{
        font-size: clamp(17px, 1.8vw, 18px);
        font-weight: 500;
        text-align: center;
        line-height: 1.5em;
        color: #fff;
    }
}
#about hgroup figure{
    max-width: 150px;
}
#program hgroup figure{
    max-width: 210px;
}
#gallery hgroup figure{
    max-width: 180px;
}
#sponsorship hgroup figure{
    max-width: 320px;
    width: 92%;
}
footer hgroup figure{
    max-width: 205px;
}
/*++++++++++++++++++++++++++
背景
++++++++++++++++++++++++++*/
.background{
    .back{
        position: fixed;
        top: 0;
        left: 0;
        z-index: 0;
    }
    .back img{
        width: 100vw;
        height: 100dvh;
        object-fit: cover;
    }
    & .conts_left{
        position: fixed;
        top:0;
        /* left: calc(50vw - 775px); */
        right: calc(50vw + 250px);
        z-index: 1;
    }
    & .conts_left figure img{
        width: auto;
        /* width: 525px; */
        height: 100vh;
        /* object-fit: cover; */
    }
    & .conts_right{
        position: fixed;
        top:0;
        /* right: calc(50vw - 775px); */
        left: calc(50vw + 250px);
        z-index: 1;
    }
    & .conts_right figure img{
        width: auto;
        /* width: 525px; */
        height: 100vh;
        /* object-fit: cover; */
    }
    & .bg_pc{
        display: block;
    }
    & .bg_sp{
        display: none;
    }
}
@media only screen and (max-width: 1200px) {
    .background{
        & .bg_pc{
            display: none;
        }
        & .bg_sp{
            display: block;
        }
    }
}
@media only screen and (max-width: 500px) {
    .background{
        display: none;
    }
}
/*++++++++++++++++++++++++++
メインビジュアル
++++++++++++++++++++++++++*/
#mainvisual{
    position: relative;
    margin-bottom: 180px;
    & .title{
        width: 100%;
        margin: auto;
        padding-top: 19%;
        position: relative;
        z-index: 20;
    }
    & .txt-box .place{
        margin-top: 20px;
    }
    & .txt-box .place > *{
        display: inline-block;
        vertical-align: top;
    }
    & .txt-box .place .left{
        width: 6em;
    }
    & .txt-box .place .left .txt{
        font-size: clamp(15px, 1.6vw, 16px);
        font-weight: 500;
        line-height: 1.4em;
        padding: 0.2em 0;
        text-align: center;
        color: #fff;
        border: solid 1px #fff;
        height: 62px;
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
    }
    & .txt-box .place .right{
        width: calc(100% - 7.5em);
        margin-left: 0.5em;
    }
    & .txt-box .place .right p{
        font-size: clamp(18px, 2vw, 20px);
        font-weight: 500;
        color: #fff;
        line-height: 1.55em;
    }
    & .txt-box .place .right p span{
        display: block;
        font-size: 0.82em;
    }
    & .txt-box .note{
        font-size: clamp(14px, 1.5vw, 15px);
        font-weight: 400;
        color: #fff;
        line-height: 1.5em;
        margin-top: 5px;
    }
    & .txt-box .map-btn{
        width: 80%;
        max-width: 180px;
        margin: 25px auto auto;
    }
    & .txt-box .map-btn .txt{
        background-color: #fff;
        border: solid 1px #fff;
        box-sizing: border-box;
        border-radius: 100px;
        font-size: clamp(15px, 1.6vw, 16px);
        text-align: center;
        letter-spacing: 0.02em;
        font-weight: 500;
        color: #019045;
        line-height: 1.5em;
        padding: 0.7em 0.2em;
        transition: all .2s;
    }
    & .txt-box .map-btn a:hover .txt{
        background-color: #027238;
        color: #fff;
    }
    & .illust1{
        position: absolute;
        top: -28px;
        left: 0;
        max-width: 180px;
        width: 36%;
    }
    & .illust2{
        position: absolute;
        top: 0.7%;
        right: 2%;
        max-width: 165px;
        width: 32%;
    }
    & .illust3{
        position: absolute;
        bottom: -15%;
        left: -7%;
        max-width: 235px;
        width: 45%;
    }
    & .illust4{
        position: absolute;
        bottom: -15%;
        right: -5%;
        max-width: 200px;
        width: 40%;
    }
    & .illust-hand{
        position: absolute;
        top: 28%;
        right: 0;
        max-width: 70px;
        width: 13%;
        z-index: 25;
    }
}
#mainvisual .illust1 figure{
    animation: sway-illust1 4.6s ease-in-out infinite;
}
@keyframes sway-illust1 {
    0% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(-7px);
      }
      100% {
        transform: translateY(0);
      }
}
#mainvisual .illust2 figure{
    animation: sway-illust2 4s ease-in-out infinite;
}
@keyframes sway-illust2 {
    0% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(4px);
      }
      100% {
        transform: translateY(0);
      }
}
#mainvisual .illust3 figure{
    animation: sway-illust3 4s ease-in-out infinite;
}
@keyframes sway-illust3 {
    0% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(10px);
      }
      100% {
        transform: translateY(0);
      }
}
#mainvisual .illust4 figure{
    animation: sway-illust4 5s ease-in-out infinite;
}
@keyframes sway-illust4 {
    0% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(-13px);
      }
      100% {
        transform: translateY(0);
      }
}
.scroll-foot1{
    position: fixed;
    bottom: 0;
    left: calc(50% - 250px);
    z-index: 100;
    & .stand{
        max-width: 500px;
        width: 100%;
    }
}
.scroll-foot2{
    position: fixed;
    bottom: 3%;
    right: calc(50% - 240px);
    z-index: 100;
    & .pagetop{
        width: 120px;
    }
}
@media only screen and (max-width: 500px) {
    #mainvisual{
        & .illust-hand{
            top: 52.5vw;
        }
    }
    .scroll-foot2{
        right: 10px;
        & .pagetop{
            width: 100px;
        }
    }
}

/*++++++++++++++++++++++++++
about
++++++++++++++++++++++++++*/
#about{
    padding: 35px 0;
    & p{
        font-size: clamp(17px, 1.8vw, 18px);
        font-weight: 300;
        line-height: 1.6em;
        color: #fff;
    }
}
/*++++++++++++++++++++++++++
program
++++++++++++++++++++++++++*/
#program{
    padding: 35px 0 45px;
    & .project{
        background-color: #fff;
        border-radius: 10px;
        position: relative;
    }
    & .project:not(:last-child){
        margin-bottom: 40px;
    }
    & .project .inr{
        padding: 70px 5% 50px;
    }
    & .project.conts3 .inr, .project.conts4 .inr{
        padding: 70px 5% 90px;/*リンクきたら消す*/
    }
    & .project h3{
        font-size: 20px;
        font-weight: 600;
        text-align: center;
        line-height: 1.6em;
        margin-bottom: 15px;
    }
    & .project h4{
        font-size: 15px;
        font-weight: 500;
        text-align: center;
        line-height: 1.6em;
        margin-bottom: 15px;
    }
    & .project h5{
        font-size: 15px;
        font-weight: 500;
        text-align: center;
        line-height: 1.6em;
        border: solid 1px #707070;
        padding: 0.5em;
        margin-bottom: 25px;
    }
    & .project p{
        font-size: clamp(17px, 1.8vw, 18px);
        line-height: 1.6em;
    }
    & .project .mgn-b25{
        margin-bottom: 25px;
    }
    & .project .pdf-btn{
        width: 80%;
        max-width: 180px;
        margin: 25px auto auto;
    }
    & .project .pdf-btn .txt{
        background-color: #FFAB38;
        box-sizing: border-box;
        border-radius: 100px;
        font-size: clamp(15px, 1.6vw, 16px);
        text-align: center;
        letter-spacing: 0.02em;
        font-weight: 500;
        color: #fff;
        line-height: 1.5em;
        padding: 0.7em 0.2em;
        transition: all .2s;
    }
    & .project.conts2 .pdf-btn .txt{
        background-color: #4B7ED0;
    }
    & .project.conts3 .pdf-btn .txt{
        background-color: #B4D547;
    }
    & .project.conts4 .pdf-btn .txt{
        background-color: #FF6E95;
    }
    & .project .pdf-btn .txt::after{
        content: '';
        display: inline-block;
        background-image: url(../images/ic_pdf.svg);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        width: 1.35em;
        height: 1.35em;
        vertical-align: middle;
        margin-left: 0.2em;
    }
    & .project .pdf-btn a:hover .txt{
        background-color: #F27324;
    }
    & .project.conts2 .pdf-btn a:hover .txt{
        background-color: #2656A2;
    }
    & .project.conts3 .pdf-btn a:hover .txt{
        background-color: #4AAC18;
    }
    & .project.conts4 .pdf-btn a:hover .txt{
        background-color: #FC547B;
    }
    & .project .number{
        position: absolute;
        top: 0;
        left: 0;
    }
    & .project .number .circle {
        width: 60px;
        height: 60px;
        background: #FFAB38;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 8px 0 54px 0;
        position: relative;
    }
    & .project.conts2 .number .circle{
        background: #4B7ED0;
    }
    & .project.conts3 .number .circle{
        background: #B4D547;
    }
    & .project.conts4 .number .circle{
        background: #FF6E95;
    }
    & .project .num {
        font-family: "Barlow", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "游ゴシック", "Yu Gothic", "メイリオ", "sans-serif";
        font-style: italic;
        position: absolute;
        font-size: 30px;
        font-weight: 600;
        color: #fff;
        top: 11px;
        left: 9px;
    }
    & .illust{
        position: absolute;
    }
    & .conts1 .illust{
        top: -12px;
        right: -2%;
        max-width: 80px;
        width: 20%;
    }
    & .conts2 .illust{
        top: -12px;
        right: -2%;
        max-width: 120px;
        width: 30%;
    }
    & .conts3 .illust{
        bottom: -25px;
        left: -3%;
        max-width: 115px;
        width: 27%;
    }
    & .conts4 .illust{
        bottom: -25px;
        right: -3%;
        max-width: 135px;
        width: 35%;
    }
}
#program .conts1 .illust figure{
    animation: prog-illust1 3s ease-in-out infinite;
}
@keyframes prog-illust1 {
    0% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(-5px);
      }
      100% {
        transform: translateY(0);
      }
}
#program .conts2 .illust figure{
    animation: prog-illust2 3s ease-in-out infinite;
}
@keyframes prog-illust2 {
    0% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(5px);
      }
      100% {
        transform: translateY(0);
      }
}
#program .conts3 .illust figure{
    animation: prog-illust3 3s ease-in-out infinite;
}
@keyframes prog-illust3 {
    0% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(-5px);
      }
      100% {
        transform: translateY(0);
      }
}
#program .conts4 .illust figure{
    animation: prog-illust4 3s ease-in-out infinite;
}
@keyframes prog-illust4 {
    0% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(5px);
      }
      100% {
        transform: translateY(0);
      }
}
/*++++++++++++++++++++++++++
gallery
++++++++++++++++++++++++++*/
#gallery{
    padding: 45px 0 0;
    & .photo{
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    & .photo > *:not(:first-child){
        width: 50%;
    }
}
/*++++++++++++++++++++++++++
sponsorship
++++++++++++++++++++++++++*/
#sponsorship{
    padding: 60px 0 45px;
    background-color: #fff;
    & .blk{
        margin-top: 40px;
    }
    & .blk .komidashi{
        font-size: clamp(18px, 2vw, 20px);
        text-align: center;
        color: #019045;
        margin-bottom: 20px;
    }
    & .blk h6{
        font-size: clamp(18px, 2vw, 20px);
        line-height: 1.7em;
    }
    & .blk ul.tokubetsu li{
        border-bottom: solid 1px #929292;
        padding: 12px 0;
    }
    & .blk ul.tokubetsu li figure{
        max-width: 180px;
        width: 70%;
        margin: auto;
    }
    & .blk ul.tokubetsu li:nth-child(2) figure{
        padding: 10px 0;
    }
    & .blk ul.kyousan, .blk ul.kyousan-s{
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    & .blk ul.kyousan-s{
        border-top: solid 1px #929292;
        padding-top: 25px;
        margin-top: 25px;
    }
    & .blk ul.kyousan li{
        width: 49%;
        margin-bottom: 2%;
    }
    & .blk ul.kyousan-s li{
        width: 47%;
        margin-bottom: 2.5%;
    }
    & .blk p{
        font-size: 16px;
        line-height: 2em;
        margin-top: 25px;
    }
    & .blk .txt-right{
        font-size: 14px;
        line-height: 1.5em;
        margin-top: 10px;
        text-align: right;
    }
}
/*++++++++++++++++++++++++++
フッター
++++++++++++++++++++++++++*/
footer{
    padding: 40px 0 120px;
    & p.address{
        font-size: 20px;
        line-height: 1.6em;
        font-weight: 600;
        text-align: center;
        margin-bottom: 10px;
        padding-top: 10px;
        color: #fff;
    }
    & p.tel{
        font-size: 18px;
        line-height: 1.6em;
        font-weight: 600;
        text-align: center;
        color: #fff;
    }
}

/*++++++++++++++++++++++++++
トップアニメーション
++++++++++++++++++++++++++*/
.scale-in {
    transform: scale(0.7);
    opacity: 0;
}
.scale-in.show {
    opacity: 1;
    animation: scaleBounceIn 0.65s cubic-bezier(0,.22,.22,1) forwards;
}
@keyframes scaleBounceIn {
    0% {
        transform: scale(0.7);
        opacity: 0;
    }
    50% {
        transform: scale(1.02);
        opacity: 1;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}
.slide-in-up {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s, transform 1s;
}
.slide-in-up.show {
    opacity: 1;
    transform: translateY(0);
}
/*++++++++++++++++++++++++++
スクロールアニメーション
++++++++++++++++++++++++++*/
.scroll-fadeup{
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s, transform 1s;
}
.scroll-fadeup.is-inview{
    opacity: 1;
    transform: translateY(0);
}
.scroll-scaleup {
    opacity: 0;
    transform: scale(0);
    transition: opacity 0.6s, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}
.scroll-scaleup.is-inview {
    opacity: 1;
    transform: scale(1);
}
