abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,#header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body,html{height:100%}html{scroll-behavior:smooth}body,button{line-height:1;font-family:Noto Sans JP,Helvetica Neue,Arial,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif}article,aside,details,figcaption,figure,footer,#header,hgroup,menu,nav,picture,section{display:block}ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}ins{text-decoration:none}ins,mark{background-color:#ff9;color:#000}mark{font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}img{max-width:100%;height:auto; vertical-align: bottom;}button{background-color: transparent;cursor: pointer; border: none; outline: none; display: inline-block; padding: 0;}
/* フッターを一番下に配置 */
/* height: 100vh;を定義したのに、iOSのスマホで高さいっぱいに表示されないのを解決する記述 */
body {
min-height: 100vh;
width: 100%;
/* mobile viewport bug fix */
min-height: -webkit-fill-available;
color: #353535;
}
html {
font-size:62.5%;
height: -webkit-fill-available;
scroll-behavior: smooth;
}
html, body { height: 100%;}
body > footer {position: sticky; top: 100vh;}

@media only screen and (max-width: 767.98px){
img{width: 100%;}
}

/* ====================================
#header
===================================== */
#header{
    width:100%
}
#header .container{
    margin:0 auto;
    display:flex;
    justify-content:space-between;
    align-items:center;
    height:min(21.3vw,78px);
}
@media screen and (min-width: 768px){
    #header .container{
     width: 1140px;
     height:100px
    }
}
#header .logo{
    width:min(27.4%,192px);
    height:auto;
}
@media screen and (min-width: 768px){
    #header .logo{
        width:156px;
        height:97px;
    }
}

/* ====================================
footer
===================================== */
#footer a{
    color:#000;
    text-decoration:none
}
#footer a:hover{
    text-decoration:underline
}
#footer>.top{
    background-color:#a0d7f0
}
#footer>.top .inner{
    margin:0 auto;
    padding:32px 0;
    width:980px;
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-pack:justify;
    -ms-flex-pack:justify;
    justify-content:space-between;
    -webkit-box-align:center;
    -ms-flex-align:center;
    align-items:center
}
#footer>.top .inner .txt{
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-align:center;
    -ms-flex-align:center;
    align-items:center
}
#footer>.top .inner .address{
    color:#00549e;
    font-size:13px;
    font-size:1.3rem;
    padding-left:20px
}
#footer>.top .inner .address .name{
    font-size:16px;
    font-size:1.6rem;
    font-weight:700;
    margin-bottom:.5em
}
#footer>.top .inner .access{
    margin-left:auto
}
#footer>.top .inner .access .btn{
    color:#00549e;
    font-size:14px;
    font-size:1.4rem;
    font-weight:700;
    line-height:1.1;
    border:1px solid #00549e;
    border-radius:100px;
    background-color:#fff;
    padding:12px 40px;
    display:inline-block;
    position:relative
}
#footer>.top .inner .access .btn:before{
    content:"";
    background:url(../img/icon_access.avif) no-repeat;
    background-size:contain;
    margin-right:10px;
    width:16px;
    height:20px;
    display:inline-block;
    vertical-align:middle
}
#footer>.top .inner .access .btn span{
    display:inline-block;
    vertical-align:middle
}
#footer>.middle .inner{
    margin:0 auto;
    padding:30px 45px;
    width:980px;
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-pack:justify;
    -ms-flex-pack:justify;
    justify-content:space-between;
    -webkit-box-sizing:border-box;
    box-sizing:border-box
}
#footer>.middle .inner ul li{
    font-size:12px;
    font-size:1.2rem;
    line-height:1.2;
    text-indent:-16px;
    padding-left:16px
}
#footer>.middle .inner ul li+li{
    margin-top:.9em
}
#footer>.middle .inner ul li a::before{
    content:"";
    margin-top:-.2em;
    margin-right:10px;
    width:0;
    height:0;
    border-style:solid;
    border-width:3px 0 3px 4px;
    border-color:transparent transparent transparent #007bff;
    display:inline-block;
    vertical-align:middle
}
#footer>.bottom{
    border-top:1px solid #969696;
    padding:15px 0
}
#footer>.bottom .copyright{
    font-size:12px;
    font-size:1.2rem;
    line-height:2;
    text-align:center
}
@media screen and (max-width:768px){
    #footer>.top .inner{
        margin:0 4%;
        padding:4% 0;
        display:block;
        width:auto
    }
    #footer>.top .inner .txt{
        line-height:1.4;
        -webkit-box-pack:center;
        -ms-flex-pack:center;
        justify-content:center
    }
    #footer>.top .inner .logo{
        width:70px
    }
    #footer>.top .inner .address{
        font-size:1rem;
        padding-left:1.5rem
    }
    #footer>.top .inner .address p{
        font-size:1rem
    }
    #footer>.top .inner .address .name{
        font-size:1rem;
        margin-bottom:.2em
    }
    #footer>.top .inner .access{
        text-align:center;
        margin-top:2.89855%;
        margin-left:0
    }
    #footer>.top .inner .access .btn{
        font-size:1.1rem;
        border-radius:100px;
        padding:.8rem 2rem
    }
    #footer>.top .inner .access .btn:before{
        margin-right:1rem;
        width:16px;
        height:20px;
        width:1.2rem;
        height:1.5rem
    }
    #footer>.middle .inner{
        margin:0 4%;
        padding:8% 0;
        display:block;
        width:auto
    }
    #footer>.middle .inner ul+ul{
        margin-top:.9rem
    }
    #footer>.middle .inner ul li{
        font-size:1.2rem
    }
    #footer>.middle .inner ul li+li{
        margin-top:.9rem
    }
    #footer>.middle .inner ul li a::before{
        margin-top:-.2em;
        margin-right:1.2rem;
        border-width:.3rem 0 .3rem .4rem
    }
    #footer>.bottom{
        padding:4.34783% 4%
    }
    #footer>.bottom .copyright{
        font-size:1rem;
        line-height:1.75
    }
}
#main{overflow: hidden;}
.btn-backtop{
    display:block;
    position:fixed;
    bottom:96px;
    right:10px;
    width:50px;
    height:50px;
    visibility:hidden;
    opacity:0;
    transition:opacity .3s;
    z-index:2001
}
@media screen and (min-width:768px){
    .btn-backtop{
        bottom:110px;
        right:20px
    }
}
.btn-backtop.active{
    visibility:visible;
    opacity:1
}
/* ====================================
color
===================================== */
:root{
 --main-color: #0072CE;
 --primary-color: #FFD500;
 --sub-color:#DC0080;
}

