@charset "UTF-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@900&display=swap');

/*-------------------------------------------
Base
-------------------------------------------*/

br.pc-none,
#calendar .sp,
#calendar .tablet{
    display: none !important;
}
#calendar ul, #calendar p, #calendar dl{ margin-bottom: 0;}
#calendar dd{ margin-left: 0;}

#calendar {
	width: 100%;
    overflow: hidden;
	position: relative;
	color: #462b19;
	font-family: 'Zen Maru Gothic', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.08em;
    background: #86c95f;
}
#calendar a{
    outline: none;
}
#calendar a:hover{
    text-decoration: none;
}
#calendar img{ 
    width: 100%; 
    vertical-align: bottom; 
    -webkit-backface-visibility: hidden; 
    backface-visibility: hidden;
}

#calendar h3{
    margin: 0;
}


#calendar .deco{
    position: absolute;
	left: 0;
	top: 0;
    transition: .5s;
}

#calendar .contentsInr{
	max-width: 1080px;
	margin: 0 auto;
	width: 80%;
}

#calendar .anchor-alignment{
    margin-top: -200px;
    padding-top: 200px;
}

#calendar .nowrap{
    display: inline-block;
    white-space: nowrap;
}

#calendar a[target="_blank"]::after{
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-left: 0.5em;
    background: url("../images/campaign/calendar/icon_window.svg") center center / contain no-repeat;
    /*transition: .5s;*/
}

/*-------------------------------------------
Component
-------------------------------------------*/


/*-------------------------------------------
PC
-------------------------------------------*/

/*---------- mv ----------*/
#calendar #mv{
    background: url("../images/campaign/calendar/bg_mv.png?0401") center top / cover no-repeat;
    height: 35vw;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

#calendar #mv .title{
    max-width: 850px;
    width: 52%;
}

#calendar #mv .dennyas01{
    width: calc((159 / 1440) * 100%);/*---幅変更（初期設定 157） ---*/
    margin: calc((50 / 1440) * 100%) 0 0 calc((966 / 1440) * 100%);/*---縦マージン変更（初期設定 50） ---*//*---横マージン変更（初期設定 966） ---*/
}
#calendar #mv .dennyas02{
    width: calc((149 / 1440) * 100%);/*---幅変更（初期設定 130） ---*/
    margin: calc((317 / 1440) * 100%) 0 0 calc((211 / 1440) * 100%);/*---縦マージン変更（初期設定 321） ---*//*---横マージン変更（初期設定 211） ---*/
}
#calendar #mv .dennyas03{
    width: calc((134 / 1440) * 100%);/*---幅変更（初期設定 133） ---*/
    margin: calc((304 / 1440) * 100%) 0 0 calc((1113 / 1440) * 100%);/*---縦マージン変更（初期設定 301） ---*//*---横マージン変更（初期設定 1113） ---*/
}

/*---------- mainContents ----------*/
#calendar #mainContents{
    background: url("../images/campaign/calendar/bg_01.png") center top / 100% auto no-repeat;
    padding-top: 110px;
    margin-top: -110px;
}

/*---------- search ----------*/

#calendar #mainContents .search{
    max-width: 1100px;
    width: 85%;
    margin: 0 auto;
    text-align: center;
    padding: 80px 0 40px;
}
#calendar #mainContents .search .title{
    font-size: 20px;
    margin-bottom: 20px;
}

#calendar #mainContents .search .tags{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
#calendar #mainContents .search .tags li{
    padding: 17px 35px;
    line-height: 1;
    margin: 5px;
    font-size: 17px;
    background: #462b19;
    color: #fff;
    border-radius: 100px;
    transition: .5s;
    cursor: pointer;
}
#calendar #mainContents .search .tags li.active,
#calendar #mainContents .search .tags li:hover{
    background: #fff000;
    color: #462b19;
}

