/* -----------------------------------------------------
	variables
----------------------------------------------------- */
/* -----------------------------------------------------
	detail-ttl
----------------------------------------------------- */
#detail-ttl {
  padding: 70px 50px;
  background-image: url("../img/shiru/detail-festival-ttl_bg.jpg");
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (max-width: 768px) {
  #detail-ttl {
    background-image: url("../img/shiru/detail-festival-ttl_bg_sp.jpg");
    padding: 7.8125vw 0;
  }
}
#detail-ttl h2 {
  text-align: center;
}

/* -----------------------------------------------------
	lead_box
----------------------------------------------------- */
#lead_box {
  padding: 80px 50px 0 50px;
}
@media screen and (max-width: 768px) {
  #lead_box {
    padding: 10.4166666667vw 6.5104166667vw 0 6.5104166667vw;
  }
}
#lead_box .inner {
  border-top: solid 3px #284f36;
  border-bottom: solid 3px #284f36;
  background-color: rgba(255, 255, 255, 0.4);
  padding: 50px 60px;
}
@media screen and (max-width: 768px) {
  #lead_box .inner {
    padding: 6.5104166667vw 3.90625vw;
  }
}
#lead_box .inner h3 {
  font-size: 3.6rem;
  font-weight: 700;
  margin: 0 0 30px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  #lead_box .inner h3 {
    font-size: 3rem;
    margin: 0 0 3.90625vw;
  }
}
#lead_box .inner p {
  font-size: 2rem;
  line-height: 2;
  text-align: left;
}
@media screen and (max-width: 768px) {
  #lead_box .inner p {
    font-size: 1.8rem;
  }
}

/* -----------------------------------------------------
	lead_text
----------------------------------------------------- */
#lead_text {
  padding: 80px 50px 0 50px;
}
@media screen and (max-width: 768px) {
  #lead_text {
    padding: 10.4166666667vw 6.5104166667vw 0 6.5104166667vw;
  }
}
#lead_text .inner p {
  font-size: 2rem;
  line-height: 2;
  text-align: center;
}
@media screen and (max-width: 768px) {
  #lead_text .inner p {
    font-size: 1.8rem;
  }
}

/* -----------------------------------------------------
	end_text
----------------------------------------------------- */
#end_text {
  padding: 0 50px 80px;
}
@media screen and (max-width: 768px) {
  #end_text {
    padding: 0 6.5104166667vw 6.5104166667vw;
  }
}
#end_text .inner p {
  font-size: 2rem;
  line-height: 2;
  text-align: center;
}
@media screen and (max-width: 768px) {
  #end_text .inner p {
    font-size: 1.8rem;
  }
}

