@charset "utf-8";


/* variables */
:root {
  --bg-default: #000;
  --bg-gradation-moz: -moz-linear-gradient(to left, #666666 0%, #B3B3B3 100%);
  --bg-gradation-web: -webkit-linear-gradient(to left, #666666 0%, #B3B3B3 100%);
  --bg-gradation: linear-gradient(to left, #666666 0%, #B3B3B3 100%);

  --txt-color: #fff;
  --txt-color-strong: #BA000D;
  --border-color: #707070;
  --btn-color: #BC000E;
  
  --box-bg-color: #272727;
  --dt-bg-color: #404040;

  --w-container: 1024px;
  --w-container-inner: 800px;
  --w-image: 520px;
  --gutter: 1.5rem;

  --transition: all .2s ease;

  --font-goshic: "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", sans-serif;
  --font-times: 'Times New Roman', Times, 'Lusitana', serif;
}

html {
  font-size: 62.5%;
}

body {
  font-size: 1.6rem;
  font-family: var(--font-goshic);
}

/* helper */
.-center {
  text-align: center;
}

@media (max-width: 768px) { .-pc { display: none; } }
@media (min-width: 769px) { .-sp { display: none; } }

.hero img {
  margin: 0 auto;
  width: 100%;
}

.section-wrapper {
  background: var(--bg-default);
  color: var(--txt-color);
  padding: 9rem 0 5rem;
}

.section-wrapper.-gray {
  background: var(--bg-gradation-moz);
  background: var(--bg-gradation-web);
  background: var(--bg-gradation);
}

.section-container {
  max-width: var(--w-container);
  padding: 0 var(--gutter);
  margin: 0 auto;
}

.section-container.-inner {
  max-width: var(--w-container-inner);
}

.section-lead {
  color: var(--txt-color-strong);
  font-size: 2.9rem;
  font-weight: bold;
  line-height: 2;
}

.section-lead span {
  background: var(--txt-color);
}

.section-text {
  font-size: 1.8rem;
  line-height: 2;
  margin: 3.6rem 0 0;
}

.section-text strong {
  border-bottom: 0.3rem solid var(--btn-color);
  font-size: 1.8rem;
}

.section-text a {
  color: inherit;
}

.hdg-2 {
  font-size: 3.6rem;
  margin: 0 auto 1.5rem;
  text-align: center;
}

.hdg-2-sub {
  font-size: 1.9rem;
  font-family: var(--font-times);
  margin: 0 auto 6rem;
  text-align: center;
}

.button-wrap {
  margin: 4rem auto 0;
  max-width: 60rem;
}

.button {
  border: 1rem solid var(--btn-color);
  background: var(--btn-color);
  color: inherit;
  display: block;
  font-weight: bold;
  padding: 1.2rem;
  text-align: center;
}

.button:not(:hover) {
  text-decoration: none;
}

.image-wrap {
  margin: 4.5rem auto 0;
}

.image-wrap img {
  height: auto;
  max-width: 100%;
}

.image-wrap.-medium {
  max-width: var(--w-image);
}

/* modules */

.profile-box {
  background: var(--box-bg-color);
  display: flex;
}

.profile-box .image {
  flex: 0 0 36rem;
  padding: 0 0 0 2rem;
}

.profile-box .image img {
  display: block;
  width: 100%;
  height: auto;
}

.profile-box .content {
  flex: 0 1 calc(100% - 36rem);
  padding: 3rem;
}

.profile-box .profile {
  position: relative;
  padding: 0 0 1.5rem;
  margin: 0 0 1.5rem;
}

.profile-box .profile:after {
  background-color: var(--txt-color);
  content: '';
  display: block;
  height: 0.3rem;
  width: 5.8rem;
  position: absolute;
  bottom: 0;
  left: 0;
}

.bg_lightblue {
  background-color: var(--lightgray);
}

.profile-box .profile .name {
  display: inline-block;
  font-size: 2.8rem;
  font-weight: bold;
  vertical-align: baseline;
}

.profile-box .profile .business {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: bold;
  padding: 0 0 0 3rem;
  vertical-align: baseline;
}

.profile-box .content .text {
  font-size: 1.4rem;
  line-height: 2;
}

.contents_anchor_area {
    padding: 40px 0;
}

.curriculum-info {
  display: flex;
}

.curriculum-info-schedule {
  flex: 0 1 36.8rem;
}

.curriculum-info-index {
  flex: 1 1 calc(100% - 36.8rem);
  padding: 0 0 0 1.5rem;
}


.info-table-wrapper {
  background: var(--box-bg-color);
  padding: 4rem;
}

.info-table {
  border: 0.1rem solid var(--border-color);
  font-size: 1.4rem;
  padding: 1rem 1rem 0;
}

.info-table.-dark {
  border: none;
  padding: 0;
}

.info-table.-dark dt {
  font-size: 1.8rem;
  padding: 1.2rem;
}

.info-table.-dark dd {
  background: var(--box-bg-color);
  font-size: 1.6rem;
  font-weight: bold;
  padding: 2rem;
}

.info-table dt {
  background: var(--dt-bg-color);
  font-weight: bold;
  padding: 0.6rem;
  text-align: center;
}

.info-table dd {
  padding: 1.2rem 0;
  line-height: 2;
}

.info-list {
  border-bottom: 0.1rem solid var(--border-color);
  list-style: none;
  height: 100%;
  padding: 0;
}

.info-list li {
  border-top: 0.1rem solid var(--border-color);
  padding: 1.5rem 0;
}

.info-list li .hdg {
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.8;
}

.info-list li .text {
  font-size: 1.4rem;
  padding: 1rem 0 0 1.6rem;
}

.card-box {
  display: flex;
  margin: 4rem 0 0;
}

.card-box + .card-box {
  margin: 2rem 0 0;
}

.card-box .image {
  flex: 0 1 45%;
}

.card-box .image img {
  display: block;
  height: auto;
  width: 100%;
}

.card-box .content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 0 1 55%;
  padding: 0 0 0 7rem;
}

.card-box .content .hdg {
  font-family: var(--font-times);
  font-size: 3.3rem;
}

.card-box .content .hdg.-normal {
  font-family: var(--font-goshic);
  font-size: 3.6rem;
  font-weight: bold;
}

.card-box .content .hdg strong {
  font-size: 2em;
  font-weight: normal;
  padding: 0 1rem;
}

.card-box .content .text {
  font-weight: bold;
  line-height: 2;
}

.qa-box {
  background: var(--dt-bg-color);
  border-radius: 0.4rem;
  padding: 3rem 2rem;
}

.qa-box .question {
  font-size: 1.8rem;
  font-weight: bold;
  margin: 0 0 2rem;
}

.qa-box .answer {
  font-size: 1.8rem;
  line-height: 2;
}

.qa-box .answer strong {
  border-bottom: 0.3rem solid var(--btn-color);
  font-size: 2.2rem;
  font-weight: bold;
}

.qa-box + .qa-box {
  margin: 4rem 0 0;
}

#introduce.section-wrapper {
  padding: 5rem 0;
}

#sponsore.section-wrapper {
  background: url('../images/img-bg-sponsor.jpg') center no-repeat;
  background-size: cover;
  height: 60rem;
}