/*---------- events ----------*/
#calendar #mainContents .events{
    position: relative;
    padding-bottom: 100px;
}
#calendar #mainContents .events::before{
    content: "";
    display: block;
    max-width: 1440px;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    background: url("../images/campaign/calendar/bg_02.png?0301") center top / 1440px 2088px no-repeat, url("../images/campaign/calendar/bg_03.png?0301") center 2088px / 1440px auto no-repeat;
    z-index: 0;
}
#calendar #mainContents .events .eventList{
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    padding-bottom: 40px;
}
#calendar #mainContents .events .eventList li{
    position: relative;
    width: 100%;
    transition: .5s;
    padding-top: 5.5%;
}


#calendar #mainContents .events .eventList li .iconBox{
    position: absolute;
    left: 20px;
    top: 0;
    display: flex;
    align-items: center;
}
#calendar #mainContents .events .eventList li .iconBox .icon{
    width: min(128px,14vw);
    z-index: 1;
    position: relative;
}
#calendar #mainContents .events .eventList li .iconBox .date{
    padding: 0 50px 5px 60px;
    margin-left: -30px;
    font-size: min(20px,2.5vw);
    height: min(70px,8vw);
    line-height: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
#calendar #mainContents .events .eventList li.cam .iconBox .date{ color: #f53237;}
#calendar #mainContents .events .eventList li.menu .iconBox .date{ color: #009245;}
#calendar #mainContents .events .eventList li.taku .iconBox .date{ color: #0078c3;}
#calendar #mainContents .events .eventList li.dt .iconBox .date{ color: #ff7d00;}


#calendar #mainContents .events .eventList li .iconBox .date .inner{
    display: flex;
    align-items: baseline;
}

#calendar #mainContents .events .eventList li .iconBox .date .num{
    font-size: 200%;
}
#calendar #mainContents .events .eventList li .iconBox .date .now{
    font-size: clamp(16px,2.5vw,25px);
    margin-right: 7px;
}
#calendar #mainContents .events .eventList li .iconBox .date .youbi{
    color: #ffff00;
    font-size: 65%;
    width: 1.6em;
    height: 1.6em;
    border-radius: 100%;
    text-align: center;
    line-height: 1;
    padding: 0.25em 0 0 0.05em;
    transform: translateY(-3px);
    margin-right: 5px;
}

#calendar #mainContents .events .eventList li.cam  .iconBox .date .youbi{ background: #f53237;}
#calendar #mainContents .events .eventList li.menu  .iconBox .date .youbi{ background: #009245;}
#calendar #mainContents .events .eventList li.taku  .iconBox .date .youbi{ background: #0078c3;}
#calendar #mainContents .events .eventList li.dt  .iconBox .date .youbi{ background: #ff7d00;}

#calendar #mainContents .events .eventList li.cam .iconBox .date{ background: url("../images/campaign/calendar/ribbon_cam.svg") right center / auto 100% no-repeat;}
#calendar #mainContents .events .eventList li.menu .iconBox .date{ background: url("../images/campaign/calendar/ribbon_menu.svg") right center / auto 100% no-repeat;}
#calendar #mainContents .events .eventList li.taku .iconBox .date{ background: url("../images/campaign/calendar/ribbon_taku.svg") right center / auto 100% no-repeat;}
#calendar #mainContents .events .eventList li.dt .iconBox .date{ background: url("../images/campaign/calendar/ribbon_dt.svg") right center / auto 100% no-repeat;}

#calendar #mainContents .events .eventList li .eventItemInr{
    display: flex;
    justify-content: space-between;
    width: 91%;
    margin: 0 0 0 6.5%;
    background: #fff;
    border: 5px solid;
    border-radius: 20px;
}

#calendar #mainContents .events .eventList li.cam .eventItemInr{ border-color: #f53237;}
#calendar #mainContents .events .eventList li.menu .eventItemInr{ border-color: #009245;}
#calendar #mainContents .events .eventList li.taku .eventItemInr{ border-color: #0078c3;}
#calendar #mainContents .events .eventList li.dt .eventItemInr{ border-color: #ff7d00;}

#calendar #mainContents .events .eventList li .eventItemInr .info{
    width: 40%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    padding: 45px 20px 20px;
}

