
:root {
    --s-color-3ea4b6cb: linear-gradient(90deg, #0042ffff 38%, #ff0004ff 84%);
    --s-color-a1ae86bf: linear-gradient(90deg, #0042ffff 38%, #ff0004ff 84%);
    --s-font-79ad7eaa: 'Open Sans','Noto Sans JP';
    --s-font-4e99b210: Lato;
    --s-font-8aba3842: Roboto;
    --s-font-a4876688: 'ソフトゴシック M';
    --s-font-10b8b3e2: 'ソフトゴシック DB';
    --s-font-318a585e: 'Noto Sans JP';
}
:root {
    --rebranding-loading-bg: #e5e5e5;
    --rebranding-loading-bar: #222
}
@font-face {
    font-family: grandam;
    font-style: normal;
    font-weight: 400;
    src: url(https://storage.googleapis.com/studio-front/fonts/grandam.ttf) format("truetype")
}
@font-face {
    font-family: Material Icons;
    font-style: normal;
    font-weight: 400;
    src: url(https://storage.googleapis.com/production-os-assets/assets/material-icons/1629704621943/MaterialIcons-Regular.eot);
    src: local("Material Icons"), local("MaterialIcons-Regular"), url(https://storage.googleapis.com/production-os-assets/assets/material-icons/1629704621943/MaterialIcons-Regular.woff2) format("woff2"), url(https://storage.googleapis.com/production-os-assets/assets/material-icons/1629704621943/MaterialIcons-Regular.woff) format("woff"), url(https://storage.googleapis.com/production-os-assets/assets/material-icons/1629704621943/MaterialIcons-Regular.ttf) format("truetype")
}
a, abbr, address, article, aside, audio, b, blockquote, body, button, canvas, caption, cite, code, dd, del, details, dfn, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, input, ins, kbd, label, legend, li, loop-box, main, mark, menu, nav, object, ol, p, pre, q, samp, section, select, small, span, strong, sub, summary, sup, table, tbody, td, textarea, tfoot, th, thead, time, tr, ul, var, video {
    border: 0;
    font-family: sans-serif;
    line-height: 1;
    list-style: none;
    margin: 0;
    padding: 0;
    text-decoration: none;
    -webkit-font-smoothing: antialiased;
    -webkit-backface-visibility: hidden;
    box-sizing: border-box;
    color: #333;
    transition: .3s cubic-bezier(.4, .4, 0, 1);
    word-spacing: 1px
}
a:focus:not(:focus-visible), button:focus:not(:focus-visible), summary:focus:not(:focus-visible) {
    outline: none
}
nav ul {
    list-style: none
}
a, button {
    background: transparent;
    font-size: 100%;
    margin: 0;
    padding: 0;
    vertical-align: baseline
}
.sd {
    flex-wrap: nowrap;
    max-width: 100%;
    pointer-events: all;
    z-index: 0;
    -webkit-overflow-scrolling: touch;
    align-content: center;
    align-items: center;
    display: flex;
    flex: none;
    flex-direction: column;
    position: relative
}
/* ヘッダー */
.header{
    align-content: center;
    align-items: center;
    background: rgba(0, 0, 0, 0.15);
    bottom: auto;
    flex: none;
    flex-direction: row;
    flex-wrap: nowrap;
    height: auto;
    justify-content: space-between;
    left: 0px;
    margin: 0 0 0 0;
    overflow-x: visible;
    overflow-y: visible;
    padding: 15px 0px 15px 26px;
    position: fixed;
    right: 0px;
    top: 0px;
    width: auto;
    max-width: 100%;
}

.header img {
    flex: none;
    height: auto;
    margin: 0px 0px 0px 80px;
    padding: 0px 0px 0px 0px;
    width: 240px;
    max-width: calc(100% - 80px);
}
.header img:before {
    background-size: 100%;
}

.header > div{
    align-content: center;
    align-items: center;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0px;
    justify-content: center;
    padding: 0px;
    width: 100%;
    --gap-h-5dab3609-1bf7-49f1-ba57-bf7f53505419: 0px;
    --gap-v-5dab3609-1bf7-49f1-ba57-bf7f53505419: 0px;
    --gap-uuid: 5dab3609-1bf7-49f1-ba57-bf7f53505419;
    max-width: 100%;
    width: 977px;
}
.header > div a {
    color: #ffffff;
    font-family: var(--s-font-318a585e);
    font-size: 16px;
    font-weight: 500;
    height: auto;
    line-height: 1.4;
    margin: 0px 20px 0px 0px;
    text-align: center;
    width: auto;
    max-width: calc(100% - 20px);
    justify-content: center;
}
.header > div p{
    color: #ffffff;
    font-family: var(--s-font-79ad7eaa);
    font-size: 20px;
    font-weight: 900;
    line-height: 1.4;
    text-align: center;
    height: 80px;
    justify-content: center;
    padding: 0px;
    width: 200px;
    max-width: 100%;
    background: #ff0094;
}
.header button{
    color: #333;
    display: none;
    font-size: 24px;
}

@media screen and (max-width: 1140px) {
    .header{
        margin: 0px 0px 0px 0px;
        padding: 0px 18px 0px 25px;
        max-width: 100%;
    }
    .header img {
        margin: 0px 0px 0px 10px;
        padding: 0px 0px 0px 0px;
        max-width: calc(100% - 10px);
    }
    .header > div{
        display: none;
    }
    .header button{
        display: flex;
        color: #ffffff;
        font-size: 28px;
        margin: 0px 40px 0px 0px;
        padding: 0px 0px 0px 0px;
        max-width: calc(100% - 40px);
    }
}
@media screen and (max-width: 840px) {
    .header img {
        margin: 0px 0px 0px 40px;
        max-width: calc(100% - 40px);
    }
}
@media screen and (max-width: 540px) {
    .header img {
        height: auto;
        margin: 0px 0px 0px 0px;
        width: 168px;
        max-width: 100%;
    }
    .header button{
        margin: 0px 10px 0px 0px;
        max-width: calc(100% - 10px);
    }
}

/* ヘッダー */

/* fv */
#award{
    width: 100%;
}
.fv{
  color: #fff;
  background-image: url("https://storage.googleapis.com/studio-design-asset-files/projects/rROn13EkWA/s-1600x1066_dc3d15d7-b4a1-470f-b32c-f136cc70d4cc.webp");
  align-content: flex-start;
  height: 1019px;
  width: 100%;
  max-width: 100%;
  background-position: 50%;
  background-size: cover;
}

.fv__left{
  background: rgba(0,0,0,0.0);
  margin: 185px 0px 0px 100px;
}

.fv__credit{
  color: #a48787;
  font-family: var(--s-font-10b8b3e2);
  font-size: 20px;
  font-weight: 900;
  line-height: 1.2;
  margin: 0px 0px 18px 0px;
  text-align: left;
  text-shadow: none;
  max-width: 100%;
}

.fv__lead{
  color: #deff46;
  font-family: var(--s-font-10b8b3e2);
  font-size: 20px;
  font-weight: 900;
  line-height: 1.2;
  margin: 0px 0px 18px 0px;
  text-align: left;
  text-shadow: none;
  max-width: 100%;
}

.fv__title{
  letter-spacing: .02em;
  border-bottom: 5px solid #fff;
  color: #fff;
  font-family: var(--s-font-318a585e);
  font-size: 48px;
  font-weight: 900;
  line-height: 1.3;
  padding: 0px 0px 15px 0px;
  text-align: left;
  text-shadow: 0px 0px 3px rgba(0,0,0,0.5);
  width: 729px;
  max-width: 100%;
}

.fv__sub{
  max-width: 100%;
}

.fv__subLabel{
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.3;
  margin: 27px 0px 0px 0px;
  text-align: left;
  text-shadow: none;
}

.fv__year{
  letter-spacing: .04em;
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 72px;
  font-weight: 700;
  line-height: 1.3;
  text-align: left;
  text-shadow: none;
}

.buttonList{
    display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0px 100px;
}

.fv__cta{
  text-decoration: none;
  align-content: center;
  background: #000;
  border-radius: 32px;
  box-shadow: 6px 6px 0px rgba(0,0,0,0.2);
  padding: 12px 48px;
  transition-delay: 400ms;
  transition-duration: 600ms;
  color: #FFF;
  font-family: var(--s-font-79ad7eaa);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  max-width: 100%;
}

.fv__cta:hover{
  filter: brightness(1.05);
  transform: translateY(-1px);
}


/* ===== Right badge ===== */
.fv__badge{
  position: relative;
  left: auto;
  align-content: center;
  background: #ff0094;
  border-radius: 50%;
  box-shadow: 7px 7px 7px rgba(0,0,0,0.2);
  height: 250px;
  width: 250px;
  max-width: 100%;
}

.fv__badgeInner{
    align-content: center;
border-bottom: 5px solid #ffffff;
  border-left: 5px solid #ffffff;
  border-radius: 50%;
  border-right: 5px solid #ffffff;
  border-top: 5px solid #ffffff;
  height: 220px;
  width: 220px;
  max-width: 100%;
  margin: 0 auto;
}

.fv__badgeTop{
  margin: 0;
  color: #fff;
  font-family: var(--s-font-318a585e);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  max-width: 100%;
}

.fv__badgeMain{
  color: #fff;
  font-family: var(--s-font-318a585e);
  font-size: 24px;
  font-weight: 900;
  line-height: 1.4;
  margin: 10px 0px 0px 0px;
  text-align: center;
  max-width: 100%;
}

.fv__badgeBottom{
  color: #fff;
  font-family: var(--s-font-318a585e);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  margin: 8px 0px 0px 0px;
  text-align: center;
  max-width: 100%;
}

/* ===== Responsive ===== */
@media (max-width: 840px){
  .fv{
    height: auto;
    min-height: 720px;
  }
  .fv__inner{
    flex-direction: column;
    align-items: flex-start;
    padding: 48px 20px;
  }
  .fv__left{
    margin: 110px 0px 75px 35px;
  }
  .fv__badge{
    align-self: flex-end;
    height: 200px;
    width: 200px;
  }
  .buttonList{
    flex-direction: column;
    row-gap: 40px;
    align-items: start;
    margin: 20px 35px;
  }
  .fv__badgeInner{
    height: 180px;
    width: 180px;
  }
  .fv__badgeTop{
    font-size: 18px;
  }
  .fv__badgeMain{
    font-size: 20px;
    margin: 5px 0px 0px 0px;
    max-width: 100%;
  }
  .fv__badgeBottom{
    font-size: 12px;
  }
  .fv__credit,.fv__lead{
    font-size: 16px;
    line-height: 1.5;
  }
  .fv__title{
    font-size: 28px;
    text-align: left;
    width: 411px;
    max-width: 100%;
    justify-content: flex-start;
  }
  .fv__sub{
    align-content: center;
    align-items: center;
    justify-content: flex-start;
  }
  .fv__subLabel{
    font-size: 20px;
    height: 44px;
    margin: 10px 0px 0px 0px;
    text-align: left;
    width: 294px;
    max-width: 100%;
    justify-content: flex-start;
  }
  .fv__year{
    font-size: 40px;
    text-align: left;
    max-width: 100%;
    justify-content: flex-start;
  }
  .fv__cta{
    font-size: 18px;
  }
}

@media (max-width: 540px){
    .fv__credit,.fv__lead{
        font-size: 12px;
    }
    .fv__title{
        font-size: 20px;
        padding: 0px 0px 4px 0px;
        width: 320px;
        max-width: 100%;
    }
    .fv__subLabel{
        font-size: 14px;
        margin: 10px 10px 0px 0px;
        max-width: calc(100% - 10px);
    }
    .fv__year{
        font-size: 28px;
        padding: 0px;
    }
    .fv__cta{
        font-size: 15px;
    }
    .fv__badge{
        height: 160px;
        width: 160px;
    }
    .buttonList{
        flex-direction: column;
        row-gap: 40px;
        align-items: start;
        margin: 20px 35px;
    }
    .fv__badgeInner{
        height: 140px;
        width: 140px;
    }
    .fv__badgeTop{
        font-size: 13px;
    }
    .fv__badgeMain{
        font-size: 14px;
    }
    .fv__badgeBottom{
        font-size: 10px;
    }
}
/* fv */

/* thanks */
#about{
    padding: 48px 48px;
    width: 100%;
    margin: 0 auto;
}
.thanks-banner{
    margin: 0 auto;
  color: #fff;
  text-align: center;
  background: var(--s-color-3ea4b6cb);
  border-radius: 0px 0px 12px 12px;
  flex: none;
  padding: 48px 48px;
  width: 1096px;
  max-width: 100%;
}

.thanks-banner__title{
    letter-spacing: 0.02em;
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 40px;
  font-weight: 700;
  height: auto;
  line-height: 1.4;
  text-align: center;
  transition-delay: 200ms;
  transition-duration: 600ms;
  max-width: 100%;
}

.thanks-banner__underline{
    background: #fff;
  border-radius: 24px;
  height: 14px;
  transition-delay: 500ms;
  transition-duration: 600ms;
  width: 80px;
  max-width: 100%;
  margin: 12px auto;
}

/* 画像っぽい“横長感”を出したい場合の高さ調整 */
@media (max-width: 1140px){
    .thanks-banner__title{
        font-size: 28px;
    }
}

@media (max-width: 840px){
    .thanks-banner__title{
        font-size: 20px;
    }
    #about{
        padding: 20px;
    }
}
@media (max-width: 540px){
    .thanks-banner__title{
        font-size: 16px;
    }
    .thanks-banner{
        padding: 39px 24px;
    }
    #about{
        padding: 32px 12px 0px 12px;
    }
}
/* thanks */

/* news */
.news-strip{
  display: grid;
  grid-template-columns: 140px 1fr;
  align-content: stretch;
  align-items: stretch;
  background: #fff;
  flex: none;
  gap: 16px;
  padding: 32px 56px;
  width: 100%;
  max-width: 100%;
  align-items: center;
}

.news-strip__badge{
  background: var(--s-color-3ea4b6cb);
  border-bottom: 0px solid #070707;
  border-left: 0px solid #070707;
  border-radius: 4px;
  border-right: 0px solid #070707;
  border-top: 0px solid #070707;
  color: #FFFFFF;
  flex: none;
  font-family: var(--s-font-a4876688);
  font-size: 14px;
  font-weight: 500;
  height: auto;
  line-height: 1.4;
  padding: 16px 8px;
  text-align: center;
  width: 140px;
  max-width: 100%;
  justify-content: center;
}

.news-strip__list{
  color: #000;
  font-family: var(--s-font-a4876688);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  padding: 4px 0px;
  text-align: left;
  max-width: 100%;
}

.news-strip__item{
  display: grid;
  grid-template-columns: 25px 0px 1fr;
  align-items: start;
  column-gap: 28px;
  color: #000;
  font-family: var(--s-font-a4876688);
  font-size: 15px;
  line-height: 1.4;
  align-items: stretch;
}

.news-strip__date{
  font-feature-settings: "tnum" 1;
  text-align: right;
  color: #000;
  white-space: nowrap;
}

.news-strip__sep{
  text-align: center;
  color: #000;
  line-height: 1.4;
}

.news-strip__text{
  color: #000;
}

/* スマホ */
@media (max-width: 840px){
  .news-strip{
    padding: 32px 40px;
  }
}

@media (max-width: 540px){
  .news-strip{
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 24px 24px;
  }
  .news-strip__item{
    column-gap: 18px;
  }
  .news-strip__badge{
    margin: 0 auto;
  }
  .news-strip__text,.news-strip__date{
    font-size: 12px;
    line-height: 1.6;
  }
}
/* news */

/* hero */
#about-2{
    padding: 48px 48px;
    width: 100%;
    margin: 0 auto;
}
.hero {
  color: #ffffff;
  text-align: center;
  background: var(--s-color-3ea4b6cb);
  border-radius: 0px 0px 12px 12px;
  flex: none;
  padding: 48px 48px;
  width: 1096px;
  max-width: 100%;
  margin: 0 auto;
}

