@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap");
/*********************************
 *
 * COMMON
 *
 *********************************/
body {
  background: #0d1825 url("../images/bg_02.jpg") center bottom no-repeat;
  background-size: 100% auto;
  color: #000;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: min(1.2vw, 20px);
  font-weight: 500; }
  @media screen and (max-width: 750px) {
    body {
      background-image: none;
      max-width: 750px;
      font-size: min(3vw, 16px);
      -webkit-text-size-adjust: 100%; }
      body .pc {
        display: none !important; } }
  @media screen and (min-width: 751px) {
    body a {
      transition: 0.3s; }
      body a:hover {
        opacity: 0.8; }
    body .sp {
      display: none !important; } }
  body a {
    text-decoration: none; }
  body img {
    width: 100%;
    height: auto; }

/* font */
.min {
  font-family: "Noto Serif", serif; }

strong {
  font-weight: 900; }

/* fadeUp */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0; }

@-webkit-keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
.fadeUpTrigger {
  opacity: 0; }

/*********************************
 *
 * HEADER
 *
 *********************************/
header {
  position: sticky;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 10; }
  header::after {
    position: absolute;
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: url("../images/bg_header.jpg") center bottom no-repeat;
    background-size: cover; }
  header .h_inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: calc(100% - 40px);
    height: 100px;
    margin: 0 auto;
    z-index: +1; }
  header .h_logo {
    width: 294px; }
  header ul {
    display: flex;
    align-items: center;
    font-size: 80%;
    font-weight: 700; }
    header ul a {
      display: block;
      padding: 0.3em 0.5em;
      color: #fff; }
    header ul li {
      padding: 0 0.2em; }
      header ul li.entry {
        padding: 0 0 0 0.8em;
        font-size: 120%; }
        header ul li.entry a {
          padding: 1em 2.5em;
          background: url("../images/h_btn_entry.png") center center no-repeat;
          background-size: contain;
          color: #fff;
          text-shadow: 0 0 0.4em rgba(0, 0, 0, 0.8), 0 0 0.4em rgba(0, 0, 0, 0.8), 0 0 0.4em rgba(0, 0, 0, 0.8); }

/*********************************
 *
 * MV
 *
 *********************************/
@media screen and (max-width: 750px) {
  #mv .entry_btn {
    margin: 30px auto 0 auto;
    text-align: center; }
    #mv .entry_btn a {
      display: inline-block;
      padding: 1em 3em 1em 3em;
      background: url("../images/btn_entry-sp.png") center center no-repeat;
      background-size: contain;
      color: #fff;
      font-size: 110%;
      font-weight: 600;
      text-shadow: 0 0 0.4em rgba(115, 7, 38, 0.8), 0 0 0.4em rgba(115, 7, 38, 0.8); } }
#mv .mv_inner {
  position: relative; }

/*********************************
 *
 * bg01
 *
 *********************************/
.bg01 {
  position: relative;
  padding: 50px 0 80px 0;
  background: #0c1725 url("../images/bg_01.jpg") left bottom no-repeat;
  background-size: 100% auto; }
  @media screen and (max-width: 750px) {
    .bg01 {
      padding: 10px 0 20px 0;
      background-image: none; } }
  .bg01 .entry_btn {
    margin: 130px auto 0 auto;
    text-align: center; }
    .bg01 .entry_btn a {
      display: inline-block;
      padding: 1.5em 3em;
      background: url("../images/btn_entry.png") center center no-repeat;
      background-size: contain;
      color: #fff;
      font-size: 160%;
      font-weight: 600;
      text-shadow: 0 0 0.4em rgba(115, 7, 38, 0.8), 0 0 0.4em rgba(115, 7, 38, 0.8); }

/*********************************
 *
 * concept
 *
 *********************************/
#concept {
  position: relative;
  padding: 50px 0 0 0;
  color: #fff;
  z-index: 3; }
  #concept .concept_inner {
    position: relative;
    width: 76%;
    max-width: 1206px;
    margin: 0 auto; }
    @media screen and (max-width: 750px) {
      #concept .concept_inner {
        width: 80%; } }
  #concept h2 {
    width: 81.3%;
    margin: 0 auto; }
    @media screen and (max-width: 750px) {
      #concept h2 {
        width: 100%; } }
  #concept p {
    padding: 2.5em 0 0 0;
    font-size: 105%;
    line-height: 2;
    text-align: center;
    letter-spacing: 0.04em; }

/*********************************
 *
 * program
 *
 *********************************/
