.ticket-cate {
  width: 100%;
  margin: 0 0 4rem;
  text-align: center;
}

.ticket-cate-1 {
  width: 22%;
  margin: 0 2rem 0 0;
  padding: 0.3em 1.6em;
  color: #fff;
  font-size: min(13px, 1.3vw);
  text-align: justify;
  text-align-last: justify;
  text-justify: inter-ideograph;
  background-color: #666;
  border-radius: 10rem;
}

.ticket-text {
  width: 100%;
  margin: 2rem 0;
  color: #fff;
  font-size: min(26px, 2.6vw);
}

.ticket-text span {
  font-size: min(16px, 1.6vw);
}

.ticket-frame {
  position: relative;
  width: 100%;
}

.ticket-off {
  position: absolute;
  width: 106%;
  height: 120%;
  top: -10%;
  left: -2.5%;
  background-color: rgba(255, 255, 2558, 0.8);
  display: flex;
  justify-content: center;
  align-items: center;
}

.ticket-off p {
  padding: 0.6rem 2rem;
  color: #fff;
  font-size: min(22px, 2.2vw);
  background-color: #666;
}

.ticket-box {
  width: 100%;
  margin: 0 0 3rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.ticket-box:last-child {
  margin: 0;
}

.ticket-cate-2 {
  width: 18%;
  margin: 0 3rem 0 0;
  padding: 0.3em 0;
  color: #333;
  font-size: min(13px, 1.3vw);
  text-align: justify;
  text-align-last: justify;
  text-justify: inter-ideograph;
  border-bottom: #333 solid 1px;
}

.ticket-date {
  width: 77%;
  font-size: min(20px, 2vw);
}

.ticket-date span {
  font-weight: 500;
}

.ticket-date p {
  margin: 1rem 0 0;
  font-size: 70%;
  font-weight: 400;
}

.ticket-date-box {
  display: flex;
  column-gap: 1em;
  margin-bottom: 0.4rem;
}

.ticket-date-box > p {
  margin: 0;
  font-size: 100%;
}

.ticket-btm {
  margin: 0 0 2rem;
}

.f-green {
  margin: 0 0 1rem;
  color: #666;
  font-weight: 700;
  line-height: 1.2;
}

.f-green span {
  color: #666;
  font-size: 90%;
  font-weight: 400;
}

.ticket-price {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}

.place {
  width: 20%;
  margin: 0 0 0 0;
}

.ticket-price-item {
  margin: 0 2% 0 0;
}

.ticket-name {
  width: 100%;
  margin: 0 0 2rem;
  color: #333;
  font-size: min(22px, 2.2vw);
  font-weight: 700;
}

.ticket-name-2 {
  width: 100%;
  margin: 0 0 2rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.free {
  padding: 0.2rem 0.6rem;
  margin: 0 1rem 0 0;
  color: #fff;
  font-size: min(20px, 2vw);
  font-weight: 400;
  background-color: #6b58c6;
}

.ticket-name-2-text {
  color: #333;
  font-size: min(22px, 2.2vw);
  font-weight: 700;
}

.ticket-note {
  width: 100%;
  margin: 2rem 0 0;
}

.ticket-note p {
  margin: 0;
  padding-left: 1em;
  text-indent: -1em;
  font-size: min(14px, 1.4vw);
}

.btn-box {
  width: 100%;
  margin: 3rem 0 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.btn-box-btm {
  margin: 3rem 0 3rem;
}

.ticket-goods {
  width: 40%;
  margin: 0 auto;
  text-align: left;
}

.ticket-goods img {
  margin: 0 0 1rem;
}

.ticket-goods-2 {
  width: 50%;
  margin: 1rem 0;
  text-align: left;
}

.ticket-about {
  width: 100%;
  margin: 2rem 0 0;
  color: #fff;
  font-size: min(16px, 1.6vw);
}

.ticket-about p {
  margin: 0;
}

p.midashi {
  width: 100%;
  padding: 0 0 0.5em;
  margin: 0 0 0.6em;
  color: #666;
  font-size: 120%;
  border-bottom: #666 solid 1px;
  padding-left: 1em;
  text-indent: -1em;
}

@media screen and (min-width: 1px) and (max-width: 767px) {
  .ticket-inner {
    margin: 2rem 0 0;
  }

  .ticket-cate {
    margin: 0 0 2rem;
  }

  .ticket-cate-1 {
    width: 40%;
    padding: 0.4em 1em;
    font-size: min(12px, 3.08vw);
  }

  .ticket-text {
    margin: 2rem 0;
    font-size: min(18px, 4.62vw);
  }

  .ticket-text span {
    font-size: min(14px, 3.59vw);
  }

  .ticket-frame {
    margin: 0 0 0;
  }

  .ticket-off {
    position: absolute;
    width: 115%;
    height: 126%;
    top: -13%;
    left: -10%;
    background-color: rgba(255, 255, 2558, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .ticket-off p {
    font-size: min(18px, 4.62vw);
  }

  .ticket-box {
    margin: 0 0 2rem;
    display: block;
  }

  .ticket-cate-2 {
    width: 45%;
    margin: 0 0 1.6rem;
    padding: 0.4em 0;
    font-size: min(12px, 3.08vw);
  }

  .ticket-date {
    width: 100%;
    font-size: min(18px, 4.62vw);
  }

  .ticket-date-box {
    flex-direction: column;
  }

  .ticket-date-box > p:not(:first-child) {
    margin-inline-start: 1em;
  }


  .ticket-btm {
    margin: 0 0 2rem;
  }

  .f-green {
    margin: 0 0 1rem;
  }

  .f-green span {
    font-size: 90%;
  }

  .place {
    width: 36%;
    margin: 0 0 0 0;
  }

  .ticket-price-item {
    margin: 0 2% 0 0;
  }

  .ticket-name {
    margin: 0 0 2rem;
    padding: 0;
    font-size: min(18px, 4.62vw);
  }

  .ticket-name-2 {
    margin: 0 0 2rem;
  }

  .free {
    padding: 0.2rem 0.6rem;
    margin: 0 0.6rem 0 0;
    font-size: min(14px, 4.1vw);
  }

  .ticket-name-2-text {
    font-size: min(18px, 4.62vw);
  }

  .ticket-note {
    width: 100%;
    margin: 1rem 0 0;
  }

  .ticket-note p {
    font-size: min(12px, 3.08vw);
  }

  .btn-box {
    margin: 2rem 0 0;
    display: block;
  }

  .btn-box-btm {
    margin: 2rem 0 2rem;
  }

  .ticket-goods {
    width: 100%;
  }

  .ticket-goods img {
    margin: 0 0 0.6rem;
  }

  .ticket-goods-2 {
    width: 100%;
    margin: 0.6rem 0;
  }

  .ticket-about {
    width: 100%;
    margin: 2rem 0 0;
    color: #fff;
    font-size: min(14px, 3.59vw);
  }

  .ticket-about p {
    margin: 0;
  }

  p.midashi {
    padding: 0 0 0.3em;
    margin: 0 0 0.3em;
    font-size: 110%;
    padding-left: 1em;
    text-indent: -1em;
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .ticket-cate-1 {
    font-size: min(13px, 1.6vw);
  }

  .ticket-text {
    font-size: min(22px, 2.72vw);
  }

  .ticket-text span {
    font-size: min(16px, 1.98vw);
  }

  .ticket-off p {
    font-size: min(22px, 2.72vw);
  }

  .ticket-cate-2 {
    font-size: min(12px, 1.2vw);
  }

  .ticket-date {
    font-size: min(18px, 2.22vw);
  }

  .ticket-name {
    font-size: min(18px, 2.22vw);
  }

  .ticket-note {
    font-size: min(13px, 1.6vw);
  }

  .ticket-about {
    font-size: min(16px, 1.98vw);
  }
}