#calendar #mainContents .events .eventList li.cam .eventItemInr .info{ background: #f53237;}
#calendar #mainContents .events .eventList li.menu .eventItemInr .info{ background: #009245;}
#calendar #mainContents .events .eventList li.taku .eventItemInr .info{ background: #0078c3;}
#calendar #mainContents .events .eventList li.dt .eventItemInr .info{ background: #ff7d00;}

#calendar #mainContents .events .eventList li .eventItemInr .info .small01{
    font-size: clamp(16px,2.5vw,24px);
    line-height: 1.4;
}
#calendar #mainContents .events .eventList li .eventItemInr .info .small02{
    font-size: clamp(14px,2.1vw,20px);
    line-height: 1.4;
}
#calendar #mainContents .events .eventList li .eventItemInr .info .notice{
    font-size: clamp(10px,1.3vw,12px);
    line-height: 1.4;
    opacity: 0.7;
}
#calendar #mainContents .events .eventList li .eventItemInr .info .eventTitle{
    font-size: clamp(24px,4vw,37px);
    line-height: 1.15;
}
#calendar #mainContents .events .eventList li .eventItemInr .info .eventTitle.smallTitle{
    font-size: clamp(22px,3.5vw,30px);
}
#calendar #mainContents .events .eventList li .eventItemInr .info .eventTitle.bigTitle01{
    font-size: clamp(36px, 4.7vw, 50px);
    line-height: 1;
    letter-spacing: 0;
}
#calendar #mainContents .events .eventList li .eventItemInr .info .eventTitle.bigTitle02{
    font-size: clamp(50px,8vw,80px);
    line-height: 1;
}
#calendar #mainContents .events .eventList li .eventItemInr .info .eventTitle .small{
    font-size: 70%;
}

#calendar #mainContents .events .eventList li .eventItemInr .info .eventTitle .rubi{
    display: block;
    font-size: 45%;
    margin-top: 0.5em;
    line-height: 1;
}

#calendar #mainContents .events .eventList li .eventItemInr .info * + .small01,
#calendar #mainContents .events .eventList li .eventItemInr .info * + .small02,
#calendar #mainContents .events .eventList li .eventItemInr .info * + .small03,
#calendar #mainContents .events .eventList li .eventItemInr .info * + .notice,
#calendar #mainContents .events .eventList li .eventItemInr .info * + .eventTitle{
    margin-top: 8px;
}

#calendar #mainContents .events .eventList li .eventItemInr .image{
    width: 60%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 50px 0;
}

#calendar #mainContents .events .eventList li .eventItemInr .image img{
    border-radius: 15px;
    overflow: hidden;
    width: 85%;
    max-width: 370px;
}
#calendar #mainContents .events .eventList li.taku .eventItemInr .info,
#calendar #mainContents .events .eventList li.taku .eventItemInr .image{
    padding-top: 30px;
}
#calendar #mainContents .events .eventList li.taku .eventItemInr .image img{
    border-radius: 0px;
    width: 100%;
    max-width: none;
}

#calendar #mainContents .events .eventList li .eventItemInr .image .notice02{
    font-size: 12px;
    line-height: 1.3;
    color: #e50012;
}

#calendar #mainContents .events .eventList li .eventItemInr .image * + .notice02{
    margin-top: 10px;
}

#calendar #mainContents .events .eventList li .btnBox{
    transform: translate(0,-50%);
    display: flex;
    justify-content: center;
}
#calendar #mainContents .events .eventList li .btnBox .btn01 {
    margin: 0 5px;
    position: relative;
}
#calendar #mainContents .events .eventList li .btnBox .btn01::after{
    content: "";
    display: block;
    background: url("../images/campaign/calendar/dn_05.svg") center center / contain no-repeat;
    width: 65px;
    height: 85px;
    position: absolute;
    top: calc(50% - 50px);
    right: -53px;
    z-index: 0;
    transform: translate(-100%,0) scale(0.5) rotate(0deg);
    opacity: 0;
    transition: .5s;
}

#calendar #mainContents .events .eventList li:nth-child(2n) .btnBox .btn01::after{
    background: url("../images/campaign/calendar/dn_06.svg") center center / contain no-repeat;
}
#calendar #mainContents .events .eventList li:nth-child(3n) .btnBox .btn01::after{
    background: url("../images/campaign/calendar/dn_07.svg") center center / contain no-repeat;
}

