/* color */
/* ============================================ */
/* font */
/* ============================================ */
/* top */
/* ============================================ */
.wrapper {
  border: 20px solid #c6a359;
  -o-border-image: linear-gradient(180deg, #c39e53 0%, #f6efc2 37%, #c6a359 60%, #775423 100%);
     border-image: linear-gradient(180deg, #c39e53 0%, #f6efc2 37%, #c6a359 60%, #775423 100%);
  border-image-slice: 1;
  background: url("../images/main_bg.jpg") center center/100% auto repeat-y;
  position: relative;
  padding-bottom: 100px;
}
@media all and (max-width: 896px) {
  .wrapper {
    border-width: 12px;
    padding-bottom: 80px;
  }
}

.bg {
  position: absolute;
}
@media all and (max-width: 896px) {
  .bg {
    display: none;
  }
}

.present01 {
  width: 14%;
  top: 24%;
  left: 10%;
}

.present02 {
  width: 20%;
  top: 40%;
  right: 2%;
}

.ribon {
  width: 10%;
  top: 36%;
  left: 2%;
}

.snow {
  width: 6%;
  top: 30%;
  right: 4%;
}

.star01 {
  width: 4%;
  top: 58%;
  right: 2%;
}

.star02 {
  width: 5%;
  top: 48%;
  left: 8%;
}

.cane {
  width: 8%;
  top: 52%;
  left: 12%;
}

.tree__left {
  width: 40%;
  position: absolute;
  top: -20px;
  left: -20px;
}
@media all and (max-width: 896px) {
  .tree__left {
    top: -12px;
    left: -12px;
  }
}

.tree__right {
  width: 34%;
  position: absolute;
  top: -20px;
  right: -20px;
}
@media all and (max-width: 896px) {
  .tree__right {
    top: -12px;
    right: -12px;
  }
}

.light {
  width: calc(100% + 40px);
  position: absolute;
  top: -20px;
  left: -20px;
}
@media all and (max-width: 896px) {
  .light {
    width: calc(100% + 24px);
    top: -12px;
    left: -12px;
  }
}

.main__bead {
  width: 14%;
  position: absolute;
  top: -20px;
  right: 5vw;
}
@media all and (max-width: 896px) {
  .main__bead {
    width: 25%;
    top: -41vw;
  }
}

.main__ttl {
  width: 70%;
  margin-inline: auto;
  position: relative;
  z-index: 20;
  padding-top: 5vw;
}
@media all and (max-width: 896px) {
  .main__ttl {
    width: 100%;
    padding-top: 18vw;
  }
}

.schedule {
  margin-top: 20px;
  position: relative;
  z-index: 20;
}
.schedule__wrapper {
  max-width: 800px;
  width: 60%;
  margin-inline: auto;
}
@media all and (max-width: 896px) {
  .schedule__wrapper {
    width: 80%;
  }
}
@media all and (max-width: 600px) {
  .schedule__wrapper {
    width: calc(100% - 48px);
  }
}
.schedule__list {
  margin-top: 32px;
  color: #fff;
  font-size: 2.2rem;
}
@media all and (max-width: 896px) {
  .schedule__list {
    font-size: 1.8rem;
  }
}
.schedule__list > div {
  display: flex;
  gap: 8px 2em;
  margin-top: 8px;
}
@media all and (max-width: 480px) {
  .schedule__list > div {
    flex-direction: column;
    margin-top: 10px;
  }
}
.schedule__list > div > dt {
  flex-shrink: 0;
  width: 6em;
  color: #fff8b0;
  text-align: justify;
  -moz-text-align-last: justify;
       text-align-last: justify;
}
@media all and (max-width: 480px) {
  .schedule__list > div > dt {
    text-align: left;
    -moz-text-align-last: left;
         text-align-last: left;
  }
}
.schedule__note {
  text-indent: -1em;
  padding-left: 1em;
  color: #FFF000;
  font-size: 1.8rem;
  margin-top: 8px;
}
@media all and (max-width: 896px) {
  .schedule__note {
    font-size: 1.6rem;
  }
}
.schedule__rule {
  display: flex;
  align-items: flex-start;
  gap: 4px 8px;
  font-size: 1.8rem;
  margin-top: 8px;
}
@media all and (max-width: 896px) {
  .schedule__rule {
    font-size: 1.6rem;
  }
}
@media all and (max-width: 480px) {
  .schedule__rule {
    flex-direction: column;
  }
}
.schedule__rule dt {
  flex-shrink: 0;
  padding: 2px 8px;
  border: 1px solid #fff;
}
.schedule__rule dd {
  padding-top: 3px;
}

.container {
  width: calc(100% - 64px);
  max-width: 1600px;
  margin-inline: auto;
  margin-top: 100px;
  display: flex;
  flex-wrap: wrap;
  gap: 80px 40px;
}
@media all and (max-width: 896px) {
  .container {
    width: calc(100% - 48px);
    margin-top: 56px;
    gap: 56px 32px;
  }
}
.container__wrapper {
  width: calc((100% - 40px) / 2);
}
@media all and (max-width: 1200px) {
  .container__wrapper {
    width: 100%;
  }
}

.contents {
  position: relative;
}
.contents + .contents {
  margin-top: 80px;
}
@media all and (max-width: 896px) {
  .contents + .contents {
    margin-top: 56px;
  }
}
.contents__ttl {
  width: calc(100% + 14px);
  max-width: 520px;
  position: absolute;
  top: -20px;
  left: -14px;
}
@media all and (max-width: 896px) {
  .contents__ttl {
    width: calc(100% + 11px);
    max-width: 400px;
    left: -11px;
  }
}
.contents__block {
  padding: 72px 32px 24px;
  background: radial-gradient(#fbf8e2 50%, #efe7bf 100%);
}
@media all and (max-width: 896px) {
  .contents__block {
    padding: 56px 20px 20px;
  }
}
@media all and (max-width: 480px) {
  .contents__block {
    padding-top: 40px;
  }
}

.party__list > div {
  display: flex;
  align-items: center;
  gap: 4px 10px;
  padding-bottom: 10px;
  margin-bottom: 18px;
  border-bottom: 1px solid #00406e;
  position: relative;
}
@media all and (max-width: 600px) {
  .party__list > div {
    flex-direction: column;
    align-items: flex-start;
  }
}
.party__list > div:last-of-type::after {
  content: none;
}
.party__list > div::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 15px;
  background: url("../images/fukidashi.png") center center/contain no-repeat;
  position: absolute;
  left: 20px;
  bottom: -15px;
}
.party__list dt {
  flex-shrink: 0;
  width: 10em;
  color: #00406e;
  font-size: 2.2rem;
  font-weight: 600;
}
@media all and (max-width: 896px) {
  .party__list dt {
    font-size: 1.8rem;
  }
}
@media all and (max-width: 600px) {
  .party__list dt {
    width: 100%;
  }
}
.party__list dd {
  font-size: 1.8rem;
  font-weight: 600;
}
@media all and (max-width: 896px) {
  .party__list dd {
    font-size: 1.6rem;
  }
}
.party__note {
  margin-top: 20px;
  padding-left: 1em;
  text-indent: -1em;
}

.detail__txt {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
}
@media all and (max-width: 896px) {
  .detail__txt {
    max-width: 600px;
  }
}
.detail .contents__block {
  padding: 100px 24px 64px;
}
@media all and (max-width: 896px) {
  .detail .contents__block {
    padding: 64px 20px 40px;
  }
}

.movie__soon {
  width: 80%;
  max-width: 500px;
  margin-inline: auto;
}
@media all and (max-width: 896px) {
  .movie__soon {
    max-width: 400px;
  }
}
.movie__link {
  max-width: 500px;
  margin-inline: auto;
}
.movie .contents__block {
  padding: 80px 24px 24px;
  background: #fff;
}
@media all and (max-width: 896px) {
  .movie .contents__block {
    padding: 48px 20px 20px;
  }
}