.inner{
    margin: auto;
}
@media all and (min-width: 750px){
.inner{
    width: 1000px;
}
}
@media all and (max-width: 750px) {
/* sp */
.inner{
  width: calc(100% - 30px);
}
}

:root {
  --text-color: #333;
  --bg-yellow: #FDF5CE;
}
.flex-box{
    display: flex;
}
.ttl h2::after{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-image: url(../images/ttl_line.svg);
    background-position: center;
    background-size: contain;  
}
@media all and (min-width: 750px) {
/* pc */
.ttl{
    margin-bottom: 70px;
}
.ttl h2{
    font-size: 36px;
    text-align: center;
    position: relative;
    margin-bottom: 70px;
    font-weight: 500;
}
.ttl h2::after{
    width: 147px;
    height: 20px;
    right: 0;
    left: 0;
    bottom: -40px;
}
}

@media all and (max-width: 750px) {
/* sp */
.ttl{
    margin-bottom: 80px;
}
.ttl h2{
    font-size: 1.6em;
    text-align: center;
    position: relative;
    margin-bottom: 70px;
    font-weight: 500;
}
.ttl h2::after{
    width: 147px;
    height: 20px;
    right: 0;
    left: 0;
    bottom: -30px;
}
}

@media all and (min-width: 750px) {
/* pc */

}

@media all and (max-width: 750px) {
/* sp */
}

/* ページタイトル */
#page-ttl{
    background-image: url(../images/pagettl-bg.jpg);
    width: 100%;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
#page-ttl::before{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/shape_01.svg);
    background-repeat: no-repeat;
    z-index: 1;
}
#page-ttl::after{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/icon_01.svg);
    z-index: 2;
    background-repeat: no-repeat;
}
#page-ttl .txt{
    position: relative;
}
#page-ttl .txt h1{
    position: relative;
    z-index: 100;
    font-weight: 500;
}
#page-ttl .txt h1::before{
    position: absolute;
    content: '';
    z-index: -1;
    background-color: #ffb518;
}
#page-ttl .txt p{
    position: relative;
    z-index: 100;
    line-height: 1.7;
}
#page-ttl .txt::before{
    position: absolute;
    content: '';
    background-color: rgb(255 255 255 / 82%);
    border-radius: 50%;
    z-index: 1;
}

@media all and (min-width: 750px) {
/* pc */
#page-ttl{
    background-image: url(../images/pagettl-bg.jpg);
    height: 47.22vw;
}
#page-ttl::before{
    width: 307px;
    height: 219px;
    right: -20px;
    bottom: -146px;
}
#page-ttl::after{
    width: 148px;
    height: 155px;
    right: 130px;
    bottom: -186px;
}
#page-ttl .txt h1{
    font-size: 54px;
    margin-bottom: 40px;
}
#page-ttl .txt h1::before{
    width: 440px;
    height: 18px;
    bottom: -20px;
}
#page-ttl .txt p{
    font-size: 20px;
}
#page-ttl .txt::before{
    width: 500px;
    height: 500px;
    right: 0;
    left: -33px;
    top: -200px;
}
}

@media all and (max-width: 750px) {
/* sp */
#page-ttl{
    background-image: url(../images/hero-sp.jpg);
    height: 133.33vw;
}
#page-ttl::before{
    width: 156px;
    height: 111px;
    right: 0px;
    bottom: -90px;
}
#page-ttl::after{
    width: 88px;
    height: 92px;
    right: 30px;
    bottom: -110px;
}
#page-ttl .txt h1{
    font-size: 1.8em;
    margin-bottom: 0.923em;
}
#page-ttl .txt h1::before{
    width: 219px;
    height: 15px;
    bottom: -7px;
}
#page-ttl .txt p{
    font-size: 0.95em;
}
#page-ttl .txt::before{
    width: 280px;
    height: 280px;
    right: 0;
    left: -30px;
    top: -86px;
}
}