.hero-inner {
  align-content: center;
  width: 680px;
  max-width: 100%;
  margin: 0 auto;
}

.hero-title {
  color: #ffffffff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 40px;
  font-weight: 700;
  height: auto;
  line-height: 1.4;
  padding: 0px;
  text-align: center;
  transition-delay: 200ms;
  transition-duration: 600ms;
  width: auto;
  max-width: 100%;
  justify-content: center;
}

.hero-sub {
  letter-spacing: 0.04em;
  color: #fff;
  font-family: var(--s-font-318a585e);
  font-size: 36px;
  font-weight: 900;
  line-height: 1.4;
  margin: 24px 0px 0px 0px;
  text-align: center;
  transition-delay: 200ms;
  transition-duration: 600ms;
  max-width: 100%;
}

.hero-bar {
  display: block;
  background: #fff;
  border-radius: 24px;
  height: 14px;
  transition-delay: 500ms;
  transition-duration: 600ms;
  width: 80px;
  max-width: 100%;
  margin: 12px auto;
}


.hero-desc {
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  margin: 48px 0px 0px 0px;
  text-align: left;
  transition-delay: 200ms;
  transition-duration: 600ms;
  width: 100%;
  max-width: 100%;
}

@media (max-width: 840px) {
  .hero {
    border-radius: 12px;
    margin: 52px 0px 0px 0px;
    max-width: 100%;
  }

  .hero-title{
    font-size: 20px;
  }
  #about-2{
        padding: 20px;
    }
}
@media (max-width: 540px) {
    .hero{
        padding: 39px 24px;
    }
    .hero-title{
        font-size: 16px;
    }
    .hero-sub{
        font-size: 24px;
    }
    .hero-desc{
        font-size: 12px;
        text-align: justify;
        justify-content: space-between;
    }
    #about-2{
        padding: 32px 12px 0px 12px;
    }
}