/* -----------------------------------------------------
	section
----------------------------------------------------- */
section .inner .block:after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  margin: 80px 0;
  border-top: dotted 4px #284f36;
}
@media screen and (max-width: 768px) {
  section .inner .block:after {
    margin: 10.4166666667vw 0;
  }
}
section .inner .block:last-of-type::after {
  display: none;
}
section .inner h3 {
  text-align: center;
  font-size: 2.8rem;
  font-weight: 700;
  margin: 0 0 20px 0;
  color: #313131;
}
@media screen and (max-width: 768px) {
  section .inner h3 {
    margin: 0 0 2.6041666667vw 0;
    font-size: 2.2rem;
  }
}
section .inner p {
  line-height: 2;
}
section .inner p:not(:last-child) {
  margin-bottom: 1em;
}
section .inner p a {
  text-decoration: underline;
}
section .inner .reels {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
section .inner .reels:not(:last-child) {
  margin-bottom: 1em;
}
section .inner .reels > div {
  display: flex;
  justify-content: center;
  width: 49%;
  margin-left: 2%;
}
@media screen and (max-width: 768px) {
  section .inner .reels > div {
    width: 100%;
    margin-left: 0;
    margin-top: 3.90625vw;
  }
}
section .inner .reels > div:nth-of-type(2n+1) {
  margin-left: 0;
}
@media screen and (max-width: 768px) {
  section .inner .reels > div:nth-of-type(2n+1) {
    margin-top: 0;
  }
}
section .inner .links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  margin: 40px 0 0 0;
}
@media screen and (max-width: 768px) {
  section .inner .links {
    margin: 5.2083333333vw 0 0 0;
  }
}
section .inner .links a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40.9090909091%;
  height: 90px;
  position: relative;
  background-color: #171e27;
  color: #fff;
  text-align: center;
  padding: 0 50px;
  margin-left: 1.3636363636%;
  margin-right: 1.3636363636%;
  font-size: 16px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  section .inner .links a {
    width: 84.6354166667vw;
    height: 19.53125vw;
    font-size: 3.6458333333vw;
    padding: 0 8.4635416667vw;
    margin-left: 0;
    margin-right: 0;
    margin-top: 2.6041666667vw;
  }
}
section .inner .links a.pdf:after {
  content: "";
  display: block;
  width: 25px;
  height: 25px;
  background-image: url("../img/i-pdf.svg");
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}
@media screen and (max-width: 768px) {
  section .inner .links a.pdf:after {
    width: 3.90625vw;
    height: 3.90625vw;
    right: 3.90625vw;
  }
}
section .inner .links a small {
  display: block;
  font-size: 80%;
}
@media screen and (max-width: 768px) {
  section .inner .links a:first-of-type {
    margin-top: 0;
  }
}
section .inner .pic-clm1 {
  text-align: center;
}
section .inner .pic-clm1 > div {
  display: inline-block;
  width: 68.1818181818%;
}
@media screen and (max-width: 768px) {
  section .inner .pic-clm1 > div {
    width: 100%;
  }
}
section .inner .pic-clm1:not(:last-child) {
  margin-bottom: 1em;
}
section .inner .pic-clm2 {
  display: flex;
  flex-wrap: wrap;
}
section .inner .pic-clm2 > div {
  text-align: center;
  width: 49.0909090909%;
  margin-left: 1.8181818182%;
}
@media screen and (max-width: 768px) {
  section .inner .pic-clm2 > div {
    width: 100%;
    margin-left: 0;
  }
}
@media screen and (min-width: 769px) {
  section .inner .pic-clm2 > div:nth-of-type(odd) {
    margin-left: 0;
  }
}
@media screen and (max-width: 768px) {
  section .inner .pic-clm2 > div:nth-of-type(n+2) {
    margin-top: 3.90625vw;
  }
}
@media screen and (min-width: 769px) {
  section .inner .pic-clm2 > div:nth-of-type(n+3) {
    margin-top: 1.8181818182%;
  }
}
section .inner .pic-clm2:not(:last-child) {
  margin-bottom: 1em;
}
section .inner .pic-clm2.vertical {
  justify-content: center;
}
section .inner .pic-clm2.vertical > div {
  width: 34.0909090909%;
}
@media screen and (max-width: 768px) {
  section .inner .pic-clm2.vertical > div {
    width: 48%;
  }
}
@media screen and (max-width: 768px) {
  section .inner .pic-clm2.vertical > div:nth-of-type(even) {
    margin-left: 4%;
  }
}
@media screen and (max-width: 768px) {
  section .inner .pic-clm2.vertical > div:nth-of-type(n+2) {
    margin-top: inherit;
  }
}
@media screen and (max-width: 768px) {
  section .inner .pic-clm2.vertical > div:nth-of-type(n+3) {
    margin-top: 4%;
  }
}
section .inner .pic-clm2.vertical > div video {
  max-width: 100%;
}
section .inner .pic-clm3 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
section .inner .pic-clm3 > div {
  text-align: center;
  width: 32.1212121212%;
  margin-left: 1.8181818182%;
}
@media screen and (max-width: 768px) {
  section .inner .pic-clm3 > div {
    width: 100%;
    margin-left: 0;
  }
}
@media screen and (min-width: 769px) {
  section .inner .pic-clm3 > div:nth-of-type(3n+1) {
    margin-left: 0;
  }
}
@media screen and (max-width: 768px) {
  section .inner .pic-clm3 > div:nth-of-type(n+2) {
    margin-top: 3.90625vw;
  }
}
@media screen and (min-width: 769px) {
  section .inner .pic-clm3 > div:nth-of-type(n+4) {
    margin-top: 1.8181818182%;
  }
}
section .inner .pic-clm3:not(:last-child) {
  margin-bottom: 1em;
}
section.bg {
  background-size: cover;
  background-image: url("../img/tanoshimu/bg.jpg");
}
@media screen and (max-width: 768px) {
  section.bg {
    background-image: url("../img/tanoshimu/bg_sp.jpg");
  }
}
section.bg .inner h3 {
  color: #e8e5dd;
}
section.bg .inner p {
  color: #e8e5dd;
}

