@charset "UTF-8";
@import url(./global/_variable.css);

/* TOPページ */
/* ============================================ */

/* メインビジュアル */
/* ============================================ */

.mainvisual {
  padding: calc((120 / 1920) * 100vw);
  background: url("../images/main_bg.webp") center center/ cover no-repeat;
}
.mainvisual-ttl {
  max-width: 1200px;
  margin-inline: auto;
}
.mainvisual-ttl img {
  display: block;
  width: 100%;
  height: auto;
}

/* 背景 */
/* ============================================ */

.main {
  background: url("../images/bg_pattern_color.png") top center/ 100% auto repeat-y;
  @media (width <= 896px) {
    background-size: 150% auto;
  }
  @media (width <= 480px) {
    background-size: 200% auto;
  }
}

/* はじめに */
/* ============================================ */

.message {
  position: relative;
  padding: 80px 0;
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.message-wrap {
  position: relative;
}
.message-txt {
  margin-top: 40px;
  font-size: clamp(1.125rem, 0.3882rem + 1.3158vw, 1.375rem); /* 22~18(1200~896) */
  font-weight: 700;
  line-height: 2.2;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
  @media (width <= 896px) {
    margin-top: 28px;
    font-size: calc((17 / 16) * 1rem); /* 17px */
  }
  @media (width <= 480px) {
    text-align: left;
    word-break: normal;
  }
}

/* 応募部門 */
/* ============================================ */

.category {
  position: relative;
  padding: 80px 0;
  background: var(--grad_bg);
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.category-wrap {
  position: relative;
}
.category-inner {
  margin-top: 48px;
  @media (width <= 896px) {
    margin-top: 32px;
  }
}
.category-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  @media (width <= 896px) {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.category-list__item {
  > a {
    display: flex;
    flex-direction: column;
    gap: 20px;
    height: 100%;
    padding: 36px 32px;
    background: #fff;
    border-top: 6px solid var(--main_c);
    border-radius: 16px;
    box-shadow: 0 4px 20px color-mix(in srgb, var(--navy_c) 8%, transparent);
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s, opacity 0.3s;
    position: relative;
    &:hover {
      opacity: 1;
      transform: translateY(4px);
      box-shadow: 0 10px 28px color-mix(in srgb, var(--navy_c) 14%, transparent);
    }
    @media (width <= 896px) {
      padding: 28px 20px;
      gap: 16px;
    }
  }
  &:nth-child(2) > a {
    border-top-color: var(--point_c);
  }
}
.category-list__new {
  font-size: clamp(1rem, 0.2632rem + 1.3158vw, 1.25rem); /* 20~16(1200~896) */
  font-weight: 800;
  color: #fff;
  background: var(--grad_purple);
  padding: 0.2em 1em;
  border-radius: 9999px;
  position: absolute;
  top: -16px;
  left: 16px;
}
.category-list__ttl {
  display: inline-block;
  color: var(--main_c);
  font-size: clamp(1.375rem, -0.4671rem + 3.2895vw, 2rem); /* 32~22(1200~896) */
  font-weight: 800;
}
.category-list__item:nth-child(2) .category-list__ttl {
  color: var(--point_c);
}
.category-list__txt {
  padding: 12px 16px;
  background: var(--bg_c);
  border-radius: 8px;
  color: var(--navy_c);
  font-size: clamp(1rem, 0.2632rem + 1.3158vw, 1.25rem); /* 20~16(1200~896) */
  font-weight: 700;
}
.category-list__item:nth-child(2) .category-list__txt {
  background: #ffeee5;
}
.category-list__item:nth-child(2) .category-list__theme {
  border-color: color-mix(in srgb, var(--point_c) 30%, transparent);
}
.category-list__theme {
  border: 2px solid color-mix(in srgb, var(--main_c) 30%, transparent);
  border-radius: 8px;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  @media (width <= 896px) {
    gap: 12px;
  }
}
.category-list__theme-ttl {
  font-size: clamp(1rem, 0.2632rem + 1.3158vw, 1.25rem); /* 20~16(1200~896) */
  font-weight: 700;
}
.category-list__theme-catch {
  font-size: clamp(1.375rem, -1.2039rem + 4.6053vw, 2.25rem); /* 36~22(1200~896) */
  font-weight: 800;
  line-height: 1.2;
}
.category-list__theme-txt {
  text-align: left;
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
}
.category-list__btn {
  word-break: keep-all;
  position: relative;
  margin-top: auto;
  margin-inline: auto;
  width: 100%;
  max-width: 600px;
  padding: 24px 40px;
  background: var(--grad_main);
  border-radius: 9999px;
  color: #fff;
  font-size: clamp(1.125rem, 0.0197rem + 1.9737vw, 1.5rem); /* 24~18(1200~896) */
  font-weight: 700;
  line-height: 1.5;
  @media (width <= 896px) {
    padding: 16px 32px;
    max-width: 400px;
  }
  &::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: translateY(-4px) rotate(45deg);
    @media (width <= 896px) {
      right: 16px;
      width: 10px;
      height: 10px;
    }
  }
}
.category-list__item:nth-child(2) .category-list__btn {
  background: var(--grad_point);
}

/* 賞について */
/* ============================================ */

.prize {
  position: relative;
  padding: 80px 0;
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.prize-wrap {
  position: relative;
}
.prize-container {
  display: grid;
  gap: 28px;
  margin-top: 48px;
  @media (width <= 896px) {
    gap: 20px;
    margin-top: 32px;
  }
}
.prize-best {
  padding: 4px;
  background: var(--grad_purple);
  border-radius: 16px;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--navy_c) 8%, transparent);
}
.prize-best__ttl {
  text-align: center;
  padding: 14px 16px;
  border-radius: 12px 12px 0 0;
  color: #fff;
  font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
  font-weight: 800;
  @media (width <= 896px) {
    padding: 12px 16px;
    font-size: calc((22 / 16) * 1rem); /* 22px */
  }
}
.prize-best__inner {
  padding: 32px;
  background: #fff;
  border-radius: 0 0 12px 12px;
  text-align: center;
  @media (width <= 896px) {
    padding: 20px;
  }
}
.prize-best__txt {
  margin-top: 16px;
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  font-weight: 700;
}
.prize-best__detail {
  margin-top: 8px;
  background: linear-gradient(90deg, #b9880e 0%, #f5d576 25%, #b9880e 50%, #f5d576 75%, #b9880e 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: clamp(1.375rem, 0.2697rem + 1.9737vw, 1.75rem); /* 28~22(1200~896) */
  font-weight: 800;
}
.prize-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  @media (width <= 896px) {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.prize-list__item {
  padding: 4px;
  background: var(--grad_emerald);
  border-radius: 16px;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--navy_c) 8%, transparent);
  text-align: center;
  /* 最優秀賞だけ紫グラデーションで強調 */
  &:nth-child(2) {
    background: var(--grad_purple);
  }
}
.prize-list__ttl {
  padding: 12px 16px;
  border-radius: 12px 12px 0 0;
  color: #fff;
  font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
  font-weight: 800;
}
.prize-list__inner {
  padding: 24px;
  background: #fff;
  border-radius: 0 0 12px 12px;
  @media (width <= 896px) {
    padding: 16px;
  }
}
.prize-list__img {
  img {
    @media (width <= 896px) {
      width: 80px;
    }
  }
}
.prize-list__txt {
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  font-weight: 700;
  margin-top: 12px;
  @media (width <= 896px) {
    margin-top: 10px;
  }
}
.prize-list__detail {
  margin-top: 12px;
  background: linear-gradient(90deg, #b9880e 0%, #f5d576 25%, #b9880e 50%, #f5d576 75%, #b9880e 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: clamp(1.25rem, 0.5132rem + 1.3158vw, 1.5rem); /* 24~20(1200~896) */
  font-weight: 800;
  @media (width <= 896px) {
    margin-top: 10px;
  }
}
.prize-other {
  margin-top: 48px;
  @media (width <= 896px) {
    margin-top: 32px;
  }
}
.prize-other__txt {
  word-break: keep-all;
  font-size: clamp(1.0625rem, 0.1414rem + 1.6447vw, 1.375rem); /* 22~17(1200~896) */
  font-weight: 700;
  text-align: center;
}
.prize-other__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 32px;
  @media (width <= 896px) {
    gap: 16px;
    margin-top: 24px;
  }
  @media (width <= 600px) {
    grid-template-columns: 1fr;
  }
}
.prize-other__list-item > a {
  word-break: keep-all;
  position: relative;
  display: block;
  padding: 24px 40px;
  background: var(--grad_main);
  border-radius: 9999px;
  color: #fff;
  font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
  @media (width <= 896px) {
    padding: 18px 32px;
  }
  &::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: translateY(-4px) rotate(45deg);
    @media (width <= 896px) {
      right: 16px;
      width: 10px;
      height: 10px;
    }
  }
}
.prize-other__list-item.--ai > a {
  background: var(--grad_point);
}