#calendar #mainContents .events .eventList li .btnBox:has(> :nth-child(2)) .btn01:nth-child(odd)::after{
    left: -53px;
    right: auto;
    transform: translate(100%,0) scale(0.5) rotate(0deg);
    background: url("../images/campaign/calendar/dn_06_l.svg") center center / contain no-repeat;
}

#calendar #mainContents .events .eventList li:nth-child(2n) .btnBox:has(> :nth-child(2)) .btn01:nth-child(odd)::after{
    background: url("../images/campaign/calendar/dn_07_l.svg") center center / contain no-repeat;
}
#calendar #mainContents .events .eventList li:nth-child(3n) .btnBox:has(> :nth-child(2)) .btn01:nth-child(odd)::after{
    background: url("../images/campaign/calendar/dn_05_l.svg") center center / contain no-repeat;
}

#calendar #mainContents .events .eventList li .btnBox .btn01 a{
    background: #462b19;
    color: #fff;
    text-align: center;
    line-height: 1.22;
    font-size: 18px;
    padding: 17px 50px;
    border-radius: 100px;
    border: 3px solid #462b19;
    transition: .5s;
    position: relative;
    display: block;
    z-index: 1;
}
#calendar #mainContents .events .eventList li .btnBox .btn01 a::before{
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg);
    position: absolute;
    right: 20px;
    top: calc(50% - 4px);
    transition: .5s;
}

#calendar #mainContents .events .eventList li.stop{
    margin-bottom: 30px;
}
#calendar #mainContents .events .eventList li.stop::after{
    white-space: pre;
    content: "現在キャンペーンを中止しております。\A再開次第お知らせいたします。";
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: clamp(12px,4.2vw,20px);
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.8);
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 20px;
    z-index: 2;
}

#calendar #mainContents .events .eventList li.stop .btnBox{
    display: none;
}

#calendar #mainContents .events .dennyas04{
    position: relative;
    z-index: 1;
    max-width: 293px;
    width: 50%;
    margin: 30px auto 0;
}
#calendar #mainContents .events .dennyas04 a{
    display: block;
}
#calendar #mainContents .events .dennyas04::before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: calc((166 / 293) * 100%);
    padding-top: calc((62 / 293) * 100%);
    margin: calc((62 / 293) * -100%) 0 0 5%;
    background: url("../images/campaign/calendar/balloon.svg") center center / contain no-repeat;
    opacity: 0;
    transform: translate(0,100%) rotate(0deg) scale(0.5);
    transition: .25s;
}

/*---------- pagetop ----------*/

#calendar .pagetop{
    position: fixed;
    right: 30px;
    bottom: 30px;
    max-width: 120px;
    min-width: 80px;
    width: 12vw;
    z-index: 100;
}
#calendar .pagetop a{
    display: block;
}

/*-------------------------------------------
Animation
-------------------------------------------*/
#calendar .bounceInUp{
	opacity: 0;
}

#calendar .in .bounceInUp,
#calendar .in.bounceInUp{
    animation:bounceInUp .4s ease forwards;
}

@keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 30px, 0) scale(0.9);
    transform: translate3d(0, 30px, 0) scale(0.9);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -10px, 0) scale(1.05);
    transform: translate3d(0, -10px, 0) scale(1.05);
  }

  75% {
    opacity: 1;
    -webkit-transform: translate3d(0, 10px, 0) scale(0.95);
    transform: translate3d(0, 10px, 0) scale(0.95);
  }

  90% {
    opacity: 1;
    -webkit-transform: translate3d(0, -5px, 0) scale(1.025);
    transform: translate3d(0, -5px, 0) scale(1.025);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0) scale(1);
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes bounceIn {
    0%, 20%, 40%, 60%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
        animation-timing-function: cubic-bezier(.215, .61, .355, 1)
    }
    0% {
        opacity: 0;
        -webkit-transform: scale3d(.3, .3, .3);
        transform: scale3d(.3, .3, .3)
    }
    20% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1)
    }
    40% {
        -webkit-transform: scale3d(.9, .9, .9);
        transform: scale3d(.9, .9, .9)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(1.03, 1.03, 1.03);
        transform: scale3d(1.03, 1.03, 1.03)
    }
    80% {
        -webkit-transform: scale3d(.97, .97, .97);
        transform: scale3d(.97, .97, .97)
    }
    to {
        opacity: 1;
        -webkit-transform: scaleX(1);
        transform: scaleX(1)
    }
}

    
#calendar .tada {
  animation: tada 13s linear infinite;
  transform-origin: 50% 50%;
}

