/* common */
.section {
    width: 100%;
    font-size: 15px;
}
.section img {
    width: 100%;
}
.wrap {
    max-width: 380px;
    margin: 0 auto;
}

.ttl-maru {
    display: inline-block;
    padding: 1px 25px 0px;
    border-radius: 30px;
    text-align: center;
    color: #fff;
    margin: 0 auto 0;
    font-size: 13px;
}




/* intro ttl */

.intro {
     text-align: center;
    background:url("../images/intro-kira.png") repeat center top, linear-gradient(to top, rgb(43, 56, 95), rgb(43, 56, 95), rgba(16, 39, 76), rgba(0, 0, 0));
    padding-top: 60px;
}
.intro h1 {
overflow: hidden;
}
.intro h1 img {
    width: calc(100% + 200px);
    margin: -0 -90px 0 -110px;
}

.intro h2 {
    font-size: 16px;
    margin-bottom: -6rem;
}

/* intro02 */
.intro02 {
    background:linear-gradient(to bottom, rgb(43, 56, 95), rgb(43, 56, 95), rgba(0, 0, 0));
    margin-top: -5rem;
    text-align: center;
}
.intro02 > .wrap {
    background: url(../images/intro-img.png) no-repeat center bottom -5px;
    background-size: contain;
    padding-bottom: 20rem;
}

.intro02 h3 {
    margin: 20px auto 0;
}

.date span {
    padding-top: 5px;
    font-size: 18px;
    color: #d8cd95;
    font-weight: 600;
}

.banner {
    display: block;
    width: 90%;
    margin: 20px auto 0;
}
.ttl-red {
    background-color: #622341;
}
.introduction {
    margin: 20px auto 0;
    padding: 140px 0 100px;
    text-align: center;
    background: url(../images/intro-bg.png) no-repeat center;
    background-size: cover;
}

/* Highrights */
.point {
    background-color: #622341;
    padding-bottom: 60px;
}
.point > .wrap {
    position: relative;
    text-align: center;
    margin-top: 20px;
}
.deco01 {
    width: 20%;
    max-width: 115px;
    position: absolute;
    top: 0;
    left: 0;
}

.point-border {
    height: 13px;
    background: url(../images/border.png) repeat;
    background-size: contain;
}
.point h3 {
    width: 75%;
    margin: 0px auto;
    padding-top: 10px;
}
.point h3 span {
    display: block;
    margin-top: -4rem;
    color: #fff;
    font-size: 16px;
}
.ttl-bu {
    background-color: #2b0f23;

}
.point-ul {
    width: 80%;
    text-align: center;
    margin: 30px auto 0;
}
.point-ul li {
    margin-bottom: 40px;
}
.point-ul li h4 {
    max-width: 20px;
    margin: 0 auto 8px;
}
.point-ul li p {
    color: #fff;
    margin-top: 8px;
}
.point li p span {
    color: #d8cd95;
}





.deco02 {
    width: 20%;
    max-width: 115px;
    position: absolute;
    top: -5rem;
    right: 0;
}
/* schedule 曲線 */
.circle-bg {
  position: relative;
  background: #622341;
  height: 16vh;
  overflow: hidden;
}

.circle-bg::after {
  content: '';
  border-top-left-radius: 50% 100%;
  border-top-right-radius: 50% 100%;
  position: absolute;
  bottom: 0;
  width: 120%;
  margin: 0 -10%;
  background: #2b385f;
  height: 100%;
}

/* schedule */
.schedule {
    padding-bottom: 60px;
}
.schedule-wrap {
    z-index: 10;
    position: relative;
    text-align: center;
    margin-top: -3rem;
}

.schedule h3 {
    width: 75%;
    margin: 0px auto;
    padding-top: 10px;
}
.schedule h3 span {
    display: block;
    margin-top: -4rem;
    color: #fff;
    font-size: 16px;
}
.schedule p {
    width: 85%;
    margin: 30px auto 0;
}

/* アコーディオン */
.accordion {
    width: 90%;
    margin: 40px auto 0;
}
.accordion-003 {
    max-width: 500px;
    margin: 0 auto 7px;
    border-bottom: 1px solid #ffffff;
}

.accordion-003 summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 1em 1em;
    color: #ffffff;
    font-weight: 600;
    cursor: pointer;
}

.accordion-003 summary::-webkit-details-marker {
    display: none;
}

.accordion-003 summary::after {
    content: '';
    background: url(../images/faq-btn.png) no-repeat;
    transform: rotate(45deg);
    width: 10px;
    height: 10px;
    margin-left: 10px;
    transition: transform .3s;
}


.accordion-003[open] summary::after {
    transform: rotate(130deg);
}

.accordion-003 .accordion-box {
    background: #fff;
    transform: translateY(-10px);
    opacity: 0;
    margin: 0;
    padding:  1em 1em 2em;
    color: #333333;
    transition: transform .5s, opacity .5s;
    color: #2b385f;
}

.accordion-003[open] .accordion-box {
    transform: none;
    opacity: 1;
}

.accordion-box p {
    margin-top: 20px;
}
.bartender  {
    margin-top: 40px;
    text-align: center;
}
.bartender img {
    width: 50%;
    margin: 0 auto;
}
.bartender a {
    color: #29aae1;
}
.bartender .sns {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 10px;
}
.bartender .sns img {
    width: 45px;
}

.schedule-outro {
    width: 90%;
    margin: 60px auto 0;
}

.schedule-outro p {
    font-size: 14px;
    color: #d8cd95;
    font-weight: 600;
}
.schedule-outro img {
    width: 80%;
    margin: 20px auto 0;
}


/* faq */
.faq {
    background: #49708b;
    text-align: center;
    padding-top: 60px;
    padding-bottom: 60px;
}
.faq h3 {
    width: 75%;
    margin: 0px auto;
    padding-top: 10px;
}
.faq h3 span {
    display: block;
    margin-top: -4rem;
    color: #fff;
    font-size: 16px;
}
.faq-accordion {
    text-align: left;
}

.faq-accordion .accordion-box {
    padding:  1.5em;
}
.faq-accordion img {
    width: 40px;
    vertical-align: middle;
    padding-right: 8px;
}
.faq-accordion h4 {
    color: #622341;
    font-size: 18px;
    font-weight: bold;
}
.faq-accordion a {
    color: #29aae1;
}

.faq-accordion p {
    margin: 10px auto;
}


/* 会場・アクセス */
.access > .circle-bg {
    background: #49708b;
}
.access {
    padding-bottom: 60px;
}
.access-wrap {
    z-index: 10;
    position: relative;
    text-align: center;
    margin-top: -3rem;
}

.access h3 {
    width: 75%;
    margin: 0px auto;
    padding-top: 10px;
}
.access h3 span {
    display: block;
    margin-top: -4rem;
    color: #fff;
    font-size: 16px;
}

.access-info {
    width: 88%;
    text-align: left;
    margin: 20px auto;
}

.access-info + .access-info {
    padding-top: 10px;
    border-top: solid 1px #fff;
}


/* footer */
.outro {
    background-color: #622341;
    text-align: center;
    padding: 40px 0;
}

.outro-wrap {
    width: 88%;
}

.outro-wrap p {
    margin: 10px auto;
}