/* 応募期間・応募方法 */
/* ============================================ */

.apply {
  position: relative;
  padding: 80px 0;
  background: var(--grad_bg);
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.apply-wrap {
  position: relative;
}
.apply-schedule {
  margin-top: 48px;
  @media (width <= 896px) {
    margin-top: 32px;
  }
}
.apply-schedule__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  margin-top: 28px;
  @media (width <= 896px) {
    gap: 32px;
    margin-top: 20px;
  }
}
.apply-schedule__list-item {
  background: #fff;
  border: 1px solid #dde5f0;
  border-radius: 16px;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--navy_c) 8%, transparent);
  overflow: hidden;
  > dt {
    padding: 12px;
    background: var(--main_c);
    color: #fff;
    font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
    font-weight: 700;
    text-align: center;
  }
  &:nth-child(2) > dt {
    background: var(--point_c);
  }
  > dd {
    padding: 24px;
    @media (width <= 896px) {
      padding: 20px 16px;
    }
  }
}
.apply-schedule__txt {
  font-size: clamp(1.125rem, 0.0197rem + 1.9737vw, 1.5rem); /* 24~18(1200~896) */
  font-weight: 700;
  text-align: center;
}
.apply-schedule__flow-label {
  margin-top: 24px;
  margin-inline: auto;
  max-width: 1000px;
  font-size: clamp(1.0625rem, 0.1414rem + 1.6447vw, 1.375rem); /* 22~17(1200~896) */
  font-weight: 700;
  color: var(--navy_c);
  @media (width <= 896px) {
    margin-top: 20px;
    max-width: 300px;
  }
}
.apply-schedule__flow {
  display: flex;
  margin-top: 12px;
  margin-inline: auto;
  max-width: 1000px;
  @media (width <= 896px) {
    flex-direction: column;
    margin-top: 10px;
    max-width: 300px;
  }
}
.apply-schedule__flow-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 16px 20px;
  background: var(--main_c);
  color: #fff;
  text-align: center;
  /* 右端を矢じり型に、左端も同じ角度の切り欠きに。切り欠き・矢じりを深めにして
     角度を付けつつ、隙間ぶんだけ重ねて見た目の白線幅は8pxに保つ（深さ24px・重なり16px） */
  clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 50%, calc(100% - 24px) 100%, 0 100%, 24px 50%);
  &:first-child {
    clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 50%, calc(100% - 24px) 100%, 0 100%);
  }
  &:not(:first-child) {
    margin-left: -16px;
  }
  /* 最終審査は最後の項目なので右端は矢じりにせずまっすぐにする */
  &:last-child {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 24px 50%);
  }
  @media (width <= 896px) {
    /* スマホ時は審査プロセスの矢印と同様に縦並び・下向きの矢じりに
       （深さ16px・重なり11pxで見た目の白線幅は5pxを維持） */
    padding: 20px 16px 24px;
    clip-path: polygon(0 0, 0 calc(100% - 16px), 50% 100%, 100% calc(100% - 16px), 100% 0, 50% 16px);
    &:first-child {
      clip-path: polygon(0 0, 0 calc(100% - 16px), 50% 100%, 100% calc(100% - 16px), 100% 0);
    }
    &:last-child {
      clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0, 50% 16px);
    }
    &:not(:first-child) {
      padding-top: 32px;
      margin-left: 0;
      margin-top: -11px;
    }
  }
}
.apply-schedule__list-item:nth-child(2) .apply-schedule__flow-item {
  background: var(--point_c);
}
.apply-schedule__flow-ttl {
  font-size: clamp(1.125rem, 0.0197rem + 1.9737vw, 1.5rem); /* 24~18(1200~896) */
  font-weight: 700;
  white-space: nowrap;
}
.apply-schedule__flow-date {
  margin-top: 4px;
  font-size: clamp(0.875rem, 0.5066rem + 0.6579vw, 1rem); /* 16~14(1200~896) */
  font-weight: 500;
  line-height: 1.4;
}
.apply-method {
  margin-top: 72px;
  @media (width <= 896px) {
    margin-top: 48px;
  }
}
.apply-method__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 76px;
  @media (width <= 896px) {
    grid-template-columns: repeat(2, 1fr);
    gap: 56px 24px;
    margin-top: 56px;
    margin-inline: auto;
  }
  @media (width <= 480px) {
    grid-template-columns: repeat(1, 1fr);
  }
}
.apply-method__list-item {
  position: relative;
  padding: 56px 20px 28px;
  background: linear-gradient(#fff, #fff) padding-box, var(--grad_emerald) border-box;
  border: 4px solid transparent;
  border-radius: 16px;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--navy_c) 8%, transparent);
  text-align: center;
  @media (width <= 896px) {
    padding: 50px 16px 24px;
  }
}
.apply-method__list-step {
  position: absolute;
  top: -48px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2em;
  width: 96px;
  height: 96px;
  background: var(--navy_c);
  border-radius: 50%;
  color: #fff;
  line-height: 1;
  @media (width <= 896px) {
    top: -42px;
    width: 84px;
    height: 84px;
  }
}
.apply-method__list-step .txt_en {
  display: block;
  font-size: calc((14 / 16) * 1rem); /* 14px */
  font-weight: 700;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
.apply-method__list-step .txt_number {
  display: block;
  font-family: var(--font_en);
  font-size: clamp(1.75rem, 1.0132rem + 1.3158vw, 2rem); /* 32~28(1200~896) */
  font-weight: 800;
}
.apply-method__list-img {
  margin-top: 16px;
  margin-inline: auto;
  max-width: 250px;
  @media (width <= 896px) {
    max-width: 200px;
  }
  img {
    width: 100%;
    max-width: none;
  }
}
.apply-method__list-txt {
  margin-top: 16px;
  font-size: clamp(1rem, 0.2632rem + 1.3158vw, 1.25rem); /* 20~16(1200~896) */
  font-weight: 700;
}
.apply-materials {
  margin-top: 64px;
  padding-top: 36px;
  border-top: 2px solid var(--navy_c);
  @media (width <= 896px) {
    margin-top: 48px;
    padding-top: 28px;
  }
}
.apply-materials__ttl {
  word-break: keep-all;
  color: var(--navy_c);
  font-size: clamp(1.375rem, -0.4671rem + 3.2895vw, 2rem); /* 32~22(1200~896) */
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
}
.apply-materials__note {
  margin-top: 16px;
  margin-inline: auto;
  inline-size: fit-content;
  font-size: clamp(0.875rem, 0.5066rem + 0.6579vw, 1rem); /* 16~14(1200~896) */
  padding-left: 1em;
  text-indent: -1em;
  @media (width <= 896px) {
    margin-top: 12px;
  }
}
.apply-materials__container {
  display: flex;
  gap: 32px;
  margin-top: 36px;
  @media (width <= 896px) {
    flex-direction: column;
    gap: 28px;
    margin-top: 28px;
  }
}
.apply-materials__inner {
  flex: 1;
  min-width: 0;
  padding: 32px 36px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--navy_c) 8%, transparent);
  @media (width <= 896px) {
    padding: 24px 20px;
  }
}
.apply-materials__list {
  margin-top: 16px;
  > li {
    word-break: keep-all;
    position: relative;
    padding: 12px 8px 12px 28px;
    border-bottom: 1px solid #e0e6ef;
    font-size: calc((18 / 16) * 1rem);
    @media (width <= 896px) {
      font-size: calc((15 / 16) * 1rem);
    }
    &::before {
      content: "";
      position: absolute;
      top: 23px;
      left: 8px;
      width: 10px;
      height: 10px;
      background: var(--main_c);
      border-radius: 50%;
      @media (width <= 896px) {
        top: 21px;
      }
    }
  }
}
.apply-materials__inner.--ai .apply-materials__list > li::before {
  background: var(--point_c);
}
.apply-method__catch {
  word-break: keep-all;
  margin-top: 36px;
  color: var(--main_c);
  font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
  font-weight: 700;
  text-align: center;
}
.apply-method__note {
  margin-top: 16px;
  margin-inline: auto;
  inline-size: fit-content;
  font-size: clamp(0.875rem, 0.5066rem + 0.6579vw, 1rem); /* 16~14(1200~896) */
  @media (width <= 896px) {
    margin-top: 12px;
  }
  > li {
    padding-left: 1em;
    text-indent: -1em;
  }
}
.apply-method__txt {
  margin: 24px auto 0;
  inline-size: fit-content;
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  @media (width <= 896px) {
    margin-top: 20px;
  }
}
.apply-method__link {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 32px;
  @media (width <= 896px) {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 24px;
  }
}
.apply-method__link-item {
  margin-inline: auto;
  width: 100%;
  max-width: 600px;
}
.apply-method__link-item > a {
  word-break: keep-all;
  position: relative;
  display: block;
  padding: 24px 40px;
  border-radius: 9999px;
  background: var(--grad_emerald);
  color: #fff;
  font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
  @media (width <= 896px) {
    padding: 18px 32px;
  }
  &::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 24px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: translateY(-4px) rotate(45deg);
    @media (width <= 896px) {
      right: 18px;
      width: 10px;
      height: 10px;
    }
  }
}
.apply-process {
  margin-top: 72px;
  @media (width <= 896px) {
    margin-top: 48px;
  }
}
.apply-process__list {
  display: flex;
  margin: 28px auto 0;
  @media (width <= 896px) {
    flex-direction: column;
    max-width: 400px;
  }
}
.apply-process__list-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 22px 40px;
  background: #00a8ff;
  color: #fff;
  text-align: center;
  /* 右端を矢じり型に・左端に前の矢じりが刺さる切り欠き */
  clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 50%, calc(100% - 28px) 100%, 0 100%, 28px 50%);
  &:first-child {
    padding-left: 28px;
    clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 50%, calc(100% - 28px) 100%, 0 100%);
  }
  &:not(:first-child) {
    margin-left: -28px;
  }
  &:nth-child(2) {
    background: var(--main_c);
  }
  &:nth-child(3) {
    background: #281ea6;
  }
  /* 最終審査は最後の項目なので右端は矢じりにせずまっすぐにする */
  &:last-child {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 28px 50%);
  }
  @media (width <= 896px) {
    padding: 40px 16px 36px;
    /* 縦並び時は下向きの矢じりに */
    clip-path: polygon(0 0, 50% 24px, 100% 0, 100% calc(100% - 24px), 50% 100%, 0 calc(100% - 24px));
    &:first-child {
      padding-left: 16px;
      padding-top: 24px;
      clip-path: polygon(0 0, 100% 0, 100% calc(100% - 24px), 50% 100%, 0 calc(100% - 24px));
    }
    &:last-child {
      clip-path: polygon(0 0, 50% 24px, 100% 0, 100% 100%, 0 100%);
      padding-bottom: 28px;
    }
    &:not(:first-child) {
      margin-left: 0;
      margin-top: -24px;
    }
  }
}
.apply-process__list-txt {
  font-size: clamp(1.375rem, -0.4671rem + 3.2895vw, 2rem); /* 32~22(1200~896) */
  font-weight: 800;
  letter-spacing: 0.06em;
}
.apply-process__list-sub {
  margin-top: 4px;
  font-size: clamp(0.875rem, 0.5066rem + 0.6579vw, 1rem); /* 16~14(1200~896) */
  font-weight: 500;
}
.apply-process__note {
  margin: 24px auto 0;
  font-size: clamp(0.75rem, 0.3816rem + 0.6579vw, 0.875rem); /* 14~12(1200~896) */
  line-height: 1.8;
  > li {
    padding-left: 1em;
    text-indent: -1em;
  }
}
.apply-judge {
  margin-top: 72px;
  @media (width <= 896px) {
    margin-top: 48px;
  }
}
.apply-judge__container {
  display: flex;
  gap: 32px;
  margin-top: 36px;
  @media (width <= 896px) {
    flex-direction: column;
    gap: 28px;
    margin-top: 28px;
  }
}
.apply-judge__inner {
  flex: 1;
  min-width: 0;
  padding: 32px 36px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--navy_c) 8%, transparent);
  @media (width <= 896px) {
    padding: 24px 20px;
  }
}
.apply-judge__note {
  font-size: clamp(0.75rem, 0.3816rem + 0.6579vw, 0.875rem); /* 14~12(1200~896) */
  line-height: 1.8;
  padding-left: 1em;
  text-indent: -1em;
  margin-top: 20px;
  @media (width <= 896px) {
    margin-top: 16px;
  }
}
.apply-judge__list {
  margin-top: 16px;
  > li {
    word-break: keep-all;
    position: relative;
    padding: 12px 8px 12px 28px;
    border-bottom: 1px solid #e0e6ef;
    font-size: calc((18 / 16) * 1rem);
    @media (width <= 896px) {
      font-size: calc((15 / 16) * 1rem);
    }
    &::before {
      content: "";
      position: absolute;
      top: 23px; /* 1行目の中央（padding 12px + 行box 28.9px の半分 - 円の半径） */
      left: 8px;
      width: 10px;
      height: 10px;
      background: var(--main_c);
      border-radius: 50%;
      @media (width <= 896px) {
        top: 21px;
      }
    }
  }
}
.apply-judge__inner.--ai .apply-judge__list > li::before {
  background: var(--point_c);
}