#form.section-wrapper {
  padding-bottom: 12rem;
}

#form .lead {
  font-size: 2rem;
  line-height: 1.8;
  text-align: center;
}

#form .title {
  font-size: 4rem;
  font-weight: bold;
  text-align: center;
  margin: 2rem 0 0;
}

#form .title span {
  border-bottom: 0.3rem solid var(--txt-color-strong);
}

#form .fee {
  font-size: 1.6rem;
  text-align: center;
  margin: 2rem 0 0;
}

#form .button-wrap {
  display: flex;
  justify-content: center;
  max-width: none;
}

#form .button-wrap .button {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 1 35rem;
  font-size: 2rem;
  margin: 0 1.5rem;
  padding: 2rem 1rem;
}
#form .button-wrap .button.-nega {
  background: transparent;
  border: 0.1rem solid var(--txt-color);
}

#conversion {
  background: rgba(255, 255, 255, 0.7);
  padding: 1rem 1.5rem;
  position: fixed;
  bottom: 0;
  width: 100%;
}

#conversion .button {
  color: var(--txt-color);
  max-width: 60rem;
  margin: 0 auto;
}

/* enabled hover device */
@media (hover: hover) {
  .button:hover {
    -webkit-transition: var(--transition);
    transition: var(--transition);
    filter: brightness(1.2);
  }
  #form .button.-nega:hover {
    background: var(--txt-color);
    color: #000;
  }
}

@media (max-width: 768px) {
  .section-wrapper {
    padding: 4rem 0 3rem;
  }
  .section-lead {
    font-size: 1.8rem;
  }

  .section-text {
    font-size: 1.4rem;
    margin: 2.4rem 0 0;
  }

  .section-text strong {
    font-size: 1.6rem;
  }

  .hdg-2 {
    font-size: 1.8rem;
  }

  .hdg-2-sub {
    font-size: 1.6rem;
    margin: 0 auto 3rem;
  }

  .profile-box {
    display: block;
  }

  .profile-box .image {
    padding: 0;
  }

  .profile-box .content {
    padding: 2rem;
  }

  .profile-box .profile .name {
    font-size: 1.6rem;
  }

  .profile-box .content .text {
    font-size: 1.2rem;
  }

  .curriculum-info {
    display: block;
  }

  .info-table-wrapper {
    padding: 1.5rem;
  }

  .curriculum-info-index {
    padding: 0;
  }

  .card-box {
    display: block;
  }

  .card-box + .card-box {
    margin: 3.2rem 0 0;
  }

  .card-box .content {
    padding: 0;
    margin: 1rem 0 0;
  }

  .card-box .content .hdg {
    font-size: 2rem;
  }

  .card-box .content .hdg.-normal {
    font-size: 2rem;
  }

  .card-box .content .hdg strong {
    font-size: 1.5em;
    padding: 0 0.4rem;
  }

  .card-box .content .text {
    font-size: 1.4rem;
  }

  .qa-box {
    padding: 2rem 1.5rem;
  }

  .qa-box + .qa-box {
    margin: 2rem 0 0;
  }

  .qa-box .question {
    font-size: 1.6rem;
    margin: 0 0 1.6rem;
  }

  .qa-box .answer {
    font-size: 1.4rem;
  }

  .qa-box .answer strong {
    font-size: 1.6rem;
  }

  .info-list {
    height: auto;
  }

  .info-table.-dark dt {
    font-size: 1.6rem;
    padding: 1rem;
  }
  
  .info-table.-dark dd {
    font-size: 1.4rem;
    padding: 1.5rem;
  }

  #sponsore.section-wrapper {
    min-height: 50rem;
  }

  #form .lead {
    font-size: 1.2rem;
  }
  
  #form .title {
    font-size: 2.8rem;
    margin: 1.2rem 0 0;
  }
  
  #form .fee {
    font-size: 1.2rem;
    margin: 2rem 0 0;
  }
  
  #form .button-wrap {
    display: block;
  }
  
  #form .button-wrap .button {
    font-size: 1.6rem;
    margin: 1.8rem 0;
  }
}