@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;600;700&family=Noto+Sans:wght@300;400;500;800&display=swap");
/* ---------- COMMON SETTING ---------- */
:root {
  --fl: 300;
  --fr: 400;
  --fm: 500;
  --fb: 800;
  --bg-c: linear-gradient(to right, rgba(136,116,255,1) 1%,rgba(0,140,214,1) 100%);
  --bg-c02: linear-gradient(to right, rgba(46,167,224,1) 1%,rgba(0,169,157,1) 100%);
  --green: #00A99D;
  --blue: #0066ff;
  --blue02: #008cd6;
  --black: #000000;
  --white: #ffffff;
  --purple: #9000ff;
  --navy: #1d2088; }

/* ---------- MIXIN ---------- */
html {
  font-size: 62.5%;
  scroll-behavior: smooth; }

body {
  font-size: 1.6em;
  min-width: 100%; }
  body ::selection {
    background-color: rgba(0, 169, 157, 0.3); }
  body.clip {
    overflow-y: hidden;
    position: relative; }
    body.clip::after {
      content: '';
      display: block;
      background-color: rgba(0, 0, 0, 0.5);
      width: 100%;
      height: 100%;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 5; }

html[lang="ja"] body {
  font-feature-settings: "palt";
  font-family: 'Noto Sans JP', sans-serif; }
html[lang="ja"] * {
  word-break: break-all; }

html[lang="en"] body {
  font-family: 'Noto Sans', sans-serif; }

* {
  box-sizing: border-box; }

p {
  font-size: 1.6rem;
  line-height: 1.7; }

a, button {
  transition: all linear 0.1s; }

button {
  display: inline-block; }

@media (hover) {
  /* hover only */
  main a:not([target="_blank"]):hover {
    color: var(--blue02);
    text-decoration: underline 2px solid var(--blue02); } }
table {
  border-collapse: collapse;
  width: 100%; }
  table tr {
    /* セルが空の時に-を表示する */ }
    table tr td:empty, table tr th:empty {
      text-align: center; }
    table tr td:empty::before, table tr th:empty::before {
      content: '-'; }

/* ---------- DISPLAY ---------- */
@media (750px < width) {
  :root {
    --width: 1200px; }

  html {
    scroll-padding-top: 77px; }

  body {
    overflow-x: hidden; }
    body::-webkit-scrollbar {
      width: 6px;
      height: 6px; }
    body::-webkit-scrollbar-track {
      background-color: #ccc;
      height: 6px; }
    body::-webkit-scrollbar-thumb {
      background: var(--bg-c);
      width: 6px;
      height: 6px;
      border-radius: 3px; }

  .show--sp {
    display: none; }

  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none; }

  .inner {
    width: var(--width);
    margin-left: auto;
    margin-right: auto; } }
/* ---------- PHONE ---------- */
@media (750px >= width) {
  :root {
    --width: 375px; }

  html {
    scroll-padding-top: 64px; }

  img {
    width: 100%;
    height: auto;
    vertical-align: top; }

  .show--pc {
    display: none; }

  .inner {
    padding-left: 5%;
    padding-right: 5%; } }
/* ---------- ANIMATION ---------- */
.fadeUP {
  animation: fadeUP 0.35s forwards;
  opacity: 0; }