/* 子どもリビングはこんなところ */
#about{
    background: var(--bg-yellow);
    position: relative;
}
#about::before{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/shape02.svg);
    background-repeat: no-repeat;
    z-index: 1;
}
#about::after{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/shape03.svg);
    background-repeat: no-repeat;
    z-index: 2;
}
#about h2 span.orange{
    color: #ffb518;
}
#about .img-box.flex-box{
    flex-direction: column;
}
#about .img-box .img img{
    width: 100%;
    height: 100%;
    border-radius: 20px;
    object-fit: cover;
}
#about .txt p{
    text-align: justify;
}
@media all and (min-width: 750px) {
/* pc */
#about{
    padding: 120px 0 70px;
}
#about::before{
    width: 250px;
    height: 211px;
    left: 0px;
    bottom: -90px;
}
#about::after{
    width: 166px;
    height: 140px;
    left: -20px;
    bottom: -226px;
    transform: rotate(-10deg);
}
#about .content-box.flex-box{
   justify-content: space-between;
}
#about .img-box .img.img01{
    width:320px;
    height: 208px;
}
#about .img-box .img.img02{
    width: 230px;
    height: 150px;
    margin-left: 200px;
    margin-top: 20px;
}
#about .img-box .img{
    border-radius: 20px;
}
#about .txt{
    width: 520px;
}
#about .txt p{
    font-size: 16px;
}
#about .txt p:not(:last-child){
    margin-bottom: 20px;
}
}
@media all and (max-width: 750px) {
/* sp */
    #about {
        padding: 110px 0 70px;
    }
#about::before{
    width: 120px;
    height: 101px;
    left: 0px;
    bottom: -35px;
}
#about::after{
    width: 88px;
    height: 74px;
    left: -20px;
    bottom: -90px;
}
#about .content-box.flex-box{
   flex-direction: column;
}
#about .img-box.flex-box {
    flex-direction: column;
    margin: 0 auto;
    margin-bottom: 30px;
}
#about .img-box .img.img01{
    width: 260px;
    height: 150px;
}
#about .img-box .img.img02{
    width: 210px;
    height: 150px;
    margin-left: 140px;
    margin-top: -20px;
}
#about .img-box .img{
    border-radius: 20px;
}
#about .txt{
    width: 100%;
}
#about .txt p{
    font-size: 1em;
}
#about .txt p:not(:last-child){
    margin-bottom: 20px;
}
}