@keyframes tada {
  0% {
    -webkit-transform: scale3d(1,1,1);
    transform: scale3d(1,1,1);
  }
  0.667% {
    -webkit-transform: scale3d(.9,.9,.9)rotate3d(0,0,1,-3deg);
    transform: scale3d(.9,.9,.9)rotate3d(0,0,1,-3deg);
  }
  1.333% {
    -webkit-transform: scale3d(.9,.9,.9)rotate3d(0,0,1,-3deg);
    transform: scale3d(.9,.9,.9)rotate3d(0,0,1,-3deg);
  }
  2% {
    -webkit-transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,3deg);
    transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,3deg);
  }
  2.667% {
    -webkit-transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,-3deg);
    transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,-3deg);
  }
  3.333% {
    -webkit-transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,3deg);
    transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,3deg);
  }
  4% {
    -webkit-transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,-3deg);
    transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,-3deg);
  }
  4.667% {
    -webkit-transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,3deg);
    transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,3deg);
  }
  5.333% {
    -webkit-transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,-3deg);
    transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,-3deg);
  }
  6% {
    -webkit-transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,3deg);
    transform: scale3d(1.1,1.1,1.1)rotate3d(0,0,1,3deg);
  }
  6.667% {
    -webkit-transform: scale3d(1,1,1);
    transform: scale3d(1,1,1);
  }
  100% {
    -webkit-transform: scale3d(1,1,1);
    transform: scale3d(1,1,1);
  }
}


#line .ticker img:first-child {
  animation: loop 120s -60s linear infinite;
}

#line .ticker img:last-child {
  animation: loop2 120s linear infinite;
}

@keyframes loop {
  0% {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}

@keyframes loop2 {
  0% {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}

@keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }

  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    -webkit-transform: translate3d(0,-4px,0);
    transform: translate3d(0,-4px,0);
  }
}

.tamani-bounce {
  animation: tamani-bounce_2053177194 4s linear infinite;
  transform-origin: 50% 100%;
}

@keyframes tamani-bounce_2053177194 {
  0% {
    -webkit-animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }
  5% {
    -webkit-animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }
  10% {
    -webkit-animation-timing-function: cubic-bezier(0.755,0.050,0.855,0.060);
    animation-timing-function: cubic-bezier(0.755,0.050,0.855,0.060);
    -webkit-transform: translate3d(0,-30px,0);
    transform: translate3d(0,-30px,0);
  }
  10.75% {
    -webkit-animation-timing-function: cubic-bezier(0.755,0.050,0.855,0.060);
    animation-timing-function: cubic-bezier(0.755,0.050,0.855,0.060);
    -webkit-transform: translate3d(0,-30px,0);
    transform: translate3d(0,-30px,0);
  }
  13.25% {
    -webkit-animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }
  17.5% {
    -webkit-animation-timing-function: cubic-bezier(0.755,0.050,0.855,0.060);
    animation-timing-function: cubic-bezier(0.755,0.050,0.855,0.060);
    -webkit-transform: translate3d(0,-15px,0);
    transform: translate3d(0,-15px,0);
  }
  20% {
    -webkit-animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }
  22.5% {
    -webkit-transform: translate3d(0,-4px,0);
    transform: translate3d(0,-4px,0);
  }
  25% {
    -webkit-animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }
  100% {
    -webkit-animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    animation-timing-function: cubic-bezier(0.215,0.610,0.355,1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }
}

.modal-contents,
.modal-contents .modal-close{
    animation: boyoyon 600ms ease forwards;
}
@keyframes boyoyon {
	from { transform: scale(0); }
	50% { transform: scale(1.05); }
	75% { transform: scale(.97); }
	87.5% { transform: scale(1.02); }
	to { transform: scale(1); }
}

.scale-up-center,
#calendar #mainContents .events .eventList li{
    opacity: 0;
}
#mv .scale-up-center,
.in .scale-up-center,
.in.scale-up-center,
#calendar #mainContents .events .eventList li.in{
	-webkit-animation: scale-up-center 0.4s cubic-bezier(0.680, -0.550, 0.265, 1.550) both;
    animation: scale-up-center 0.4s cubic-bezier(0.680, -0.550, 0.265, 1.550) both;
}