/* hero */

/* youkou */
#youkou{
    padding: 48px 48px;
    width: 100%;
    margin: 0 auto;
}
.grad-panel {
  color: #fff;
  align-content: center;
  background: var(--s-color-3ea4b6cb);
  border-radius: 12px;
  margin: 0px 0px 24px 0px;
  padding: 96px 48px;
  width: 1100px;
  max-width: 100%;
  margin: 0 auto;
}

.req-head {
  text-align: center;
  margin-bottom: 54px;
}

.req-title {
  letter-spacing: 0.04em;
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  transition-delay: 200ms;
  transition-duration: 600ms;
  width: 100%;
  max-width: 100%;
}

.req-underline {
  display: block;
  background: #fff;
  border-radius: 24px;
  height: 10px;
  margin: 12px 290px 12px 290px;
  transition-delay: 500ms;
  transition-duration: 600ms;
  width: calc(100% - 580px);
  max-width: calc(100% - 580px);
}

/* ===== rows ===== */
.req-table {
  display: flex;
  align-content: center;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: center;
  margin: 57px 0px 0px 0px;
  transition-delay: 200ms;
  transition-duration: 600ms;
  width: 100%;
  max-width: 100%;
}

.req-row {
  align-content: flex-start;
  align-items: flex-start;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  margin: 0px 0px 10px 10px;
  padding: 6px 0px;
  width: calc(100% - 10px);
  max-width: calc(100% - 10px);
  display: flex;
}