.bg-01{ background-color: var(--main-color); color: #fff;}
.bg-02{ background-color: #e5f1fa;}
.bg-02 .cercle{ fill: #fff; rotate: -270deg;}
.cercle{ position: absolute; animation: scaleUd 2s ease infinite; z-index: 1; fill: #e3f9fd;}

@media print, screen and (min-width: 768px){
.cercle{width: 247px; height: 243px; top: -48px; left: -70px;}
.bg-02 .cercle{ top: -30px; left: -80px;}
}
@media only screen and (max-width: 767.98px){
.cercle{width: min(32.9vw,247px); height: min(32.4vw,243px); top: min(-8.5vw,-32px); left: min(-11.7vw,-44px);}
.bg-02 .cercle{ width: min(32.4vw,243px); height: min(32.8vw,246px); top: min(-6.6vw,-25px); left: min(-12.2,-46px);}
}

/* ====================================
under
===================================== */
.under{
    background-color:rgba(0,0,0,.7);
    width:100%;
    position:fixed;
    bottom:0;
    z-index:2000;
    padding:10px 0;
    visibility:hidden;
    opacity:0;
    transition:opacity .3s
}
.under.active{
    visibility:visible;
    opacity:1
}
.under p{
    color:#fff;
    text-align:center;
    font-size:10px;
    padding:0 4%
}
.under .btn-wrap{
    margin:10px auto 0;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    width:90%;
    box-shadow:inherit
}
.under .btn-wrap a{
    text-decoration:none;
    font-weight:700;
    font-size:16px;
    border-radius:60px;
    width:48%;
    height:10vw;
    text-align:center;
    box-sizing: border-box;
}
.under .btn-wrap a.btn-yellow{
    box-shadow:none;
    font-size:4vw;
    background-color:#FFD500;
    color:#000;
    border-width:2px;
    padding-top:3vw
}
.under .btn-wrap a.btn-line{
    background-color:#02b902;
    color:#000;
    border-width:2px;
    font-size:3.1vw;
    line-height:1.3;
    padding-top:1vw
}
@media (min-width:768.98px){
    .under p{
        width:auto;
        font-size:14px
    }
    .under .btn-wrap a.btn-yellow{
        padding-top:18px;
        font-size:26px
    }
    .under .btn-wrap a.btn-line{
        font-size:20px;
        line-height:1.3;
        padding-top:7px
    }
    .under .btn-wrap{
        width:670px;
        height:inherit
    }
    .under .btn-wrap a{
        border:2px solid #fff;
        height:70px;
        width:320px;
        font-size:20px;
        border-radius:8px;
        margin-top:0
    }
}
/* ====================================
layout
===================================== */
.reverce{ flex-direction: row-reverse;}
.d-flex{display: flex; justify-content: space-between; flex-wrap: wrap;}
.container{margin: 0 auto; position: relative; box-sizing: border-box;}
.t-c{text-align: center;}

@media (min-width: 768px) {
body{min-width: 1200px;}
.container{width: 1000px;}
main section{padding-top: 100px;}
main section.pb{ padding-bottom: 120px;}
.d-flex-lg{display: flex; justify-content: space-between; flex-wrap: wrap;}
.reverce-lg{ flex-direction: row-reverse;}
.pc-only{display: block;}
.sp-only{display: none;}
}
@media (max-width: 767px) {
.container{width: 85.3%;}
.container-lg{width: 93.3%;}
main section{ padding-bottom: min(32vw,120px);}
.d-flex-sp{display: flex; justify-content: space-between;}
.pc-only{display: none;}
.sp-only{display: block;}
}

/* ====================================
button
===================================== */
.btn {
margin-left: auto;
margin-right: auto;
display:flex;
align-items: center;
justify-content:center;
box-sizing: border-box;
position: relative;
text-decoration: none;
inline-size: fit-content; /* ボタンの論理サイズ */
touch-action: manipulation; /* スマホでボタンをタップした際の誤動作を防止 */
user-select: none; /* ボタンのテキストの意図しない選択 */
font-weight: 700;
line-height: 1;
transition: all 0.3s ease;
&:hover{text-decoration: none;}
 & svg[class^="icn"]{ position: absolute; right: 1em;}
}
* {
&:focus-visible {/* フォーカス時のoutline */ 
outline: 2px solid magenta;
outline-offset: 2px;
}
}

@media print, screen and (min-width: 768px){
.btn{ border-radius: 8px;}
}
@media only screen and (max-width: 767.98px){
.btn{ border-radius: 6px;
 & svg.icn-arrow{ width: 6vw; height: 6vw; right: 0.3em;}
 & svg.icn-modal{ width: 4.2vw; height: 4.2vw; right: 1em;}
}
}

.btn-primary{ background-color: #58CAE7; color: #000; margin: 0;
& svg[class^="icn"]{ fill: #000;}
&:hover{ background-color: var(--main-color); color: #fff;
& svg[class^="icn"]{ fill: #fff;}
}
}

@media only screen and (max-width: 767.98px){
.btn-primary{ font-size: min(3.7vw,14px); padding: 1em 2.3em 1em 1em;}
}

.btn-secondary{ margin: 0 auto; background-color: var(--primary-color); color: #000; flex-direction: column; box-shadow: 4px 4px 3px rgba(0,0,0,.25);
&:hover{ box-shadow: 0 0 10px rgba(0,0,0,.8);}
}
.btn-secondary small,.btn-secondary span{ display: block;}

.btn-default{ border: 2px solid var(--main-color); color: var(--main-color);
&.btn-default-bg{ border: none; background-color: var(--main-color); color: #fff;
& svg[class^="icn-"]{fill: #fff;}
}

& svg[class^="icn-"]{fill: var(--main-color);}
&:hover{ background-color: var(--main-color); color: #fff;
& svg[class^="icn-"]{ fill: #fff;}
}
}
.btn-default.btn-outline{ border-color: #fff; color: #fff;
& .icn-arrow{fill: #fff;}
&:hover{ background-color: #fff; color: var(--main-color);
& .icn-arrow{fill: var(--main-color);}
}
}

@media print, screen and (min-width: 768px){
.btn:hover .icn-arrow{ animation: move_icon 2s ease infinite;}
.btn:hover .icn-modal{ animation: scale_icon 2s ease infinite;}
}

@keyframes move_icon {
0% {
  right: 1em;
}
50% {
  right: 0.2em;
}
100% {
  right: 1em;
}
}
@keyframes scale_icon {
0% {
  scale: 1;
}
50% {
  scale: 1.8;
}
100% {
  scale: 1;
}
}

@media print, screen and (min-width: 768px){
.btn-lg{ font-size: 1.6rem; height: 50px; width: min(25.3%,304px);}
#header .btn-lg{margin: 0;}
.btn-secondary{ margin: 0 auto 30px; padding: 12px 1em; width: 450px; border-radius: 45px;
&:hover{ width: 500px;}
}
.btn-secondary .btn-txt-small{ font-size: 1.8rem;}
.btn-secondary .btn-txt{ font-size: 3rem; margin-top: 14px;}

.btn-default{ font-size: 1.8rem; width: 300px; height: 60px;}
.btn-default.btn-outline{font-size: 2rem;}
}
@media only screen and (max-width: 767.98px){
.btn-secondary{ width: min(85.7%,600px); padding: min(3.4vw,13px) 0 min(3.2vw,12px); border-radius: min(9.3vw,35px);}
.btn-secondary .btn-txt-small{ font-size: min(3.7vw,14px);}
.btn-secondary .btn-txt{ font-size: min(5.8vw,22px); margin-top: min(2.6vw,10px);}

.btn-default{ font-size: min(4.2vw,16px); width: min(85.7%,600px); height: min(16vw,60px);}

}

.icn-arrow{fill: #000; transition: all 0.3s ease-in;}

/* ====================================
#cover
===================================== */
#sld-kv{ max-width: 1140px; margin-left: auto; margin-right: auto;}

@media print, screen and (min-width: 768px){
 #cover{ padding: 24px 0 300px;}
 #sld-kv{ width: 1140px;}
}
@media only screen and (max-width: 767.98px){
#cover{ padding: min(3.7vw,28px) 3.3% 0;}
#cover .container{width: 93.3%; margin: 0 auto;}
#sld-kv{margin-bottom: min(10.4vw,40px);}
}

/* ====================================
#ac
===================================== */

#ac{ text-align: center; position: relative;
.inner{ position: relative; z-index: 2;}
}
#ac .lead{ font-weight: 700; line-height: 1.88;}
#ac .lead span{ display: inline-block; background-color: var(--main-color); line-height: 1;}

.ac-img{margin: 0 auto 24px;}
.ac-img figcaption{ line-height: 1.75;}
.ac-border,.ac-border-btm{position: absolute; z-index: 1;}
.ac-border{left: 0; right: 0; margin: 0 auto;}

@media print, screen and (min-width: 768px){
#ac .lead{ font-size: 2.4rem; text-align: center; margin: 0 auto 94px;}
.ac-img img{margin-bottom: 18px; max-width: 454px;}
.ac-img figcaption{ font-size: 1.4rem;}

.ac-border{ top: -26px; width: 620px; height: auto;}
}
@media only screen and (max-width: 767.98px){
main section#ac{ padding-bottom: 0;}
#ac .lead{ font-size: min(4vw,15px); text-align: center; margin-bottom: min(10.6vw,40px);}
.ac-img img{ width: 64.8%; margin-bottom: min(4.5vw,17px);}
.ac-img figcaption{ font-size: min(3.2vw,12px);}

.ac-border{top: min(-13.3vw,-50px); width: min(86.8vw,651px); height: min(82.4vw,618px);}
.ac-border-btm{ left: min(-2.4vw,-9px); top: min(70vw,525px); width: min(26.4vw,198px); height: min(48.4vw,363px);}
}

/* ====================================
#massage
===================================== */
#massage p{ font-weight: 700; line-height: 2;}

@media print, screen and (min-width: 768px){
#massage{max-width: 672px;}
#massage h2{ font-size: 5.6rem; line-height: 1.56; margin-bottom: 60px;}
#massage p{ font-size: 2.8rem;}
}
@media only screen and (max-width: 767.98px){
main section#massage{ padding-top: min(13.3vw,50px);}
#massage h2,#massage p{ text-align: center;}
#massage h2{ font-size: min(7.46vw,28px); line-height: 1.6; margin-bottom: min(10.6vw,40px); font-feature-settings: 'palt';}
#massage p{ font-size: min(4.2vw,16px);}
}

/* ====================================
#donate
===================================== */
#donate{ text-align: center;}

.donate-txt{ font-weight: 700;}


@media print, screen and (min-width: 768px){
#donate h2{ font-size: 2.4rem; line-height: 1.75; margin: 0 auto 40px;}
.donate-txt{ font-size: 1.4rem;}
#donate h3{ font-size: 1.8rem; margin: 86px auto 20px;}
}
@media only screen and (max-width: 767.98px){
#donate h2{ font-size: min(4vw,15px); line-height: 1.8; margin-bottom: min(5.8vw,22px); font-feature-settings: 'palt';}
.donate-txt{ font-size: min(3.7vw,14px);}
#donate .btn-secondary{ margin-bottom: min(5.3vw,20px);}
#donate h3{ font-size: min(4.2vw,16px); margin: min(21.3vw,80px) auto min(4.8vw,18px);}

}
/* ====================================
section1
===================================== */
.section1{background-color: #fcf9e8;}
.section1 .hgroup{ display: flex; align-items: center;}
.section1 .hgroup,.section1 .hgroup h2,.sec1-box-img,.sec1-photo{ position: relative;}
.section1 .hgroup picture,.sec1-box-img .sec1-photo-bg,.sec1-img{position: absolute;}
.section1 .hgroup h2{ font-weight: 900; color: #fff; z-index: 3; margin: 0;}
.sec1-ttl-bg-1{z-index: 2; animation: scaleUd 3s ease infinite;}
.sec1-ttl-bg-2{z-index: 1; top: 0; left: 0; animation: scaleUd 3s 0.2s ease infinite;}

.title-02{ color: var(--main-color); font-weight: 900;}
.title-03{ color: var(--main-color); font-weight: 700; font-feature-settings: 'palt'; letter-spacing: 0.04em; position: relative;}
.title-04{ color: var(--main-color); font-weight: 700; text-align: center;}

.fw-black{ font-weight: 900;}

.sec1-box.d-flex-lg{flex-wrap: nowrap;}

.sec1-box{position: relative; z-index: 2;}
.sec1-photo{z-index: 2;}
.sec1-photo img{width: 100%;}
.sec1-photo-bg{z-index: 1; transform-origin: 50% 50%;  animation: scaleUd_l 3s ease infinite;}
.sec1-img{ z-index: 3;}

.sec1-btm-1{width: 100%; position: relative; line-height: 1;}

@media print, screen and (min-width: 768px){
 .sec1-btm-1{top: -160px; z-index: 1;}
 .section1 .container{ max-width: 1024px;}
 .section1 .hgroup{max-width: 1083px; aspect-ratio:1083/523; justify-content: center; left: -220px; margin-bottom: 54px; margin-top: -334px;}
 .section1 .hgroup h2{ font-size: 3.2rem; line-height: 2;}
 .sec1-ttl-bg-1{ left: 24px; top: 32px;}
 .sec1-01-img-1{ left: 299px; top: 418px;}

 .sec1-box{align-items: start;}
 .sec1-box-txt{width: 35.5%;}

 .title-02{ font-size: 3.2rem; line-height: 1.62; margin-bottom: 60px;}
 .title-03{ font-size: 2.8rem; line-height: 1.57; margin-bottom: 36px;}
 .title-03.fw-black{ margin-bottom: 50px;}
 .title-04{ font-size: 2.4rem; line-height: 2; margin-bottom: 20px;}

 .txt{ font-size: 1.8rem; line-height: 1.88;}
 .sec1-box-txt .btn{margin-top: 44px;}

 .sec1-box-01 .sec1-box-txt{margin-top: 62px;}
 .sec1-box-01 .sec1-photo-bg{top: 10px; left: 0;}
 .sec1-01-img{ right: 16px; bottom: -180px;}

 .sec1-box + .sec1-box.sec1-box-02{margin-top: 200px;}
 .sec1-box-02 .sec1-box-txt{width:  52%;}
 .sec1-box-02 .sec1-box-img{width: 72.4%; left: min(-13.67%,-140px);}
 .sec1-box-02 .sec1-photo-bg{top: -20px; left: -14px;}
 .sec1-02-img{ right: 0; bottom: -114px;}

 .sec1-box + .sec1-box.sec1-box-03{margin-top: 156px;}
 .sec1-box-03 .sec1-box-txt{margin-top: 54px;}
 .sec1-box-03 .sec1-box-img{width: 54.2%; margin-right: min(5.4%,56px);}
 .sec1-box-03 .sec1-photo-bg{top: -5px; right: -20px;}
 .sec1-03-img{ right: -30px; bottom: -140px;}

 .sec1-box + .sec1-box.sec1-box-04{margin-top: 60px;}
 .sec1-box-04 .sec1-box-txt{margin-top: 174px; width: 44%;}
 .sec1-box-04 .sec1-box-img{width: 51.8%; left: min(-1.9%,-20px);}
 .sec1-box-04 .sec1-photo-bg{top: 8px; right: -2px;}

 .sec1-box + .sec1-box.sec1-box-05{margin-top: 52px;}
 .sec1-box-05 .sec1-box-txt{margin-top: 24px; width: 46%;}
 .sec1-box-05 .sec1-box-img{width: 70%; right: min(-13.6%,-140px);}
 .sec1-box-05 .sec1-photo-bg{top: -20px; right: 6px;}
 .sec1-05-img{ left: min(-34.4%,-344px); bottom: -72px;}

 .sec1-box + .sec1-box.sec1-box-06{margin-top: 134px;}
 .sec1-box-06 .sec1-box-txt{margin-top: 76px; width: 47.48%;}
 .sec1-box-06 .sec1-box-img{width: 57.4%; left: min(-9.1%,-94px);}
 .sec1-box-06 .sec1-photo-bg{top: 2px; right: -5px;}
 .sec1-06-img{ right: min(4.4%,44px); bottom: -80px;}

 .sec1-box + .sec1-box.sec1-box-07{margin-top: 100px;}
 .sec1-box-07 .sec1-box-txt{width: 52%;}
 .sec1-box-07 .sec1-box-img{margin-top: 32px; width: 79.5%; right: min(-2%,-20px);}
 .sec1-box-07 .sec1-photo-bg{top: -18px; right: -9px;}
}
@media only screen and (max-width: 767.98px){
.section1{padding-bottom: 0;}
.title-02{ font-size: min(4.8vw,18px); line-height: 1.6;}
.title-03{ font-size: min(4.8vw,18px); line-height: 1.8; margin-bottom: min(5.3vw,20px);}
.title-03.fw-black{ margin-bottom: min(13.3vw,100px);}
.title-04{ font-size: min(4vw,15px); line-height: 2; margin-bottom: min(4.8vw,18px);}

.section1 .hgroup h2{ margin-bottom: min(28.5vw,106px);}
.sec1-ttl-bg-1{width: min(106.9vw,401px); height: min(65.3vw,245px); left:min(-30.4vw,-114px); top: min(-13.8vw,-5.2vw);}
.sec1-ttl-bg-2{width: min(110.9vw,416px); height: min(69.7vw,261px); left: min(-33.06vw,-124px); top: min(-18.6vw,-70px);}

 .txt{ font-size: min(3.7vw,14px); line-height: 2;}
 .sec1-box-txt .btn{margin-top: min(10.6vw,40px);}
 .sec1-box .btn-default{ background-color: #fff;}

 .sec1-box-txt{position: relative; z-index: 2;}
 .sec1-box-img{z-index: 1;}

 .sec1-box-01 .sec1-box-img{ right: min(-13.6vw,-51px);}
 .sec1-box-01 .sec1-box-img,.sec1-01-photo{ width: min(87.8vw,659px); height: min(76.4vw,573px);}
 .sec1-box-01 .sec1-photo-bg{ top: min(-2.1vw,-8px); right: min(-1.6vw,-24px); width: min(90.8vw,681px); height: auto;}
 .sec1-01-img{ left: min(-13.3vw,-50px); bottom: min(-13.3vw,-50px); width: min(61.3vw,230px); height: min(25.3vw,95px);}

 .sec1-box-02{ margin-top: min(38.6vw,145px);}
 .sec1-box-02 .sec1-box-img{ left: min(-17vw,-64px); margin-top: min(6.9vw,52px);}
 .sec1-box-02 .sec1-box-img,.sec1-02-photo{ width: min(96.53vw,362px); height: min(76vw,285px);}
 .sec1-box-02 .sec1-photo-bg{ width: min(94.2vw,353.5px); height: auto; top: min(-2.1vw,-8px); right: min(-0.5vw,-2px);}
 .sec1-02-img{ width: min(33vw,124px); height: min(36.53vw,137px); bottom: min(-5vw,-19px); right: min(-12.2vw,-61px);}

 .sec1-box-03{ margin-top: min(30.6vw,115px);}
 .sec1-box-03 .sec1-box-img{ right: min(-5.3vw,-40px); margin-top: min(10.6vw,40px);}
 .sec1-box-03 .sec1-box-img,.sec1-03-photo{ width: min(88vw,660px); height: min(51.4vw,386px);}
 .sec1-box-03 .sec1-photo-bg{ width: min(90vw,666px); height: auto; bottom: min(-5.3vw,-40px); right: min(-2.4vw,-18px);}
 .sec1-03-img{ width: min(69.3vw,520px); height: min(24vw,180px); bottom: min(-17.3vw,-65px); left: min(-12.2vw,-61px);}

 .sec1-box-04{ margin-top: min(35.2vw,264px);}
 .sec1-box-04 .sec1-box-img{ left : min(-12.2vw,-46px); margin-top: min(6.9vw,52px);}
 .sec1-box-04 .sec1-box-img,.sec1-04-photo{ width: min(69.6vw,522px); height: min(58.1vw,436px);}
 .sec1-box-04 .sec1-photo-bg{ width: min(68.2vw,512px); height: auto; top: min(0.6vw,5px); left: min(2.1vw,16px);}

 .sec1-box-05{ margin-top: min(26.6vw,200px);}
 .sec1-box-05 .sec1-box-img{ right: min(-11.4vw,-43px); margin-top: min(6.9vw,52px);}
 .sec1-box-05 .sec1-box-img,.sec1-05-photo{ width: min(99.2vw,744px); height: min(75.7vw,568px);}
 .sec1-box-05 .sec1-photo-bg{ width: min(96.4vw,723px); height: auto; top: min(-1.6vw,-12px); right: min(2.4vw,18px);}
 .sec1-05-img{ width: min(46.6vw,350px); height: min(37.8vw,284px); bottom: min(-11.7vw,-88px); right: min(18vw,68px);}

 .sec1-box-06{ margin-top: min(26.6vw,200px);}
 .sec1-box-06 .sec1-box-img{ left: min(-8vw,-60px); margin-top: min(10.6vw,80px);}
 .sec1-box-06 .sec1-box-img,.sec1-06-photo{ width: min(91.8vw,689px); height: min(49.6vw,372px);}
 .sec1-box-06 .sec1-photo-bg{ width: min(93.8vw,704px); height: auto; top: 0; right: min(-1.6vw,-12px);}
 .sec1-06-img{ width: min(12.9vw,97px); height: min(13.7vw,103px); bottom: min(-7.4vw,-28px); right: min(2.66vw,20px);}

 .sec1-box-07{ margin-top: min(26.6vw,200px);}
 .sec1-box-07 .sec1-box-img{ margin-top: min(8.2vw,62px);}
 .sec1-box-07 .sec1-box-img,.sec1-07-photo{ width: min(104vw,780px); height: min(82.5vw,619px); left: min(-2.66vw,-10px);}
 .sec1-box-07 .sec1-photo-bg{ width: min(105.8vw,794px); height: auto; top: 0; left: min(-1.3vw,-5px);}

}

@keyframes scaleUd {
0% {
  scale: 0.95;
}
50% {
  scale: 1;
}
100% {
  scale: 0.95;
}
}
@keyframes scaleUd_l {
0% {
  scale: 1;
}
50% {
  scale: 1.04;
}
100% {
  scale: 1;
}
}

/* ====================================
section2
===================================== */
.section2{background: #408953; position: relative;}
.section2 .container{ background: url(../img/sec2-bg-shadow.svg) no-repeat 100% 100%; background-size: 1012px auto; box-sizing: border-box; position: relative;
}
.sec2-tape{position: absolute; left: 0; right: 0; margin: 0 auto; z-index: 3;}
.sec2-inner{ background: url(../img/sec2-bg-w.svg) no-repeat 0 0; background-size: 1012px 692px; position: relative; z-index: 2;}
.section2 button{width: 100%; overflow: hidden; background-color: var(--main-color);
&:hover{
 & .linkList-thm img{opacity: 0.5;}
 & .icn-modal {animation: scale_icon 2s ease infinite;}
}
}
.section2 .sec2-linkList li{ overflow: hidden;}
.linkList-thm{vertical-align: bottom; line-height: 0; aspect-ratio:414/231; overflow: hidden;
& img{ transition: opacity 0.5s ease-in;}
}
.section2 .sec2-linkList .btn{width: 100%; border-radius: 0;}

@media screen and (min-width: 768px){
.section2{ margin-top: -165px; padding-bottom: 120px;}
.section2 .container{ width: 1022px; height: 700px;}
.sec2-tape{top: -40px; width: 308px;}
.sec2-inner{ padding: 100px 68px;}
.section2 .sec2-linkList{width: 875px;}
.section2 .sec2-linkList li{ width: 47%;}
.section2 button{ border-radius: 12px;}
}

@media screen and (max-width:768.98px){
.section2{ margin-top: -1px; padding-top: min(8vw,30px);
.container{ width: 93.3%; background-image: url(../img/sec2-bg-shadow-sp.svg); background-position: 10px 0; background-size: 100% auto; padding:0 1.4% 2% 0;}
.title-02{ font-size: min(4.2vw,16px); margin-bottom: min(10.6vw,40px); font-feature-settings: 'palt';}

.sec2-tape{width: min(29.3vw,220px); top: min(6.4vw,-24px);}
.sec2-inner{ background-image: url(../img/sec2-bg-w-sp.svg); background-size: 100% auto; padding: min(10.6vw,40px) min(6.9vw,26px);}
.sec2-linkList li{ border-radius: min(1.6vw,12px);
.btn-default{ height: min(10.6vw,40px);}
}
.sec2-linkList li + li{ margin-top: min(6.6vw,25px);}
}
}

/* ====================================
section3
===================================== */
.sec3-support dt{ color: var(--main-color); font-weight: 700;}
.sec3-support dd{ line-height: 1.5;}
.sec3-support-list{ flex-wrap: wrap; border-bottom:2px dotted #dfdfdf;}
.sec3-support{border-top:2px dotted #dfdfdf; justify-content: start; align-items: center;}

.z-2{ position: relative; z-index: 2;}

@media print, screen and (min-width: 768px){
.container-sm{width: 800px;}
.lead-txt{margin-bottom: 50px;}
.sec3-support{width: 50%; padding: 10px 0;}
.sec3-support:nth-child(6){padding-bottom: 12px; border-bottom:2px dotted #dfdfdf;}
.sec3-support:nth-child(7){margin-top: -2px;}

.support-img{width: 160px; margin-right: 16px;}
.support-info{width: 204px;}
.sec3-support dt{ font-size: 2rem; margin-bottom: 14px;}
.sec3-support dd{ font-size: 1.5rem;}
.sec3-illust{ top:58px; right: -126px;}
}
@media only screen and (max-width: 767.98px){
main section.pt-sp{ padding-top: min(10.6vw,40px);}
.lead-txt{ margin-bottom: min(13.3vw,50px);}

.sec3-support{ padding: min(1.3vw,5px) 0; justify-content: space-between;}
.support-img{width: min(31.25%,200px);}
.support-info{width: min(64.37%,412px);}
.sec3-support dt{ font-size: min(4vw,15px); margin-bottom: min(2.1vw,8px);}
.sec3-support dd{ font-size: min(3.2vw,12px);}

.illust{ z-index: 1;}
.sec3-illust{ width: min(41.4%,265px);bottom:min(-30.4vw,-113px); right: min(-7.3vw,27.5px);}

}

/* ====================================
section4
===================================== */

@media print, screen and (min-width: 768px){
.sec4-result-list {gap: 14px; justify-content: center; margin-bottom: 40px;}
.sec4-result-list li{width: 256px;}
.sec4-illust{ top: -16px; right: -88px;}
}
@media only screen and (max-width: 767.98px){
.sec4-result-list{gap: 2.5%; margin-bottom: min(-1.6vw,-6px); margin-bottom: min(10.6vw,40px);}
.sec4-result-list li{ width: 48.75%; margin-bottom: min(1.6vw,6px);}
.sec4-illust{ width: min(34.2%,219px); bottom: min(-34.13vw,-132.5px); right: 0; left: 0; margin: 0 auto;}
}

/* ====================================
section5
===================================== */
@media print, screen and (min-width: 768px){
.sec5-illust{ top: -22px; right: -97px;}
}
@media only screen and (max-width: 767.98px){
.sec5-illust{ width: min(39%,250px); bottom: min(-27.7vw,-104px); left: min(-5.3vw,-20px);}
}



/* ====================================
sec-sponser
===================================== */

/* supporters
============================== */
.sec-sponser .supporters{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    margin:0 auto;
    width:100%
}
.sec-sponser .supporters .box{
    width:29.9%;
    margin-bottom:20px
}
.sec-sponser .supporters .box img{
    width:100%;
    height:auto
}
.sec-sponser .supporters .box .supporter-name{
    padding-top:7px;
    font-size:3vw;
}
@media screen and (min-width: 768px){
    .sec-sponser .supporters{ gap: 14px 2px;}
    .sec-sponser .supporters .box{ width: 264px;}
    .sec-sponser .supporters .box img{
        width:100%;
        height:auto
    }
    .sec-sponser .supporters .box .supporter-name{ padding-top: 14px; font-size:1.6rem}
}

/* sponsors
============================== */
@media only screen and (max-width: 767.98px){
.sec-sponser .sponsors{ margin-top: min(13.3vw,50px);}
}
.sec-sponser .sponsors-box{
    text-align:center;
    background-color: var(--main-color);
    margin:0 auto;
    border: 2px solid var(--main-color);
    border-radius: 18px;
    overflow: hidden;
}
.sec-sponser .sponsors-box .sponsors-campany{
    padding:10px 0
}
@media screen and (min-width: 768px){
    .sponsors{margin-top: 80px;}
    .sec-sponser .sponsors-box .sponsors-campany{
        padding:18px 0
    }
}
@media only screen and (max-width: 767.98px){
.sponsors-campany .sponser-company-num{ margin: 0 auto; width: min(32.6vw,245px); height: min(8.53vw,64px);}

}


.sec-sponser .sponsors-box .sponsors-box-inner{
    background-color:#fff;
    padding:10px 0 15px
}
@media screen and (min-width: 768px){
    .sec-sponser .sponsors-box .sponsors-box-inner{
        padding:34px 0 40px;
    }
}
.sec-sponser .sponsors-box ul{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    margin:0 auto;
    width:90%;
}
@media screen and (min-width: 768px){
    .sec-sponser .sponsors-box ul{
        margin: 0 auto 24px;
        gap: 0 20px;
    }
}
.sec-sponser .sponsors-box ul li{
    text-align:center;
    width:50%
}
.sec-sponser .sponsors-box ul li:nth-child(4),.sec-sponser .sponsors-box ul li:nth-child(5){
    width:25%
}
.sec-sponser .sponsors-box ul li img{
    width:90%;
    max-width:150px;
    height:65px;
    object-fit:contain
}
@media screen and (min-width: 768px){
    .sec-sponser .sponsors-box ul li,.sec-sponser .sponsors-box ul li:nth-child(4),.sec-sponser .sponsors-box ul li:nth-child(5){
        width:auto
    }
    .sec-sponser .sponsors-box ul li img{
        width:150px
    }
}
.sec-sponser .sponsors-box ul li:nth-child(4) img{
    max-width:30px;
    margin:0 auto
}
.sec-sponser .sponsors-box ul li:nth-child(5) img{
    max-width:120px;
    margin:0 auto
}
.sec-sponser .sponsors-box .notice{ font-size: 1.4rem;}
.sec-sponser .sponsors-box .sup{
    color: var(--main-color);
    margin: 18px auto 0;
    font-weight: 700;
}
@media screen and (min-width: 768px){
    .sec-sponser .sponsors-box ul li:nth-child(4) img{
        max-width:50px;
    }
    .sec-sponser .sponsors-box .notice{ font-size: 1.4rem;}
    .sec-sponser .sponsors-box .sup{ font-size: 1.8rem;}
}
@media only screen and (max-width: 767.98px){
.sec-sponser .sponsors-box .notice{ font-size: min(3.2vw,12px);}
.sec-sponser .sponsors-box .sup{ font-size: min(3.4vw,13px); line-height: 1.5;}
}

.illust{position: absolute; z-index: 1;}

@media print, screen and (min-width: 768px){
.sec-sponser-illust{ top: -60px; right: -108px;}
}
@media only screen and (max-width: 767.98px){
.sec-sponser-illust{ width: min(43.75%,280px); bottom: min(-19.2vw,-72px); right: min(-17.3vw,-65px);}
}

/* ====================================
sec-donate
===================================== */
.sec-donate h4,.pink{color: var(--sub-color);}

ul.notice li{text-indent: -1em; margin-left: 1em; line-height: 1.25;}


@media screen and (max-width:768.98px){
    .sec-donate .title-03{ width: 91.4%; margin-left: auto; margin-right: auto; margin-bottom: min(5.3vw,20px);}
    .sec-donate .bg-img-wrap{
        aspect-ratio:75/45
    }
    .canList,.sec-donate .bg-img-wrap{
        width:100vw;
        margin-left:-7vw;
        margin-right:-7vw
    }
    .sec-donate .txt-box{
        padding-top:min(32vw,120px);
        padding-left:0
    }
    main .sec-donate .bg-img-wrap:not(.reverce) h3{
        margin-left:0;
        margin-bottom:8vw
    }
    .canList li{
        margin-top:5px
    }
    .sec-donate h4{
        font-size:min(4.8vw,18px);
        line-height:2;
        margin:40px 0 32px;
    }
    .sec-donate .boxinnerinner h4{
        line-height:1.5;
        margin:0 0 0.9em;
        font-feature-settings: 'palt';
    }
    .sec-donate .box .boxinnerinner p+h4{
        margin-top:min(8vw,30px)
    }
    .sec-donate .box .boxinnerinner .notice{
        font-size: min(3.4vw,13px);
        margin-top: min(2.6vw,20px);
    }
}
@media screen and (min-width: 768px){
    .sec-donate .lead{
        font-size:18px;
        margin-bottom:44px
    }
    .sec-donate .bg-img-wrap{
        margin-bottom:20px
    }
    .sec-donate .bg-img-wrap .txt-box{
        bottom:70px;
        top:inherit
    }
    .canList{
        margin-bottom:10px
    }
    .sec-donate h4,main .sec-sponser h3{
        font-size:24px;
        line-height:1.66
    }
    .sec-donate .container>h4,main .sec-sponser h3{
        margin:0 0 24px
    }
    .boxinnerinner>h4{
        margin-bottom:2.4rem;
    }
    .boxinnerinner>.txt{margin-bottom: 40px;}
    ul.notice li{ font-size: 1.2rem;}
}
.sec-donate .bordertit span{
    margin:0 auto;
    text-align:center;
    display:inline-block;
    font-size:16px;
    border:2px solid #000;
    padding:20px
}
@media screen and (min-width: 768px){
    .sec-donate .bordertit span{
        font-size:30px;
        border:4px solid #000;
        padding:16px 30px
    }
}
.sec-donate .box{
    background-color:#fce5f2;
    border-radius:6px;
    overflow:hidden
}
@media screen and (min-width: 768px){
    .sec-donate .box{
        padding-bottom:50px;
        border-radius:20px
    }
}
.sec-donate .box>.tit{
    background-color: var(--sub-color);
    color:#fff;
    position:relative;
    padding:5.3vw 0;
    text-align: center;
}
.sec-donate .box>.tit .logo{
    width:70%;
    height:auto;
    margin: 0 auto min(3.7vw,14px);
    text-align: center;
}
@media screen and (min-width: 768px){
    .sec-donate .box>.tit{
        padding:30px
    }
    .sec-donate .box>.tit .logo{
        width:448px;
        margin-bottom:20px
    }
}
.sec-donate .box>.tit span,.section7 .box>.tit span{
    font-size:min(3.7vw,14px)
}
@media screen and (min-width: 768px){
    .sec-donate .box>.tit span,.section7 .box>.tit span{
        font-size:2rem
    }
}
.sec-donate .box>.tit .icon{
    position:absolute;
    bottom:min(-6.4vw,-24px);
    left:min(1.6vw,6px);
    width: min(13.3vw,50px);
    height: min(13.3vw,50px);
}

@media screen and (min-width: 768px){
    .sec-donate .box>.tit .icon{
        bottom:20px;
        left: inherit;
        right:180px;
        width: 60px;
        height: 60px;
    }
    .section7.sec-donate .box>.tit .icon{ right: 120px;}
}

.sec-donate .box>.stit{
    margin:40px 0
}
@media screen and (min-width: 768px){
    .sec-donate .box .boxinner{
        display:flex;
        justify-content:space-between;
        padding:45px 45px 0
    }
}
.sec-donate .box .boxinner .pic,.sec-donate .box .boxinner>picture{
    display:block;
}

@media screen and (min-width: 768px){
    .sec-donate .box .boxinner>picture{
        max-width:430px;
        width:47.2%
    }
}
@media only screen and (max-width: 767.98px){
.sec-donate .box .boxinner>picture{margin: 5vw 5% 0; width: 90%;}
}

.sec-donate .box .boxinnerinner{
    padding:6.4vw 5% 0
}
@media screen and (min-width: 768px){
    .sec-donate .box .boxinnerinner{
        padding:0;
        max-width:440px;
        width:48.3%
    }
}
.sec-donate .box .boxinnerinner>.stit{
    text-align:center;
    margin:40px 0
}
@media screen and (min-width: 768px){
    .sec-donate .box .boxinnerinner>.stit{
        text-align:left;
        margin:0 0 40px
    }
}
.sec-donate .box .boxinnerinner>.stit img{
    width:80%;
    height:auto
}
@media screen and (min-width: 768px){
    .sec-donate .box .boxinnerinner>.stit img{
        width:auto
    }
}
@media screen and (min-width: 768px){
    .sec-donate .box .boxinnerinner p{
        font-size:18px
    }
}
.sec-donate .box .boxinnerinner small{
    display:inline-block;
    margin-top:20px;
    line-height:1.4
}
.sec-donate .box .boxinner2{
    margin-top: min(10.6vw,40px);
    padding:0 4% min(6.9vw,26px)
}
@media screen and (min-width: 768px){
    .sec-donate .box .boxinner2{
        padding:0
    }
}
.sec-donate .box .borderwrap{
    padding:5%;
    border:2px solid #e4007f;
    margin-top:20px
}
@media screen and (min-width: 768px){
    .sec-donate .box .borderwrap{
        width:750px;
        margin:60px auto 0;
        padding:40px
    }
}
.sec-donate .box .borderwrap>.tit{
    display:flex;
    align-items:flex-start
}
.sec-donate .box .borderwrap>.tit img{
    width:40%;
    height:auto;
    margin-right:4%
}
@media screen and (min-width: 768px){
    .sec-donate .box .borderwrap>.tit img{
        width:160px;
        margin-right:40px
    }
}
.sec-donate .box .borderwrap>.tit h4{
    text-align:left;
    font-size:18px;
    line-height:1.6
}
@media screen and (min-width: 768px){
    .sec-donate .box .borderwrap>.tit h4{
        font-size:24px
    }
}
.sec-donate .box .borderwrap p{
    margin-top:20px
}
@media screen and (min-width: 768px){
    .sec-donate .box .borderwrap p{
        margin-top:-30px;
        padding-left:200px
    }
}
.sec-donate .box .borderwrap p small{
    margin-top:5px;
    display:block
}
@media screen and (min-width: 768px){
    .sec-donate .box .borderwrap p small{
        display:inline
    }
}
.sec-donate .box .note{
    margin-top:10px
}
@media screen and (min-width: 768px){
    .sec-donate .box .note{
        width:750px;
        margin:10px auto 0
    }
}
.sec-donate .box .note small{
    display:block;
    line-height:1.6
}
.sec-donate .box .amountwrap{
    background-color:#fff
}
.sec-donate .box .amountwrap picture{
text-align: center;
}
.amountwrap p{ font-weight: 700;}
@media screen and (min-width: 768px){
    .sec-donate .box .amountwrap{
        width:900px;
        margin:40px auto 0
    }
}
.sec-donate .box .amountwrap h4{
    margin:0;
    background-color:#e4007f;
    text-align:center;
    color:#fff;
    font-size:min(4vw,15px);
    padding:min(2.6vw,10px) 0;
    line-height:1
}
.sec-donate .box .amountwrap p{
    text-align:center;
    margin:16px 0;
}
@media only screen and (max-width: 767.98px){
.sec-donate .box .amountwrap p{ font-size: min(3.4vw,13px); margin-bottom: 0;}
}
.sec-donate .box .amountwrap img{
    margin:10px auto 20px;
    height:auto
}
.sec-donate .amountwrap img{
    width:82.8%
}
.sec-donate .btn-wrap .btn-secondary{margin-bottom: 0;}
@media screen and (min-width: 768px){
    .sec-donate .box .amountwrap img{
        width:590px
    }
    .sec-donate .box .amountwrap p{
        font-size:16px
    }
}
.sec-donate .box .btn-wrap{
    margin-top:min(8vw,30px);
    text-align:center
}
@media screen and (min-width: 768px){
    .sec-donate .box .btn-wrap{
        margin:40px 0 0
    }
}

/* ====================================
section7
===================================== */
.section7 .box{background-color: #e5f1fa;}
.section7 .box>.tit,.section7 .box .amountwrap h4{ background-color: var(--main-color);}
.section7 .box>.tit img{
    width:auto
}
.section7 .box>.tit .logo{
    width:88.5%;
    height:auto;
    margin-bottom:10px
}
.section7 .amountwrap .sec7-amount{
    width:40.15%;
    margin: 0 auto;
}
.section7 .amountwrap .sec7-amount img{margin: 10px 0;}
@media screen and (min-width: 768px){
    .section7 .box>.tit .logo{
        width:583px
    }
    .section7 .box .amountwrap .sec7-amount{
        width: 223px;
    }
}
.section7 .box>.stit{
    margin:40px 0
}

/* ====================================
section8
===================================== */
.section8 .box{
    background-color:#00549f;
    border-radius:8px;
    overflow:hidden
}
.section8 .box .boxinner{
    padding:20px 4% 5px
}
.section8 .box .boxinner>.stit{
    text-align:center;
    margin:20px 0 40px;
    color:#fff;
    font-size:13px
}
@media screen and (min-width: 768px){
    .section8 .box{
        border-radius:20px
    }
    .section8 .box .boxinner>.stit{
        width:440px;
        margin:20px auto 40px
    }
    .section8 .box .boxinner>.stit img{
        width:100%
    }
}
.section8 .box .boxinner>.stit span{
    display:inline-block;
    margin:10px 0;
    font-size:20px
}
.section8 .box .boxinner .pic{
    text-align:center;
    background-color:#fff;
    padding:5%
}
.section8 .box .boxinner small{
    display:inline-block;
    margin-top:20px;
    line-height:1.4
}
.section8 .box .btn-wrap{
    text-align:center;
    margin:20px 0
}
.section8 .box .boxinner .notes{
    text-align:left;
    margin-top:0;
    line-height:1.4;
    font-size:12px
}
.section8 .box .boxinner .notes li{
    margin-top:5px;
    text-indent:-1em;
    padding-left:1em
}

/* ====================================
sec-voice
===================================== */
.sec-voice{background-color: #ffe5f4;
.title-03.fw-black{ text-align: center; margin-bottom: min(9.3vw,35px);}
}

.sec-voice .slick-dotted.slick-slider{
    margin-bottom:25vw
}

.sec-voice .slick-track{display: flex; flex-wrap: nowrap; align-items: stretch;}
.sec-voice .slick-slide{ float: none; height: auto;}

@media screen and (min-width: 768px){
    .sec-voice .slick-dotted.slick-slider{
        margin-bottom:100px
    }
}
.sec-voice .voice{
    background-color:#fff;
    border-radius:8px;
    padding:6%;
    height:100%;
    box-sizing: border-box;
}
@media screen and (min-width: 768px){
    .sec-voice .slick-slide{
        width: 820px;
    }
    .sec-voice .voice{
        margin: 0 10px;
        padding:40px;
        border-radius:16px;
    }
}
@media only screen and (max-width: 767.98px){
.sec-voice .voice{margin: 0 7.3%;}
}

.sec-voice .voice h3{
    font-size:4.5vw;
    display:flex;
    align-items:center;
    justify-content:space-between;
    line-height:1.6;
    margin-top:0
}
@media screen and (min-width: 768px){
    .sec-voice .voice h3{
        justify-content:flex-start;
        align-items:flex-start;
        font-size:18px;
        margin-right:30px
    }
}
.sec-voice .voice h3 img{
    width:22%
}
@media screen and (min-width: 768px){
    .sec-voice .voice h3 img{
        width:60px;
        height:60px;
        margin-bottom:10px
    }
}
.sec-voice .voice h3 span{
    width:100%;
    text-align:left;
    margin-left:4vw
}
@media screen and (min-width: 768px){
    .sec-voice .voice h3 span{
        margin-left:20px; font-size: 20px;
    }
    .sec-voice .voice h3 small{ font-size: 1.6rem;}
}
.sec-voice .voice p{margin-top:20px;}
@media only screen and (max-width: 767.98px){
    .sec-voice .voice p{font-size:min(3.7vw,14px)}
    .sec-voice .voice h3{ font-size: min(4.5vw,17px);}
    .sec-voice .voice h3 small{ font-size: min(3.4vw,13px);}
}

.sec-voice .voice.woman h3{
    color: var(--sub-color)
}
.sec-voice .voice.man h3{
    color:var(--main-color)
}

/* ====================================
about
===================================== */
#about{
    padding-top: 0;
}
main #about .title-03{
    margin-bottom:min(5.8vw,22px);
    background-color: var(--main-color);
    color: #fff;
    line-height: 1;
    font-weight: 900;
    padding: 0.75em 0;
}
@media screen and (min-width: 768px){
    main #about .title-03{
        margin-bottom:60px; padding: 20px 0;
    }
}
@media only screen and (max-width: 767.98px){
#about{padding-bottom: 0;}
#about > .container{ padding-bottom: min(32vw,120px);}
}

#about .innerinner{
    box-sizing:border-box
}
@media screen and (min-width: 768px){
    #about .innerinner{
        width:670px;
        margin:40px auto 0
    }
}
#about .innerinner .lead{
    margin-top:20px
}
@media screen and (min-width: 768px){
    #about .innerinner .lead{
        font-size:18px;
        margin-bottom:20px
    }
}
#about .box{
    border-top:2px solid #000;
    margin-top:20px
}
#about .box.last{
    border-bottom:2px solid #000;
    padding-bottom:20px
}
#about .box h3{
    font-size:16px;
    vertical-align:middle;
    margin-top:20px
}
@media screen and (min-width: 768px){
    #about .box h3{
        font-size:27px;
        font-weight:700
    }
}
#about .box h3::before{
    content:"";
    display:inline-block;
    width:14px;
    height:14px;
    margin-right:3px;
    background-color:#e4007f
}
@media screen and (min-width: 768px){
    #about .box h3::before{
        width:25px;
        height:25px;
        margin-right:6px
    }
}
#about .box .num{
    text-align:right;
    margin-top:20px
}
@media screen and (min-width: 768px){
    #about .box .num{
        margin-top:30px
    }
}
#about .box .num1,#about .box .num4{
    width:auto;
    height:13vw
}
@media screen and (min-width: 768px){
    #about .box .num1,#about .box .num4{
        width:auto;
        height:auto
    }
}
#about .box .num2,#about .box .num3{
    width:auto;
    height:22vw
}
@media screen and (min-width: 768px){
    #about .box .num2,#about .box .num3{
        width:auto;
        height:auto
    }
}
#about .year{
    text-align:right;
    margin-top:10px
}
#about .pic{
    margin-top:40px;
    margin-bottom:10px
}
#about .bnr{
    display:block; text-align: center; transition: opacity 0.5s ease-in;
}
#about .bnr:hover{ opacity: 0.5;}