@keyframes scale-up-center {
  0% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
      opacity: 0;
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
      opacity: 1;
  }
}

#mv .deco img{
    animation: runrun .8s linear infinite;
}
@keyframes runrun{
    0% { transform: rotate(3deg);}
    50% { transform: rotate(-3deg);}
    100% { transform: rotate(3deg);}
}

/*---------- delay ----------*/

#mv .title img{ animation-delay: 0.4s;}
#mv .dennyas01{ animation-delay: 1.0s;}
#mv .dennyas02{ animation-delay: 0.8s;}
#mv .dennyas03{ animation-delay: 0.9s;}


/*-------------------------------------------
ONLY PC & HOVER
-------------------------------------------*/
@media only screen and (min-width: 769px){
	#calendar img,
	#calendar #mv .inr{
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
		image-rendering: crisp-edges;
		image-rendering: -webkit-optimize-contrast;
	}
    
    #calendar a[target="_blank"]:hover::after{
        background: url("../images/campaign/calendar/icon_window_brawn.svg") center center / contain no-repeat;
    }
    
    #calendar #mainContents .events .eventList li .btnBox .btn01:hover::after{
        opacity: 1;
        transform: translate(0,0) scale(1) rotate(10deg);
    }
    #calendar #mainContents .events .eventList li .btnBox:has(> :nth-child(2)) .btn01:nth-child(odd):hover::after{
        opacity: 1;
        transform: translate(0,0) scale(1) rotate(-10deg);
    }
    
    #calendar #mainContents .events .eventList li .btnBox .btn01 a:hover{
        background: #fff;
        color: #462b19;
        border: 3px solid #462b19;
    }
    #calendar #mainContents .events .eventList li .btnBox .btn01 a:hover::before{
        border-color: #462b19;
    }
    
    #calendar #mainContents .events .dennyas04:hover::before{
        opacity: 1;
        transform: translate(0,0) rotate(-5deg) scale(1.1);
    }
    
}

/*-------------------------------------------
UNDER 1100
-------------------------------------------*/
@media only screen and (max-width: 1100px){
    
    #calendar #mainContents .events .eventList li .eventItemInr {
        margin: 2% 0 0 6.5%;
    }
    #calendar #mainContents .events .eventList li .eventItemInr .info {
        padding: 6vw 2vw;
    }
    
}