.req-label {
  color: #fff;
  flex: none;
  font-family: var(--s-font-79ad7eaa);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
  width: 180px;
  max-width: 100%;
}

.req-body {
  border-left: 2px solid #fff;
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  padding: 0px 0px 0px 10px;
  text-align: left;
  max-width: 100%;
}

.req-link {
  text-decoration: none;
  font-family: var(--s-font-79ad7eaa);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  text-align: left;
  color: #fff;
}
.req-link:hover {
  border-bottom-color: rgba(255, 255, 255, 0.95);
}

.req-ul {
  padding: 0 0 0 15px;
}
.req-ul li {
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  text-align: left;
  max-width: 100%;
  list-style: disc;
}

.req-actions {
  display: grid;
  justify-content: center;
}

.req-btn {
  text-align: center;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  font-size: 20px;
  background: #011226;
  border-radius: 48px;
  box-shadow: 20px 20px 30px rgba(0,0,0,0.2);
  margin: 36px 0px 0px 0px;
  padding: 22px 0px;
  transition-delay: 0ms;
  transition-duration: 600ms;
  width: 462px;
  max-width: 100%;
}

.req-btn:hover {
  box-shadow: 0px 0px 0px rgba(0,0,0,0.2);
  transform: translate(10px, 10px);
}