/* ====================================
nintei
===================================== */
.nintei{ background-color: #e5f1fa;}
.nintei-img{margin: 0 auto;}
.nintei-img figure img{ box-shadow: 3px 3px 5px rgba(0,0,0,.4);}
.nintei-img figcaption{text-align: center; margin-bottom: 1em;}
.nintei .notice{ text-align: left; text-indent: -1em; margin-left: 1em; line-height: 1.5; color: #777777;}

@media print, screen and (min-width: 768px){
.nintei{ padding: 80px 0; margin: 120px 0;}
.nintei .title-04{ margin-bottom: 58px;}
.nintei-img{ width: 820px;}
.nintei-img li{width: 360px;}
.nintei-img figcaption{ font-size: 1.6rem; font-weight: 500;}
.nintei .notice{ font-size: 1.2rem; margin-top: 2em;}
}
@media only screen and (max-width: 767.98px){
.nintei{ margin-bottom: min(13.3vw,50px); padding: min(10.6vw,40px) 0 min(32vw,120px);}
.nintei .title-04{ margin-bottom: min(13.3vw,50px); text-align: left; font-size: min(4.8vw,18px); font-weight: 900; font-feature-settings: 'palt';}
.nintei-img li{text-align: center;}
.nintei-img li + li{margin-top: min(8vw,30px);}
.nintei-img img{ width: min(58.6vw,440px); margin: 0 auto;}
.nintei-img figcaption{ font-size: 1.6rem; font-weight: 700;}
.nintei .notice{ font-size: min(3.4vw,13px); margin-top: 1em;}
}


/* ====================================
faq
===================================== */
#faq .qawrap{
    margin-top:40px;
    border:2px solid var(--main-color);
    border-radius:8px;
    overflow:hidden
}
@media screen and (min-width: 768px){
    #faq .qawrap{
        width:900px;
        margin:40px auto 0;
        border-radius:20px
    }
}
@media only screen and (max-width: 767.98px){
#faq .title-03{ font-weight: 900;}
}

