@charset "UTF-8";
/* ------------------------------
- base
------------------------------ */
@font-face {
  font-family: "Noto Sans CJK JP Bold";
  font-style: normal;
  src: local(""), url("../fonts/NotoSansCJKjp-Bold.woff2") format("woff2"), url("../fonts/NotoSansCJKjp-Bold.woff2") format("woff");
}
@font-face {
  font-family: "Noto Sans CJK JP Medium";
  font-style: normal;
  src: local(""), url("../fonts/NotoSansCJKjp-Medium.woff2") format("woff2"), url("../fonts/NotoSansCJKjp-Medium.woff2") format("woff");
}
@font-face {
  font-family: "Noto Sans CJK JP Regular";
  font-style: normal;
  src: local(""), url("../fonts/NotoSansCJKjp-Regular.woff2") format("woff2"), url("../fonts/NotoSansCJKjp-Regular.woff2") format("woff");
}
@media screen and (min-width: 1024px) {
  .visible-md, .visible-sm {
    display: none;
  }
  .visible-lg {
    display: inherit;
  }
}
@media screen and (min-width: 750px) and (max-width: 1023px) {
  .visible-lg, .visible-sm {
    display: none;
  }
  .visible-md {
    display: inherit;
  }
}
@media screen and (max-width: 749px) {
  .visible-lg, .visible-md {
    display: none;
  }
  .visible-sm {
    display: inherit;
  }
}

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

* {
  box-sizing: border-box;
  line-height: 1.5;
}

p {
  line-height: 1.8;
}

@media screen and (min-width: 750px) {
  html {
    font-size: 10px;
  }
}
@media screen and (max-width: 749px) {
  html {
    font-size: 2.66666vw;
  }
}