#program {
  padding: 50px 0 90px 0;
  background: #0c1725; }
  @media screen and (max-width: 750px) {
    #program {
      padding: 50px 0 30px 0; } }
  #program .program_inner {
    width: 76%;
    max-width: 1206px;
    margin: 0 auto; }
    @media screen and (max-width: 750px) {
      #program .program_inner {
        width: 80%; } }
  #program h2 {
    width: 10%; }
    @media screen and (max-width: 750px) {
      #program h2 {
        width: 26%; } }
  #program .box {
    border: 1px solid #bc9e58;
    border-top: 0; }
  #program h2 + .box {
    margin: 15px 0 0 0;
    border-top: 1px solid #bc9e58; }
  #program dl.title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    border-bottom: 1px solid #bc9e58; }
    #program dl.title dt {
      width: 23%;
      padding: 0.5em 1.2em 0.5em 0;
      background: #bc9e58;
      font-size: 135%;
      text-align: right; }
      @media screen and (max-width: 750px) {
        #program dl.title dt {
          width: 100%;
          padding: 0 0 0.1em 0;
          font-size: 120%;
          text-align: center; } }
    #program dl.title dd {
      padding: 0 1em;
      color: #bc9e58;
      font-size: 160%;
      letter-spacing: 0.2em; }
      @media screen and (max-width: 750px) {
        #program dl.title dd {
          width: 100%;
          padding: 0.4em 0;
          font-size: 140%;
          text-align: center; } }
  #program .cnt {
    width: 86%;
    margin: 0 auto;
    padding: 3em 0 4em 0;
    color: #fff; }
    @media screen and (max-width: 750px) {
      #program .cnt {
        width: 80%;
        color: #bc9e58; } }
    #program .cnt h3 {
      font-size: 185%;
      font-weight: 700;
      letter-spacing: 0.14em; }
      @media screen and (max-width: 750px) {
        #program .cnt h3 {
          font-size: 125%; } }
    #program .cnt p.min {
      margin: 1.5em 0 0 0;
      font-size: 105%;
      font-weight: 400;
      line-height: 1.9;
      letter-spacing: 0.02em; }
      @media screen and (max-width: 750px) {
        #program .cnt p.min {
          margin: 2em 0 0 0;
          font-size: 95%;
          line-height: 1.8; } }
  #program dl.profile {
    position: relative;
    display: flex;
    justify-content: flex-end;
    margin: 3.5em 0 0 0; }
    @media screen and (max-width: 750px) {
      #program dl.profile {
        flex-wrap: wrap;
        margin: 2.5em 0 0 0; } }
    #program dl.profile dt {
      position: absolute;
      width: 24%;
      top: -1.5em;
      left: 0;
      z-index: +1; }
      @media screen and (max-width: 750px) {
        #program dl.profile dt {
          position: relative;
          width: 100%;
          margin: 0;
          top: 0;
          text-align: center; }
          #program dl.profile dt img {
            width: 80%; } }
    #program dl.profile dd {
      width: 85%;
      padding: 1.6em 1em 1.8em 13%;
      background: #fff;
      color: #000; }
      @media screen and (max-width: 750px) {
        #program dl.profile dd {
          width: 100%;
          padding: 15px 0 0 0;
          background: none;
          color: #fff; } }
      #program dl.profile dd .name {
        font-size: 110%;
        font-weight: 900; }
        @media screen and (max-width: 750px) {
          #program dl.profile dd .name {
            margin: 5px 0 0 0;
            font-size: 100%;
            font-weight: 500;
            line-height: 1.6; } }
        #program dl.profile dd .name span {
          font-size: 85%; }
      #program dl.profile dd .note {
        margin: 1.2em 0 0 0;
        font-size: 80%;
        font-weight: 600; }
        @media screen and (max-width: 750px) {
          #program dl.profile dd .note {
            margin: 1.6em 0 0 0;
            font-size: 85%;
            font-weight: 400;
            line-height: 1.7; } }
  @media screen and (max-width: 750px) {
    #program dl.profile + dl.profile {
      margin: 3.6em 0 0 0; } }

/*********************************
 *
 * outline
 *
 *********************************/