#faq .qawrap .qainner{
    padding:0 5%
}
@media screen and (min-width: 768px){
    #faq .qawrap .qainner{
        padding: 0 50px
    }
}
#faq .qawrap h3{
    display:block;
    background-color:#e4007f;
    text-align:center;
    color:#fff;
    font-size:20px;
    margin:0;
    padding:min(5.3vw,20px) 0;
    line-height:1
}
@media screen and (min-width: 768px){
    #faq .qawrap h3{
        padding:20px 0
    }
}
#faq .qawrap hr{
    border:none;
    border-bottom:2px dotted #dfdfdf
}
@media screen and (min-width: 768px){
#faq .qawrap hr{ margin: 0;}
}
#faq .qawrap .q,#faq .qawrap .a{
    position: relative; padding-left: min(5.3vw,40px);
}
#faq .qawrap .q{
    margin-top: 12px; margin-bottom: 16px; font-weight: 700; line-height: 1; color: var(--main-color);
}
#faq .qawrap .q::before,#faq .qawrap .a::before{
    position: absolute;
    top: 0;
    left: 0;
    content:"";
    display:inline-block;
    background-size:contain;
}
#faq .qawrap .q::before{
    width: min(4vw,30px);
    height: min(4.5vw,34px);
    background:url(../img/Q.svg) center center no-repeat;
}
@media screen and (min-width: 768px){
    #faq .qawrap .q{ margin-top: 40px; padding-top: 6px; margin-bottom: 50px;}
    #faq .qawrap{ font-size: 1.8rem;}
}
@media only screen and (max-width: 767.98px){
    #faq .qawrap .q{ font-size: min(3.7vw,14px); line-height: 1.39;}
}