/* ===== responsive ===== */
@media (max-width: 840px) {
  .grad-panel {
    padding: 96px 0px;
  }

  .req-row {
    padding: 6px 14px;
  }
  .req-label{
    flex: none;
    width: 25%;
    max-width: 25%;
  }
  #youkou{
        padding: 48px 20px;
    }
}
@media (max-width: 540px) {
.req-row{
    flex-direction: column;
    flex-wrap: nowrap;
    padding: 12px 12px 12px 12px;
}
.req-label{
    margin: 0px 0px 10px 0px;
    width: 25%;
    max-width: 25%;
}
.req-body{
    font-size: 12px;
    margin: 6px 0px 0px 0px;
    max-width: 100%;
}
.req-link{
    font-size: 12px;
    margin: 6px 0px 0px 0px;
    max-width: 100%;
}
.req-ul li{
    font-size: 12px;
}
.req-btn{
    flex: none;
    width: 240px;
    max-width: 100%;
    font-size: 15px;
}
#youkou{
    padding: 48px 10px;
}
}
/* youkou */

/* judge */
#judge{
    padding: 48px 48px;
    width: 100%;
    margin: 0 auto;
}
.judges{
    color: #fff;
  align-content: center;
  background: var(--s-color-3ea4b6cb);
  border-radius: 12px;
  padding: 96px 48px;
  width: 1100px;
  max-width: 100%;
  margin: 0 auto;
}

.judges__title{
color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  transition-delay: 200ms;
  transition-duration: 600ms;
  max-width: 100%;
}

.judges__title-bar{
    display: block;
  background: #fff;
  border-radius: 24px;
  height: 14px;
  margin: 12px auto;
  transition-delay: 500ms;
  transition-duration: 600ms;
  width: 80px;
  max-width: 100%;
}

.judges__grid{
align-content: stretch;
  align-items: stretch;
  box-shadow: none;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  transition-delay: 200ms;
  transition-duration: 600ms;
  width: 980px;
  max-width: 100%;
  display: flex;
}

.judge{
align-items: center;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: space-between;
  margin: 48px 12px;
  width: 130px;
  max-width: calc(100% - 24px);
  display: flex;
}

.judge__avatar{
  overflow: hidden;
  margin: 0 auto 18px;
  background: rgba(255,255,255,.1);
  border-radius: 50%;
  box-shadow: 3px 3px rgba(0,0,0,0.2);
  width: 85%;
  max-width: 100%;
  position: relative;
  aspect-ratio: 10/11;
}

.judge__avatar img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display:block;
}

.judge__org{
    font-size: 12px;
  line-height: 1.45;
  font-weight: 700;
  margin-bottom: 30px;
  white-space: normal;
  color: #fff;
}

.judge__role{
font-size: 11px;
line-height: 1.4;
font-weight: 700;
margin-bottom: 8px;
color: #fff;
}

.judge__name{
font-size: 16px;
line-height: 1.35;
font-weight: 900;
color: #fff;
}

/* responsive */
@media (max-width: 840px){
    .judges{
        padding: 96px 20px;
    }
    .judge{
        margin: 28px 12px;
        width: calc((100% - 24px) / 4);
    }
    #judge{
        padding: 48px 20px;
    }
}

@media (max-width: 540px){
    .judges{ padding: 44px 0px;}
    .judges__title{ font-size: 34px; margin-bottom: 32px; }
    .judge{ 
        margin: 18px 12px;
        width: calc((100% - 48px) / 2);
        justify-content: flex-start;
    }
    #judge{
        padding: 48px 10px;
    }
}
/* judge */

/* awards */
#tokuten{
    background: var(--s-color-3ea4b6cb);
    border-radius: 12px 12px 0px 0px;
    padding: 48px 179px 75px;
    width: 1105px;
    max-width: 100%;
    margin: 0 auto;
}
.awards{
  width: 100%;
}

.awards__title{
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  transition-delay: 200ms;
  transition-duration: 600ms;
  max-width: 100%;
}

.awards__underline{
 display: block;
  background: #fff;
  border-radius: 24px;
  height: 14px;
  transition-delay: 500ms;
  transition-duration: 600ms;
  width: 80px;
  max-width: 100%;
  margin: 12px auto;
}

.awards__lead{
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  margin: 0px 0px 50px 0px;
  text-align: center;
  transition-delay: 200ms;
  transition-duration: 600ms;
  max-width: 100%;
}

.awards__stack{
  display: grid;
  gap: 12px;
  width: 750px;
  max-width: 100%;
  margin: 0 auto;
}

/* Top two-tone card */
.awardCard{
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 26px rgba(0,0,0,0.18);
}

.awardCard__top{
  background: #18b3c8; /* teal */
  padding: 22px 22px;
  text-align: center;
}

.awardCard__topText{
  color: #FFF;
  font-family: var(--s-font-79ad7eaa);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  max-width: 100%;
}

.awardCard__bottom{
  background: #dff6ff; /* light cyan */
  color: #111;
  padding: 22px 22px 24px;
  text-align: center;
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 900;
  line-height: 1.25;
}

/* Button-like awards */
.awardBtn{
  color: #fff;
  min-height: 92px;
  border: 2px solid rgba(255,255,255,0.12);
  align-items: center;
  background: #1ab8ce;
  border-radius: 25px;
  box-shadow: 20px 20px 30px rgba(0,0,0,0.2);
  height: 126px;
  justify-content: center;
  margin: 36px 0px 0px 0px;
  padding: 12px 0px 12px;
  transition-delay: 0ms;
  transition-duration: 600ms;
  width: 100%;
  max-width: 100%;
  display: grid;
  font-size: 27px;
  font-weight: bold;
  text-align: center;
}
.awardBtn:hover{
    box-shadow: 0px 0px 0px rgba(0,0,0,0.2);
    transform: translate(10px, 10px);
}

