@charset "UTF-8";

/* outline-accessの.outline-venue__access-info（左border+padding-left）
   と同じ余白に揃える */
.ticket-schedule {
  text-align: left;
  border-left: 1px solid var(--border-soft);
  padding: 0 0 0 2em;
  margin: calc(clamp(3rem, 7.5vw, 5rem) / 2) auto;
}

@media (max-width: 991.98px) {
  .ticket-schedule {
    padding-left: 1em;
  }
}

.ticket-schedule__date {
  font-family: var(--font-jp);
  font-weight: 700;
  font-size: var(--fs-subheading);
  margin-bottom: .55em;
  line-height: 1.5;
}

.ticket-schedule__hours,
.ticket-schedule__text {
  font-size: var(--fs-body);
  display: flex;
  flex-direction: column;
  gap: .1em;
}

.ticket-schedule__text {
  margin: auto;
}

.ticket-schedule__text small {
  font-size: var(--fs-caption);
}

.ticket-price__table {
  display: grid;
  max-width: 60rem;
  margin: 0 auto;
}

.ticket-price__row {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr;
  column-gap: .25em;
  align-items: stretch;
  text-align: center;
  border-bottom: 1px solid var(--border-faint);
  font-size: var(--fs-subheading);
}

.ticket-price__row--head span,
.ticket-price__row [role="rowheader"],
.ticket-price__row [role="cell"] {
  padding: .75em 0;
}

.ticket-price__row [role="rowheader"],
.ticket-price__row [role="cell"] {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ticket-price__row--head span:nth-child(2),
.ticket-price__row [role="cell"]:nth-child(2) {
  background: rgba(55, 55, 55, .5);
}

.ticket-price__row--head span:nth-child(3),
.ticket-price__row [role="cell"]:nth-child(3) {
  background: rgba(215, 23, 24, .15);
}

.ticket-price em {
  font-family: var(--font-num);
  font-style: normal;
  font-weight: 600;
  font-size: var(--fs-price);
  margin-right: .1em;
  letter-spacing: .025em;
}

.ticket-buy__grid {
  display: grid;
  gap: clamp(.5rem, 3vw, 1.5rem);
  max-width: 60rem;
  margin: 0 auto;
}

.ticket-buy__btn {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 3.6em;
  border: 1px solid var(--color-white);
  background: rgba(10, 10, 10, .1);
  padding: .5em 1em;
  text-align: center;
  font-weight: 700;
  font-size: var(--fs-body-l);
}

.ticket-buy__btn span {
  display: inline-flex;
  align-items: center;
  gap: .4em;
}

.ticket-buy__btn .icon {
  width: .8em;
  height: .8em;
  filter: brightness(0) invert(1);
}

.ticket-buy__btn small {
  display: block;
  font-size: var(--fs-small);
  font-weight: 400;
  margin-top: -.25em;
}

.ticket-buy__btn em {
  font-family: var(--font-num);
  font-style: normal;
  font-size: 1.2em;
}

.ticket-buy__note {
  margin-top: 1.5em;
  text-align: center;
  font-size: var(--fs-body);
  color: rgba(255, 255, 255, .8);
}

@media (min-width: 992px) {
  .ticket-buy__grid {
    grid-template-columns: 1fr 1fr;
  }
  .ticket-schedule__hours {
    display: flex;
    flex-direction: column;
    gap: .25em;
  }
}

.ticket-notes__title {
  display: flex;
  align-items: center;
  gap: .75em;
  font-size: var(--fs-subheading);
  font-weight: 700;
  margin-bottom: 1em;
}

.ticket-notes__title::before {
  content: '';
  display: inline-block;
  width: 1.5em;
  height: 1px;
  background: var(--border-soft);
}

.ticket-notes__body {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .25em;
  font-size: var(--fs-caption);
  line-height: 1.7;
  font-weight: 400;
}

.ticket-notes__body p {
  padding-left: 1em;
  text-indent: -1em;
}

.ticket-notes__body p::before {
  content: '※';
}