#instagram {
  background-color: #1d4b62;
}
#instagram .inner h2 {
  font-size: 3.6rem;
  font-weight: 700;
  text-align: center;
  color: #fff;
  margin: 0 0 60px;
}
@media screen and (max-width: 768px) {
  #instagram .inner h2 {
    font-size: 3rem;
    margin: 0 0 7.8125vw;
  }
}
#instagram .inner .box_wrap {
  display: flex;
  flex-wrap: wrap;
}
#instagram .inner .box_wrap .box {
  width: 23.6363636364%;
  margin-left: 1.8181818182%;
}
@media screen and (max-width: 768px) {
  #instagram .inner .box_wrap .box {
    width: 47%;
    margin-left: 3%;
  }
}
@media screen and (max-width: 768px) {
  #instagram .inner .box_wrap .box:nth-of-type(2n+1) {
    margin-left: 0;
  }
}
@media screen and (min-width: 769px) {
  #instagram .inner .box_wrap .box:nth-of-type(4n+1) {
    margin-left: 0;
  }
}
@media screen and (max-width: 768px) {
  #instagram .inner .box_wrap .box:nth-of-type(n+3) {
    margin-top: 3%;
  }
}
@media screen and (min-width: 769px) {
  #instagram .inner .box_wrap .box:nth-of-type(n+5) {
    margin-top: 1.8181818182%;
  }
}

/* -----------------------------------------------------
	common
----------------------------------------------------- */
.text-l {
  text-align: left;
}

.text-c {
  text-align: center;
}

.text-r {
  text-align: right;
}

.mt-10 {
  margin-top: 10px;
}
@media screen and (max-width: 768px) {
  .mt-10 {
    margin-top: 1.3020833333vw;
  }
}

.mt-20 {
  margin-top: 20px;
}
@media screen and (max-width: 768px) {
  .mt-20 {
    margin-top: 2.6041666667vw;
  }
}

.mt-30 {
  margin-top: 30px;
}
@media screen and (max-width: 768px) {
  .mt-30 {
    margin-top: 3.90625vw;
  }
}

.mt-40 {
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .mt-40 {
    margin-top: 5.2083333333vw;
  }
}

.mt-50 {
  margin-top: 50px;
}
@media screen and (max-width: 768px) {
  .mt-50 {
    margin-top: 6.5104166667vw;
  }
}

.mt-60 {
  margin-top: 60px;
}
@media screen and (max-width: 768px) {
  .mt-60 {
    margin-top: 1.3020833333vw;
  }
}

.mt-60 {
  margin-top: 60px;
}
@media screen and (max-width: 768px) {
  .mt-60 {
    margin-top: 7.8125vw;
  }
}

.mt-70 {
  margin-top: 70px;
}
@media screen and (max-width: 768px) {
  .mt-70 {
    margin-top: 9.1145833333vw;
  }
}

.mt-80 {
  margin-top: 80px;
}
@media screen and (max-width: 768px) {
  .mt-80 {
    margin-top: 10.4166666667vw;
  }
}

.mt-90 {
  margin-top: 90px;
}
@media screen and (max-width: 768px) {
  .mt-90 {
    margin-top: 11.71875vw;
  }
}

.mt-100 {
  margin-top: 100px;
}
@media screen and (max-width: 768px) {
  .mt-100 {
    margin-top: 13.0208333333vw;
  }
}

.mt-120 {
  margin-top: 120px;
}
@media screen and (max-width: 768px) {
  .mt-120 {
    margin-top: 15.625vw;
  }
}