#faq .qawrap .a{
    margin-top:10px;
    margin-bottom:20px
}
@media screen and (min-width: 768px){
#faq .qawrap .a{
    margin-bottom:40px
}
}
#faq .qawrap .a::before{
    width: min(4vw,30px);
    height: min(3.8vw,29px);
    background:url(../img/A.svg) center center no-repeat;
}
#faq .qawrap .a a{
    color:#007dc9
}
@media only screen and (max-width: 767.98px){
    #faq .qawrap .a{ margin-top: 0; font-size: min(3.4vw,13px); line-height: 1.5;}
    #faq .qawrap .q::before,#faq .qawrap .a::before{ background-size: 100% auto;}
}

.kv-slider .slick-slide{
    margin:0;
    outline:0
}
@media screen and (min-width: 768px){
    .kv-slider .slick-slide{
        margin:0
    }
}
.sec-sponserslider .slick-slide{
    margin:0 7vw;
    width:86vw;
    height:90vw;
    outline:0
}
@media screen and (min-width: 768px){
    .sec-sponserslider .slick-slide{
        margin:0 20px;
        width:800px;
        height:260px
    }
}
@media screen and (max-width:767.98px){
    .sec-sponser .bg-img-wrap{
        aspect-ratio:75/45
    }
    main .sec-sponser h2{
        font-size:min(5.3vw,20px);
        line-height:1.66
    }
}
.slick-slide img{
    width:100%;
    opacity:1
}
.slick-next,.slick-prev{
    width:9.6vw;
    height:29.8vw;
    z-index:100
}
@media screen and (min-width: 768px){
.slick-next,.slick-prev{ width: 85px; height: 172px;}
.slick-next{ border-radius: 12px 0 0 12px;}
.slick-prev{ border-radius: 0 12px 12px 0;}
}