/*-------------------------------------------
UNDER 900
-------------------------------------------*/
@media only screen and (max-width: 900px){
    
    #calendar .tablet{ display: block !important;}
	
    
    #calendar .lead01 {
        font-size: 20px;
    }
    
	/*---------- mv ----------*/
    
    #calendar #mv {
        background: url(../images/campaign/calendar/bg_mv_sp.png?0401) center top / cover no-repeat;
        height: 59vw;
    }
    
    #calendar #mv .title{
        width: 75%;
    }

    #calendar #mv .dennyas01{
        width: calc((67 / 400) * 100%);/*---幅変更（初期設定 66） ---*/
        margin: calc((22 / 400) * 100%) 0 0 calc((298 / 400) * 100%);/*---縦マージン変更（初期設定 22）横マージン変更（初期設定 298） ---*/
    }
    #calendar #mv .dennyas02{
        width: calc((64 / 400) * 100%);/*---幅変更（初期設定 55） ---*/
        margin: calc((191 / 400) * 100%) 0 0 calc((25 / 400) * 100%);/*---縦マージン変更（初期設定 194） ---*/
    }
    #calendar #mv .dennyas03{
        width: calc((57 / 400) * 100%);/*---幅変更（初期設定 56） ---*/
        margin: calc((192 / 400) * 100%) 0 0 calc((314 / 400) * 100%);/*---縦マージン変更（初期設定 197） 横マージン変更（初期設定 314） ---*/
    }
    
	/*---------- search ----------*/
    
    #calendar #mainContents .search .tags li {
        padding: 13px 25px;
        font-size: 15px;
    }
    
	/*---------- mainContents ----------*/
    
    #calendar #mainContents {
        background: url(../images/campaign/calendar/bg_01_sp.png?0801) center top / 100% auto no-repeat;
    }
    
    
    /*---------- events ----------*/
    #calendar #mainContents .events{
        padding-bottom: 60px;
    }
    #calendar #mainContents .events::before{
        background: url("../images/campaign/calendar/bg_02_sp.png?0301") center bottom / 100% auto no-repeat;
    }

}


/*-------------------------------------------
UNDER 600
-------------------------------------------*/
@media only screen and (max-width: 600px){
	
	br.pc-none {
        display: inline;
    }
	#calendar .sp { display: block !important;}
	#calendar .pc { display: none;}
    
    /*---------- search ----------*/
    #calendar #mainContents .search {
        padding: 60px 0 30px;
    }
    #calendar #mainContents .search .title {
        font-size: 14px;
        margin-bottom: 14px;
    }
    
    /*---------- events ----------*/
    #calendar #mainContents .events .eventList li{
        margin-bottom: 30px;
    }
    
    #calendar #mainContents .events .eventList li .iconBox{
        left: 0;
    }
    #calendar #mainContents .events .eventList li .iconBox .icon {
        width: min(22vw,115px);
    }
    #calendar #mainContents .events .eventList li .iconBox .date {
        padding: 0 5vw 1vw 5vw;
        margin-left: -2vw;
        font-size: 3vw;
        height: 11vw;
    }
    #calendar #mainContents .events .eventList li .eventItemInr{
        flex-direction: column;
        margin: 7% 5% 0 5%;
    }
    #calendar #mainContents .events .eventList li .eventItemInr .info{
        width: 100%;
        padding: min(8vw,40px) 2vw min(7vw,32px);
        border-radius: 10px 10px 0 0;
    }
    #calendar #mainContents .events .eventList li.taku .eventItemInr .image,
    #calendar #mainContents .events .eventList li .eventItemInr .image{
        width: 100%;
        padding: 18px 0 80px;
    }
    
    
    #calendar #mainContents .events .eventList li .btnBox {
        transform: translate(-50%, 0);
        bottom: 20px;
        position: absolute;
        top: auto;
        left: 50%;
    }
    
    #calendar #mainContents .events .eventList li .btnBox .btn01 a {
        font-size: 15px;
        padding: 11px 20px;
    }
    #calendar #mainContents .events .eventList li .btnBox .btn01 a::before {
        width: 6px;
        height: 6px;
    }
    #calendar #mainContents .events .eventList li .btnBox{
        flex-direction: column;
        width: 70%;
        max-width: 300px;
        margin: 0 auto;
    }
    #calendar a[target="_blank"]::after{
        width: 0.9em;
        height: 0.9em;
        margin-left: 0.3em;
    }
    
    
    #calendar #mainContents .events .eventList li .btnBox .btn01{
        margin: 0;
    }
    #calendar #mainContents .events .eventList li .btnBox .btn01 + .btn01{
        margin-top: 10px;
    }
    
    
    /*---------- pagetop ----------*/

    #calendar .pagetop{
        right: 15px;
        bottom: 15px;
    }
    
}


/*---------- uber、出前館のリンクボタン無し_余白調整 ----------*/

@media only screen and (min-width: 600px){
    #calendar #mainContents .events .eventList li .pdbottom {
        padding-bottom: 60px;
    }
}
