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

/* 下層ページ共通パーツ（プログラミング部門・AI部門で共有） */
/* 部門カラーが絡む箇所（グラデーション・枠線色など）は各部門のcssで上書きする */
/* ============================================ */

.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;
  }
}

/* ヒーロー */
/* ============================================ */

.second-main {
  padding: 64px 0;
  text-align: center;
  @media (width <= 896px) {
    padding: 48px 0;
  }
}
.second-main__label {
  color: #fff;
  font-size: clamp(1rem, 0.2632rem + 1.3158vw, 1.25rem); /* 20~16(1200~896) */
  font-weight: 700;
  letter-spacing: 0.2em;
}
.second-main__ttl {
  margin-top: 12px;
  color: #fff;
  font-size: clamp(2rem, -0.9474rem + 5.2632vw, 3rem); /* 48~32(1200~896) */
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

/* 共通見出し */
/* ============================================ */

.second-ttl {
  word-break: keep-all;
  color: var(--navy_c);
  font-size: clamp(1.75rem, -0.4605rem + 3.9474vw, 2.5rem); /* 40~28(1200~896) */
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-align: center;
  &::after {
    content: "";
    display: block;
    width: 48px;
    height: 4px;
    margin: 20px auto 0;
    border-radius: 2px;
    @media (width <= 896px) {
      margin-top: 16px;
    }
  }
}

/* 対象 */
/* ============================================ */

.second-target {
  position: relative;
  padding: 80px 0;
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.second-target__wrap {
  position: relative;
}
.second-target__box {
  margin-top: 40px;
  text-align: center;
  @media (width <= 896px) {
    margin-top: 32px;
  }
}
.second-target__who {
  font-weight: 800;
}
.second-target__note {
  text-align: left;
  margin-top: 24px;
  margin-inline: auto;
  inline-size: fit-content;
  font-size: clamp(0.875rem, 0.5066rem + 0.6579vw, 1rem); /* 16~14(1200~896) */
  line-height: 1.8;
  @media (width <= 896px) {
    margin-top: 16px;
  }
  > li {
    padding-left: 1em;
    text-indent: -1em;
  }
}

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

.second-award {
  position: relative;
  padding: 80px 0;
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.second-award__wrap {
  position: relative;
}
.second-award__note {
  text-align: left;
  margin-top: 24px;
  margin-inline: auto;
  inline-size: fit-content;
  font-size: clamp(0.875rem, 0.5066rem + 0.6579vw, 1rem); /* 16~14(1200~896) */
  line-height: 1.8;
  @media (width <= 896px) {
    margin-top: 16px;
  }
  > li {
    padding-left: 1em;
    text-indent: -1em;
  }
}

/* 「部門」「特別賞」カテゴリー */
.second-award__group {
  margin-top: 40px;
  @media (width <= 896px) {
    margin-top: 32px;
  }
  & + & {
    margin-top: 64px;
    @media (width <= 896px) {
      margin-top: 48px;
    }
  }
}
.second-award__group-ttl {
  padding-left: 14px;
  border-left: 5px solid;
  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;
}

/* 部門・課題別 賞タイトルのグリッド */
.second-award__grade {
  display: grid;
  gap: 28px;
  margin-top: 28px;
  @media (width <= 896px) {
    gap: 20px;
    margin-top: 24px;
  }
}
.second-award__grade-item {
  padding: 28px 24px;
  background: #fff;
  border: 2px solid;
  border-radius: 20px;
  text-align: center;
  @media (width <= 896px) {
    padding: 24px;
  }
}
.second-award__grade-ttl {
  word-break: keep-all;
  font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
  font-weight: 800;
  line-height: 1.5;
}
.second-award__grade-sub {
  display: inline-block;
  font-size: 0.7em;
  font-weight: 500;
}
.second-award__grade-txt {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid;
  color: var(--navy_c);
  font-size: clamp(1.125rem, 0.0197rem + 1.9737vw, 1.5rem); /* 24~18(1200~896) */
  font-weight: 700;
  @media (width <= 896px) {
    margin-top: 18px;
    padding-top: 14px;
  }
}
.second-award__grade-note {
  text-align: left;
  margin-top: 16px;
  font-size: clamp(0.875rem, 0.5066rem + 0.6579vw, 1rem); /* 16~14(1200~896) */
  line-height: 1.8;
  @media (width <= 896px) {
    margin-top: 12px;
  }
  > li {
    padding-left: 1em;
    text-indent: -1em;
  }
}

/* 賞金額パネル（最優秀賞を単独強調・優秀賞/準優秀賞を並列表示） */
.second-award__prize {
  margin-top: 64px;
  @media (width <= 896px) {
    margin-top: 40px;
  }
}
.second-award__prize-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 28px;
  @media (width <= 896px) {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 20px;
  }
}
.second-award__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);
  }
}
.second-award__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;
}
.second-award__prize-list-inner {
  padding: 24px;
  background: #fff;
  border-radius: 0 0 12px 12px;
  @media (width <= 896px) {
    padding: 16px;
  }
}
.second-award__prize-list-img {
  margin-bottom: 8px;
  img {
    @media (width <= 896px) {
      width: 80px;
    }
  }
}
.second-award__prize-list-txt {
  margin-top: 12px;
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  font-weight: 700;
  @media (width <= 896px) {
    margin-top: 10px;
  }
}
.second-award__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;
  }
}
.second-award__prize-note {
  margin-top: 16px;
  font-size: clamp(0.75rem, 0.3816rem + 0.6579vw, 0.875rem); /* 14~12(1200~896) */
}