/* 募集内容 */
#support{
    background: #fff;
    position: relative;
}
#support::before{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/icon_02.svg);
    background-repeat: no-repeat;
    z-index: 3;
}
#support::after{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/shape04.svg);
    background-repeat: no-repeat;
    z-index: 1;
}
#support .bg-wrap-top{
    width: 100%;
    background: url(../images/white_bgline_01.png) no-repeat center top;
}
#support .bg-wrap-bottom{
    width: 100%;
    background: url(../images/white_bgline_02.png) no-repeat center top;
    position: relative;
    z-index: 1;
}
#support .content-box{
    background: #FFFAE6;
    border-radius: 30px;
    position: relative;
}
#support .content-box::before{
    content: "";
    position: absolute;
    background-color: #FFFAE6;
    border-radius: 50%;
    margin: 0 auto;
}
#support .content-box::after{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
}
#support .art-class::after{
    background-image: url(../images/icon_art-gallery.svg);
}
#support .kids-dining::after{
    background-image: url(../images/icon_meal.svg);
}
#support .content-box h3{
    position: relative;
    font-weight: 600;
}
#support .content-box table tr{
    border-bottom: 1px solid #D9D9D9;
}
#support .content-box table th{
    background: #F2F2F2;
}
#support .content-box table td{
    background: #fff;
    text-align: left;
}
#support .content-box table{
    width: 100%;   
}
#support .content-box .table span{
   text-align: left;
   display: block;
}
#support .content-box .img-box{
    justify-content: space-between;
}
#support .content-box .img-box .img img{
   width: 100%;
   height: 100%;
   object-fit: cover;
   border-radius: 25px;
}
@media all and (min-width: 750px) {
/* pc */
#support{
    padding: 70px 0 70px;
}
#support::before{
    width: 210px;
    height: 170px;
    left: 90px;
    top: 14px;
}
#support::after{
    width: 166px;
    height: 140px;
    right: 0px;
    bottom: -36px;
}
#support .inner{
    padding: 70px 0 70px;
}
#support .bg-wrap-top{
    height: 23px;
    margin-top: -90px;
}
#support .bg-wrap-bottom{
    height: 23px;
    margin-bottom: -80px;
}
#support .ttl{
    margin-bottom: 70px;
}
#support .ttl h2{
    margin-bottom: 55px;
}
#support .content-box{
    padding: 30px 40px 40px;
    border-radius: 30px;
}
#support .content-box::before{
    width: 106px;
    height: 106px;
    top: -40px;
    right: 0;
    left: 0;
}
#support .content-box::after{
    width: 40px;
    height: 40px;
    right: 0;
    left: 0;
    top: -26px;
}
#support .content-box:not(:last-child){
    margin-bottom: 30px;
    margin-bottom: 80px;
}
#support .content-box h3{
    font-size: 22px;
    margin-bottom: 30px;
}
#support .content-box table th,
#support .content-box table td{
    padding: 18px 30px;
}
#support .content-box table th{
    background: #F2F2F2;
}
#support .content-box table{
   margin-bottom: 8px;
}
/* #support .content-box .table{
   margin-bottom: 20px;
} */
#support .content-box .table span{
   font-size: 15px;
}
#support .content-box .img-box{
    justify-content: space-between;
}
#support .content-box .img-box .img{
   width: 270px;
   height: 230px;
}
}
@media all and (max-width: 750px) {
/* sp */
#support{
    padding: 70px 0 70px;
}
#support::before{
    width: 85px;
    height: 110px;
    left: 22px;
    top: 0px;
}
#support::after{
    width: 130px;
    height: 112px;
    right: 0;
    bottom: -60px;
}
#support .inner{
    padding: 70px 0 70px;
}
#support .bg-wrap-top{
    height: 23px;
    margin-top: -90px;
}
#support .bg-wrap-bottom{
    height: 23px;
    margin-bottom: -80px;
}
#support .ttl{
    margin-bottom: 70px;
}
#support .ttl h2{
    margin-bottom: 55px;
}
#support .content-box{
    padding: 30px 18px 30px;
    border-radius: 30px;

}
#support .content-box::before{
    width: 106px;
    height: 106px;
    top: -40px;
    right: 0;
    left: 0;
}
#support .content-box::after{
    width: 40px;
    height: 40px;
    right: 0;
    left: 0;
    top: -26px;
}
#support .content-box:not(:last-child){
    margin-bottom: 30px;
    margin-bottom: 80px;
}
#support .content-box h3{
    font-size: 22px;
    margin-bottom: 30px;
}
#support .content-box table th,
#support .content-box table td{
    padding: 15px 20px;
}
#support .content-box table th{
    width: 30%;
}
#support .content-box table{
   margin-bottom: 8px;
}
/* #support .content-box .table{
   margin-bottom: 30px;
} */
#support .content-box .table span{
   font-size: 15px;
}
#support .content-box .img-box{
    gap: 20px;
    display: block;
}
#support .content-box .img-box .img{
   width: 270px;
   height: 230px;
}
}