/* 最終審査会＆授賞式 */
/* ============================================ */

.ceremony {
  padding: 80px 0;
  background: var(--grad_emerald);
  color: #fff;
  position: relative;
  @media (width <= 896px) {
    padding: 56px 0;
  }
  &::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: url("../images/bg_network_white.png") top center/ 100% auto repeat-y;
    position: absolute;
    top: 0;
    left: 0;
    @media (width <= 896px) {
      background-size: 150% auto;
    }
    @media (width <= 480px) {
      background-size: 200% auto;
    }
  }
}
.ceremony-wrap {
  position: relative;
}
.ceremony .common-ttl {
  color: #fff;
  &::after {
    background: #fff;
  }
}
.ceremony-detail {
  max-width: 1000px;
  margin: 40px auto 0;
  @media (width <= 896px) {
    margin-top: 28px;
  }
  > div {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 8px;
    border-bottom: 1px solid color-mix(in srgb, #fff 25%, transparent);
    @media (width <= 896px) {
      gap: 14px;
      padding: 16px 4px;
    }
    > dt {
      flex-shrink: 0;
      min-width: 96px;
      padding: 6px 20px;
      background: #fff;
      border-radius: 9999px;
      color: var(--navy_c);
      font-size: clamp(0.875rem, 0.5066rem + 0.6579vw, 1rem); /* 16~14(1200~896) */
      font-weight: 700;
      text-align: center;
      @media (width <= 896px) {
        min-width: 80px;
        padding: 6px 14px;
      }
    }
  }
}
.ceremony-detail__schedule {
  font-size: clamp(1.25rem, 0.5132rem + 1.3158vw, 1.5rem); /* 24~20(1200~896) */
  font-weight: 700;
}
.ceremony-detail__place {
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  font-weight: 500;
}
.ceremony-detail__place .txt_large {
  font-family: var(--font_normal);
  font-size: 1.4em;
  line-height: 1.4;
}
.ceremony-catch {
  margin: 28px auto 0;
  inline-size: fit-content;
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  line-height: 2;
}
.ceremony-last {
  margin-top: 40px;
  margin-inline: auto;
  max-width: 1000px;
  background: #fff;
  border-radius: 16px;
  padding: 32px 28px;
  color: var(--navy_c);
  @media (width <= 896px) {
    padding: 24px 20px;
  }
}
.ceremony-last__wrap {
  margin-inline: auto;
  max-width: 800px;
}
.ceremony-last__ttl {
  word-break: keep-all;
  text-align: center;
  font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
  font-weight: 700;
  line-height: 1.5;
}
.ceremony-last__img {
  margin-top: 32px;
  @media (width <= 896px) {
    margin-top: 24px;
  }
  img {
    width: 100%;
    border-radius: 12px;
  }
}
.ceremony-last__movie {
  margin-top: 32px;
  margin-inline: auto;
  max-width: 600px;
  position: relative;
  @media (width <= 896px) {
    margin-top: 24px;
  }
  a {
    display: block;
    position: relative;
    &::after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 50px;
      height: 50px;
      background: url(../images/btn_movie.svg) no-repeat center / contain;
      transform: translate(-50%, -50%);
      @media (width <= 896px) {
        width: 40px;
        height: 40px;
      }
      @media (width <= 480px) {
        width: 30px;
        height: 30px;
      }
    }
  }
  img {
    width: 100%;
    max-width: none;
    border-radius: 12px;
  }
}