@keyframes fadeUP {
  from {
    opacity: 0;
    transform: translateY(60px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
.slide {
  animation: slideLeft forwards 0.5s;
  opacity: 0; }

@keyframes slideLeft {
  0% {
    opacity: 0;
    transform: translateX(-100px); }
  100% {
    opacity: 1;
    transform: translateX(0px); } }
@media (750px >= width) {
  .slashbox .slide {
    animation: slideBottom forwards 0.5s;
    opacity: 0; }

  @keyframes slideBottom {
    0% {
      opacity: 0;
      transform: translateY(-100px); }
    100% {
      opacity: 1;
      transform: translateY(0px); } } }
@keyframes slideIn {
  0% {
    transform: translateY(-100%); }
  100% {
    transform: translateY(0%); } }
/* ----- HEADER ----- */
.header {
  background-color: var(--white);
  color: var(--navy);
  transition: all linear 0.35s;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin-inline: auto;
  max-width: 1400px;
  z-index: 50; }
  .header.sticky {
    position: sticky;
    top: 16px;
    left: 0;
    right: 0;
    animation: slideIn forwards 0.75s; }

.header__logo {
  display: flex;
  align-items: center;
  background-color: var(--white); }
  .header__logo > a {
    display: inline-block; }
    .header__logo > a:hover {
      opacity: 0.5; }
  .header__logo img {
    width: 100%;
    height: auto;
    vertical-align: bottom; }
  .header__logo .logo--pref, .header__logo .logo--valley {
    width: min(6.933vw, 52px);
    min-width: calc(52px / 2);
    margin-right: 10px; }
  .header__logo .logo--main {
    width: min(29.333vw, 220px);
    margin-left: 18px; }

.header__nav .gnav {
  white-space: nowrap; }
  .header__nav .gnav li {
    position: relative; }
    .header__nav .gnav li a {
      display: block; }
    .header__nav .gnav li a[href=""] {
      opacity: 0.25;
      pointer-events: none; }
.header__nav .gnav__sub a.btn--reserved {
  display: inline-block;
  background-color: var(--navy);
  border: 1px solid #fff;
  border: 1px solid var(--white);
  border-radius: 32px;
  color: var(--white);
  font-size: 1.1rem;
  white-space: nowrap;
  padding: 6px 18px;
  order: 1; }
  .header__nav .gnav__sub a.btn--reserved:hover {
    background-color: var(--blue02); }

/* ---------- DISPLAY ---------- */
@media (1200px < width) {
  /* ---------- HEADER ---------- */
  .humburgar {
    display: none; }

  .header {
    display: flex;
    align-items: end;
    border: 1px solid var(--navy);
    border-radius: 48px;
    padding: 10px 46px;
    top: 32px; }

  .header__logo {
    margin-right: 2vw; }

  .header__nav {
    display: flex;
    align-items: center;
    margin-left: auto; }
    .header__nav .gnav {
      display: flex;
      align-items: center;
      font-size: min(3vw, 1.2rem); }
      .header__nav .gnav li {
        border-left: 1px solid #727171; }
        .header__nav .gnav li:nth-child(5) {
          border-right: 1px solid #727171; }
        .header__nav .gnav li::after {
          content: '';
          display: block;
          width: 0%;
          height: 2px;
          background-color: var(--blue02);
          position: absolute;
          left: 0;
          right: 0;
          bottom: 0;
          margin: auto;
          transition: all linear 0.2s; }
        .header__nav .gnav li:hover::after, .header__nav .gnav li.active::after {
          width: 70%; }
        .header__nav .gnav li:has(a[href=""])::after {
          display: none; }
        .header__nav .gnav li a {
          padding: 4px 1vw; }
    .header__nav .gnav__sub {
      display: flex;
      align-items: center;
      margin-left: 1vw; }

  html[lang="ja"] .lang--japanese a, html[lang="en"] .lang--english a {
    pointer-events: none; }

  .languages {
    font-size: 1rem;
    font-weight: var(--fb);
    background-color: var(--white);
    border: 1px solid var(--black);
    color: var(--black);
    cursor: pointer;
    width: 100%;
    position: relative;
    z-index: 999;
    order: 2;
    margin-left: 13px; }
    .languages::after {
      content: '';
      background-color: var(--black);
      clip-path: polygon(8% 17%, 0% 25%, 50% 84%, 100% 25%, 92% 17%, 50% 65%);
      position: absolute;
      pointer-events: none;
      top: 40%;
      right: 11px;
      transform: translate(0, -25%);
      width: 12px;
      height: 12px; }
    .languages div {
      width: 100%; }
      .languages div a {
        display: block;
        padding: 8px 32px 8px 8px; }
        .languages div a:hover {
          background-color: var(--blue02);
          color: var(--white); }
    .languages div, .languages div span {
      vertical-align: middle; }
    .languages div span {
      content: '';
      display: inline-block;
      width: 30px;
      height: 17px; }
    .languages .icon--japanese {
      background: url("../img/common/icon_janan.png") center center no-repeat; }
    .languages .icon--english {
      background: url("../img/common/icon_english.png") center center no-repeat; }
    .languages .languages__item {
      background-color: var(--white);
      border-right: 1px solid var(--black);
      border-bottom: 1px solid var(--black);
      border-left: 1px solid var(--black);
      box-sizing: content-box;
      margin-left: -1px;
      position: absolute;
      z-index: 999;
      /*display: none;*/
      /* hide */
      opacity: 0;
      height: 0;
      visibility: hidden;
      pointer-events: none;
      transition: all linear 0.2s; }
    .languages:hover .languages__item, .languages:focus-within .languages__item {
      opacity: 1;
      height: auto;
      visibility: visible;
      pointer-events: auto; } }
/* ---------- PHONE ---------- */
@media (1200px >= width) {
  /* ---------- HEADER ---------- */
  .humbarger {
    display: block;
    width: 36px;
    height: 44px;
    margin-left: auto; }
    .humbarger span {
      display: block;
      width: 100%;
      height: 4px;
      background-color: #3E3A39;
      transform: rotate(0deg);
      transition: all linear 0.2s; }
      .humbarger span:not(:last-child) {
        margin-bottom: 8px; }
    .humbarger.close span:first-child {
      transform: rotate(135deg);
      margin-bottom: -12%; }
    .humbarger.close span:nth-child(2) {
      transform: rotate(45deg);
      margin-bottom: -16%; }
    .humbarger.close span:nth-child(3) {
      display: none; }

  .header {
    height: 64px;
    position: relative;
    z-index: 999; }
    .header.open .header__nav {
      background-color: var(--white);
      width: 100%;
      position: absolute;
      top: 64px;
      left: 0;
      transform: translateY(0); }
    .header.sticky {
      top: 0; }

  .header__logo {
    align-items: center;
    min-height: 64px;
    padding: 10px;
    position: relative; }
    .header__logo .logo--main {
      margin-right: auto; }

  .header__nav {
    position: relative;
    z-index: -1;
    transform: translateY(-100%);
    transition: all linear 0.3s; }
    .header__nav .gnav {
      border-top: 1px solid #C8C9CA; }
      .header__nav .gnav li {
        text-align: center;
        border-bottom: 1px solid #C8C9CA;
        /*&:nth-child(3) > a, &:nth-child(4) > a { opacity: 0.5; pointer-events: none; }
        &:nth-child(6) { display: none; }*/ }
        .header__nav .gnav li a {
          padding: 22px; }
        .header__nav .gnav li a:hover, .header__nav .gnav li.active {
          background: var(--bg-c);
          color: var(--white); }
    .header__nav .gnav__sub {
      display: none; } }
/* ---------- TITLE ---------- */
.ttl {
  text-align: center;
  margin-bottom: min(6vw, 62px); }
  .ttl img {
    display: block;
    margin-left: auto;
    margin-right: auto; }
    .ttl img::after {
      content: '';
      display: block;
      clear: both; }
  .ttl > span {
    display: inline-block;
    background-color: var(--black);
    color: var(--white);
    font-size: min(3vw, 1.6rem);
    line-height: 1;
    letter-spacing: 0.4rem;
    padding: 6px 32px 8px;
    margin-top: min(3vw, 31px); }

.ttl__squea {
  font-weight: var(--fm);
  letter-spacing: 0.2rem;
  margin-bottom: min(3.75vw, 32px); }
  .ttl__squea::before {
    content: '';
    display: inline-block;
    background-color: var(--black);
    width: 15px;
    height: 15px;
    margin-top: -1px;
    margin-right: 6px;
    vertical-align: middle; }
  .ttl__squea.cl--kicho {
    color: #8874ff; }
    .ttl__squea.cl--kicho::before {
      background-color: #8874ff; }
  .ttl__squea.cl--special {
    color: #44aeea; }
    .ttl__squea.cl--special::before {
      background-color: #44aeea; }
  .ttl__squea.cl--session {
    color: #008cd6; }
    .ttl__squea.cl--session::before {
      background-color: #008cd6; }
  .ttl__squea.cl--award {
    color: #8FC31F; }
    .ttl__squea.cl--award::before {
      background-color: #8FC31F; }

.ttl--br {
  font-size: min(5vw, 3.4rem);
  font-weight: var(--fm);
  text-align: center;
  border-bottom: 1px solid var(--black);
  padding-bottom: 18px;
  margin-bottom: 46px; }

.ttl--brc {
  display: flex;
  gap: 27px;
  align-items: center;
  margin-bottom: min(6vw, 60px); }
  .ttl--brc span {
    font-size: 1.6rem;
    font-weight: var(--fl);
    letter-spacing: 0.2rem;
    white-space: nowrap;
    color: #595757;
    text-align: center; }
  .ttl--brc::before, .ttl--brc::after {
    content: '';
    display: block;
    height: 1px;
    background-color: #595757;
    width: 100%; }

.notes {
  font-size: min(3.2vw, 1.4rem); }

.notes::before {
  content: '※';
  display: inline-block;
  margin-left: 2rem;
  text-indent: -2rem; }

html[lang="en"] .notes::before {
  content: '*';
  margin-left: 1rem;
  text-indent: -1rem; }

.txt--right {
  text-align: right !important; }

.txt--left {
  text-align: left !important; }

.txt--center {
  text-align: center !important; }

.space {
  display: inline-block;
  width: 10px; }

.slash, .ken {
  display: inline-block;
  margin: 0 4px; }

.txt__link {
  color: var(--blue);
  text-decoration: underline; }
  .txt__link:hover {
    text-decoration: none; }

/* ---------- BUTTON ---------- */
a.btn {
  display: block;
  text-align: center;
  color: var(--white);
  font-size: min(4.5vw, 2.3rem);
  font-weight: var(--fr);
  letter-spacing: 0.2rem;
  position: relative;
  z-index: 1; }
  a.btn span {
    display: block;
    background-color: var(--black);
    border: 1px solid #fff;
    border-radius: 32px;
    padding: 14px;
    /*margin: -5px 4px 4px -4px;*/
    width: 100%;
    height: 100%;
    position: relative;
    transition: all linear 0.2s; }
  a.btn small {
    display: inline-block;
    font-size: 70%;
    margin-left: 18px; }
  a.btn.green span {
    background-color: var(--green); }
  a.btn.blue span {
    background-color: var(--blue); }
  a.btn.purple span {
    background-color: var(--purple); }
  a.btn:hover span, a.btn:focus-within span {
    background-color: #000; }
  a.btn.link--none {
    pointer-events: none; }
    a.btn.link--none::before {
      content: '終了しました';
      display: inline-block;
      font-size: 1.2rem;
      font-weight: var(--fb);
      text-align: center;
      background-color: rgba(0, 0, 0, 0.6);
      position: absolute;
      transform: translateY(60%) translateX(-50%);
      z-index: 100;
      margin: auto;
      padding: 4px 16px 6px; }
    a.btn.link--none span {
      background-color: #ccc;
      margin: 0; }
    a.btn.link--none::after {
      border-color: #ccc; }
  a.btn[href=""] {
    pointer-events: none; }
    a.btn[href=""] span {
      background-color: #ccc; }

.page a.btn::after {
  display: none; }

/* ---------- LIST ---------- */
ol, ul {
  font-size: min(3.2vw, 1.6rem);
  line-height: 1.5; }

ol {
  counter-reset: ol_li; }
  ol li {
    padding-left: 2rem; }
  ol li:not(:last-child) {
    margin-bottom: 1%; }
  ol > li::before {
    counter-increment: ol_li;
    content: counter(ol_li);
    margin-left: -2rem; }

ol.num-list__kakko > li::before {
  content: "(" counter(ol_li) ")"; }

ol.num-list__dot > li::before {
  content: counter(ol_li) ". "; }
ol.num-list__dot > li.no-num::before {
  content: '〇. '; }
ol.num-list__dot.later6 {
  counter-reset: ol_li 5; }

ol.num-list__notes > li::before {
  content: "※" counter(ol_li); }

html[lang="en"] ol.num-list__notes > li::before {
  content: "*" counter(ol_li); }

#startup_program ol.num-list__dot {
  padding: 16px; }
#startup_program .startup_program02 ol.num-list__dot {
  column-count: 2;
  width: fit-content;
  column-gap: 2rem; }

.box {
  display: flex;
  flex-wrap: wrap; }
  .box.col2 > div.startup_program01 {
    width: 42%;
    border-right: 1px solid #333; }
  .box.col2 > div.startup_program02 {
    width: 58%; }

/* ---------- PHONE ---------- */
@media (750px >= width) {
  .startup_program01 ol.num-list__dot, .startup_program02 ol.num-list__dot {
    column-count: 1; }

  .box.col2 > div.startup_program01 {
    width: 100%;
    border-right: 0; }
  .box.col2 > div.startup_program02 {
    width: 100%; } }
ul.list--circle li {
  padding-left: 2rem; }
ul.list--circle li:not(:last-child) {
  margin-bottom: 1%; }
ul.list--circle li::before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  border: 1px solid var(--black);
  border-radius: 50%;
  width: 6px;
  height: 6px;
  margin-right: 10px;
  margin-left: -1.6rem; }
ul.list--circle.green li::before {
  border: none;
  background-color: var(--green);
  width: 14px;
  height: 14px; }

ul.list--dot {
  list-style: disc;
  margin-left: 2rem; }
  ul.list--dot li:not(:last-child) {
    margin-bottom: min(1.389vw, 10px); }

.bg--gray {
  background-color: #f1f1f1; }

.pdA {
  padding: 16px; }

.mgbA {
  margin-bottom: 16px; }

.mgtA {
  margin-top: 16px; }

.timetable ul.list--circle li {
  font-weight: var(--fb); }
  .timetable ul.list--circle li span {
    font-weight: normal; }

.timetable .timetable__content p.notes {
  font-size: min(3vw, 1.5rem);
  color: #666; }

/* ----- KEY VISUAL ----- */
.kv__logo, .kv__copy, .kv_info, .kv__schedule, .kv__btns {
  animation: fadeUP 0.35s forwards;
  animation-delay: 1s;
  opacity: 0; }

.kv {
  position: relative;
  padding: min(21.2vw, 159px) min(5vw, 61px) min(8.372vw, 57px); }
  .kv::after {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -1; }
  .kv > * {
    position: relative;
    z-index: 1; }
  .kv img {
    width: 100%;
    height: auto; }
  .kv .kv__logo {
    width: min(70.667vw, 560px);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: min(3.721vw, 44px); }
    .kv .kv__logo .kv__logo-img {
      margin-top: 12px; }
    .kv .kv__logo .kv__free {
      background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 50%, white 80%, rgba(255, 255, 255, 0) 1%, white 100%);
      border-radius: 50%;
      color: var(--white);
      text-align: center;
      width: min(21.333vw, 138px);
      height: min(21.333vw, 138px);
      position: absolute;
      top: -12px; }
      .kv .kv__logo .kv__free strong, .kv .kv__logo .kv__free small {
        display: block; }
      .kv .kv__logo .kv__free strong {
        font-size: min(4.8vw, 3.2rem);
        font-weight: var(--fl);
        padding-top: min(1.8vw, 14px);
        margin-bottom: 6px; }
      .kv .kv__logo .kv__free small {
        font-size: min(2.133vw, 1.2rem);
        line-height: 1.3; }
        .kv .kv__logo .kv__free small::before {
          content: '※';
          margin-right: 4px; }
  .kv .kv__copy {
    width: min(80vw, 760px);
    margin: 0 auto 40px; }
  .kv dl.kv_info {
    color: #fff;
    display: grid;
    grid-template-columns: min(10vw, 74px) auto;
    column-gap: 6px;
    width: min(80vw, 589px);
    margin: auto; }
    .kv dl.kv_info dt {
      font-size: min(3.2vw, 2.2rem);
      font-weight: var(--fr);
      white-space: nowrap; }
    .kv dl.kv_info dd p {
      font-size: min(5vw, 3.1rem);
      font-weight: var(--fm);
      line-height: 1.3;
      display: inline-block; }
      .kv dl.kv_info dd p small {
        display: inline-block;
        font-size: 65%; }
    .kv dl.kv_info.kaiki {
      align-items: flex-end;
      margin-bottom: 20px; }
      .kv dl.kv_info.kaiki dt {
        padding-bottom: 6px; }
    .kv dl.kv_info.kaijo {
      align-items: flex-start;
      margin-bottom: min(4vw, 40px); }
      .kv dl.kv_info.kaijo dt {
        padding-top: 10px; }
      .kv dl.kv_info.kaijo dd {
        display: flex;
        align-items: flex-start; }
        .kv dl.kv_info.kaijo dd img {
          margin-left: auto;
          width: 21.333333vw;
          max-width: 122px;
          max-height: 91px; }
  .kv .kv__schedule {
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 30%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0.8) 70%, rgba(255, 255, 255, 0) 100%);
    padding-top: min(3.467vw, 26px);
    padding-bottom: min(2.667vw, 20px); }
    .kv .kv__schedule .kv__schedule-copy {
      max-width: 545px; }
    .kv .kv__schedule .kv__schedule-tag {
      max-width: 545px;
      margin-top: min(3vw, 14px); }
      .kv .kv__schedule .kv__schedule-tag strong {
        background-color: var(--white);
        border: 2px solid var(--black);
        color: var(--navy);
        font-size: min(3.2vw, 1.4rem);
        text-align: center;
        display: inline-block;
        padding: 6px min(6px, 24px); }
    .kv .kv__schedule .kv__schedule-icon img {
      width: min(16vw, 99px);
      height: min(16vw, 99px); }
      .kv .kv__schedule .kv__schedule-icon img:first-child {
        margin-right: min(0.6976vw, 6px); }
  .kv .kv__btns {
    display: grid;
    grid-gap: min(3.2vw, 28px);
    margin: min(5.5813vw, 43px) auto 0; }
  .kv .earth {
    display: block;
    background: url("../img/top/kv_earth.png") center center no-repeat;
    background-size: contain;
    width: min(68.667vw, 824px);
    height: min(50.583vw, 607px);
    position: absolute;
    z-index: 0; }

html[lang="en"] .kv .kv__schedule .kv__schedule-tag strong {
  text-align: left; }

/* ---------- DISPLAY ---------- */
@media (750px < width) {
  .kv {
    min-height: 930px;
    min-width: 1200px;
    background: url("../img/top/kv_filter.png") top center no-repeat;
    background-size: cover; }
    .kv::after {
      background: url("../img/top/kv_bg.jpg") center center no-repeat;
      background-size: cover; }
    .kv .kv__schedule {
      max-width: 1095px;
      margin-left: auto;
      margin-right: auto;
      padding-left: 154px;
      padding-right: 154px;
      position: relative; }
    .kv .kv__schedule-icon {
      position: absolute;
      top: 50%;
      left: calc(545px + 154px + 46px);
      transform: translateY(-50%); }
    .kv .kv__schedule-tag strong {
      width: 49%; }
      .kv .kv__schedule-tag strong:not(:last-child) {
        margin-right: 2%; }
    .kv .kv__btns {
      grid-template-columns: 1fr 1fr;
      width: var(--width); }
    .kv .kv__free {
      right: -55px; }
    .kv .earth {
      top: 270px;
      left: 70%; } }
/* ---------- PHONE ---------- */
@media (750px >= width) {
  .kv {
    background: url("../img/top/kv_filter_sp.png") top center no-repeat;
    background-size: cover;
    padding-top: 10vw;
    overflow: hidden; }
    .kv::after {
      background: url("../img/top/kv_bg_sp.jpg") center center no-repeat;
      background-size: cover; }
    .kv .kv__schedule {
      overflow: hidden; }
    .kv .kv__schedule-tag {
      width: 60%;
      float: left; }
      .kv .kv__schedule-tag strong {
        width: 100%; }
        .kv .kv__schedule-tag strong:not(:last-child) {
          margin-bottom: 2%; }
    .kv .kv__schedule-icon {
      display: flex;
      float: right;
      margin-top: 3%; }
    .kv .kv__free {
      right: -11vw;
      top: -6vw !important;
      z-index: -1; }
    .kv .earth {
      top: 20%;
      left: 50%;
      opacity: 0.5; } }
/* ----- NEWS ----- */
.news {
  overflow-x: hidden;
  padding-bottom: 5px; }
  .news .news__ttl {
    background-color: #333333;
    width: min(22.4vw, 90px);
    text-align: center;
    padding: min(3.2vw, 14px) min(3.2vw, 18px);
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
    height: 100%;
    float: left; }
  .news .news__lists {
    background-color: #F2F2F2;
    font-size: 13px;
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
    margin-left: min(22.4vw, 90px);
    margin-right: calc(50% - 50vw); }
    .news .news__lists .news__item {
      padding: min(3.2vw, 13px) min(3.2vw, 15px); }
      .news .news__lists .news__item a {
        text-decoration: underline;
        color: var(--blue02); }
        .news .news__lists .news__item a:hover {
          text-decoration: none; }

/* ---------- PHONE ---------- */
@media (750px >= width) {
  /* ----- NEWS ----- */
  .news > .inner {
    padding-left: 0;
    padding-right: 0; } }
/* ----- CONCEPT ----- */
.concept {
  padding-top: min(6.0464vw, 102px);
  padding-bottom: min(10.6976vw, 153px); }
  .concept h3 {
    margin-bottom: 35px;
    max-width: 408px;
    width: 77.867vw; }
  .concept p {
    font-size: min(4vw, 1.8rem);
    line-height: 2.7;
    margin-bottom: 35px; }
  .concept a {
    color: var(--blue02); }
  .concept ol.num-list__notes {
    font-size: 1.2rem; }

/* ---------- DISPLAY ---------- */
@media (750px < width) {
  .concept {
    background: url("../img/top/bg_concept.jpg") top center no-repeat;
    background-size: cover; }
    .concept .ttl {
      text-align: left; }
      .concept .ttl img {
        margin-bottom: 51px;
        margin-left: 0; }
    .concept ol.num-list__notes {
      width: 50%; } }
/* ---------- PHONE ---------- */
@media (750px >= width) {
  .concept {
    background: url("../img/top/bg_concept_sp.jpg") center top no-repeat;
    background-size: cover; }
    .concept .ttl > img {
      width: 27.467vw; }
    .concept h3 {
      margin-left: auto;
      margin-right: auto; }
    .concept p > span {
      display: block; }
    .concept p br {
      display: none; }

  html[lang="ja"] .concept p {
    text-align: center; } }
/* ----- SESSION ----- */
.session {
  padding-top: min(7.21vw, 96px);
  padding-bottom: min(11.628vw, 140px); }
  .session .inner {
    position: relative; }
  .session .ttl img {
    margin-bottom: min(6vw, 66px); }
  .session .session__icon {
    width: min(36vw, 135px);
    height: min(20.533vw, 77px); }
  .session h3.ttl02 {
    text-align: center;
    margin-bottom: 8px; }
    .session h3.ttl02 strong {
      font-size: min(5vw, 3.4rem);
      font-weight: var(--fm);
      letter-spacing: 0.3rem; }
    .session h3.ttl02 + p {
      font-size: min(4vw, 2.2rem);
      text-align: center; }
  .session .session__content {
    margin-top: min(11.1627vw, 66px);
    margin-bottom: min(12.093vw, 137px);
    position: relative;
    z-index: 1; }
    .session .session__content .session__ttl {
      font-size: min(3.6vw, 2.4rem);
      font-weight: var(--fm);
      letter-spacing: 0.2rem; }
      .session .session__content .session__ttl img {
        width: min(12.533vw, 128px); }
      .session .session__content .session__ttl span {
        display: block;
        position: relative;
        margin-bottom: min(3.721vw, 32px); }
        .session .session__content .session__ttl span::before, .session .session__content .session__ttl span::after {
          content: '';
          display: block;
          height: 1px;
          background-color: var(--black); }
        .session .session__content .session__ttl span::before {
          width: 100%;
          position: absolute;
          bottom: 0;
          left: 0;
          right: 0; }
        .session .session__content .session__ttl span::after {
          width: min(6vw, 53px);
          transform: rotate(45deg);
          transform-origin: bottom right;
          position: absolute;
          bottom: 0;
          right: 0; }
    .session .session__content ul {
      animation-delay: 0.3s; }
    .session .session__content figure {
      animation-delay: 0.5s; }
  .session ul.slashbox {
    position: relative;
    z-index: 1; }
    .session ul.slashbox > li {
      position: relative; }
      .session ul.slashbox > li h4 {
        font-size: min(4.12372vw, 2.4rem);
        font-weight: var(--fm);
        margin-top: min(3vw, 33px);
        margin-bottom: min(3vw, 24px); }
      .session ul.slashbox > li p {
        font-size: min(3.2vw, 1.4rem);
        line-height: 1.7;
        letter-spacing: 0.2rem; }
      .session ul.slashbox > li .scew-clip {
        position: absolute;
        width: 100%;
        height: 240px; }
      .session ul.slashbox > li:first-child .scew-clip {
        background: url("../img/top/session_01.jpg") center center no-repeat;
        background-size: cover; }
      .session ul.slashbox > li:nth-child(2) .scew-clip {
        background: url("../img/top/session_02.jpg") center center no-repeat;
        background-size: cover; }
      .session ul.slashbox > li:nth-child(3) .scew-clip {
        background: url("../img/top/session_03.jpg") center center no-repeat;
        background-size: cover; }
  .session .session__content::after, .session ul.slashbox::after {
    content: '';
    display: block;
    position: absolute;
    background: var(--bg-c);
    z-index: -1;
    opacity: 0.6; }

html[lang="en"] .session .session__icon + h3 strong,
html[lang="en"] .session .session__content .session__ttl,
html[lang="en"] .session ul.slashbox li p {
  letter-spacing: 0; }

.icon__kaijo {
  display: inline-block;
  background-color: var(--black);
  color: var(--white);
  font-size: min(3vw, 1.2rem);
  font-weight: var(--fb);
  letter-spacing: 0.3rem;
  line-height: 1;
  vertical-align: middle;
  padding: 4px 8px 6px;
  margin: -0.25% 1% 0.25%; }

.tag {
  display: inline-block;
  background-color: var(--black);
  border-radius: 4px;
  color: var(--white);
  font-size: 1.1rem;
  font-weight: var(--fb);
  line-height: 1;
  letter-spacing: 0.4rem;
  padding: 6px 16px;
  margin-bottom: 4px; }
  .tag.blue {
    background-color: var(--blue); }
  .tag.pink {
    background-color: #FF7BAC; }
  .tag.green {
    background-color: var(--green); }
  .tag.l-green {
    background-color: #8FC31F; }

html[lang="en"] .icon__kaijo, html[lang="en"] .tag {
  letter-spacing: 0; }

/* ---------- DISPLAY ---------- */
@media (750px < width) {
  .session {
    background: url("../img/top/bg_session.jpg") center top no-repeat;
    background-size: cover;
    background-attachment: fixed; }
    .session .inner {
      position: relative; }
    .session .session__icon {
      position: absolute;
      top: 0;
      left: 0; }
    .session .session__content {
      display: grid;
      grid-template-columns: 1fr 1fr;
      grid-gap: 130px; }
      .session .session__content .session__ttl {
        margin-bottom: 27px;
        line-height: 1.7; }
        .session .session__content .session__ttl span {
          padding-bottom: 14px; }
      .session .session__content ul {
        margin-bottom: 48px; }
    .session .session__content::after, .session ul.slashbox::after {
      width: calc(100% + 156px);
      height: 96px;
      bottom: -48px;
      left: -78px;
      right: 0; }
    .session .session__item {
      display: flex;
      flex-wrap: wrap; }
      .session .session__item > h3, .session .session__item ul, .session .session__item figure {
        width: 100%; }
      .session .session__item .scew-clip {
        margin-top: 46px; }
      .session .session__item figure {
        margin-top: auto; }
    .session ul.slashbox {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      grid-gap: 106px; }
      .session ul.slashbox > li {
        width: 330px; }
        .session ul.slashbox > li::after {
          content: '';
          display: block;
          padding-top: 80%; }
        .session ul.slashbox > li:first-child .scew-clip {
          clip-path: polygon(0 0, 76% 0, 100% 100%, 0 100%);
          width: 444px;
          left: 0;
          bottom: 0; }
        .session ul.slashbox > li:nth-child(2) .scew-clip {
          clip-path: polygon(0 0, 79% 0, 100% 100%, 21% 100%);
          width: 493px;
          left: -80px;
          bottom: 0; }
        .session ul.slashbox > li:nth-child(3) .scew-clip {
          clip-path: polygon(0 0, 100% 0, 100% 100%, 24% 100%);
          width: 437px;
          right: 0;
          bottom: 0; } }
/* ---------- PHONE ---------- */
@media (750px >= width) {
  .session {
    background: url("../img/top/bg_session_sp.jpg") center top no-repeat;
    background-size: cover; }
    .session .ttl img {
      width: 25.333vw; }
    .session .session__icon {
      margin: 10px auto; }
      .session .session__icon + h3 strong > span {
        display: block; }
    .session .session__content .session__ttl {
      grid-column: 1 / 2;
      line-height: 1.4;
      margin-right: 4%; }
      .session .session__content .session__ttl span {
        padding-bottom: 3%; }
    .session .session__content::after, .session ul.slashbox::after {
      width: 20%;
      height: 110%;
      top: -4%;
      right: -5%;
      background: linear-gradient(to top, #8874ff 1%, #008cd6 100%); }
    .session .session__item {
      display: grid;
      grid-template-columns: 66% auto; }
      .session .session__item figure {
        order: 2;
        grid-column: 2 / 3; }
      .session .session__item ul {
        order: 3;
        grid-column: 1 / 3;
        margin-top: 16px; }
    .session .session__item:first-child {
      margin-bottom: 26px; }
    .session ul.slashbox > li {
      padding-right: 32vw;
      margin-bottom: 10%; }
      .session ul.slashbox > li .scew-clip {
        width: 28vw;
        top: 0;
        right: 0; }
      .session ul.slashbox > li:first-child .scew-clip {
        clip-path: polygon(0 0, 100% 0%, 100% 100%, 0 78%);
        height: 255px; }
      .session ul.slashbox > li:nth-child(2) .scew-clip {
        clip-path: polygon(0 0, 100% 25%, 100% 100%, 0 80%);
        height: 228px;
        top: -20px; }
      .session ul.slashbox > li:nth-child(3) .scew-clip {
        clip-path: polygon(0 0, 100% 25%, 100% 100%, 0 100%);
        height: 180px;
        top: -20px;
        background-position: left top; } }
/* ----- SPEAKERS ----- */
.speakers {
  padding-top: min(6.047vw, 96px);
  padding-bottom: min(15.82vw, 160px); }
  .speakers .ttl > img {
    width: min(31.467vw, 308px); }
  .speakers .ttl > span {
    background: var(--bg-c); }

.speakers__wrap {
  margin-bottom: 62px; }
  .speakers__wrap:last-child {
    margin-bottom: 0; }

.speaker {
  background-color: var(--black); }
  .speaker .speaker__img {
    overflow: hidden;
    position: relative; }
    .speaker .speaker__img > img {
      width: 100%;
      height: 100%;
      vertical-align: top;
      object-fit: cover; }
  .speaker dl.speaker__profile {
    color: var(--white);
    padding: min(4.375vw, 22px); }
    .speaker dl.speaker__profile dt {
      font-size: min(3.71133vw, 1.9rem);
      font-weight: var(--fm);
      letter-spacing: 0.2rem;
      margin-bottom: 6px; }
    .speaker dl.speaker__profile dd {
      line-height: 1.5; }

.speaker__wrap-flex {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  column-gap: 4%; }
  .speaker__wrap-flex .speakers__wrap {
    grid-gap: 30px;
    background-color: rgba(68, 174, 234, 0.5);
    padding: 10px; }

html[lang="en"] .speaker dl.speaker__profile dt {
  letter-spacing: 0; }

/* ---------- DISPLAY ---------- */
@media (750px < width) {
  .speakers {
    background: url("../img/top/bg_speakers.jpg") top center no-repeat;
    background-size: cover;
    background-attachment: fixed; }

  .speakers__wrap {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-gap: 51px; }

  .speakers .inner {
    padding-inline: 44px; }

  .speaker {
    width: 240px; }
    .speaker.show {
      cursor: pointer; }
      .speaker.show .speaker__img::before {
        content: '';
        display: block;
        background-color: transparent;
        width: 100%;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        transition: all linear 0.1s;
        transform: translateY(100px); }
      .speaker.show:hover .speaker__img::before {
        content: '';
        width: 100%;
        padding: 20px;
        background: url(../img/speakers/profile.png) rgba(100, 192, 217, 0.8) center center no-repeat;
        background-size: 90px 12px;
        transform: translateY(0); }
    .speaker.show:focus-within .speaker__img::before {
      content: '';
      width: 100%;
      padding: 20px;
      background: url(../img/speakers/profile.png) rgba(100, 192, 217, 0.8) center center no-repeat;
      background-size: 90px 12px;
      transform: translateY(0); }
    .speaker .speaker__img {
      width: 100%;
      height: 240px; }
    .speaker dl.speaker__profile dt {
      margin-bottom: 24px; }
    .speaker dl.speaker__profile dd {
      font-size: 1.2rem; }

  .speaker__wrap-flex .speakers__wrap {
    width: 48%; }

  html[lang="ja"] .speaker dl.speaker__profile dt {
    text-align: center; }

  html[lang="en"] .speaker.show:hover .speaker__img::before {
    background: url(../en/img/speakers/profile.png) rgba(100, 192, 217, 0.8) center center no-repeat;
    background-size: 72px 12px; }
  html[lang="en"] .speaker.show:focus-within .speaker__img::before {
    background: url(../en/img/speakers/profile.png) rgba(100, 192, 217, 0.8) center center no-repeat;
    background-size: 72px 12px; } }
/* ---------- PHONE ---------- */
@media (750px >= width) {
  .speakers {
    background: url("../img/top/bg_speakers_sp.jpg") top center no-repeat;
    background-size: cover; }

  .speaker {
    display: grid;
    grid-template-columns: 140px auto;
    margin-bottom: 3%; }
    .speaker.show {
      cursor: pointer; }
      .speaker.show .speaker__img::before {
        content: '';
        display: block;
        background-color: transparent;
        width: 100%;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 12px 10px;
        background: url(../img/speakers/profile.png) rgba(100, 192, 217, 0.8) center center no-repeat;
        background-size: 90px 12px; }
    .speaker:last-child {
      margin-bottom: 0; }
    .speaker .speaker__img {
      width: 100%;
      height: 120px; }
    .speaker dl.speaker__profile dd {
      font-size: 1.1rem; }

  .speaker__wrap-flex .speakers__wrap {
    width: 100%;
    margin-bottom: 24px; }
    .speaker__wrap-flex .speakers__wrap:last-child {
      margin-bottom: 62px; }
    .speaker__wrap-flex .speakers__wrap .speaker:last-child, .speaker__wrap-flex .speakers__wrap .speaker.last {
      margin-bottom: 0; }

  html[lang="en"] .speaker.show .speaker__img::before {
    background: url(../en/img/speakers/profile.png) rgba(100, 192, 217, 0.8) center center no-repeat;
    background-size: 72px 12px; } }
.profiles {
  background-color: rgba(0, 0, 0, 0.8);
  color: #fff;
  max-width: 1200px;
  transition: all linear 0.2s;
  position: fixed;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  margin: auto; }
  .profiles ::selection {
    background-color: rgba(0, 169, 157, 0.3); }
  .profiles button.close {
    font-size: 6rem;
    font-weight: var(--fl);
    line-height: 1;
    position: absolute;
    top: -3rem;
    right: 0; }
  .profiles figure {
    float: left; }
    .profiles figure img {
      width: 100%;
      height: auto;
      vertical-align: top;
      object-fit: cover; }
  .profiles.close {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    z-index: -1; }
  .profiles.open {
    opacity: 1;
    visibility: visible;
    z-index: 100; }

.profiles__content {
  height: 100%;
  padding-right: 4%;
  overflow-y: auto; }
  .profiles__content::-webkit-scrollbar {
    width: 6px;
    height: 6px; }
  .profiles__content::-webkit-scrollbar-track {
    background-color: #ccc;
    height: 6px; }
  .profiles__content::-webkit-scrollbar-thumb {
    background: var(--bg-c);
    width: 6px;
    height: 6px;
    border-radius: 3px; }
  .profiles__content p {
    color: #9FA0A0;
    font-size: min(3vw, 1.5rem);
    line-height: 2; }
    .profiles__content p:not(:last-child) {
      margin-bottom: min(4vw, 48px); }

dl.profiles__history {
  color: #9FA0A0;
  font-size: min(3vw, 1.5rem);
  line-height: 1.7; }
  dl.profiles__history div {
    display: flex;
    column-gap: 16px;
    border-bottom: 1px solid #333;
    padding-bottom: 6px;
    margin-bottom: 6px; }
  dl.profiles__history dt {
    font-weight: normal;
    white-space: nowrap; }

.profiles__header {
  margin-bottom: min(4vw, 46px); }
  .profiles__header small {
    display: block;
    font-size: min(3vw, 1.6rem);
    font-weight: var(--fl);
    line-height: 1.7; }
  .profiles__header strong {
    display: block;
    font-size: min(5vw, 3.2rem);
    margin-top: min(3vw, 40px);
    margin-bottom: min(3vw, 16px); }
  .profiles__header a {
    color: #64C0D9;
    font-size: min(3vw, 1.7rem); }

/* ---------- DISPLAY ---------- */
@media (750px < width) {
  .profiles {
    padding: min(4vw, 70px) min(5vw, 100px);
    max-width: 1200px;
    max-height: 600px;
    width: 94%;
    height: 94%; }
    .profiles figure {
      width: 280px;
      height: 280px; }

  .profiles__content {
    margin-left: calc(280px + 75px); }

  dl.profiles__history dt {
    width: 20%; }
  dl.profiles__history dd {
    width: calc(80% - 16px);
    margin-left: auto; } }
/* ---------- PHONE ---------- */
@media (750px >= width) {
  .profiles {
    padding: 60px 16px 16px;
    width: 96%;
    height: 98%; }
    .profiles figure {
      width: 100px;
      height: 100px;
      margin-right: 6%; }
    .profiles button.close {
      font-size: 5rem;
      top: 0; }
    .profiles dl.profiles__history div {
      flex-wrap: wrap; }
    .profiles dl.profiles__history div:not(:last-child) {
      border-bottom: 1px solid #333; }
    .profiles dl.profiles__history dt, .profiles dl.profiles__history dd {
      width: 100%; } }
/* ----- PROGRAM ----- */
.program {
  padding-top: min(6.047vw, 96px);
  padding-bottom: min(6.047vw, 136px); }
  .program .ttl > img {
    width: min(29.6vw, 290px); }

.program__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: min(1vw, 40px); }
  .program__nav a {
    display: block;
    background: var(--bg-c);
    text-align: center;
    width: 100%;
    height: 100%;
    padding: min(2vw, 10px); }
    .program__nav a::after {
      content: '';
      display: inline-block;
      width: min(4.8vw, 34px);
      height: min(4.8vw, 34px);
      background: url("../img/common/icon_circle-arrow.png") center center no-repeat;
      background-size: contain;
      margin-left: min(2.4vw, 24px); }
    .program__nav a img {
      width: min(9.067vw, 81px); }
    .program__nav a::after, .program__nav a img {
      vertical-align: middle; }
    .program__nav a:hover {
      background: var(--bg-c02); }

.program__timetable {
  border: 1px solid #3E3A39; }

.program__timetable__ttl {
  background-color: #3E3A39;
  color: var(--white);
  font-size: min(5vw, 2rem);
  font-weight: var(--fm);
  padding: min(2.7777vw, 13px) min(3.3333vw, 33px); }
  .program__timetable__ttl img {
    margin-right: min(6.6666vw, 36px);
    width: min(16vw, 81px); }
  .program__timetable__ttl small {
    font-size: min(3.33333vw, 1.5rem); }
  .program__timetable__ttl span {
    display: inline-block; }
  .program__timetable__ttl img, .program__timetable__ttl span {
    vertical-align: middle; }

.timetable {
  min-width: 100%;
  display: grid;
  grid-template-columns: min(30.5vw, 140px) auto; }
  .timetable::-webkit-scrollbar {
    width: 6px;
    height: 6px; }
  .timetable::-webkit-scrollbar-track {
    background-color: white;
    height: 6px; }
  .timetable::-webkit-scrollbar-thumb {
    background-color: var(--green);
    width: 6px;
    height: 6px; }
  .timetable .timetable__head, .timetable .timetable__time, .timetable .timetable__content {
    padding: min(4.4444vw, 22px) min(3.3333vw, 18px); }
  .timetable .timetable__head:first-child, .timetable .timetable__time {
    position: sticky;
    left: 0;
    z-index: 1; }
  .timetable .timetable__head {
    background-color: #9FA0A0;
    color: var(--white);
    font-weight: var(--fb);
    border-right: 1px dashed #3E3A39; }
  .timetable .timetable__time {
    background-color: var(--white);
    border-right: 1px dashed #3E3A39;
    color: var(--blue02);
    font-size: min(3.8889vw, 1.6rem);
    font-weight: var(--fb);
    border-bottom: 1px solid #9FA0A0; }
  .timetable .timetable__content {
    border-right: 1px dashed #3E3A39;
    border-bottom: 1px solid #9FA0A0; }
    .timetable .timetable__content h4 {
      font-size: min(3.8889vw, 1.8rem);
      font-weight: var(--fb);
      line-height: 1.5; }
    .timetable .timetable__content p {
      font-size: min(3.8889vw, 1.7rem);
      font-weight: var(--fl); }
      .timetable .timetable__content p strong, .timetable .timetable__content p span {
        display: inline-block; }
    .timetable .timetable__content.kyukei {
      background-color: #A0E3DA;
      text-align: center;
      font-size: min(3.5vw, 1.6rem); }
  .timetable .last {
    border-right: none; }

.timetable.col2 {
  grid-template-columns: min(30.5vw, 140px) min(50vw, 530px) min(50vw, 530px); }

.program__timetable__place {
  background-color: #9FA0A0;
  color: #fff;
  font-size: min(4vw, 1.6rem);
  font-weight: var(--fb);
  text-align: center;
  padding: 16px; }

html[lang="ja"] .timetable .timetable__content p strong {
  margin-left: 16px; }
  html[lang="ja"] .timetable .timetable__content p strong::after {
    content: '氏';
    font-size: 80%;
    margin-left: 6px; }

html[lang="ja"] .timetable .timetable__content p.si-none strong::after {
  display: none; }

html[lang="en"] .timetable .timetable__content h4 {
  margin-bottom: 6px; }
html[lang="en"] .timetable .timetable__content ul li > p > strong {
  margin-top: 0; }
html[lang="en"] .timetable .timetable__content p strong, html[lang="en"] .timetable .timetable__content p small {
  display: block; }
html[lang="en"] .timetable .timetable__content p strong:not(:first-child) {
  margin-top: 10px; }
html[lang="en"] .timetable .timetable__content p:not(:last-child) {
  margin-bottom: 8px; }

@media (750px >= width) {
  .timetable {
    overflow-x: scroll; }
    .timetable .timetable__content {
      white-space: nowrap; }
      .timetable .timetable__content p strong {
        display: block;
        margin-left: 0 !important; } }
/* ----- STARTUPS ----- */
.startups {
  background: linear-gradient(to right, rgba(136, 116, 255, 0.6) 0%, rgba(0, 140, 214, 0.6) 100%);
  padding-top: min(5.5813vw, 96px);
  padding-bottom: min(15vw, 105px); }
  .startups .ttl > img {
    width: min(31.467vw, 308px); }

.startups__banner {
  display: grid;
  margin-bottom: 74px; }
  .startups__banner:last-child {
    margin-bottom: 0; }
  .startups__banner li {
    background-color: var(--white);
    font-weight: var(--fm);
    transition: all linear 0.1s; }
    .startups__banner li a, .startups__banner li > span {
      display: block;
      color: #3E3A39;
      width: 100%;
      height: 100%;
      padding: min(3vw, 28px); }
    .startups__banner li figure {
      margin-bottom: min(2.5vw, 23px); }
    .startups__banner li h4 {
      font-size: min(3.125vw, 2rem); }
    .startups__banner li p {
      font-size: min(2.34375vw, 1.6rem); }
    .startups__banner li:hover, .startups__banner li:focus-within {
      transform: scale(104%); }

/* ---------- DISPLAY ---------- */
@media (750px < width) {
  .startups__banner {
    grid-template-columns: 388px 388px 388px; }
    .startups__banner li {
      margin-right: 3%;
      margin-bottom: 3%; }
      .startups__banner li:nth-child(3n) {
        margin-right: 0; }
      .startups__banner li a figure img {
        width: 100%;
        height: auto; } }
/* ---------- PHONE ---------- */
@media (750px >= width) {
  .startups__banner {
    grid-template-columns: 49% 49%; }
    .startups__banner li {
      margin-right: 2%;
      margin-bottom: 2%; }
      .startups__banner li:nth-child(2n) {
        margin-right: 0; } }
/* ----- ACCESS ----- */
.access {
  padding-top: min(8.838vw, 96px);
  padding-bottom: min(9.768vw, 87px); }
  .access .ttl > img {
    width: min(30.8vw, 231px); }

.root__box .root__content .place-name strong {
  font-size: min(5.86666vw, 4rem);
  font-weight: var(--fl);
  display: block; }
.root__box .root__content .place-name a {
  font-size: min(3.2vw, 1.7rem); }
.root__box .root__content address {
  font-size: min(3.2vw, 1.7rem);
  margin-top: min(2.5vw, 20px);
  margin-bottom: min(5vw, 72px); }
.root__box .root__content ul {
  margin-bottom: min(3.5vw, 40px); }
  .root__box .root__content ul li {
    margin-bottom: min(2.5vw, 32px); }
    .root__box .root__content ul li:last-child {
      margin-bottom: 0; }

#gmap {
  width: 100%;
  height: min(89.333vw, 475px);
  margin-top: min(5vw, 66px); }
  #gmap iframe {
    width: 100%;
    height: 100%; }

/* ---------- DISPLAY ---------- */
@media (750px < width) {
  .root__box {
    display: grid;
    grid-gap: 64px;
    grid-template-columns: 696px auto;
    align-items: flex-end; } }
@media (750px >= width) {
  .place-name {
    line-height: 1.3; }

  .root__map {
    margin-bottom: 10px; } }
/* ----- SPONSORS & ORGANIZER ----- */
.sponsors {
  background: linear-gradient(to bottom, rgba(100, 192, 217, 0.5) 0%, white 20%);
  box-shadow: inset 0px 5px 5px -3px rgba(0, 0, 0, 0.3);
  padding-top: min(8vw, 80px);
  padding-bottom: min(9vw, 107px); }
  .sponsors .ttl > img {
    width: min(32.533vw, 319px); }

.organizer {
  box-shadow: inset 0px 5px 5px -3px rgba(0, 0, 0, 0.3);
  padding-top: min(8vw, 87px);
  padding-bottom: min(12vw, 77px); }
  .organizer .ttl:first-child > img {
    width: min(34.133vw, 256px); }
  .organizer .banners + .ttl > img {
    width: min(39.2vw, 294px); }

.banners {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: min(15vw, 117px); }
  .banners:last-child {
    margin-bottom: 0; }
  .banners li {
    border: 1px solid #C9CACA;
    overflow: hidden; }
    .banners li a {
      display: block;
      width: 100%;
      height: 100%;
      position: relative;
      transition: all linear 0.2s; }
      .banners li a:hover, .banners li a:focus-within {
        opacity: 0.7; }
      .banners li a img {
        max-width: 257px;
        max-height: 98px;
        width: 96%;
        height: auto;
        display: block;
        position: absolute;
        top: 50%;
        left: 0;
        right: 0;
        margin: auto;
        transform: translateY(-50%); }
    .banners li a:has(span) span {
      display: block;
      text-align: center;
      position: absolute;
      top: 50%;
      left: 0;
      right: 0;
      margin: auto;
      transform: translateY(-50%); }
    .banners li.no-links a {
      pointer-events: none; }
      .banners li.no-links a:hover {
        opacity: 1; }

#sponsors .banners li {
  border: none; }

#sponsors .banners li a img {
  max-width: 336px;
  max-height: 135px;
  width: 100%; }

/* ---------- DISPLAY ---------- */
@media (750px < width) {
  .banners {
    justify-content: center;
    margin-left: 40px;
    margin-right: 40px; }
    .banners li {
      height: 98px; }
    .banners.col2 li {
      width: 48%;
      height: 135px;
      margin-bottom: 4%; }
      .banners.col2 li:not(:nth-child(2n)) {
        margin-right: 4%; }
      .banners.col2 li:last-child, .banners.col2 li:nth-last-child(2) {
        margin-bottom: 0; }
    .banners.col3 li {
      width: 30%;
      height: 135px;
      margin-bottom: 2%; }
      .banners.col3 li:not(:nth-child(3n)) {
        margin-right: 6%; }
      .banners.col3 li:last-child, .banners.col3 li:nth-last-child(2), .banners.col3 li:nth-last-child(3) {
        margin-bottom: 0; }
    .banners.col4 li {
      width: 23%;
      margin-bottm: 2.6%; }
      .banners.col4 li:not(:nth-child(4n)) {
        margin-right: 2.6%; }
      .banners.col4 li:last-child, .banners.col4 li:nth-last-child(2), .banners.col4 li:nth-last-child(3), .banners.col4 li:nth-last-child(4) {
        margin-bottom: 0; }
    .banners.col5 li {
      width: 18%; }
      .banners.col5 li:not(:nth-child(5n)) {
        margin-right: 2.2%;
        margin-bottom: 2.2%; } }
/* ---------- PHONE ---------- */
@media (750px >= width) {
  .banners li {
    height: 98px; }
  .banners.col2 li {
    width: 48%;
    margin-bottom: 4%; }
    .banners.col2 li:not(:nth-child(2n)) {
      margin-right: 4%; }
    .banners.col2 li:last-child, .banners.col2 li:nth-last-child(2) {
      margin-bottom: 0; }
  .banners.col3 li {
    width: 48%;
    margin-bottom: 4%; }
    .banners.col3 li:not(:nth-child(2n)) {
      margin-right: 4%; }
    .banners.col3 li:last-child, .banners.col3 li:nth-last-child(2) {
      margin-bottom: 0; }
  .banners.col4 li, .banners.col5 li {
    width: 32%;
    margin-bottom: 2%; }
    .banners.col4 li:not(:nth-child(3n)), .banners.col5 li:not(:nth-child(3n)) {
      margin-right: 2%; }
    .banners.col4 li:last-child, .banners.col4 li:nth-last-child(2), .banners.col4 li:nth-last-child(3), .banners.col5 li:last-child, .banners.col5 li:nth-last-child(2), .banners.col5 li:nth-last-child(3) {
      margin-bottom: 0; }

  .organizer .banners.col4 li {
    width: 48%;
    margin-bottom: 4%; }
    .organizer .banners.col4 li:nth-child(2n) {
      margin-right: 0; }
    .organizer .banners.col4 li:not(:nth-child(2n)) {
      margin-right: 4%; }
    .organizer .banners.col4 li:last-child, .organizer .banners.col4 li:nth-last-child(2) {
      margin-bottom: 4%; } }
/* ---------- PHONE ---------- */
@media (480px >= width) {
  .banners.col3 li, .banners.col4 li, .banners.col5 li {
    width: 48%;
    margin-bottom: 4%; }
    .banners.col3 li:not(:nth-child(3n)), .banners.col4 li:not(:nth-child(3n)), .banners.col5 li:not(:nth-child(3n)) {
      margin-right: auto; }
    .banners.col3 li:not(:nth-child(2n)), .banners.col4 li:not(:nth-child(2n)), .banners.col5 li:not(:nth-child(2n)) {
      margin-right: 4%; }
    .banners.col3 li:nth-last-child(3), .banners.col4 li:nth-last-child(3), .banners.col5 li:nth-last-child(3) {
      margin-bottom: 4%; } }
/* ----- 関連情報 ----- */
.kanren {
  background-color: #f1f1f1;
  padding: 40px 20px; }
  .kanren .inner {
    background-color: #fff;
    border: 1px solid #8874ff;
    color: #333;
    padding: 24px; }
  .kanren .ttl {
    font-size: 2rem;
    font-weight: bold;
    color: #8874ff;
    text-align: left;
    margin-bottom: 16px;
    border-left: 5px solid #8874ff;
    padding: 6px 6px 6px 12px; }

/* ----- FOOTER ----- */
footer {
  background-color: #3E3A39;
  color: var(--white);
  padding-top: min(8vw, 60px); }
  footer > .inner > * {
    max-width: 668px;
    margin-left: auto;
    margin-right: auto; }
  footer ul.footer_btns {
    font-size: min(5vw, 1.6rem);
    font-weight: var(--fr);
    display: flex;
    gap: 20px;
    justify-content: center;
    margin-bottom: 30px; }
    footer ul.footer_btns li a {
      display: block;
      border: 1px solid var(--white);
      padding: 10px 60px;
      transition: all linear 0.1s; }
      footer ul.footer_btns li a:hover, footer ul.footer_btns li a.active, footer ul.footer_btns li a:focus-within {
        background-color: var(--blue02);
        color: var(--white); }
  footer p {
    font-weight: var(--fl);
    text-align: center; }
  footer .footer__contact {
    border-top: 1px solid var(--white);
    padding-top: 17px;
    margin-top: 42px; }
    footer .footer__contact p span {
      font-size: 1.2rem; }
  footer .copyright {
    display: block;
    background-color: #251E1C;
    font-size: min(3vw, 1.5rem);
    font-weight: var(--fl);
    text-align: center;
    padding: 40px 0;
    width: 100%;
    margin-top: 84px; }

@media (750px < width) {
  .footer__contact p span {
    margin-right: 12px; }

  .copyright {
    min-width: var(--width); } }
a.btn--contact {
  display: inline-block;
  font-size: 1.2rem;
  font-weight: var(--fm);
  color: var(--black);
  background-color: #9FA0A0;
  border-radius: 4px;
  padding: 5px 48px;
  position: relative; }
  a.btn--contact::after {
    display: inline-block;
    content: '';
    width: 10px;
    height: 10px;
    border-top: 2px solid var(--black);
    border-right: 2px solid var(--black);
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    right: 30px;
    top: 50%;
    transition: all linear 0.1s; }
  a.btn--contact:hover, a.btn--contact:focus-within {
    background-color: var(--blue02); }
    a.btn--contact:hover::after, a.btn--contact:focus-within::after {
      right: 26px; }

@media (750px >= width) {
  a.btn--contact {
    width: 100%; } }
p.cs {
  font-size: 2rem;
  text-align: center;
  margin: 24px 0;
  background-color: rgba(255, 255, 255, 0.8); }