.awards__footerPill{
  transition-delay: 0ms;
  transition-duration: 600ms;
  width: 100%;
  max-width: 100%;
  color: #fff;
  font-size: 26px;
}

.otherBtn{
    background: transparent;
  color: #fff;
  min-height: 92px;
  align-items: center;
  border-radius: 25px;
  box-shadow: 20px 20px 30px rgba(0,0,0,0.2);
  height: 126px;
  justify-content: center;
  margin: 36px 0px 0px 0px;
  padding: 12px 0px 12px;
  transition-delay: 0ms;
  transition-duration: 600ms;
  width: 100%;
  max-width: 100%;
  display: grid;
  font-size: 27px;
  font-weight: bold;
  text-align: center;
}

.otherBtn:hover{
    box-shadow: 0px 0px 0px rgba(0,0,0,0.2);
  transform: translate(10px, 10px);
}

/* Responsive tweak */

@media screen and (max-width: 1140px) {
    #tokuten{
        border-radius: 12px 12px 0px 0px;
        margin: 0px 48px 0px 48px;
        padding: 48px 30px;
        max-width: calc(100% - 96px);
    }
}
@media screen and (max-width: 840px) {
    #tokuten{
        margin: 0px 20px 0px 20px;
        padding: 96px 20px 0px 20px;
        max-width: calc(100% - 40px);
    }
}
@media (max-width: 520px){
  .awards{ padding: 64px 16px 74px; }
    .awardBtn,.otherBtn{ 
        min-height: 84px;
        font-size: 20px;
        line-height: 1.3;
    }
    .awardBtn--wide{
        font-size: 16px;
    }
    .awardCard__topText{
        font-size: 16px;
    }
    .awardCard__bottom{
        font-size: 13px;
        padding: 22px 5px;
    }
    #tokuten{
        margin: 0px 12px 0px 12px;
        padding: 48px 0px 48px 0px;
        width: 488px;
        max-width: calc(100% - 24px);
    }
}

/* awards */

/* org */
.org {
    align-content: center;
  background: var(--s-color-3ea4b6cb);
  border-radius: 0px 0px 12px 12px;
  padding: 80px 86px 70px 88px;
  width: 1105px;
  max-width: 100%;
}

.org__title {
color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  transition-delay: 200ms;
  transition-duration: 600ms;
  max-width: 100%;
}

.org__underline {
background: #fff;
  border-radius: 24px;
  display: block;
  height: 14px;
  margin: 12px auto 50px;
  transition-delay: 500ms;
  transition-duration: 600ms;
  width: 80px;
  max-width: 100%;
}

.org__card {
background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  margin: 0px 2px 0px;
  padding: 48px 48px;
  transition-duration: 600ms;
  transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);
  width: 1116px;
  max-width: calc(100% - 4px);
  display: flex;
  align-items: center;
}

.org__left {
align-content: center;
  padding: 25px;
  width: 60%;
  max-width: 60%;
  flex: none;
}

.org__eyebrow {
color: #000;
  font-family: var(--s-font-4e99b210);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: normal;
  line-height: 1.4;
  text-align: left;
  width: 100%;
  max-width: 100%;
}

.org__name {
border-bottom: 1px solid #000;
  color: #000;
  font-family: var(--s-font-79ad7eaa);
  font-size: 24px;
  font-weight: 900;
  letter-spacing: normal;
  line-height: 1.4;
  margin: 15px 0px 0px 0px;
  padding: 0px 0px 12px 0px;
  text-align: left;
  width: 100%;
  max-width: 100%;
}

.org__desc {
color: #000;
  font-family: var(--s-font-4e99b210);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: normal;
  line-height: 1.4;
  margin: 20px 0px 0px 0px;
  text-align: left;
  width: 100%;
  max-width: 100%;
}

.org__infoTitle {
color: #000;
  font-family: var(--s-font-4e99b210);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: normal;
  line-height: 1.4;
  margin: 32px 0px 0px 0px;
  text-align: left;
  width: 100%;
  max-width: 100%;
}

.org__right img {
    width: 100%;
}
@media (max-width: 1140px) {
    .org{
        margin: 0px 48px 0px 48px;
        padding: 80px 30px 70px 30px;
    }

}

@media (max-width: 840px) {
    .org{
        margin: 0px 20px 0px 20px;
    padding: 60px 20px 50px 20px;
    }
.org__card {
    align-content: center;
    align-items: center;
    flex-direction: column-reverse;
    flex-wrap: nowrap;
    justify-content: space-between;
    padding: 32px 32px;
}
.org__grid {
    grid-template-columns: 1fr;
}
.org__left {
    width: 100%;
    max-width: 100%;
}
.org__right img{
    width: 300px;
  max-width: 100%;
  padding: 0 0 30px;
}
.org__logoMark {
    width: 120px;
    height: 120px;
}
}

@media (max-width: 540px) {
    .org{
        margin: 0px 12px 0px 12px;
        padding: 60px 0px 50px 0px;
    }
.org__card{
    flex: none;
    flex-direction: column-reverse;
    flex-wrap: nowrap;
    margin: 24px 12px 0px;
    padding: 24px 18px;
    width: 450px;
    max-width: calc(100% - 24px);
}
.org__left{
    padding: 0;
}
.org__eyebrow{
    font-size: 10px;
}
.org__name{
    font-size: 14px;
}
.org__desc{
    font-size: 13px;
}
.org__infoTitle{
    font-size: 13px;
}
}
/* org */