/* 協賛企業 */
/* ============================================ */

.sponsor {
  position: relative;
  padding: 80px 0;
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.sponsor-wrap {
  position: relative;
}
.sponsor-container {
  +.sponsor-container {
    margin-top: 80px;
    @media (width <= 896px) {
      margin-top: 56px;
    }
  }
}
.sponsor-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin-top: 48px;
  @media (width <= 896px) {
    gap: 12px;
    margin-top: 32px;
  }
  /* grid ではなく flex + wrap にして、最後の行が余っても中央ぞろえになるようにする */
  > li {
    flex: 0 0 calc((100% - 60px) / 4);
    @media (width <= 896px) {
      flex-basis: calc((100% - 24px) / 3);
    }
    @media (width <= 480px) {
      flex-basis: calc((100% - 12px) / 2);
    }
  }
  > li > a {
    display: block;
    padding: 12px;
    background: #fff;
    border: 1px solid #e0e6ef;
    border-radius: 8px;
  }
}
.logo_sponsor img {
  display: block;
  width: 100%;
  height: auto;
}

/* 応募作品一覧 */
/* ============================================ */

.work {
  position: relative;
  padding: 80px 0;
  background: var(--grad_bg);
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.work-wrap {
  position: relative;
}
.work-catch {
  word-break: keep-all;
  margin-top: 32px;
  font-size: calc((18 / 16) * 1rem); /* 18px */
  text-align: center;
  @media (width <= 896px) {
    margin-top: 24px;
  }
}
.work-anchor {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 36px;
  @media (width <= 896px) {
    gap: 16px;
    margin-top: 28px;
  }
  @media (width <= 600px) {
    grid-template-columns: 1fr;
  }
}
.work-anchor__item > a {
  word-break: keep-all;
  position: relative;
  display: block;
  padding: 24px 40px;
  background: var(--grad_main);
  border-radius: 9999px;
  color: #fff;
  font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
  line-height: 1.5;
  @media (width <= 896px) {
    padding: 18px 32px;
  }
  &::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: translateY(-4px) rotate(45deg);
    @media (width <= 896px) {
      right: 16px;
      width: 10px;
      height: 10px;
    }
  }
}
.work-anchor__item.--ai > a {
  background: var(--grad_point);
}
.work-anchor__txt {
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
}