#outline {
  position: relative;
  padding: 50px 0; }
  @media screen and (max-width: 750px) {
    #outline {
      padding: 50px 0 30px 0; } }
  #outline .outline_inner {
    width: 76%;
    max-width: 1206px;
    margin: 0 auto;
    z-index: 3; }
    @media screen and (max-width: 750px) {
      #outline .outline_inner {
        width: 65%; } }
  #outline h2 {
    width: 35.8%;
    margin: 0 auto; }
    @media screen and (max-width: 750px) {
      #outline h2 {
        width: 36%; } }
  #outline table {
    width: 100%;
    margin: 80px 0 0 0;
    color: #fff; }
    @media screen and (max-width: 750px) {
      #outline table {
        margin: 30px 0 0 0; } }
    #outline table th {
      width: 30%;
      padding: 1em 0;
      border: 1px solid #bc9e58;
      color: #bc9e58;
      font-size: 135%;
      font-weight: 700;
      text-align: center;
      letter-spacing: 0.15em; }
      @media screen and (max-width: 750px) {
        #outline table th {
          display: block;
          width: 100%;
          padding: 0.2em 0;
          background: #afb2b7;
          border: 0;
          color: #0c1725;
          font-size: 110%; } }
    #outline table td {
      padding: 1.3em 0 1.3em 3em;
      width: 70%;
      border-bottom: 1px solid #bc9e58;
      font-family: "Noto Serif", serif;
      font-size: 105%;
      line-height: 1.6; }
      @media screen and (max-width: 750px) {
        #outline table td {
          display: block;
          width: 100%;
          padding: 1.2em 0.5em 2.2em 0.5em;
          border: 0;
          font-size: 85%;
          font-weight: 400;
          line-height: 1.8;
          text-align: center; } }
      #outline table td.noline {
        border: 0; }
      #outline table td dl {
        display: flex;
        align-items: center;
        justify-content: space-between; }
        @media screen and (max-width: 750px) {
          #outline table td dl {
            flex-wrap: wrap; } }
        #outline table td dl dt {
          width: 7em;
          padding: 1.5em 0; }
          @media screen and (max-width: 750px) {
            #outline table td dl dt {
              width: 100%;
              padding: 1em 0 0 0;
              text-align: center; } }
          #outline table td dl dt .num {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 6.5em;
            height: 6.5em;
            background: #9ea3a8;
            border-radius: 50%;
            color: #0c1725;
            font-weight: 600;
            line-height: 1.2;
            text-align: center; }
            @media screen and (max-width: 750px) {
              #outline table td dl dt .num {
                display: inline-block;
                width: 50%;
                height: auto;
                padding: 0 0 0.3em 0;
                background: none;
                border-right: 1px solid rgba(255, 255, 255, 0.5);
                border-left: 1px solid rgba(255, 255, 255, 0.5);
                border-radius: 0;
                color: #fff;
                font-size: 140%;
                letter-spacing: 0.15em; } }
        #outline table td dl dd {
          width: calc(100% - 9em);
          padding: 1.5em 0; }
          @media screen and (max-width: 750px) {
            #outline table td dl dd {
              width: 100%;
              padding: 1em 0 1.5em 0; } }
          #outline table td dl dd .place {
            font-size: 120%; }
            @media screen and (max-width: 750px) {
              #outline table td dl dd .place {
                font-size: 100%; } }
          #outline table td dl dd .note {
            margin: 5px 0 0 0;
            font-family: 'Noto Sans JP', sans-serif; }
            @media screen and (max-width: 750px) {
              #outline table td dl dd .note {
                font-size: 90%; } }
      #outline table td dl + dl {
        border-top: 2px dotted rgba(140, 140, 140, 0.5); }
        @media screen and (max-width: 750px) {
          #outline table td dl + dl {
            border: 0; } }
    #outline table ul.notice {
      margin: 5px 0 0 0;
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 80%; }
      @media screen and (max-width: 750px) {
        #outline table ul.notice {
          font-size: 70%; } }
      #outline table ul.notice li {
        padding: 0 0 0 1em;
        text-indent: -1em; }
  #outline .fs140 {
    font-size: 140%; }
    @media screen and (max-width: 750px) {
      #outline .fs140 {
        font-size: 150%; } }
  #outline .fs160 {
    font-size: 160%; }
  #outline .fs200 {
    font-size: 200%; }
    @media screen and (max-width: 750px) {
      #outline .fs200 {
        font-size: 210%; } }
  #outline .entry_btn {
    margin: 150px auto 0 auto;
    text-align: center; }
    @media screen and (max-width: 750px) {
      #outline .entry_btn {
        margin: 20px auto 0 auto; } }
    #outline .entry_btn a {
      display: inline-block;
      padding: 1.5em 3em;
      background: url("../images/btn_entry.png") center center no-repeat;
      background-size: contain;
      color: #fff;
      font-size: 160%;
      font-weight: 600;
      text-shadow: 0 0 0.4em rgba(115, 7, 38, 0.8), 0 0 0.4em rgba(115, 7, 38, 0.8); }
      @media screen and (max-width: 750px) {
        #outline .entry_btn a {
          padding: 1em 3em;
          background: url("../images/btn_entry-sp.png") center center no-repeat;
          background-size: contain;
          font-size: 110%; } }

/*********************************
 *
 * FOOTER
 *
 *********************************/
footer {
  position: relative;
  padding: 40px 0 60px 0;
  z-index: 3; }
  @media screen and (max-width: 750px) {
    footer {
      padding: 17px 0 20px 0;
      background: #fff; } }
  footer .f_inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: calc(100% - 60px);
    margin: 0 auto; }
    @media screen and (max-width: 750px) {
      footer .f_inner {
        flex-wrap: wrap;
        width: 100%; } }
  footer p {
    color: #fff;
    font-size: 75%; }
    @media screen and (max-width: 750px) {
      footer p {
        width: 100%;
        color: #000;
        line-height: 1.8;
        text-align: center; } }
  footer .f_logo {
    width: 226px; }
    @media screen and (max-width: 750px) {
      footer .f_logo {
        width: 30%;
        margin: 15px auto 0 auto; } }