/* map */
#map {
    padding: 57px 48px;
    width: 1208px;
    max-width: 100%;
    margin: 0 auto;
    justify-content: center;
}
.venue-section{
  background: var(--s-color-3ea4b6cb);
  border-radius: 12px;
  margin: 24px 0px 24px 0px;
  padding: 96px 48px;
  width: 100%;
  max-width: 100%;
}

.venue-title{
  color: #fff;
  font-family: var(--s-font-79ad7eaa);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  transition-delay: 200ms;
  transition-duration: 600ms;
  max-width: 100%;
}

.venue-underline{
  display: block;
  background: #e4e5e6;
  border-radius: 24px;
  height: 14px;
  margin: 12px 0px 12px 0px;
  transition-delay: 500ms;
  transition-duration: 600ms;
  width: 80px;
  max-width: 100%;
}

/* 2カラム */
.venue-grid{
  display: flex;
  gap: 34px;
  align-content: stretch;
  align-items: stretch;
  background: var(--s-color-3ea4b6cb);
  border-radius: 12px;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
  max-width: 100%;
}

/* Left text */
.venue-info{
  background: rgba(0,0,0,0.0);
  width: 50%;
}

.venue-dl{
  margin: 24px 0px 0px 0px;
  transition-delay: 200ms;
  transition-duration: 600ms;
  width: 640px;
  max-width: 100%;
}

.venue-row{
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 14px;
  padding: 8px 0;
  align-items: center;
}

.venue-row dt{
  font-weight: 700;
  color: #fff;
}

.venue-row dd{
  font-weight: 600;
  line-height: 1.7;
  color: #fff;
}

/* Right map */
.venue-map{
    width: 50%;
}

.venue-map iframe{
  width: 100%;
  height: 100%;
}

/* Responsive */
@media (max-width: 1140px){
.venue-title{
    font-size: 28px;
}
.venue-row{
    grid-template-columns: 115px 1fr;
}
}
@media (max-width: 860px){
    #map {
        padding: 20px;
    }
  .venue-grid{
    flex-direction: column;
  }
  .venue-map{
    width: 100%;
    height: 400px;
  }
  .venue-info{
    width: 100%;
  }
  .venue-dl{
    margin: 24px auto 0;
  }
  .venue-underline{
    margin: 12px auto;
  }
  .venue-title{
    text-align: center;
  }
  .venue-map-frame iframe{
    height: 300px;
  }
}
@media (max-width: 540px){
    #map {
        padding: 32px 12px 0px 12px;
        width: 488px;
    }
.venue-section{
    margin: 0px 0px 74px 0px;
    padding: 48px 24px;
}
.venue-row{
    grid-template-columns: 1fr;
  grid-auto-flow: row;
  grid-auto-rows: max-content;
  gap: 12px;
  padding: 12px 0;
}
.venue-row dd{
    font-size: 12px;
}
}
/* map */

/* partners */
.partner-section{
  width: 100%;
  background: #fff;
  max-width: 1080px;
  margin: 0 auto;
}

/* 1ブロック単位 */
.partner-block{
  padding: 0 20px;
}

/* グラデの細い帯 + ラベル */
.partner-bar{
  background: linear-gradient(var(--g-angle), var(--g-color-0) var(--g-position-0), var(--g-color-1) var(--g-position-1));
  border-radius: 8px;
  font-family: var(--s-font-10b8b3e2);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.4;
  padding: 8px;
  text-align: center;
  width: 100%;
  --g-color-0: #0081e6;
  --g-position-0: 0%;
  --g-color-1: #e61327;
  --g-position-1: 61%;
  --g-angle: 90deg;
  color: #fff;
  font-weight: bold;
}

/* 本体（白い領域） */
.partner-body{
  padding: 45px 0;
}

/* ロゴ群 */
.partner-logos{
  display: grid;
  gap: 28px 40px;
  align-items: center;
  justify-items: center;
}

/* 主催/共催：でかい1個 */
.partner-logos--single{
  grid-template-columns: 1fr;
}

/* 協賛：横並び中心（画面狭いと折り返し） */
.partner-logos--sponsor{
  grid-template-columns: repeat(3, minmax(0px, 1fr));
}

/* 後援：多めなので自動で埋める */
.partner-logos--support{
  grid-template-columns: repeat(3, minmax(0px, 1fr));
}

/* ロゴカード */
.logo-card{
  width: 100%;
  max-width: 320px;
  display: grid;
  place-items: center;
}

.logo-card img{
    max-height: 65px;
    max-width: 100%;
}

.logo-card--big img{
    max-height: 135px;
    max-width: 100%;
}

/* 大きめロゴ（主催/共催） */
.logo-card--big{
  max-width: 520px;
}

/* ちょいそれっぽく：余白/整列のための最低高さ */
.partner-logos--sponsor .logo-card,
.partner-logos--support .logo-card{
  min-height: 84px;
}

/* レスポンシブ */
@media (max-width: 900px){
}

@media (max-width: 540px){
  .partner-bar{
    height: 52px;
    border-radius: 10px;
  }
  .partner-bar span{
    font-size: 16px;
  }
  .partner-body{
    padding: 34px 16px 44px;
  }
  .logo-card{
    max-width: 360px;
  }
}
/* partners */