body {
  width: 100%;
  overflow-x: hidden;
  background: #fff;
  font-family: "Noto Sans CJK JP Regular", YuGothic, "Yu Gothic", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
  color: #000;
}
@media screen and (min-width: 750px) {
  body {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 749px) {
  body {
    font-size: 1.4rem;
  }
}

main {
  display: block;
}

li {
  list-style-type: none;
}

a {
  display: inline-block;
  text-decoration: none;
  color: #000;
}
@media screen and (min-width: 750px) {
  a {
    transition: all 0.3s;
  }
  a::before, a::after {
    transition: all 0.3s;
  }
}

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

svg {
  width: 100%;
  height: auto;
}

sup {
  font-size: 0.5em;
  vertical-align: super;
}

input, button, textarea, select {
  appearance: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

address {
  font-style: normal;
}

@media screen and (min-width: 750px) {
  .l-inner-lg {
    width: 90%;
    max-width: 1400px;
    margin: 0 auto;
  }
}
@media screen and (max-width: 749px) {
  .l-inner-lg {
    padding: 0 1.5rem;
  }
}

@media screen and (min-width: 750px) {
  .l-inner-md {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
  }
}
@media screen and (max-width: 749px) {
  .l-inner-md {
    padding: 0 1.5rem;
  }
}

@media screen and (min-width: 750px) {
  .l-inner-ex {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
  }
}

@media screen and (min-width: 750px) {
  .l-inner-sm {
    width: 90%;
    max-width: 920px;
    margin: 0 auto;
  }
}
@media screen and (max-width: 749px) {
  .l-inner-sm {
    padding: 0 1.5rem;
  }
}

/* ------------------------------
- header
------------------------------ */
@media screen and (min-width: 1200px) {
  .header {
    background-color: #fff;
    position: fixed;
    width: 100%;
    z-index: 3;
    height: 8.5rem;
    transition: 0.3s all;
  }
  .is-view .header {
    height: 7rem;
  }
}
@media screen and (min-width: 750px) and (max-width: 1199px) {
  .is-view .header {
    background-color: #fff;
  }
}
@media screen and (max-width: 1199px) {
  .header {
    position: fixed;
    width: 100%;
    z-index: 3;
    height: 5rem;
  }
}
@media screen and (max-width: 749px) {
  .is-view .header {
    background-color: rgba(255, 255, 255, 0.6);
  }
}

.hd__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: 0.3s all;
}
@media screen and (min-width: 1200px) {
  .hd__inner {
    margin: 0 auto;
    width: 95%;
    height: 100%;
  }
}
@media screen and (min-width: 1200px) {
  .hd__inner {
    padding: 0 2rem;
  }
}

@media screen and (min-width: 1200px) {
  .logo {
    width: 11.1rem;
  }
}
@media screen and (max-width: 1199px) {
  .logo {
    width: 8rem;
    padding: 0.5rem 0 0 1rem;
  }
}

@media screen and (max-width: 1199px) {
  .hd__nav {
    z-index: 10;
    position: absolute;
    top: 0;
    right: -30rem;
    z-index: 3000;
    width: 30rem;
    height: 100vh;
    border: 1px solid #333;
    background: #fff;
    transition: all 0.3s;
    overflow-y: scroll;
  }
}

.hdList {
  width: 100%;
}
@media screen and (min-width: 1200px) {
  .hdList {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}
@media screen and (max-width: 1199px) {
  .hdList {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
  }
}

@media screen and (min-width: 1200px) {
  .hdItem:last-of-type {
    margin-left: 4rem;
  }
}
@media screen and (max-width: 1199px) {
  .hdItem {
    border-bottom: 1px solid #333;
  }
  .hdItem:last-of-type {
    border: none;
    padding: 0 1rem;
  }
}
@media screen and (min-width: 1200px) {
  .hdItem + .hdItem {
    margin-left: clamp(2rem, 2.9vw, 4rem);
  }
}
@media screen and (max-width: 1199px) {
  .hdItem.sns {
    border-bottom: none;
    padding: 1.5rem 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

@media screen and (min-width: 1200px) {
  .hdItem__sns + .hdItem__sns {
    margin-left: 2rem;
  }
}
@media screen and (max-width: 1199px) {
  .hdItem__sns + .hdItem__sns {
    margin-left: 1.5rem;
  }
}

.hdItem__anc {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
@media screen and (min-width: 1200px) {
  .hdItem__anc:hover {
    color: #004293;
  }
  .hdItem__anc:hover::after {
    transform: scale(1, 1);
    transform-origin: left top;
  }
  .hdItem__anc:after {
    position: absolute;
    left: 0;
    content: "";
    width: 100%;
    height: 2px;
    background: #004293;
    bottom: -5px;
    transform: scale(0, 1);
    transform-origin: right top;
    transition: transform 0.3s;
  }
}
@media screen and (min-width: 750px) and (max-width: 1199px) {
  .hdItem__anc:hover {
    color: #fff;
    background: #000;
  }
}
@media screen and (max-width: 1199px) {
  .hdItem__anc {
    padding: 1rem 0;
  }
}
.hdItem__anc .en {
  font-weight: bold;
  font-family: "Oswald";
}
@media screen and (min-width: 750px) {
  .hdItem__anc .en {
    font-size: 1.8rem;
  }
}
@media screen and (min-width: 1200px) {
  .hdItem__anc .en {
    font-size: clamp(1.6rem, 1.3vw, 1.8rem);
  }
}
@media screen and (max-width: 749px) {
  .hdItem__anc .en {
    font-size: 1.5rem;
  }
}
.hdItem__anc .ja {
  font-size: 1rem;
}

.hd__btnarea {
  display: flex;
  align-items: center;
}

.hdCtabtn {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  color: #fff;
  background-color: #a92b4b;
  border: 2px solid #a92b4b;
  border-radius: 5rem;
  text-align: center;
}
@media screen and (min-width: 750px) {
  .hdCtabtn:hover {
    color: #a92b4b;
    background-color: #fff;
  }
}
@media screen and (min-width: 1024px) {
  .hdCtabtn {
    font-size: clamp(1.4rem, 1.1vw, 1.6rem);
    height: 4rem;
    padding: 0 clamp(1rem, 1.1vw, 1.5rem);
  }
}
@media screen and (max-width: 1023px) {
  .hdCtabtn {
    font-size: 1.2rem;
    padding: 0 1rem;
    width: 100%;
    height: 4.5rem;
    line-height: 4.5rem;
  }
}

@media screen and (min-width: 1200px) {
  .ham, .hd__overlay {
    display: none;
  }
}

@media screen and (max-width: 1199px) {
  .ham {
    position: relative;
    z-index: 10000;
    width: 5rem;
    height: 5rem;
    transition: 0.3s all;
  }
  .ham::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    transition: all 0.3s;
  }
  .is-active .ham::before {
    opacity: 0;
  }
  .ham__item {
    position: absolute;
    height: 2px;
    background: #fff;
    transition: all 0.35s ease;
    left: 1.2rem;
    width: 2.4rem;
  }
  .is-view .ham__item {
    background-color: #000;
  }
  .is-active .ham__item {
    background-color: #fff;
  }
  .ham__item:nth-child(1) {
    top: 1.7rem;
  }
  .ham__item:nth-child(2) {
    top: 2.5rem;
  }
  .ham__item:nth-child(3) {
    top: 3.3rem;
  }
  .is-active .ham__item {
    top: 2.5rem;
  }
  .is-active .ham__item:nth-child(1) {
    transform: rotate(225deg);
  }
  .is-active .ham__item:nth-child(2) {
    opacity: 0;
  }
  .is-active .ham__item:nth-child(3) {
    transform: rotate(-225deg);
  }
}
/* ------------------------------
- is-active
------------------------------ */
@media screen and (max-width: 1199px) {
  .hd__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.4);
    z-index: -100;
    opacity: 0;
    transition: all 0.2s;
    visibility: hidden;
  }
  .is-active {
    overflow: hidden;
    z-index: 40;
  }
  .is-active .ham {
    background-color: #000;
    right: 30rem;
  }
  .is-active .hd__nav {
    right: 0;
  }
  .is-active .hd__overlay {
    opacity: 1;
    z-index: 2000;
    visibility: visible;
  }
}
/* ------------------------------
- footer
------------------------------ */
.footer {
  background-color: #fff;
  position: relative;
  text-align: center;
}
@media screen and (min-width: 750px) {
  .footer {
    padding: 12rem 0 0;
  }
}
@media screen and (max-width: 749px) {
  .footer {
    padding: 6rem 0 0;
  }
}
.footer::before {
  content: "";
  background-image: url(../img/2024/foot_bg.png);
  background-size: cover;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-position: center;
}
@media screen and (min-width: 1400px) {
  .footer::before {
    background-size: 100vw 100%;
  }
}
@media screen and (min-width: 750px) {
  .footer::before {
    height: 12rem;
  }
}
@media screen and (max-width: 749px) {
  .footer::before {
    height: 6rem;
  }
}

.copyright {
  padding: 2rem 0;
  background: url(../img/2024/copy_bg.png) center/cover;
}
@media screen and (min-width: 750px) {
  .copyright {
    font-size: 1.5rem;
  }
}

/* ------------------------------
- common
------------------------------ */
main {
  overflow: hidden;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  font-weight: bold;
  text-align: center;
  border-radius: 5rem;
}
@media screen and (min-width: 750px) {
  .btn {
    height: 5rem;
    font-size: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .btn {
    height: 4rem;
    font-size: 1.6rem;
  }
}
.btn.-lineBlack {
  border: 1px solid #060000;
  background-color: #fff;
}
@media screen and (min-width: 750px) {
  .btn.-lineBlack:hover {
    color: #fff;
    background-color: #060000;
  }
}
.btn.-red {
  color: #fff;
  border: 1px solid #a92b4b;
  background-color: #a92b4b;
}
@media screen and (min-width: 750px) {
  .btn.-red:hover {
    color: #a92b4b;
    background-color: #fff;
  }
}
.btn.-soon {
  pointer-events: none;
  color: #fff;
  border: 1px solid #707070;
  background-color: #707070;
}
.btn.-blank {
  position: relative;
}
.btn.-blank::before {
  content: "";
  background-image: url(../img/2024/icon_blank.png);
  background-size: 100%;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 2rem;
}
@media screen and (min-width: 750px) {
  .btn.-blank::before {
    width: 2.1rem;
    height: 2.1rem;
  }
}
@media screen and (max-width: 749px) {
  .btn.-blank::before {
    width: 1.6rem;
    height: 1.6rem;
  }
}
@media screen and (min-width: 750px) {
  .btn.-blank:hover::before {
    background-image: url(../img/2024/icon_blank_red.png);
  }
}

.c-red {
  color: #a92b4b;
}

a.link_blank {
  position: relative;
  color: #a92b4b;
  padding-right: 1.8em;
}
a.link_blank::after {
  content: "";
  background-image: url(../img/2024/icon_blank_red.png);
  background-size: 100%;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0.4em;
  width: 1em;
  height: 1em;
}
@media screen and (min-width: 1200px) {
  a.link_blank:hover::before {
    transform: scale(1, 1);
    transform-origin: left top;
  }
  a.link_blank:before {
    position: absolute;
    left: 0;
    content: "";
    width: 100%;
    height: 1px;
    background: #a92b4b;
    bottom: -5px;
    transform: scale(0, 1);
    transform-origin: right top;
    transition: transform 0.3s;
  }
}
@media screen and (max-width: 749px) {
  a.link_blank {
    display: inline-block !important;
  }
}

/* ------------------------------
- section
------------------------------ */
.sec {
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 750px) {
  .sec {
    padding: 8rem 0;
  }
}
@media screen and (max-width: 749px) {
  .sec {
    padding: 5rem 0;
  }
}

.sec__bottom {
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 750px) {
  .sec__bottom {
    padding-bottom: 8rem;
  }
}
@media screen and (max-width: 749px) {
  .sec__bottom {
    padding-bottom: 5rem;
  }
}

@media screen and (min-width: 750px) {
  .sec__head {
    margin-bottom: 4rem;
  }
}
@media screen and (max-width: 749px) {
  .sec__head {
    margin-bottom: 3rem;
  }
}

.sec__ttl {
  display: flex;
}
@media screen and (max-width: 749px) {
  .sec__ttl {
    align-items: center;
  }
}
.sec__ttl .en {
  color: #004293;
  font-family: "Oswald";
}
@media screen and (min-width: 750px) {
  .sec__ttl .en {
    font-size: 4rem;
  }
}
@media screen and (max-width: 749px) {
  .sec__ttl .en {
    font-size: 2.8rem;
  }
}
.sec__ttl .ja {
  font-family: "Noto Sans CJK JP Bold";
}
@media screen and (min-width: 750px) {
  .sec__ttl .ja {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 749px) {
  .sec__ttl .ja {
    font-size: 1.3rem;
  }
}
.sec__ttl.-column {
  flex-direction: column;
}
.sec__ttl.-center {
  align-items: center;
}
.sec__ttl.-deco {
  position: relative;
  padding-bottom: 3rem;
}
.sec__ttl.-deco::before {
  content: "";
  background-image: url(../img/2024/ttl_deco.png);
  background-size: 9.3rem 9px;
  width: 100%;
  height: 9px;
  position: absolute;
  left: 0;
  bottom: 0;
}

@media screen and (min-width: 750px) {
  .sec__txt.-center {
    text-align: center;
  }
}

.slideIn {
  animation-name: slideIn;
  animation-duration: 2.5s;
  animation-timing-function: ease;
}

.bg__video {
  position: fixed;
  width: auto;
  height: 100vh;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  z-index: -1;
}

/* ------------------------------
- entry
------------------------------ */
.entry {
  background: #ffe3e5;
}
@media screen and (min-width: 750px) {
  .entry {
    padding: 3rem 0;
  }
}
@media screen and (max-width: 749px) {
  .entry {
    padding: 2rem 0;
  }
}

.entryBlock + .entryBlock {
  border-top: 2px dashed #a92b4b;
  margin-top: 3rem;
  padding-top: 3rem;
}

.entry__head {
  text-align: center;
}
@media screen and (min-width: 750px) {
  .entry__head {
    margin-bottom: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .entry__head {
    margin-bottom: 2rem;
  }
}

.entry__ttl {
  color: #a92b4b;
}
@media screen and (min-width: 750px) {
  .entry__ttl {
    font-size: 3rem;
  }
}

.entry__lead {
  font-weight: bold;
  margin-top: 1rem;
}
@media screen and (min-width: 750px) {
  .entry__lead {
    font-size: 1.8rem;
  }
}

.entryList {
  max-width: 90rem;
  margin: 0 auto;
}
@media screen and (min-width: 750px) {
  .entryList {
    display: flex;
    justify-content: center;
  }
}

.entryItem {
  text-align: center;
}
@media screen and (min-width: 750px) {
  .entryItem {
    width: 40%;
  }
}
@media screen and (min-width: 750px) {
  .entryItem + .entryItem {
    margin-left: 5rem;
  }
}
@media screen and (max-width: 749px) {
  .entryItem + .entryItem {
    margin-top: 2rem;
  }
}

.entryItem__txt {
  font-weight: bold;
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 750px) {
  .entryItem__txt {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 749px) {
  .entryItem__txt {
    font-size: 1.4rem;
  }
}
.entryItem__txt.-center {
  text-align: center;
}
@media screen and (min-width: 750px) {
  .entryItem__txt .lg {
    font-size: 1.8rem;
  }
}
.entryItem__txt .sm {
  font-size: 1.2rem;
}

.entryItem__btn {
  max-width: 30rem;
  margin: 0 auto;
}
.entryItem__btn + .entryItem__txt {
  margin-top: 1.5rem;
}

/* ------------------------------
- hero
------------------------------ */
.hero {
  position: relative;
  z-index: 2;
  /*background: rgb(126, 206, 244);
  background: linear-gradient(0deg, rgba(188, 226, 232, 1) 20%, rgba(200, 231, 233, 1) 45%, rgba(126, 206, 244, 1) 70%);*/
}
@media screen and (min-width: 750px) {
  .hero {
    background: url(../img/2024/hero.jpg) center/cover;
    height: 74rem;
  }
}
@media screen and (min-width: 1200px) {
  .hero {
    margin-top: 8.5rem;
  }
}
@media screen and (max-width: 749px) {
  .hero {
    background: url(../img/2024/hero_sp.jpg) center/cover;
    height: 57rem;
  }
}
.hero::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(144, 223, 253, 0.6);
}
.hero::after {
  content: "";
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
}
@media screen and (min-width: 750px) {
  .hero::after {
    height: 50px;
  }
}
@media screen and (max-width: 749px) {
  .hero::after {
    height: 20px;
  }
}

.hero__inner {
  position: relative;
}

.hero__main {
  /*color: #fff;*/
  font-weight: bold;
  font-family: "Noto Sans CJK JP Bold";
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (min-width: 750px) {
  .hero__main {
    padding-top: 6rem;
  }
}
@media screen and (min-width: 1200px) {
  .hero__main {
    padding-top: 3rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__main {
    padding-top: 6rem;
  }
}

.hero__head {
  max-width: 90.8rem;
}
@media screen and (min-width: 750px) {
  .hero__head {
    width: 90.8rem;
    margin-top: 3.5rem;
    margin-bottom: 3.5rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__head {
    width: 100%;
    margin-top: 2rem;
    margin-bottom: 1rem;
  }
}

.hero__head_sub {
  transform: rotate(-10deg);
}
@media screen and (min-width: 750px) {
  .hero__head_sub {
    width: 40rem;
    margin-bottom: 4rem;
    margin-left: -42rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__head_sub {
    width: 17rem;
    margin-bottom: 2rem;
    margin-left: -16rem;
  }
}

.hero__title {
  margin-bottom: 1rem;
  display: flex;
}
@media screen and (min-width: 750px) {
  .hero__title {
    width: 51rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__title {
    width: 26rem;
  }
}

.hero__datearea {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (min-width: 750px) {
  .hero__datearea {
    flex-direction: row;
    justify-content: center;
  }
}
@media screen and (max-width: 749px) {
  .hero__datearea {
    margin: 2rem 0 1rem;
  }
}

@media screen and (min-width: 750px) {
  .hero__date {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    font-size: 2.7rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__date {
    font-size: 1.3rem;
  }
}
@media screen and (min-width: 750px) {
  .hero__date + .hero__date {
    margin-left: 3rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__date + .hero__date {
    margin-top: 2rem;
  }
}
.hero__date .bg {
  color: #fff;
  background-color: #a92b4b;
}
@media screen and (min-width: 750px) {
  .hero__date .bg {
    font-size: 1.2rem;
    margin-right: 1.5rem;
    padding: 0 1.5rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__date .bg {
    font-size: 1.2rem;
    margin-right: 1rem;
    padding: 0.2rem 1rem;
  }
}
.hero__date .day {
  display: flex;
  align-items: center;
}
.hero__date .num {
  font-size: 2em;
}
.hero__date .week {
  margin-left: 5px;
  text-align: center;
  color: #fff;
}
@media screen and (min-width: 750px) {
  .hero__date .week {
    min-width: 4.3rem;
    min-height: 4.3rem;
    line-height: 4.3rem;
    font-size: 2.5rem;
    border-radius: 1.4rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__date .week {
    min-width: 2.6rem;
    min-height: 2.6rem;
    line-height: 2.6rem;
    font-size: 1.6rem;
    border-radius: 50%;
  }
}
.hero__date:nth-child(1) .week {
  background-color: #1954a3;
}
.hero__date:nth-child(2) .week {
  background-color: #ff3600;
}

.hero__photo {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 1100px;
  /*margin: 2rem auto;

  @include mq-up {
    margin: 3rem auto;
  }*/
}

.hero__text {
  display: flex;
}
@media screen and (min-width: 750px) {
  .hero__text {
    align-items: center;
    font-size: 2.3rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__text {
    flex-direction: column;
    font-size: 1.8rem;
  }
}
.hero__text .cat {
  text-align: center;
  background: #a92b4b;
  color: #fff;
  font-size: 1.2rem;
  padding: 0.2rem;
  margin-right: 1.5rem;
}
@media screen and (min-width: 750px) {
  .hero__text .cat {
    width: 7rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__text .cat {
    width: 6rem;
  }
}
.hero__text .notes {
  font-size: 1.4rem;
  margin-left: 1rem;
}

@media screen and (min-width: 750px) {
  .hero__btnbox {
    margin-top: 3rem;
  }
}
@media screen and (max-width: 749px) {
  .hero__btnbox {
    margin-top: 2rem;
  }
}

.hero__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  color: #fff;
  border: 2px solid #c12b2e;
  background-color: #c12b2e;
  border-radius: 10rem;
  margin: 0 auto;
  max-width: 22rem;
  padding: 0.4rem 0 0.6rem;
}
@media screen and (min-width: 750px) {
  .hero__btn {
    font-size: 1.2rem;
  }
  .hero__btn:hover {
    color: #c12b2e;
    background-color: #fff;
  }
}
@media screen and (max-width: 749px) {
  .hero__btn {
    font-size: 1rem;
  }
}
.hero__btn .en {
  font-weight: normal;
  font-family: "Oswald";
  font-size: 2em;
}

.comingsoon {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  color: #fff;
  background-color: #a30039;
  border-radius: 10rem;
  margin: 0 auto;
  max-width: 46rem;
}
@media screen and (min-width: 750px) {
  .comingsoon {
    font-size: 2.4rem;
    padding: 1.4rem 0;
  }
}
@media screen and (max-width: 749px) {
  .comingsoon {
    max-width: 30rem;
    font-size: 1.6rem;
    padding: 1rem 0;
  }
}

/* ------------------------------
- about
------------------------------ */
.about {
  position: relative;
}
.about::before {
  content: "";
  background-image: url(../img/2024/about_logo.png);
  background-size: 100%;
  background-repeat: no-repeat;
  width: 247px;
  height: 128px;
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translateX(-50%);
}

.about__slide {
  position: relative;
  width: 100%;
  text-align: center;
  z-index: -1;
}
@media screen and (min-width: 750px) {
  .about__slide {
    height: 15rem;
    margin-top: 10rem;
  }
}
@media screen and (max-width: 749px) {
  .about__slide {
    height: 7.5rem;
    margin-top: 5rem;
  }
}
.about__slide::before {
  animation: loop 50s -25s linear infinite;
  left: 0;
}
.about__slide::after {
  z-index: 1;
  animation: loop2 50s linear infinite;
}
@media screen and (min-width: 750px) {
  .about__slide::after {
    left: 141rem;
  }
}
@media screen and (max-width: 749px) {
  .about__slide::after {
    left: 70.5rem;
  }
}
.about__slide::before, .about__slide::after {
  content: "";
  width: 100%;
  display: block;
  position: absolute;
  top: 0;
  z-index: 0;
  margin: auto;
  background-repeat: repeat-x;
  text-decoration: none;
}
@media screen and (min-width: 750px) {
  .about__slide::before, .about__slide::after {
    background-image: url(../img/2024/about_slide.png);
    height: 15rem;
    width: 141rem;
    background-size: 141rem 15rem;
  }
}
@media screen and (max-width: 749px) {
  .about__slide::before, .about__slide::after {
    background-image: url(../img/2024/about_slide.png);
    height: 7.5rem;
    width: 70.5rem;
    background-size: 70.5rem 7.5rem;
  }
}

@keyframes loop {
  0% {
    -webkit-transform: translateX(100%);
    -ms-transform: translateX(100%);
    transform: translateX(100%);
  }
  to {
    -webkit-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    transform: translateX(-100%);
  }
}
@keyframes loop2 {
  0% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-200%);
    -ms-transform: translateX(-200%);
    transform: translateX(-200%);
  }
}
/* ------------------------------
- contents
------------------------------ */
.blue__bg {
  background: url(../img/2024/outline_bg.jpg) center/cover;
}

@media screen and (min-width: 750px) {
  .contents .entry {
    margin: 10rem 0 5rem;
  }
}
@media screen and (max-width: 749px) {
  .contents .entry {
    margin: 5rem 0 3rem;
  }
}

@media screen and (min-width: 750px) {
  .contentsBlock__ttl {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsBlock__ttl {
    font-size: 1.8rem;
  }
}
.contentsBlock__ttl + .contentsBlock__txt {
  margin-top: 1rem;
}

@media screen and (min-width: 750px) {
  .contentsBlock__txt {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsBlock__txt {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 750px) {
  .contents__course {
    border: 1px solid #004293;
    margin-top: 5rem;
    padding: 0 6rem 2rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__course {
    margin-top: 2rem;
  }
}

.contents__course__ttl {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  font-weight: bold;
  color: #fff;
  background-color: #004293;
  max-width: 65rem;
  margin: 0 auto;
  height: 4rem;
}
@media screen and (min-width: 750px) {
  .contents__course__ttl {
    top: -2rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__course__ttl {
    margin-bottom: 1rem;
  }
}

@media screen and (min-width: 1024px) {
  .contents__courseList {
    display: flex;
    justify-content: center;
  }
}

@media screen and (max-width: 749px) {
  .contents__courseItem {
    border: 1px solid #004293;
    padding: 2rem;
  }
}
@media screen and (min-width: 1024px) {
  .contents__courseItem + .contents__courseItem {
    margin-left: 5rem;
  }
}
@media screen and (min-width: 750px) and (max-width: 1023px) {
  .contents__courseItem + .contents__courseItem {
    margin-top: 3rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__courseItem + .contents__courseItem {
    margin-top: 1rem;
  }
}
.contents__courseItem:nth-child(1) .week {
  background-color: #1954a3;
}
.contents__courseItem:nth-child(2) .week {
  background-color: #ff3600;
}

.contents__courseItem__head {
  display: flex;
  align-items: center;
  font-weight: bold;
  margin-bottom: 2rem;
}
@media screen and (max-width: 749px) {
  .contents__courseItem__head {
    justify-content: center;
    text-align: center;
  }
}
.contents__courseItem__head .bg {
  color: #fff;
  background-color: #00000e;
}
@media screen and (min-width: 750px) {
  .contents__courseItem__head .bg {
    font-size: 1.8rem;
    margin-right: 1.5rem;
    padding: 0 1.5rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__courseItem__head .bg {
    font-size: 1.4rem;
    margin-right: 1rem;
    padding: 0.2rem 1.5rem;
  }
}
.contents__courseItem__head .date {
  font-size: 1.33333333em;
}
.contents__courseItem__head .week {
  display: inline-block;
  margin-left: 5px;
  text-align: center;
  color: #fff;
  border-radius: 50%;
}
@media screen and (min-width: 750px) {
  .contents__courseItem__head .week {
    min-width: 2.2rem;
    min-height: 2.2rem;
    line-height: 2.2rem;
    font-size: 1.3rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__courseItem__head .week {
    min-width: 2.2rem;
    min-height: 2.2rem;
    line-height: 2.2rem;
    font-size: 1.4rem;
  }
}

.contents__courseItem__txt {
  display: flex;
  align-items: center;
  font-weight: bold;
  font-size: 1.6rem;
}
@media screen and (min-width: 750px) {
  .contents__courseItem__txt.-blue .num::after {
    border-left: 0.7rem solid #0088d6;
  }
  .contents__courseItem__txt.-orange .num::after {
    border-left: 0.7rem solid #e46c00;
  }
  .contents__courseItem__txt.-red .num::after {
    border-left: 0.7rem solid #d3006d;
  }
}
@media screen and (max-width: 749px) {
  .contents__courseItem__txt {
    flex-direction: column;
  }
}
.contents__courseItem__txt .num {
  display: inline-flex;
  align-items: center;
}
@media screen and (min-width: 750px) {
  .contents__courseItem__txt .num {
    width: 5.6rem;
    margin-right: 3rem;
  }
  .contents__courseItem__txt .num::after {
    content: "";
    border-top: 0.4rem solid transparent;
    border-bottom: 0.4rem solid transparent;
    margin-left: 1rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__courseItem__txt .num {
    width: 7.3rem;
    margin-bottom: 1rem;
  }
}
@media screen and (min-width: 750px) {
  .contents__courseItem__txt + .contents__courseItem__txt {
    margin-top: 1rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__courseItem__txt + .contents__courseItem__txt {
    margin-top: 2rem;
  }
}

@media screen and (min-width: 750px) {
  .contents__coupon {
    margin-top: 5rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__coupon {
    margin-top: 3rem;
  }
}

.contents__coupon__ttl {
  font-weight: bold;
  text-align: center;
  color: #004293;
}
@media screen and (min-width: 750px) {
  .contents__coupon__ttl {
    font-size: 2.4rem;
    margin-bottom: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__coupon__ttl {
    font-size: 1.8rem;
  }
}

.contents__coupon__img {
  max-width: 1100px;
  margin: 0 auto;
}
.contents__coupon__img img {
  margin: 0 auto;
  display: block;
}
@media screen and (min-width: 750px) {
  .contents__coupon__img img {
    width: 60%;
  }
}

.contents__coupon__btn {
  max-width: 30rem;
  margin: 0 auto;
}
@media screen and (min-width: 750px) {
  .contents__coupon__btn {
    margin-top: 3rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__coupon__btn {
    width: 22rem;
    margin-top: 2rem;
  }
  .contents__coupon__btn .btn {
    font-size: 1.5rem;
  }
}

.contents__coupon__bg {
  max-width: 60rem;
  margin: 0 auto;
  background-color: #e4e4e4;
}
@media screen and (min-width: 750px) {
  .contents__coupon__bg {
    margin-top: 3rem;
    padding: 2.5rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__coupon__bg {
    margin-top: 2rem;
    padding: 1.5rem;
  }
}

.contents__coupon__inner {
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 749px) {
  .contents__coupon__inner {
    flex-direction: column;
  }
}

@media screen and (max-width: 749px) {
  .contents__coupon__logo {
    width: 8.7rem;
    margin-bottom: 1rem;
  }
}

.contents__coupon__txtbox {
  text-align: center;
  font-weight: bold;
}

@media screen and (min-width: 750px) {
  .contents__coupon__txtLg {
    font-size: 2.5rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__coupon__txtLg {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 750px) {
  .contents__coupon__txtLg .lg {
    font-size: 2.7rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__coupon__txtLg .lg {
    font-size: 1.7rem;
  }
}

@media screen and (min-width: 750px) {
  .contents__coupon__txt {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__coupon__txt {
    margin-top: 0.5rem;
    font-size: 1.3rem;
  }
}

.contents__coupon__txtsm {
  text-align: center;
  font-weight: bold;
}
@media screen and (min-width: 750px) {
  .contents__coupon__txtsm {
    margin-top: 2rem;
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 749px) {
  .contents__coupon__txtsm {
    margin-top: 1rem;
    font-size: 1.1rem;
  }
}

.contentsEvent__lead {
  font-weight: bold;
}
@media screen and (min-width: 750px) {
  .contentsEvent__lead {
    font-size: 2.4rem;
    margin-bottom: 4rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__lead {
    font-size: 1.8rem;
    margin-bottom: 2rem;
  }
}

.contentsEvent__item {
  position: relative;
}
@media screen and (min-width: 750px) {
  .contentsEvent__item:nth-child(1) {
    padding-bottom: 4.5rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__item:nth-child(1) {
    padding-bottom: 4rem;
  }
}
@media screen and (min-width: 750px) {
  .contentsEvent__item + .contentsEvent__item {
    padding: 3.5rem 0 4.5rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__item + .contentsEvent__item {
    padding: 3rem 0 4rem;
  }
}
.contentsEvent__item::before {
  content: "";
  background-image: url(../img/2024/ttl_deco.png);
  background-size: 9.3rem 9px;
  width: 100%;
  height: 9px;
  position: absolute;
  left: 0;
  bottom: 0;
}

.contentsEvent__ttl {
  margin-bottom: 1rem;
}
@media screen and (min-width: 750px) {
  .contentsEvent__ttl {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__ttl {
    font-size: 1.8rem;
  }
}

.contentsEvent__txt {
  font-size: 1.4rem;
}
.contentsEvent__txt .bold {
  font-weight: 700;
}

@media screen and (min-width: 750px) {
  .contentsEvent__column {
    display: flex;
    justify-content: space-between;
    margin-top: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__column {
    margin-top: 1.5rem;
  }
}

@media screen and (min-width: 750px) {
  .contentsEvent__img {
    width: 62.7%;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__img {
    margin-bottom: 2rem;
  }
}

@media screen and (min-width: 750px) {
  .contentsEvent__textbox {
    width: 35.5%;
  }
}

.contentsEvent__tr {
  display: flex;
  align-items: flex-start;
  font-weight: bold;
}
@media screen and (min-width: 750px) {
  .contentsEvent__tr {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__tr {
    font-size: 1.4rem;
  }
}
.contentsEvent__tr + .contentsEvent__tr {
  margin-top: 1rem;
}

.contentsEvent__th {
  min-width: 11rem;
  text-align: center;
  background-color: #060000;
  color: #fff;
  margin-right: 1.5rem;
}

@media screen and (min-width: 750px) {
  .contentsEvent__td .sm {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__td .sm {
    font-size: 1.3rem;
  }
}

.contentsEvent__btn__txt {
  color: #a92b4b;
  font-weight: bold;
  text-align: center;
  margin-bottom: 1rem;
}
@media screen and (min-width: 750px) {
  .contentsEvent__btn__txt {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 750px) {
  .contentsEvent__btnarea {
    margin-top: 5rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__btnarea {
    margin-top: 3rem;
  }
}

.contentsEvent__btn {
  max-width: 30rem;
  margin: 0 auto;
}
@media screen and (max-width: 749px) {
  .contentsEvent__btn {
    width: 24rem;
  }
}
.contentsEvent__btn + .contentsEvent__btn {
  margin-top: 1.5rem;
}

.contentsEvent__foot {
  font-weight: bold;
  text-align: center;
  background-color: #FFE3E5;
}
@media screen and (min-width: 750px) {
  .contentsEvent__foot {
    margin-top: 3.5rem;
    padding: 3rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__foot {
    margin-top: 2rem;
    padding: 1.5rem;
  }
}

@media screen and (min-width: 750px) {
  .contentsEvent__foot__txtLg {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__foot__txtLg {
    font-size: 1.6rem;
  }
}

.contentsEvent__foot__txt {
  margin-bottom: 1rem;
}
@media screen and (min-width: 750px) {
  .contentsEvent__foot__txt {
    font-size: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .contentsEvent__foot__txt {
    font-size: 1.4rem;
  }
}

.contentsEvent__foot__btn {
  max-width: 30rem;
  margin: 1.5rem auto 0;
}
@media screen and (max-width: 749px) {
  .contentsEvent__foot__btn {
    width: 24rem;
  }
}

.city_circuit {
  width: fit-content;
  display: flex;
  font-weight: 700;
  color: #fff;
  background-color: #7f1084;
  border-radius: 5px;
  padding: 5px;
}
.city_circuit div {
  padding: 5px 10px;
}
.city_circuit div:first-child {
  color: #fff100;
}
@media screen and (max-width: 749px) {
  .city_circuit {
    flex-direction: column;
    text-align: center;
    margin: 0 auto;
  }
}

/* ------------------------------
- news
------------------------------ */
@media screen and (min-width: 750px) {
  .news__inner {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 5rem;
  }
}
@media screen and (max-width: 749px) {
  .news__inner {
    margin-top: 3rem;
  }
}

.news__img {
  max-width: 189px;
}
@media screen and (min-width: 750px) {
  .news__img {
    margin-right: 3rem;
    min-width: 18.9rem;
  }
}
@media screen and (max-width: 749px) {
  .news__img {
    width: 13rem;
    margin: 0 auto 2rem;
  }
}

.news__textbox {
  font-weight: bold;
}
.news__text {
  color: #b81649;
}
@media screen and (min-width: 750px) {
  .news__text {
    font-size: 3rem;
  }
}
@media screen and (max-width: 749px) {
  .news__text {
    font-size: 2rem;
  }
}

@media screen and (min-width: 1024px) {
  .news__subtitle,
  .news__tag {
    font-size: 2.4rem;
  }
}
@media screen and (min-width: 750px) and (max-width: 1023px) {
  .news__subtitle,
  .news__tag {
    font-size: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .news__subtitle,
  .news__tag {
    font-size: 1.4rem;
  }
}

@media screen and (min-width: 750px) {
  .news__title {
    font-size: 4rem;
  }
}
@media screen and (max-width: 749px) {
  .news__title {
    font-size: 2.8rem;
  }
}

/* ------------------------------
- outline
------------------------------ */
.outline {
  position: relative;
}

@media screen and (min-width: 750px) {
  .outlineList th,
  .outlineList td {
    padding: 2rem 0;
  }
}
.outlineList th {
  text-align: left;
  white-space: nowrap;
}
@media screen and (min-width: 750px) {
  .outlineList th {
    font-size: 1.5rem;
    width: 13%;
    min-width: 15rem;
  }
}
@media screen and (max-width: 749px) {
  .outlineList th {
    font-size: 1.4rem;
    width: 32%;
    margin-right: 1rem;
  }
}
.outlineList td {
  word-break: break-all;
}
@media screen and (min-width: 1024px) {
  .outlineList td.-flex {
    display: flex;
    justify-content: space-between;
  }
}
@media screen and (max-width: 749px) {
  .outlineList td {
    padding: 2rem 0;
  }
}
.outlineList .cat {
  display: flex;
}
.outlineList .cat::before {
  content: "";
  height: 20px;
  background-color: #000;
}
@media screen and (min-width: 750px) {
  .outlineList .cat::before {
    min-width: 8px;
    margin-right: 1rem;
  }
}
@media screen and (max-width: 749px) {
  .outlineList .cat::before {
    min-width: 4px;
    margin-right: 0.5rem;
  }
}

.outlineItem {
  border-bottom: 1px solid #000;
}
@media screen and (max-width: 749px) {
  .outlineItem:nth-child(1) .outlineItem__cat {
    padding: 0;
  }
}

@media screen and (max-width: 749px) {
  .outlineItem__cat,
  .outlineItem__content {
    width: 100%;
    display: block;
  }
}

@media screen and (max-width: 749px) {
  .outlineItem__cat {
    padding: 2rem 0 0;
  }
}
.outlineItem__cat .sm {
  display: contents;
}
@media screen and (min-width: 750px) {
  .outlineItem__cat .sm {
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 749px) {
  .outlineItem__cat .sm {
    font-size: 1rem;
  }
}

@media screen and (max-width: 1023px) {
  .outlineItem__flexItem + .outlineItem__flexItem {
    margin-top: 2rem;
  }
}

.outlineItem__textbox + .outlineItem__textbox {
  margin-top: 3rem;
}

@media screen and (min-width: 750px) {
  .outlineItem__textbox__border {
    border-radius: 1rem;
    padding: 2rem;
    border: 1px solid #000;
  }
}
@media screen and (max-width: 749px) {
  .outlineItem__textbox__border {
    border-radius: 0.5rem;
    padding: 1.5rem;
    border: 1px solid #000;
  }
}
@media screen and (min-width: 750px) {
  .outlineItem__textbox__border + .outlineItem__textbox__border {
    margin-top: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .outlineItem__textbox__border + .outlineItem__textbox__border {
    margin-top: 1.5rem;
  }
}

@media screen and (min-width: 750px) {
  .outlineItem__text {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 749px) {
  .outlineItem__text {
    font-size: 1.3rem;
  }
}
@media screen and (min-width: 750px) {
  .outlineItem__text .sm {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 749px) {
  .outlineItem__text .sm {
    font-size: 1.2rem;
  }
}
.outlineItem__text.xs {
  font-size: 1.2rem;
}
.outlineItem__text .bold {
  font-weight: bold;
}
.outlineItem__text .border {
  white-space: nowrap;
  padding: 0.2rem 1rem;
  margin-right: 1rem;
  color: #fff;
  background-color: #000;
}
.outlineItem__text .red {
  color: red;
}
.outlineItem__text sup {
  color: #a92b4b;
}
@media screen and (max-width: 749px) {
  .outlineItem__text a {
    display: contents;
  }
}
.outlineItem__text + .outlineItem__text {
  margin-top: 0.5rem;
}
.outlineItem__text.-flex,
.outlineItem__text .-flex {
  margin-top: 0;
  display: flex;
}
.outlineItem__text.-flex::before,
.outlineItem__text .-flex::before {
  content: "・";
}
.outlineItem__text .lg {
  font-size: 1.5em;
}
.outlineItem__text.-num,
.outlineItem__text .flex {
  display: flex;
}

.numlist {
  counter-reset: number 0;
}

.outlineItem__textbox {
  display: flex;
}
.outlineItem__textbox::before {
  content: "";
  counter-increment: number 1;
  content: counter(number);
  display: inline-block;
  width: 2.5rem;
  height: 2.5rem;
  line-height: 2.5rem;
  text-align: center;
  color: #fff;
  background: #a92b4b;
  margin-right: 0.8rem;
}
@media screen and (min-width: 750px) {
  .outlineItem__textbox::before {
    font-size: 2rem;
  }
}

.outlineItem__textsm {
  font-size: 1.2rem;
}
.outlineItem__textsm.-pink {
  color: #a92b4b;
}

@media screen and (min-width: 750px) {
  .outlineItem__textbox__flex {
    display: flex;
  }
  .outlineItem__textbox__flex .outlineItem__text.parent {
    margin-right: 1rem;
  }
}

@media screen and (max-width: 749px) {
  .outlineItem__text {
    display: block;
  }
}

@media screen and (min-width: 1024px) {
  .courseTable__outer {
    display: flex;
  }
}

.courseTable {
  border-collapse: collapse;
}
@media screen and (min-width: 1024px) {
  .courseTable {
    width: 50%;
  }
  .courseTable + .courseTable {
    margin-left: 0.5rem;
  }
}
@media screen and (max-width: 1023px) {
  .courseTable + .courseTable {
    margin-top: 1.5rem;
  }
}
.courseTable th,
.courseTable td {
  vertical-align: middle;
  text-align: center;
  padding: 1rem 0.5rem;
  border: 1px solid #1a1311;
}
.courseTable th .bold,
.courseTable td .bold {
  font-weight: 700;
}
.courseTable th.start, .courseTable th.goal,
.courseTable td.start,
.courseTable td.goal {
  width: 8em;
}
.courseTable th {
  font-weight: bold;
  color: #fff;
  background: #a92b4b;
  text-align: center;
}
@media screen and (min-width: 750px) {
  .courseTable th {
    font-size: 1.8rem;
    height: 5rem;
  }
}
@media screen and (max-width: 749px) {
  .courseTable th {
    font-size: 1.6rem;
  }
}
.courseTable tr:nth-child(2) {
  font-weight: bold;
  background: #e1e1e1;
  font-size: 1.2rem;
}
@media screen and (min-width: 750px) {
  .courseTable tr:nth-child(2) {
    height: 4.5rem;
  }
}
.courseTable tr:nth-child(n+3) {
  background: #fff;
}
@media screen and (min-width: 750px) {
  .courseTable tr:nth-child(n+3) {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 749px) {
  .courseTable tr:nth-child(n+3) {
    font-size: 1.2rem;
  }
}

.entryfreeBlock + .entryfreeBlock {
  margin-top: 2rem;
}

.entryfreeBlock__ttl {
  color: #fff;
  background: #a92b4b;
  margin-bottom: 1rem;
  padding: 0 1.5rem;
  font-weight: bold;
  font-size: 1.8rem;
}
@media screen and (min-width: 750px) {
  .entryfreeBlock__ttl {
    display: inline-block;
  }
}
@media screen and (max-width: 749px) {
  .entryfreeBlock__ttl {
    text-align: center;
  }
}

.entryfreeBlock__sub {
  color: #a92b4b;
  margin-bottom: 0.5rem;
  font-weight: bold;
  font-size: 1.6rem;
}
@media screen and (max-width: 749px) {
  .entryfreeBlock__sub {
    text-align: center;
  }
}

.entryfreeBlock__txt {
  font-weight: bold;
  color: #a92b4b;
  margin-top: 0.5rem;
  font-size: 1.4rem;
}
@media screen and (min-width: 750px) {
  .entryfreeBlock__txt.-right {
    text-align: right;
  }
}
@media screen and (max-width: 749px) {
  .entryfreeBlock__txt {
    text-align: center;
  }
}

.entryfree__inner + .entryfree__inner {
  margin-top: 2rem;
}

@media screen and (min-width: 750px) {
  .entryfree__flex {
    display: flex;
    justify-content: space-between;
  }
}

@media screen and (min-width: 750px) {
  .entryfreeTable {
    width: 50%;
  }
  .entryfreeTable + .entryfreeTable {
    margin-left: 0.5rem;
  }
}
@media screen and (max-width: 749px) {
  .entryfreeTable + .entryfreeTable {
    margin-top: 1.5rem;
  }
}
.entryfreeTable th,
.entryfreeTable td {
  vertical-align: middle;
  text-align: center;
  padding: 1rem 0.5rem;
  border: 1px solid #1a1311;
}
.entryfreeTable th {
  width: 10%;
  min-width: 5rem;
  background: #e1e1e1;
}
.entryfreeTable td {
  background: #fff;
}
@media screen and (min-width: 1024px) {
  .entryfreeTable td {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 750px) and (max-width: 1023px) {
  .entryfreeTable td {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 749px) {
  .entryfreeTable td {
    font-size: 1.3rem;
  }
}
@media screen and (min-width: 750px) {
  .entryfreeTable .num {
    font-size: 1.7rem;
  }
}
@media screen and (min-width: 750px) and (max-width: 1023px) {
  .entryfreeTable .num {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 749px) {
  .entryfreeTable .num {
    font-size: 1.3rem;
  }
}

/* ------------------------------
- app
------------------------------ */
.app__ttl {
  text-align: center;
}
@media screen and (min-width: 750px) {
  .app__ttl {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 749px) {
  .app__ttl {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 750px) {
  .appList {
    display: flex;
    justify-content: space-between;
    text-align: center;
  }
}

@media screen and (min-width: 750px) {
  .appItem {
    width: 31.8%;
  }
}
@media screen and (max-width: 749px) {
  .appItem + .appItem {
    margin-top: 2rem;
  }
}
.appItem img {
  width: 100%;
}

.appItem__ttl {
  font-weight: bold;
  text-align: center;
}
@media screen and (min-width: 750px) {
  .appItem__ttl {
    font-size: 2.4rem;
    min-height: 10rem;
  }
}
@media screen and (max-width: 749px) {
  .appItem__ttl {
    font-size: 1.8rem;
    margin-bottom: 1rem;
  }
}
@media screen and (min-width: 750px) {
  .appItem__ttl .sm {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 749px) {
  .appItem__ttl .sm {
    font-size: 1.4rem;
  }
}

/* ------------------------------
- otherevent
------------------------------ */
@media screen and (min-width: 750px) {
  .otherevent__list {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
  }
}

@media screen and (min-width: 750px) {
  .otherevent__item:nth-child(2) {
    width: 62.7%;
  }
  .otherevent__item:nth-child(1) {
    width: 37.3%;
    padding: 0 1em;
  }
}
@media screen and (max-width: 749px) {
  .otherevent__item {
    text-align: center;
  }
  .otherevent__item + .otherevent__item {
    margin-top: 2rem;
  }
}

@media screen and (min-width: 750px) {
  .otherevent__ttl {
    font-size: 2.4rem;
    margin-bottom: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .otherevent__ttl {
    text-align: center;
    font-size: 2rem;
    margin-bottom: 1rem;
  }
}
.otherevent__ttl .en {
  font-size: 1.4rem;
}

.otherevent__txt {
  color: #a92b4b;
  text-align: center;
  font-weight: bold;
  font-size: 1.6rem;
}
@media screen and (min-width: 750px) {
  .otherevent__txt {
    font-size: 2rem;
    text-align: left;
  }
}

/* ------------------------------
- archive
------------------------------ */
.archive {
  background: url(../img/2024/archive_bg.jpg) center/cover;
}

.archive__head {
  position: relative;
}

.archive__speech {
  max-width: 272px;
}
@media screen and (min-width: 750px) {
  .archive__speech {
    position: absolute;
    top: -10%;
    left: 65%;
  }
}
@media screen and (max-width: 749px) {
  .archive__speech {
    margin: 2rem auto -3rem;
    width: 24.3rem;
  }
}

.archiveList {
  text-align: center;
}
@media screen and (min-width: 750px) {
  .archiveList {
    display: flex;
    justify-content: center;
  }
}

@media screen and (min-width: 750px) {
  .archiveItem {
    width: 31.8%;
    margin-right: 2.3%;
  }
}
@media screen and (max-width: 749px) {
  .archiveItem + .archiveItem {
    margin-top: 2rem;
  }
}
.archiveItem img {
  width: 100%;
}

@media screen and (min-width: 750px) {
  .archiveItem:last-child {
    margin-right: 0;
  }
}

@media screen and (min-width: 750px) {
  .archiveItem__anc:hover {
    transition: 0.3s all;
    opacity: 0.7;
  }
}

.archiveItem__txt {
  font-weight: bold;
  text-align: center;
}
@media screen and (min-width: 750px) {
  .archiveItem__txt {
    font-size: 2.4rem;
    margin-bottom: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .archiveItem__txt {
    font-size: 2rem;
    margin-bottom: 1rem;
  }
}

/* ------------------------------
- supporter
------------------------------ */
.supporter {
  padding-bottom: 0;
}

@media screen and (min-width: 750px) {
  .supporterBlock + .supporterBlock {
    margin-top: 6rem;
  }
}
@media screen and (max-width: 749px) {
  .supporterBlock + .supporterBlock {
    margin-top: 3rem;
  }
}

@media screen and (min-width: 750px) {
  .supporterBlock__ttl {
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
  }
}
@media screen and (max-width: 749px) {
  .supporterBlock__ttl {
    text-align: center;
    font-size: 1.6rem;
    margin-bottom: 1rem;
  }
}

.supporterList {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
@media screen and (min-width: 750px) {
  .supporterList + .supporterList {
    margin-top: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .supporterList + .supporterList {
    margin-top: 1rem;
  }
}

.supporterItem {
  pointer-events: none;
}
@media screen and (min-width: 750px) {
  .supporterItem:hover {
    opacity: 0.7;
  }
  .-col2 .supporterItem {
    width: 49.1%;
  }
  .-col2 .supporterItem:not(:nth-child(3n)) {
    margin-right: 8.15%;
  }
  .-col2 .supporterItem:nth-child(n+4) {
    margin-top: 2rem;
  }
  .-col3 .supporterItem {
    width: 27.9%;
    /*&:nth-child(n+4) {
      margin-top: 2rem;
    }*/
  }
  .-col3 .supporterItem:not(:nth-child(3n)) {
    margin-right: 8.15%;
  }
  .-col4 .supporterItem {
    width: 20.2%;
  }
  .-col4 .supporterItem:not(:nth-child(4n)) {
    margin-right: 6.4%;
  }
  .-col4 .supporterItem:nth-child(n+5) {
    margin-top: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .-col3 .supporterItem {
    display: block;
    width: 49.5%;
  }
  .-col3 .supporterItem:nth-child(n+4) {
    width: 49.5%;
  }
  .-col3 .supporterItem + .-col3 .supporterItem {
    margin-top: 1rem;
  }
  .-col4 .supporterItem {
    width: 48.5%;
  }
  .-col4 .supporterItem:nth-child(odd) {
    margin-right: 3%;
  }
  .-col4 .supporterItem:nth-child(n+3) {
    margin-top: 1rem;
  }
}

/* ------------------------------
- faq
------------------------------ */
.faq {
  background-color: #fff;
  position: relative;
}
.faq::before, .faq::after {
  content: "";
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (min-width: 750px) {
  .faq::before, .faq::after {
    height: 70px;
  }
}
@media screen and (max-width: 749px) {
  .faq::before, .faq::after {
    height: 30px;
  }
}
.faq::before {
  background-color: #fff;
}

@media screen and (min-width: 750px) {
  .faqarea + .faqarea {
    margin-top: 5rem;
  }
}
@media screen and (max-width: 749px) {
  .faqarea + .faqarea {
    margin-top: 3rem;
  }
}

.faqList {
  background-color: #fff;
  margin-top: 2rem;
}

@media screen and (min-width: 750px) {
  .faqItem + .faqItem {
    margin-top: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .faqItem + .faqItem {
    margin-top: 2rem;
  }
}

.faqItem__Qbox {
  display: flex;
  justify-content: space-between;
  cursor: pointer;
  border: 1px solid #000;
  background-color: rgba(0, 166, 231, 0.2);
}
@media screen and (min-width: 750px) {
  .faqItem__Qbox {
    align-items: center;
    padding: 1rem 2.7rem;
  }
}
@media screen and (max-width: 749px) {
  .faqItem__Qbox {
    padding: 1rem 1.5rem;
  }
}

.faqItem__Abox {
  display: none;
  border: 1px solid #000;
}
@media screen and (min-width: 750px) {
  .faqItem__Abox {
    padding: 3rem 2.7rem;
  }
}
@media screen and (max-width: 749px) {
  .faqItem__Abox {
    padding: 2rem 1.5rem;
  }
}
.faqItem__Abox.-active {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.faqItem__Abox.-active:first-of-type {
  background-color: #1E9A5B;
}

.faqItem__Q {
  font-weight: bold;
  position: relative;
  display: flex;
}
@media screen and (min-width: 750px) {
  .faqItem__Q {
    align-items: center;
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 749px) {
  .faqItem__Q {
    font-size: 1.3rem;
  }
}
.faqItem__Q::before {
  content: "Q.";
  line-height: 1;
  font-family: "Oswald";
  font-weight: normal;
  color: #000;
}
@media screen and (min-width: 750px) {
  .faqItem__Q::before {
    font-size: 2.4rem;
    margin-right: 2.7rem;
  }
}
@media screen and (max-width: 749px) {
  .faqItem__Q::before {
    font-size: 2rem;
    margin-right: 1.5rem;
  }
}

.faqItem__Qbtn {
  content: "";
  position: relative;
  margin-left: 0.8rem;
}
@media screen and (min-width: 750px) {
  .faqItem__Qbtn {
    min-width: 4rem;
    height: 4rem;
  }
}
@media screen and (max-width: 749px) {
  .faqItem__Qbtn {
    min-width: 3rem;
    height: 3rem;
  }
}
.faqItem__Qbtn::before {
  content: "";
  width: 50%;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(135deg);
}
@media screen and (min-width: 750px) {
  .faqItem__Qbtn::before {
    width: 1rem;
    height: 1rem;
  }
}
@media screen and (max-width: 749px) {
  .faqItem__Qbtn::before {
    width: 0.5rem;
    height: 0.5rem;
  }
}
.faqItem__Qbtn.-active::before {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.faqItem__A {
  position: relative;
  display: flex;
}
@media screen and (min-width: 750px) {
  .faqItem__A {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 749px) {
  .faqItem__A {
    font-size: 1.3rem;
  }
}
.faqItem__A::before {
  content: "A.";
  font-family: "Oswald";
  color: #000;
  line-height: 1;
}
@media screen and (min-width: 750px) {
  .faqItem__A::before {
    font-size: 2.4rem;
    margin-right: 2.7rem;
  }
}
@media screen and (max-width: 749px) {
  .faqItem__A::before {
    font-size: 2rem;
    margin-right: 1.5rem;
  }
}
.faqItem__A a {
  text-decoration: underline;
}
.faqItem__A a:hover {
  color: #1E9A5B;
}
.faqItem__A .link {
  display: contents;
}

.faq__contactarea {
  background-color: #e6e6e6;
  text-align: center;
}
@media screen and (min-width: 750px) {
  .faq__contactarea {
    margin-top: 4rem;
    font-size: 1.5rem;
    padding: 2rem 1.5rem;
  }
}
@media screen and (max-width: 749px) {
  .faq__contactarea {
    margin-top: 2rem;
    font-size: 1.4rem;
    padding: 1.5rem 1rem;
  }
}

.faq__contactarea__title {
  display: inline-block;
  border-bottom: 1px solid #000;
  margin-bottom: 1rem;
}

.faqItem__Qbox {
  background: rgba(0, 66, 147, 0.05);
}

/* ------------------------------
- contact
------------------------------ */
.contact {
  padding-top: 0;
}

.contact__inner {
  text-align: center;
  background-color: #e5e5e5;
}
@media screen and (min-width: 750px) {
  .contact__inner {
    padding: 3rem;
  }
}
@media screen and (max-width: 749px) {
  .contact__inner {
    padding: 3rem 2rem;
  }
}
.contact__inner .sec__ttl .en {
  color: #000;
}

@media screen and (min-width: 750px) {
  .contact__head {
    margin-bottom: 2rem;
  }
}

@media screen and (min-width: 750px) {
  .contact__txt {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 749px) {
  .contact__txt {
    font-size: 1.3rem;
  }
}
.contact__txt .lg {
  font-weight: bold;
}
@media screen and (min-width: 750px) {
  .contact__txt .lg {
    font-size: 2.3rem;
  }
}
@media screen and (max-width: 749px) {
  .contact__txt .lg {
    font-size: 1.6rem;
  }
}
.contact__txt + .contact__txt {
  margin-top: 1rem;
}

@media screen and (min-width: 750px) {
  .bnrList {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media screen and (min-width: 750px) {
  .bnrItem {
    width: 33.333%;
  }
  .bnrItem:hover {
    opacity: 0.7;
  }
  .bnrItem:nth-child(n+4) {
    margin-top: 2rem;
  }
}
@media screen and (max-width: 749px) {
  .bnrItem + .bnrItem {
    margin-top: 1rem;
  }
}

.modal-open {
  cursor: pointer;
}

/*モーダル本体の指定 + モーダル外側の背景の指定*/
.modal-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  background: rgba(0, 0, 0, 0.7);
  padding: 40px 20px;
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  box-sizing: border-box;
  z-index: 13;
}

/*モーダル本体の擬似要素の指定*/
.modal-container:before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}

/*モーダル本体に「active」クラス付与した時のスタイル*/
.modal-container.active {
  opacity: 1;
  visibility: visible;
}

/*モーダル枠の指定*/
.modal-body {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  max-width: 1060px;
}
@media screen and (min-width: 750px) {
  .modal-body {
    width: 90%;
  }
}
@media screen and (max-width: 749px) {
  .modal-body {
    width: 98%;
  }
}

/*モーダルを閉じるボタンの指定*/
.modal-close {
  position: absolute;
  color: #a92b4b;
  background-color: #fff;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 750px) {
  .modal-close {
    top: -45px;
    right: 0;
    transition: 0.3s all;
  }
  .modal-close:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 749px) {
  .modal-close {
    top: -40px;
    right: 0;
  }
}

.closebtn {
  position: relative;
}
@media screen and (min-width: 750px) {
  .closebtn {
    width: 40px;
    height: 40px;
  }
}
@media screen and (max-width: 749px) {
  .closebtn {
    width: 26px;
    height: 26px;
  }
}
.closebtn span {
  display: contents;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (min-width: 750px) {
  .closebtn span {
    line-height: 1;
    font-size: 40px;
  }
}
@media screen and (max-width: 749px) {
  .closebtn span {
    line-height: 0.9;
    font-size: 26px;
  }
}

/*モーダル内のコンテンツの指定*/
.modal-content {
  position: relative;
  background: #fff;
  border-radius: 1.5rem;
  display: none;
}
@media screen and (min-width: 750px) {
  .modal-content {
    max-width: 1100px;
    margin: 0 auto;
  }
}

.modal-content.active {
  display: block;
}

.modal-pdf {
  position: relative;
  width: 100%;
}
@media screen and (min-width: 750px) {
  .modal-pdf {
    padding-top: 56.25%;
  }
}
@media screen and (max-width: 749px) {
  .modal-pdf {
    padding: 141% 0 0 0;
  }
  .modal-pdf iframe[src$=".pdf"] {
    width: 100%;
    height: 80vh;
  }
}
.modal-pdf iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}/*# sourceMappingURL=2025.css.map */