/* こんな方にピッタリのボランティアです！ */
#target{
    background: var(--bg-yellow);
    position: relative;
}
#target::before{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/shape05.svg);
    background-repeat: no-repeat;
    z-index: 2;
}
#target::after{
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/icon_03.svg);
    background-repeat: no-repeat;
    z-index: 3;
}
#target .content-box{
    margin: 0 auto;
    justify-content: space-between;
}
#target .content-box .box{
    display: flex;
    flex-direction: column;
    align-items: center;
}
#target .content-box .img{
    position: relative;
    z-index: 1;
}
#target .content-box .img img{
    width: 100%;
    height: 100%;
    object-fit: contain;
}
#target .content-box .img::before{
    position: absolute;
    content: "";
    display: inline-block;
    background-position: center;
    background-size: contain;
    background-image: url(../images/icon_bg.svg);
    background-repeat: no-repeat;
    z-index: -1;
}
@media all and (min-width: 750px) {
/* pc */
#target{
    padding: 90px 0;
}
#target::before{
    width: 282px;
    height: 178px;
    right: 0px;
    top: 15px;
}
#target::after{
    width: 142px;
    height: 153px;
    right: 40px;
    top: -250px;
}
#target .ttl{
    margin-bottom: 70px;
}
#target .ttl h2{
    margin-bottom: 55px;
}
#target .content-box{
    width: 650px;
}
#target .content-box .img{
    width: 80px;
    height: 80px;
    margin-bottom: 52px;
}
#target .content-box .img img{
    width: 100%;
    height: 100%;
}
#target .content-box .img::before{
    width: 174px;
    height: 160px;
    right: -46px;
    top: -42px;
}
}
@media all and (max-width: 750px) {
/* sp */
#target{
    padding: 90px 0;
}
#target::before{
    width: 69px;
    height: 67px;
    right: 40px;
    top: 20px;
}
#target::after{
    width: 83px;
    height: 90px;
    right: 80px;
    top: -90px;
}
#target .ttl{
    margin-bottom: 70px;
}
#target .ttl h2{
    margin-bottom: 55px;
    line-height: 1.5;
}
#target .content-box {
    flex-direction: column;
}
#target .content-box .box{
    margin-bottom: 70px;
}
#target .content-box .box:last-child{
    margin-bottom: 60px;
}
#target .content-box .img{
    width: 80px;
    height: 80px;
    margin-bottom: 52px;
}
#target .content-box .img::before{
    width: 160px;
    height: 148px;
    right: -40px;
    top: -34px;
}
#target .content-box .box p{
    font-size: 1.3em;
    line-height: 1.4;
}
}
/* contact */
.contact .btn a{
        background-color: #223138;
    }


/* 写真スライダー */
.slider {
  width: 100%;
  overflow: hidden;
}
.slider-track {
    width: calc(16 * 300px);
    animation: slide 60s linear infinite;
    position: relative;
    z-index: 2;
}
.slider-track .img {
  flex-shrink: 0;
}
.slider-track .img img {
    object-fit: cover;
  width: 100%;
  height: 100%;
  flex-shrink: 0;
}
@media all and (min-width: 750px){
.slider-track .img {
  width: 300px;
  height: 260px;
}
}
@media all and (max-width: 750px) {
/* sp */
.slider-track .img {
  width: 220px;
  height: 190px;
}
}
/* 横移動アニメーション */
@keyframes slide {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.btnBox-or::before {
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/shape06.svg);
    background-repeat: no-repeat;
    z-index: 1;
}
.btnBox-or::after {
    position: absolute;
    content: "";
    display: inline-block;
    margin: 0 auto;
    background-position: center;
    background-size: contain;
    background-image: url(../images/icon_04.svg);
    background-repeat: no-repeat;
    z-index: 3;
}
.bg-top {
    display: none;
}
@media all and (min-width: 750px) {
/* pc */
.btnBox-or::before {
    width: 276px;
    height: 276px;
    left: -280px;
    bottom: -270px;
}
.btnBox-or::after {
    width: 91px;
    height: 125px;
    left: -110px;
    top: 204px;
}
}

@media all and (max-width: 750px) {
/* sp */
.btnBox-or {
    padding: 20px;
}
.btnBox-or::before {
    width: 172px;
    height: 170px;
    left: -57px;
    bottom: -36px;
}
.btnBox-or::after {
    width: 62px;
    height: 83px;
    left: 40px;
    bottom: 20px;
}
}

/* 揺れアニメーション */
#page-ttl::after,
#support::before,
#target::after,
.btnBox-or::after{
    transform-origin: center center;
    animation: swingCenter 5s ease-in-out infinite;
}
#support::before{
  animation-delay: -2.5s;
}
@keyframes swingCenter {
  0% {
    transform: rotate(0deg) translateY(0);
  }
  25% {
    transform: rotate(4deg) translateY(-5px);
  }
  50% {
    transform: rotate(0deg) translateY(0);
  }
  75% {
    transform: rotate(-5deg) translateY(-5px);
  }
  100% {
    transform: rotate(0deg) translateY(0);
  }
}