/* Q&A */
#qa{
    padding:0px 48px 48px;
    margin: 0 auto;
}
.qa{
    width:min(1097px, 100%);
    border-radius:14px;
    overflow:hidden;
    background: linear-gradient(
    90deg,
    #0042ffff 38%,
    #ff0004ff 84%
    );
    margin: 0 auto;
}

.qa__inner{
    padding: 96px 48px;
}

/* タイトル周り */
.qa__head{
    text-align:center;
    margin-bottom:56px;
}
.qa__title{
    color: #ffffffff;
    font-family: var(--s-font-79ad7eaa);
    font-size: 40px;
    font-weight: 700;
    height: auto;
    line-height: 1.4;
    padding: 0px;
    text-align: center;
    transition-delay: 200ms;
    transition-duration: 600ms;
    width: auto;
    max-width: 100%;
    justify-content: center;
}
.qa__underline{
    width:78px;
    height:10px;
    border-radius:999px;
    background:#fff;
    margin:14px auto 0;
}
.qa__sub{
    margin:18px 0 0;
    font-size:14px;
    font-weight:600;
    color:rgba(255,255,255,.9);
    letter-spacing:.02em;
}

.qa__list{
    display: flex;
    flex-direction: column;
    gap: 48px;
    height: auto;
    padding: 0px;
    transition-delay: 200ms;
    transition-duration: 600ms;
    width: 780px;
    max-width: 100%;
    margin: 48px auto;
}

.qa__q{
    color: #fff;
    font-family: var(--s-font-79ad7eaa);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
    text-align: left;
    width: 100%;
    max-width: 100%;
}

.qa__a{
    color: #fff;
    font-family: var(--s-font-79ad7eaa);
    font-size: 14px;
    font-weight: bold;
    line-height: 1.4;
    margin: 12px 0px 0px 0px;
    width: 100%;
    max-width: 100%;
}

.qa__a .qa__label{
    font-weight:900;
    margin-right:.25em;
    color: #ffffffff;
}

.qa__cta{
    margin-top:46px;
    display:flex;
    justify-content:center;
}
.qa__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:54px;
    width: 250px;
    max-width: 100%;
    background:#fff;
    color:#111;
    text-decoration:none;
    font-weight:800;
    border-radius:999px;
    border:2px solid #111;
    box-shadow: 0 4px 0 rgba(0,0,0,.45);
    transition: transform .08s ease, box-shadow .08s ease;
}
.qa__btn:active{
    transform: translateY(2px);
    box-shadow: 0 2px 0 rgba(0,0,0,.45);
}

@media screen and (max-width: 840px) {
    #qa{
        padding: 48px 20px;
    }
}
/* レスポンシブ（崩れない最低限） */
@media (max-width: 540px){
    .qa__title{ font-size:34px; }
    .qa__q{ font-size:16px; }
    .qa__a{font-size: 12px;}
    .qa__inner{padding: 48px 24px;}
    #qa{
        padding: 32px 12px 0px 12px;
    }
}
/* Q&A */

/* フッダー */
.footer{ 
    align-content: center;
    align-items: center; 
    background: rgba(0,0,0,0.0); 
    flex: none; 
    flex-direction: column; 
    flex-wrap: nowrap; 
    height: auto; 
    justify-content: center; 
    padding: 48px 48px; 
    width: 100%; 
    max-width: 100%;
}
.sd[data-s-e432cbef-45f0-4140-8e58-0e62059648ae] {
    align-content: center;
    align-items: center;
    flex: none;
    flex-direction: column;
    flex-wrap: nowrap;
    height: auto;
    justify-content: center;
    margin: 0px 0px 0px 0px;
    padding: 0px;
    width: 100%;
    max-width: 100%;
}

.footer a {
    color: #000000;
    font-family: var(--s-font-79ad7eaa);
    font-size: 14px;
    font-weight: 600;
    height: auto;
    line-height: 1;
    padding: 6px 12px;
    text-align: center;
    transition-duration: 400ms;
    width: auto;
    max-width: 100%;
    justify-content: center;
}
.footer a:hover {
    transform: translate(4px, 4px);
}

.footer p {
    color: #000000;
    flex: none;
    font-family: var(--s-font-79ad7eaa);
    font-size: 11px;
    font-weight: 600;
    height: auto;
    line-height: 1;
    margin: 24px 0px 0px 0px;
    padding: 0px 0px;
    text-align: center;
    transition-duration: 400ms;
    width: 100%;
    max-width: 100%;
    justify-content: center;
}

@media screen and (max-width: 840px){
    .footer{
        padding: 96px 48px; 
    }
    .sd[data-s-e432cbef-45f0-4140-8e58-0e62059648ae] {
        align-content: flex-start;
        align-items: flex-start;
        justify-content: flex-start;
        margin: 24px 0px 0px 0px;
        width: 100%;
        max-width: 100%;
    }
    .footer a {
        margin: 0px 24px 0px 0px;
        padding: 6px 0px;
        max-width: calc(100% - 24px);
    }
    .footer p {
        margin: 24px 0px 0px 0px;
        text-align: left;
        justify-content: flex-start;
    }
}
@media screen and (max-width: 540px){
    .footer{
         padding: 48px 24px; 
    }
    .footer a {
        font-size: 13px;
    }
}
/* フッダー */
body {
    background: #ffffffff;
    transition: background 0.5s cubic-bezier(0.4, 0.4, 0, 1);
}