.slick-next,.slick-prev{
    display:flex;
    align-items:center;
    justify-content:center;
    background-color:rgba(0,0,0,.8)
}
.slick-prev{
    left:0
}
.slick-next{
    right:0
}
.slick-next:focus,.slick-next:hover,.slick-prev:focus,.slick-prev:hover{
    background-color:rgba(0,0,0,.8)
}
.slick-next:before,.slick-prev:before{
    display:block;
    width:min(3.7vw,14px);
    height:min(3.7vw,14px);
    z-index:100;
    opacity:1;
    transition:opacity .2s;
    border-width:2px 0 0 2px;
    border-style:solid;
    border-color:#fff;
    content:"";
    box-sizing:border-box
}
@media screen and (min-width: 768px){
    .slick-next:before,.slick-prev:before{width: 30px; height: 30px; border-width:4px 0 0 4px;}
}
.slick-prev:before{
    transform:rotate(-45deg)
}
.slick-next:before{
    transform:rotate(135deg)
}

.slick-dotted.slick-slider{
    margin-bottom:5vw
}
@media screen and (min-width: 768px){
    .slick-dotted.slick-slider{
        margin-bottom:22px
    }
}
.slick-dots li button:before{
    content:"";
    top:0;
    left:0
}
.slick-dots li button{
    padding:0
}
.slick-dots li button,.slick-dots li button:before{
    width:100%;
    height:100%
}
.slick-dots{
    bottom:-10vw
}
@media screen and (min-width: 768px){
    .slick-dots{
        bottom:-40px
    }
}
.slick-dots li{
    width: min(5.8vw,22px);
    height: min(5.8vw,22px);
    background-color:#fff;
    margin:0 min(2.9vw,11px);
    opacity:1;
    transition:opacity .2s;
    border-radius:50%;
}
@media screen and (min-width: 768px){
    .slick-dots li{
        width:16px;
        height:16px;
        margin:0 10px
    }
}
.slick-dots li.slick-active{
    background-color:var(--sub-color)
}
.slick-dots li.slick-active:hover{
    opacity:1
}
.dot{
    margin-top:3vw
}
@media screen and (min-width: 768px){
    .dot{
        margin-top:30px
    }
}
.dot .slick-slide{
    margin:0 5px;
    width:70vw;
    height:auto
}
@media screen and (min-width: 768px){
    .dot .slick-slide{
        width:424px;
        height:664px
    }
}
.dot .slick-dots{
    bottom:-10vw
}
@media screen and (min-width: 768px){
    .dot .slick-dots{
        bottom:-60px
    }
}
.dot .slick-dots li{
    width:3vw;
    height:3vw;
    margin:0 2vw;
    background-color:#ccc;
    border-radius:1.5vw
}
@media screen and (min-width: 768px){
    .dot .slick-dots li{
        width:10px;
        height:10px;
        margin:0 5px;
        border-radius:5px
    }
}
.dot .slick-dots li.slick-active{
    background-color:#000
}

