@charset "UTF-8";

/* ==========================================================
   プレバト才能アリ展 LP - style.css
   Mobile-first responsive design
   ========================================================== */

:root {
  --green: #8FBB26;
  --green-dark: #6FA419;
  --green-line: #B9D45A;
  --beige: #F5F0DD;
  --beige-cell: #EFE9D2;
  --orange: #E85B2F;
  --orange-soft: #F08A4A;
  --text: #333;
  --text-light: #666;
  --line: #E2DEC7;
  --sponsor-blue: #1A5B96;
}

/* ----- Reset ----- */
*,*::before,*::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3","Yu Gothic","Meiryo",sans-serif;
  font-size: 15px;
  line-height: 1.8;
  color: var(--text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; vertical-align: bottom; }
a { color: inherit; text-decoration: none; transition: opacity .2s; word-break: break-all; }
a:hover { opacity: .7; }
ul { margin: 0; padding: 0; list-style: none; }
dl,dd,figure { margin: 0; }
table { border-collapse: collapse; width: 100%; }

/* ----- Layout ----- */
.container {
  width: 92%;
  max-width: 900px;
  margin: 0 auto;
}

/* ----- Section title (green bar, full width inside container) ----- */
.section-title {
  position: relative;
  margin: 0 0 16px;
  padding: 5px 20px !important;
  font-size: 15px;
  font-weight: bold;
  text-align: center;
  color: #fff;
  background: var(--green);
  border-radius: 0;
  letter-spacing: .04em;
  width: 100%;
}
@media (min-width: 768px) {
  .section-title { font-size: 26px; padding: 6px 30px; margin-bottom: 20px; }
}

/* ==========================================================
   HEADER
   ========================================================== */
.site-header { background: var(--green); padding: 20px 0; }
.site-header__card {
  background: #fff;
  width: 92%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0;
  border-radius: 0;
}
.site-header__fv { margin: 0; }
.site-header__fv img { display: block; width: 100%; height: auto; }

@media (min-width: 768px) {
  .site-header { padding: 30px 0; }
  .site-header__card { padding: 0; }
}

/* ==========================================================
   HERO / INTRO
   ========================================================== */