/* スキルUP！ */
/* ============================================ */

.skillup {
  position: relative;
  padding: 80px 0;
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.skillup-wrap {
  position: relative;
}
.skillup-container {
  margin-top: 48px;
  @media (width <= 896px) {
    margin-top: 32px;
  }
}
.skillup-inner {
  padding: 40px 32px;
  border: 2px solid color-mix(in srgb, var(--main_c) 30%, transparent);
  border-radius: 12px;
  background: #fff;
  @media (width <= 896px) {
    padding: 28px 20px;
  }
}
.skillup-catch {
  word-break: keep-all;
  color: var(--main_c);
  font-size: clamp(1.25rem, 0.1447rem + 1.9737vw, 1.625rem); /* 26~20(1200~896) */
  font-weight: 800;
  text-align: center;
}
.skillup-txt {
  margin-top: 24px;
  font-size: clamp(0.9375rem, 0.5481rem + 0.7692vw, 1.125rem); /* 18~15(1200~896) */
  line-height: 2;
  @media (width <= 896px) {
    margin-top: 16px;
  }
}
.skillup-detail {
  margin-top: 32px;
  padding: 32px;
  background: var(--bg_c);
  border-radius: 12px;
  @media (width <= 896px) {
    margin-top: 24px;
    padding: 24px 20px;
  }
  > dt {
    padding-bottom: 10px;
    border-bottom: 2px solid color-mix(in srgb, var(--main_c) 30%, transparent);
    color: var(--navy_c);
    font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
    font-weight: 700;
  }
  > dd {
    margin-top: 14px;
  }
}
.skillup-detail__txt {
  font-size: clamp(0.875rem, 0.6154rem + 0.5128vw, 1rem); /* 16~14(1200~896) */
  line-height: 1.9;
}
.skillup-detail__note {
  margin-top: 10px;
  font-size: clamp(0.75rem, 0.3816rem + 0.6579vw, 0.875rem); /* 14~12(1200~896) */
  padding-left: 1em;
  text-indent: -1em;
}
.skillup-seminar {
  margin-top: 40px;
  padding: 40px 32px;
  border: 2px solid color-mix(in srgb, var(--point_c) 30%, transparent);
  border-radius: 12px;
  background: #fff;
  @media (width <= 896px) {
    margin-top: 32px;
    padding: 28px 20px;
  }
}
.skillup-seminar__ttl {
  color: var(--navy_c);
  font-size: clamp(1.125rem, 0.0197rem + 1.9737vw, 1.5rem); /* 24~18(1200~896) */
  font-weight: 800;
  text-align: center;
}
.skillup-seminar__catch {
  margin-top: 24px;
  word-break: keep-all;
  color: var(--point_c);
  font-size: clamp(1.25rem, 0.1447rem + 1.9737vw, 1.625rem); /* 26~20(1200~896) */
  font-weight: 800;
  line-height: 1.6;
  text-align: center;
  @media (width <= 896px) {
    margin-top: 16px;
  }
}
.skillup-seminar__txt {
  margin-top: 24px;
  word-break: keep-all;
  color: var(--navy_c);
  font-size: clamp(1rem, 0.2632rem + 1.3158vw, 1.25rem); /* 20~16(1200~896) */
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
  @media (width <= 896px) {
    margin-top: 16px;
  }
}
.skillup-seminar__info {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 2px solid color-mix(in srgb, var(--point_c) 30%, transparent);
}
.skillup-seminar__info-list {
  margin-inline: auto;
  inline-size: fit-content;
}
.skillup-seminar__info-item {
  display: flex;
  align-items: flex-start;
  gap: 0.4em 1em;
  font-size: clamp(0.875rem, 0.6154rem + 0.5128vw, 1rem); /* 16~14(1200~896) */
  font-weight: 700;
  line-height: 1.8;
  @media (width <= 480px) {
    flex-direction: column;
  }
  & + & {
    margin-top: 12px;
    @media (width <= 896px) {
      margin-top: 10px;
    }
  }
  dt {
    flex-shrink: 0;
    text-align: center;
    width: 8em;
    padding: 0.2em 0.8em;
    background: var(--point_c);
    color: #fff;
    border-radius: 9999px;
  }
  dd {
    font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  }
}
.skillup-seminar__btn {
  margin-top: 28px;
  margin-inline: auto;
  max-width: 500px;
  @media (width <= 896px) {
    margin-top: 24px;
    max-width: 400px;
  }
}
.skillup-seminar__btn a {
  word-break: keep-all;
  position: relative;
  display: block;
  padding: 24px 40px;
  background: var(--grad_point);
  border-radius: 9999px;
  color: #fff;
  font-size: clamp(1.125rem, 0.0197rem + 1.9737vw, 1.5rem); /* 24~18(1200~896) */
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  @media (width <= 896px) {
    padding: 16px 32px;
  }
  &::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 12px;
    height: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: translateY(-4px) rotate(45deg);
    @media (width <= 896px) {
      right: 16px;
      width: 10px;
      height: 10px;
    }
  }
}

/* お問い合わせ */
/* ============================================ */

.contact {
  position: relative;
  padding: 80px 0;
  background: var(--grad_bg);
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.contact-wrap {
  position: relative;
}
.contact-txt {
  margin-top: 32px;
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  text-align: center;
  @media (width <= 896px) {
    margin-top: 24px;
  }
}
.contact-mail {
  margin-top: 20px;
  text-align: center;
}
.contact-mail a {
  display: inline-block;
  color: var(--main_c);
  font-family: var(--font_en);
  font-size: clamp(1.375rem, 0.2697rem + 1.9737vw, 1.75rem); /* 28~22(1200~896) */
  font-weight: 700;
  &::before {
    content: "";
    display: inline-block;
    width: 26px;
    height: 26px;
    margin-right: 10px;
    background: url(../images/icon_mail.svg) no-repeat center / contain;
    vertical-align: -3px;
  }
}