/* 特別賞グリッド */
.second-award__special {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 28px;
  @media (width <= 896px) {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 24px;
  }
}
.second-award__special-item {
  display: flex;
  flex-direction: column;
  padding: 4px;
  border-radius: 16px;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--navy_c) 8%, transparent);
  text-align: center;
}
.second-award__special-ttl {
  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;
}
.second-award__special-inner {
  flex-grow: 1;
  padding: 24px 20px;
  background: #fff;
  border-radius: 0 0 12px 12px;
  @media (width <= 896px) {
    padding: 20px 16px;
  }
}
.second-award__special-txt {
  inline-size: fit-content;
  margin-inline: auto;
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  line-height: 1.8;
  text-align: left;
}
.second-award__special-prize {
  margin-top: 16px;
  color: var(--navy_c);
  font-size: clamp(1rem, 0.2632rem + 1.3158vw, 1.25rem); /* 20~16(1200~896) */
  font-weight: 700;
}
.second-award__special-num {
  display: inline-block;
  margin-left: 0.4em;
}

/* 応募期間 */
/* ============================================ */

.second-schedule {
  position: relative;
  padding: 80px 0;
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.second-schedule__wrap {
  position: relative;
}
.second-schedule__box {
  margin-top: 40px;
  text-align: center;
  @media (width <= 896px) {
    margin-top: 32px;
  }
}
.second-schedule__term {
  color: var(--navy_c);
  font-size: clamp(1.25rem, -0.2237rem + 2.6316vw, 1.75rem); /* 28~20(1200~896) */
  font-weight: 800;
  line-height: 2;
}
.second-schedule__flow-label {
  text-align: left;
  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;
  }
}
.second-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;
  }
}
.second-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;
    }
  }
}
.second-schedule__flow-ttl {
  font-size: clamp(1.125rem, 0.0197rem + 1.9737vw, 1.5rem); /* 24~18(1200~896) */
  font-weight: 700;
  white-space: nowrap;
}
.second-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;
}

/* TECH KIDS GRAND PRIX 案内（TOPのapply-process__specialと同内容） */
.apply-process__special {
  margin-top: 40px;
  padding: 36px 32px;
  background: #fff;
  border-radius: 16px;
  text-align: center;
  @media (width <= 896px) {
    margin-top: 32px;
    padding: 28px 20px;
  }
}
.apply-process__special-catch {
  word-break: keep-all;
  color: var(--main_c);
  font-size: clamp(1.125rem, 0.0197rem + 1.9737vw, 1.5rem); /* 24~18(1200~896) */
  font-weight: 700;
}
.apply-process__special-note {
  margin-top: 16px;
  font-size: clamp(0.875rem, 0.5066rem + 0.6579vw, 1rem); /* 16~14(1200~896) */
  @media (width <= 896px) {
    margin-top: 12px;
  }
  > li {
    display: inline-block;
    padding-left: 1em;
    text-indent: -1em;
    text-align: left;
  }
}
.apply-process__special-txt {
  margin-top: 24px;
  font-size: clamp(1rem, 0.2632rem + 1.3158vw, 1.25rem); /* 20~16(1200~896) */
  font-weight: 500;
  word-break: keep-all;
  overflow-wrap: anywhere;
  @media (width <= 896px) {
    margin-top: 16px;
  }
}
.apply-process__special-btn {
  margin-top: 32px;
  margin-inline: auto;
  max-width: 500px;
  @media (width <= 896px) {
    margin-top: 16px;
    max-width: 400px;
  }
}
.apply-process__special-btn a {
  position: relative;
  display: block;
  padding: 16px 56px 16px 36px;
  background: var(--grad_main);
  border-radius: 999px;
  color: #fff;
  font-family: var(--font_en);
  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: 14px 44px 14px 28px;
  }
  &::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;
    }
  }
}

/* 審査基準 */
/* ============================================ */

.second-criteria {
  position: relative;
  padding: 80px 0;
  text-align: center;
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.second-criteria__wrap {
  position: relative;
}
.second-criteria__txt {
  margin-top: 32px;
  font-size: clamp(0.9375rem, 0.3849rem + 0.9868vw, 1.125rem); /* 18~15(1200~896) */
  @media (width <= 896px) {
    margin-top: 24px;
  }
}
.second-criteria__btn {
  max-width: 600px;
  margin: 32px auto 0;
  @media (width <= 896px) {
    margin-top: 24px;
  }
  &.--soon {
    a {
      pointer-events: none;
      background: #d3cece;
      &::before {
        content: "Coming Soon";
        width: calc(100% - 32px);
        color: #000;
        font-weight: 800;
        position: absolute;
        top: 50%;
        left: 50%;
        translate: -50% -50%;
      }
    }
  }
}
.second-criteria__btn a {
  word-break: keep-all;
  position: relative;
  display: block;
  padding: 24px 40px;
  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: 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;
    }
  }
}

/* お問い合わせ（TOPと同内容） */
/* ============================================ */

.contact {
  position: relative;
  padding: 80px 0;
  @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;
  }
}

/* 応募導線 */
/* ============================================ */

.second-action {
  padding: 80px 0;
  @media (width <= 896px) {
    padding: 56px 0;
  }
}
.second-action__wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  @media (width <= 896px) {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.second-action__item {
  margin-inline: auto;
  width: 100%;
  max-width: 600px;
}
.second-action__item > a {
  word-break: keep-all;
  position: relative;
  display: block;
  padding: 24px 40px;
  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: 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;
    }
  }
}