/* ====================================
modal
===================================== */
.fancybox__container:not(.is-compact) .fancybox__slide.has-close-btn{ padding-top: 0;}
.fancybox__content>.f-button.is-close-btn{ top: 0; right: 0; opacity: 1; border-radius: 0; background-color: rgba(255,255,255,.3); transition: background-color 0.3s ease;}
.fancybox__content>.f-button.is-close-btn:hover{ background-color: rgba(0,0,0,.5);}

.f-button {color:#353535;
& svg{ fill: #353535;}
&:hover{ color: #fff; opacity: 1;
& svg{fill: #fff;}
}
}

/* .woman-modal
===================================== */
.fancybox__backdrop{background-color: rgba(0,0,0,.5);}
.fancybox__content{ padding: 0; overflow: hidden;}
.fancybox__slide .modal-inner{ height: 100%; overflow-y: auto;}

.woman-modal.fancybox__content{
& .modal-inner{text-align: center;}
& .woman-title{ background-color: var(--main-color); color: #fff; display: inline-block; margin-left: auto; margin-right: auto; padding: 0.58em 1.16em; line-height: 1;}
& .d-flex-lg{ gap: 44px 0;}
& .col{ display: flex; justify-content: space-between; box-sizing: border-box; align-items: center; background-color: #FCF9E8;
& .title-04{ margin: 0; text-align: left; color: #353535; line-height: 1.5;
sup{ vertical-align :super; font-size: 70%;}
}
& em{ font-style: normal; color: var(--main-color);}
}
& .notice{ line-height: 1.75; text-align: left;}
}

@media print, screen and (min-width: 768px){
.fancybox__content{ height: 80vh;}
.fancybox__content>.f-button.is-close-btn{width: 80px; height: 80px;}
.f-button svg{ width: 34px; height: 34px;}
.fancybox__slide{ padding-bottom: 120px;}

.woman-modal.fancybox__content{
& .modal-inner{ padding: 24px 52px 44px;}
& .woman-title{ margin-bottom: 40px;}
& .d-flex-lg{margin-bottom: 34px;}
& .col{width: 45.75%; padding: 10px 15px 10px 20px;
& .woman-img{width: 154px; text-align: center;}
}
& .notice{ font-size: 1.2rem;}
} 
}
@media only screen and (max-width: 767.98px){
.fancybox__content{ height: 82vh;}
.fancybox__slide{ padding-bottom: min(18vw,135px);}

.woman-modal{
& .modal-inner{ padding: 20px 7.1% 35px;}
& .col{padding: 10px 3% 10px 10%; margin-bottom: min(4.8vw,18px);
&:nth-child(1) img{ width: 55%;}
&:nth-child(2) img{ width: 94.5%;}
&:nth-child(3) img{ width: 54%;}
}
& .woman-img{ width: 33.3%;}
}
}

/* .case-modal
===================================== */
.case-modal{
& .case-kv{position: relative; text-align: right;}
& .hgroup{ display: inline-block; background-color: rgba(0,114,206,.9); color: #fff; position: absolute; left: 0; bottom: 0; z-index: 2; text-align: left;
& .title-03{color: #fff;}
}
& .case-kv-img{position: relative; z-index: 1;}
& .case-txt p + p{ margin-top: 1.5em;}
}

@media print, screen and (min-width: 768px){
.case-modal{
& .hgroup{ padding: 30px 24px 30px 60px;
& .name{ font-size: 1.6rem;}
}
& .case-txt{ padding: 40px 60px;}
}
}
@media only screen and (max-width: 767.98px){
.case-kv{ height: min(76vw,570px);}
.case-modal .name{ font-size: min(3.4vw,13px);}
.case-modal .hgroup{padding: 1em 1em 1.2em 6.6vw; bottom: 0;}
.case-modal .title-03{ margin-bottom: 1em; font-feature-settings: 'palt'; line-height: 1.5;}
.case-txt{ width: 85.71%; margin: 30px auto;}
}


/* ====================================
アニメーション
===================================== */
@media screen {
[data-inview="line"]{ position: relative; display: inline-block;
 &:after{ content: ""; display: block; width: 0; height: 2px; background-color: #fff; position: absolute; bottom: 0; left: 0; transition: width 0.8s ease;}
 &.active:after{ width: 100%;}
}

[data-inview="fade-up"]{ opacity: 0; transform: translateY(50px); transition: opacity 0.8s ease, transform 0.8s ease;
&.active{ opacity: 1; transform: translateY(0);}
}

.sec1-box-img[data-inview="fade-in"]{ scale: 0.8; transition: scale 0.5s ease-in;
&.active{ scale: 1;}
}
.sec1-box-txt[data-inview="fade-in"]{ opacity: 0; filter: blur(4px);
&.active{ opacity: 1; filter: blur(0);}
}

[data-inview="move-l"],[data-inview="move-r"]{ opacity: 0;
&.active{ opacity: 1; transform: translateX(0);}
}
[data-inview="move-l"]{ transform: translateX(-60px);}
[data-inview="move-r"]{ transform: translateX(60px);}

.sec1-box-img[data-inview="move-l"],.sec1-box-img[data-inview="move-r"]{ transition: opacity 0.3s ease-out, transform 0.5s ease-out;}
}

@media only screen and (min-width: 768px){
.sec1-box-txt[data-inview="fade-in"]{ transition: opacity 0.4s ease-in, filter 0.2s ease-in;}
.sec1-box-img[data-inview="fade-in"]{ transition-delay: 0.5s;}
}

@media only screen and (max-width: 767.98px){
.sec1-box-txt[data-inview="fade-in"]{ transition: opacity 0.4s ease-in, filter 0.2s 0.3s ease-in;}
}
/* 企業数 */
.sponsors-box h4 {
 padding: 15px 0;
 color: #fff;
 line-height: 1;
 font-family: "Poppins","Noto Sans JP", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
}
.sponsors-box h4 .txt-num, .sponsors-box h4 small {
 display: inline-block;

}
.sponsors-box h4 .txt-num {
 font-size: 28px;
 font-family: din-condensed, sans-serif;
 font-weight: 900;
}
.sponsors-box h4 small {
 font-size: 18px;
 font-weight: 700;
}

@media screen and (min-width:768px) {
 .sponsors-box h4 {
  padding: 20px 0
 }
 .sponsors-box h4 .txt-num {
  font-size: 48px
 }
 .sponsors-box h4 small {
  font-size: 18px
 }
}