.hero { padding: 40px 0 60px; background: #fff; }
.hero__visual {
  margin: 0 auto 40px;
  width: 92%;
  max-width: 760px;
  overflow: hidden;
}
.hero__visual img { display: block; width: 100%; }
.hero__caption {
  margin-top: 10px;
  text-align: center;
  font-size: 12px;
  line-height: 1.6;
  color: var(--text);
}

.hero__catch {
  margin: 0 0 28px;
  text-align: center;
  font-size: 20px;
  line-height: 1.55;
  font-weight: 900;
  color: var(--green);
  letter-spacing: .02em;
  font-family: "Hiragino Maru Gothic ProN", "Hiragino Maru Gothic Pro",
               "ヒラギノ丸ゴ ProN W4", "ヒラギノ丸ゴ Pro W4",
               "Quicksand", "Comic Sans MS", "Avenir Next", sans-serif;
  -webkit-text-stroke: 1px currentColor;
  text-stroke: 1px currentColor;
  paint-order: stroke fill;
}

.hero__lead {
  margin: 0 0 36px;
  font-size: 12px;
  line-height: 2;
  color: var(--text);
}

.hero__cta { margin: 0; text-align: center; }

@media (min-width: 768px) {
  .hero { padding: 60px 0 80px; }
  .hero__visual { margin-bottom: 60px; }
  .hero__catch { font-size: 36px; line-height: 1.55; margin-bottom: 40px; }
  .hero__lead { font-size: 15px; margin-bottom: 50px; }
}

/* ==========================================================
   Buttons
   ========================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 320px;
  padding: 6px 32px;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
  color: #fff;
  background: var(--green);
  border-radius: 999px;
  position: relative;
}
.btn:hover { opacity: .9; }
.btn__arrow {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  position: absolute;
  right: 24px;
  top: 50%;
}

@media (min-width: 768px) {
  .btn { min-width: 520px; font-size: 17px; padding: 8px 36px; }
  .btn__arrow { right: 28px; }
}

/* ==========================================================
   INFO TABLE
   ========================================================== */
.info { padding: 30px 0 50px; background: #fff; }
.info__title {
  margin: 20px 0 15px;
  font-size: 24px;
  font-weight: normal;
  text-align: center;
  color: var(--text);
  letter-spacing: .04em;
}
.info-table { border-top: 1px solid var(--line); }
.info-table__sponsor-logo {
  display: inline-block;
  max-width: 320px;
  width: 100%;
  height: auto;
  vertical-align: middle;
}
.info-table__row {
  display: flex;
  flex-wrap: wrap;
  border-bottom: 1px dashed var(--line);
}
.info-table__row dt {
  flex: 0 0 100px;
  padding: 16px 10px;
  font-weight: normal;
  font-size: 11px;
  color: var(--text);
  letter-spacing: .5em;
}
.info-table__row--wide dt { letter-spacing: normal; }
.info-table__row dd {
  flex: 1;
  min-width: 200px;
  padding: 16px 12px;
  font-size: 11px;
  line-height: 1.8;
}
.info-table__row--highlight dd strong {
  display: inline-block;
  color: var(--sponsor-blue);
  font-size: 18px;
  font-weight: bold;
  letter-spacing: .05em;
}
.info-table__note {
  display: inline-block;
  margin-left: 6px;
  font-size: inherit;
  color: var(--text-light);
}

@media (min-width: 768px) {
  .info { padding: 50px 0 80px; }
  .info__title { font-size: 32px; margin-bottom: 20px; }
  .info-table__row dt { flex: 0 0 180px; font-size: 14px; padding: 22px 30px; }
  .info-table__row dd { font-size: 14px; padding: 22px 30px; }
  .info-table__sponsor-logo { max-width: 380px; }
}

/* ==========================================================
   WORKS  (masonry-style with CSS columns)
   ========================================================== */
.works { padding: 10px 0 50px; background: #fff; }
.works__title {
  margin: 0 0 40px;
  font-size: 24px;
  font-weight: bold;
  text-align: center;
  color: var(--text);
  letter-spacing: .1em;
}
@media (min-width: 768px) {
  .works__title { font-size: 32px; margin-bottom: 60px; }
}
.works__grid {
  column-count: 2;
  column-gap: 12px;
}
.works__grid--pc { display: none; }
.works__grid--sp {
  display: flex;
  gap: 12px;
  padding: 0;
  margin: 0;
  list-style: none;
  column-count: initial;
}
.works__col {
  flex: 1;
  min-width: 0;
  padding: 0;
  margin: 0;
  list-style: none;
}
.works__col .works__item { margin: 0 0 40px; }
.works__item {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  margin: 0 0 40px;
  display: block;
}
.works__item figure { margin: 0; }
.works__item img {
  width: 100%;
  height: auto;
  display: block;
  background: #f4f1e8;
}
.works__item figcaption {
  margin-top: 8px;
  font-size: 10px;
  line-height: 1.5;
  color: var(--text);
}

@media (min-width: 768px) {
  .works { padding: 20px 0 0px; }
  .works__grid { column-count: 3; column-gap: 24px; }
  .works__grid--pc { display: block; }
  .works__grid--sp { display: none; }
  .works__item { margin-bottom: 56px; }
  .works__item--space-below { margin-bottom: 83px; }
  .works__item--right { margin-bottom: 62px; }
  .works__item figcaption { font-size: 14px; margin-top: 12px; }
}

/* ==========================================================
   TICKETS
   ========================================================== */
.tickets {
  padding: 0 0 30px;
  background: #fff;
}
.tickets > .container {
  padding-top: 50px;
  border-top: 1px dashed #c8c4b0;
}
.tickets__title {
  margin: 20px 0 10px !important;
  font-size: 20px;
  font-weight: bold;
  text-align: center;
  color: var(--text);
  letter-spacing: .04em;
}

.tickets__rows { margin: 0; }
.tickets__row {
  display: flex;
  flex-wrap: wrap;
  border-bottom: 1px dashed #c8c4b0;
  padding: 24px 0;
}
.tickets__row dt {
  flex: 0 0 90px;
  padding: 0 12px 0 0;
  font-size: 10px;
  color: var(--text);
  line-height: 1.7;
  align-self: center;
}
.tickets__row dt small {
  display: block;
  margin-top: 4px;
  font-size: 9px;
  font-weight: normal;
}
.tickets__row dd {
  flex: 1;
  min-width: 220px;
  margin: 0;
  font-size: 10px;
  line-height: 1.9;
}
.tickets__row--prices dd { padding-left: 0; }

.tickets__table {
  border-collapse: collapse;
  width: 100%;
  margin: 0;
  table-layout: fixed;
}
.tickets__table th,
.tickets__table td {
  padding: 3px 6px;
  font-size: 10px;
  text-align: center;
  border: 1px solid #333;
  font-weight: normal;
  white-space: nowrap;
}
.tickets__table thead th {
  background: #fff;
  color: var(--text);
  font-weight: normal;
  letter-spacing: .3em;
}
.tickets__table thead th:first-child {
  background: transparent;
}
.tickets__table tbody th {
  background: #fff;
  white-space: nowrap;
}
.tickets__note {
  margin: 14px 0 0;
  font-size: 9px;
  line-height: 1.8;
  color: var(--text);
  text-align: right;
}
.tickets__sub {
  display: inline-block;
  margin-top: 2px;
  padding-left: 14px;
  font-size: 10px;
  color: var(--text);
}

@media (min-width: 768px) {
  .tickets { padding: 70px 0 100px; }
  .tickets__title { font-size: 32px; margin-bottom: 30px; }
  .tickets__row { padding: 36px 0; }
  .tickets__row dt { flex: 0 0 240px; padding: 0 30px 0 40px; font-size: 14px; }
  .tickets__row dt small { font-size: 12px; }
  .tickets__row dd { font-size: 14px; }
  .tickets__table th, .tickets__table td { font-size: 15px; padding: 8px 30px; }
  .tickets__note { font-size: 12px; }
}

/* ==========================================================
   PREMIUM EVENTS
   ========================================================== */
.events {
  padding: 60px 0 70px;
  background: #edf5de;
}
.events__head { text-align: center; margin-bottom: 30px; }
.events__title {
  margin: 0 0 10px !important;
  font-size: 24px;
  font-weight: bold;
  color: var(--green);
  letter-spacing: .04em;
}
.events__lead {
  margin: 0;
  font-size: 11px;
  color: var(--text);
  text-align: left;
}

/* Single bordered group container holding all 3 events */
.events__group {
  background: #fff;
  border: 4px solid #8fbb26;
  border-radius: 16px;
  padding: 28px 22px 22px;
  margin: 0 0 36px;
}

.event-card {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 0 22px;
  margin: 0;
  border-bottom: 1px dashed #B5D26A;
}
.event-card:last-of-type { border-bottom: 0; padding-bottom: 8px; }
.event-card:first-of-type { padding-top: 6px; }

.event-card__main { flex: 1; min-width: 0; }
.event-card__photo {
  order: 1;
  flex: 0 0 85px;
  text-align: right;
}
.event-card__photo img {
  width: 85px;
  max-width: 85px;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: inline-block;
  border-radius: 0;
}

.event-card__title {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.4;
  font-weight: bold;
  color: #8fbb26;
}
.event-card__dot {
  display: inline-block;
  margin-right: 4px;
  color: #8fbb26;
  font-size: 1em;
}
.event-card__type {
  font-size: inherit;
  color: #8fbb26;
  font-weight: bold;
}

.event-card__desc {
  margin: 0 0 14px;
  font-size: 8px;
  line-height: 1.7;
  color: var(--text);
}

.event-card__info { font-size: 8px; line-height: 1.7; }
.event-card__info > div {
  display: flex;
  flex-wrap: wrap;
  padding: 2px 0;
}
.event-card__info dt {
  flex: 0 0 44px;
  font-weight: bold;
  color: var(--text);
  letter-spacing: .1em;
}
.event-card__info dd { flex: 1; min-width: 0; margin: 0; font-weight: bold; }

.events__sub-note {
  margin: 18px 0 0;
  font-size: 12px;
  color: var(--text);
  text-align: left;
}

.events__apply {
  background: transparent;
  padding: 0 10px;
  margin: 0 0 32px;
}
.events__apply-title {
  margin: 0 0 24px;
  font-size: 12px;
  text-align: left;
  line-height: 1.8;
  font-weight: bold;
  color: var(--text);
}
.events__apply-spacer { visibility: hidden; }
.events__notes { list-style: none; padding: 0; margin: 0; }
.events__notes li {
  padding-left: 1em;
  text-indent: -1em;
}
.events__apply-title span {
  font-size: 12px;
  font-weight: bold;
  display: inline-block;
}
.events__apply-list > div {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 6px 10px;
}
.events__apply-list dt {
  flex: 0 0 auto;
  font-weight: normal;
  font-size: 11px;
  color: var(--text);
  white-space: nowrap;
}
.events__apply-list dd {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  font-size: 11px;
  line-height: 1.85;
  color: var(--text);
}

.events__cta { margin: 0; text-align: center; }

@media (min-width: 768px) {
  .events { padding: 80px 0 100px; }
  .events__title { font-size: 32px; margin-bottom: 22px; }
  .events__lead { font-size: 14px; }
  .events__group {
    padding: 40px 80px 32px;
    border-radius: 22px;
    border-width: 4px;
  }
  .event-card {
    flex-direction: row;
    align-items: flex-start;
    padding: 28px 0 36px;
    gap: 36px;
  }
  .event-card__photo { order: 1; flex: 0 0 220px; text-align: right; }
  .event-card__photo img { width: 220px; max-width: 220px; }
  .event-card__main { flex: 1; }
  .event-card__title { font-size: 28px; }
  .event-card__desc { font-size: 14px; }
  .event-card__info { font-size: 16px; line-height: 2; }
  .event-card__info dt { flex: 0 0 76px; }
  .events__sub-note { font-size: 13px; margin-top: 22px; }
  .events__apply-title { font-size: 15px; }
  .events__apply-title span { font-size: 14px; }
  .events__apply-list > div { gap: 6px 24px; }
  .events__apply-list dt { font-size: 13px; }
  .events__apply-list dd { font-size: 13px; }
}

/* ==========================================================
   GOODS
   ========================================================== */
.goods { padding: 50px 0 60px; background: #fff; }
.goods__lead {
  margin: 0 0 40px;
  text-align: center;
  font-size: 11px;
  color: var(--text-light);
}
.goods__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px 14px;
  margin-bottom: 32px;
}
.goods__item figure {
  margin: 0;
  text-align: center;
}
.goods__item img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  display: block;
  background: transparent;
}
.goods__item figcaption { margin-top: 8px; line-height: 1.5; }
.goods__name {
  display: block;
  font-size: 11px;
  font-weight: normal;
  color: var(--text);
}
.goods__price {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  color: var(--text);
  font-weight: normal;
}
.goods__cta { margin: 50px 0 0; text-align: center; }
.goods__notes {
  margin: 32px 0 0;
  padding: 0;
  list-style: none;
}
.goods__notes li {
  font-size: 11px;
  line-height: 1.9;
  color: var(--text);
  padding: 0 0 0 1.4em;
  text-indent: -1.4em;
}

@media (min-width: 768px) {
  .goods__notes { margin-top: 50px; }
  .goods__notes li { font-size: 13px; }
}

@media (min-width: 768px) {
  .goods { padding: 70px 0 90px; }
  .goods__lead { font-size: 13px; }
  .goods__grid { grid-template-columns: repeat(4, 1fr); gap: 36px 28px; }
  .goods__name { font-size: 14px; }
  .goods__price { font-size: 14px; }
}

/* ==========================================================
   FOOTER
   ========================================================== */
.site-footer {
  background: #fff;
  color: var(--text-light);
  padding: 36px 0 44px;
  text-align: center;
  border-top: 1px solid var(--line);
}
.site-footer__note {
  margin: 0 0 18px;
  font-size: 11px;
  line-height: 1.9;
  text-align: left;
}
.site-footer__copy { margin: 0; font-size: 11px; }

@media (min-width: 768px) {
  .site-footer__note { font-size: 12px; }
  .site-footer__copy { font-size: 12px; }
}
