@charset "UTF-8";
.pc {
  display: block; }
  @media screen and (max-width: 1109px) {
    .pc {
      display: none; } }

.sp {
  display: none; }
  @media screen and (max-width: 1109px) {
    .sp {
      display: block; } }

@media screen and (max-width: 1109px) {
  body {
    -webkit-text-size-adjust: 100%; }

  input, textarea {
    border-radius: 0;
    -webkit-appearance: none; }

  input[type=radio] {
    -webkit-appearance: radio; }

  input[type=checkbox] {
    -webkit-appearance: checkbox; } }
@media screen and (max-width: 767px) {
  .spBlock {
    display: block; } }
/* =======================================

	Browser Reset CSS
	Last Up Date 19/04/01

========================================== */
body, div, dl, dt, dd, ul, ol, li,
h1, h2, h3, h4, h5, h6,
pre, code, form, fieldset, legend,
p, blockquote, table, th, td, figure {
  margin: 0;
  padding: 0; }

html, body {
  color: #000000; }

body {
  font: 14px/1 -apple-system, BlinkMacSystemFont, "Helvetica Neue", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; }

* html body {
  font-size: small; }

*:first-child + html body {
  font-size: small; }

a {
  outline: none;
  color: #000000;
  text-decoration: none;
  backface-visibility: hidden; }

.hover a:hover {
  text-decoration: underline; }
  .hover a:hover img.scale {
    -webkit-transform: scale(1.1);
    -moz-transform: scale(1.1);
    -o-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1); }

.trans {
  transition: all 0.5s ease 0s;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -o-transition: all 0.5s ease; }

img {
  border: 0;
  vertical-align: top; }

h1, h2, h3, h4, h5, h6 {
  clear: both;
  font-size: 100%;
  font-weight: normal; }

ul, dl, ol {
  text-indent: 0; }

li {
  list-style: none; }

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal; }

sup {
  vertical-align: text-top; }

sub {
  vertical-align: text-bottom; }

input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit; }

* html input, * html textarea, * html select {
  font-size: 100%; }

*:first-child + html + input, *:first-child html + textarea, *:first-child + html select {
  font-size: 100%; }

table {
  border-collapse: collapse;
  border-spacing: 0;
  font-size: inherit; }

th, td {
  text-align: left;
  vertical-align: top; }

caption {
  text-align: left; }

pre, code, kbd, samp, tt {
  font-family: monospace; }

* html pre, * html code, * html kbd, * html samp, * html tt {
  font-size: 100%;
  line-height: 100%; }

*:first-child + html pre, *:first-child html + code, *:first-child html + kbd, *:first-child + html + samp, *:first-child + html tt {
  font-size: 108%;
  line-height: 100%; }

input, select, textarea {
  font-size: 100%;
  font-family: Verdana, Helvetica, sans-serif; }

.clear {
  clear: both; }

/*-- clearfix --*/
.clearfix:after {
  content: "";
  display: block;
  clear: both; }

/* =======================================

	Structure CSS

========================================== */
/* =======================================

	Text Decorations CSS

========================================== */
/* =======================================

	Header CSS

========================================== */
#globalHeader {
  height: 114px;
  box-sizing: border-box;
  padding: 36px 0 0 36px;
  position: relative; }
  @media screen and (max-width: 1109px) {
    #globalHeader {
      padding: 24px 0 0 20px;
      height: 80px; } }

#site-title {
  max-width: 389px; }
  @media screen and (max-width: 1109px) {
    #site-title {
      width: 213px; } }
  #site-title img {
    width: 100%;
    height: auto; }

@media screen and (max-width: 1109px) {
  #menu {
    width: 43px;
    height: 43px;
    position: absolute;
    cursor: pointer;
    z-index: 30;
    top: 20px;
    right: 20px;
    background-color: #51245F; }
    #menu .bar {
      display: inline-block;
      width: 20px;
      height: 2px;
      left: 12px;
      background-color: #ffffff;
      position: absolute;
      transition: .15s ease-in-out; }

  #bar01 {
    top: 12px; }
    .active #bar01 {
      top: 20px;
      transform: rotate(45deg); }

  #bar02 {
    top: 20px; }
    .active #bar02 {
      width: 0; }

  #bar03 {
    top: 28px; }
    .active #bar03 {
      top: 20px;
      transform: rotate(-45deg); } }
#globalNavi {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  flex-direction: column-reverse; }
  @media screen and (max-width: 1109px) {
    #globalNavi {
      display: none;
      right: inherit;
      top: 60px;
      left: 20px;
      z-index: 10;
      width: calc(100% - 40px);
      box-sizing: border-box;
      border-width: 20px;
      border-style: solid;
      border-color: #51245f;
      padding: 30px 20px;
      flex-direction: column;
      background-color: #ffffff; } }

.naviText {
  display: flex;
  font-size: 1.2vw;
  font-weight: bold; }
  @media screen and (max-width: 1109px) {
    .naviText {
      font-size: 1.6vw;
      justify-content: center; } }
  @media screen and (max-width: 767px) {
    .naviText {
      font-size: 16px;
      justify-content: flex-start;
      flex-direction: column; } }
  .naviText li {
    margin: 0 0 0 2vw; }
    .naviText li a {
      position: relative;
      display: inline-block;
      text-decoration: none; }
      .naviText li a::after {
        position: absolute;
        bottom: -6px;
        left: 0;
        content: '';
        width: 100%;
        height: 2px;
        background: #333;
        transform: scale(0, 1);
        transform-origin: center top;
        transition: transform .3s; }
      .naviText li a:hover {
        text-decoration: none; }
      .naviText li a:hover::after {
        transform: scale(1, 1); }
    .naviText li:first-child {
      margin-left: 0; }
    @media screen and (max-width: 767px) {
      .naviText li {
        margin: 0; }
        .naviText li a {
          display: block;
          border-width: 1px 0 0 0;
          border-style: solid;
          border-color: #e4e4e4;
          padding: 16px 0; }
          .naviText li a:last-child {
            border-width: 1px 0 1px 0; } }

.naviBtn {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 16px 0; }
  @media screen and (max-width: 1109px) {
    .naviBtn {
      margin: 30px 0 0 0;
      justify-content: center; } }
  @media screen and (max-width: 767px) {
    .naviBtn {
      flex-direction: column; } }
  .naviBtn li {
    margin: 0 0 0 6px; }
    .naviBtn li:first-child {
      margin-left: 0; }
    @media screen and (max-width: 767px) {
      .naviBtn li {
        margin: 0; }
        .naviBtn li:first-child {
          margin-bottom: 10px; } }
    .naviBtn li a {
      display: flex;
      align-items: center;
      background-color: #51245f;
      color: #ffffff;
      width: 160px;
      height: 36px;
      font-size: 14px;
      font-weight: bold;
      box-sizing: border-box;
      padding: 0 0 0 18px;
      border-radius: 18px;
      background-repeat: no-repeat; }
      .naviBtn li a img {
        display: inline-block;
        margin: 0 12px 0 0; }
      .naviBtn li a.btnInquiry img {
        width: 24px;
        height: auto; }
      .naviBtn li a.btnJoin img {
        width: 21px;
        height: auto;
        margin-top: -2px; }
      .naviBtn li a:hover {
        text-decoration: none;
        opacity: 0.7; }
      @media screen and (max-width: 1109px) {
        .naviBtn li a {
          width: 220px;
          justify-content: center;
          padding: 0; } }
      @media screen and (max-width: 767px) {
        .naviBtn li a {
          margin: 0 auto; } }

/* =======================================

	Footer CSS

========================================== */
#globalFooter {
  padding: 28px 0;
  text-align: center; }
  #globalFooter p {
    font-size: 12px;
    color: #8B8B8B;
    margin: 4px 0 0 0; }

.globalFooter__nav li {
  display: inline-block;
  margin: 0 20px 20px 20px; }
  .globalFooter__nav li a {
    background-image: url("../img/common/ico_arrow_right@2x.png");
    background-repeat: no-repeat;
    background-size: 12px 12px;
    display: inline-block;
    padding: 0 0 0 20px; }
    .globalFooter__nav li a img {
      display: inline-block;
      margin: 2px 0 0 5px; }
    .globalFooter__nav li a:hover {
      text-decoration: underline; }

/* =======================================

	共通

========================================== */
.btnPurple, .btnWhite {
  display: flex;
  width: 245px;
  height: 50px;
  border-radius: 25px;
  align-items: center;
  justify-content: center;
  background-color: #51245F;
  color: #ffffff;
  font-size: 14px;
  margin: 0 auto; }
  .btnPurple:hover, .btnWhite:hover {
    text-decoration: none !important;
    opacity: 0.7; }

.btnWhite {
  background-color: #ffffff;
  color: #666666; }

.boxColumn2 {
  display: flex;
  flex-wrap: wrap; }
  .boxColumn2 .boxColumn2__inner {
    width: 48%;
    margin: 0 4% 30px 0; }
    .boxColumn2 .boxColumn2__inner:nth-child(2n) {
      margin-right: 0; }
    @media screen and (max-width: 767px) {
      .boxColumn2 .boxColumn2__inner {
        width: 100%;
        margin: 0 0 30px 0; } }

/* =======================================

	トップページ

========================================== */
.boxHomeMain {
  height: calc(100vh - 114px);
  position: relative;
  overflow: hidden; }
  .boxHomeMain::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-image: url("../img/home/img_over.png");
    background-size: cover;
    z-index: 2; }
  @media screen and (max-width: 1109px) {
    .boxHomeMain {
      height: calc(100vh - 80px);
      background-image: url("../img/home/bg_main@2x.jpg");
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center bottom; } }
  @media screen and (max-width: 767px) {
    .boxHomeMain {
      background-image: url("../img/home/bg_main@2x_sp.jpg"); } }
  .boxHomeMain video {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    top: 0;
    left: 0;
    z-index: -100; }
    @media screen and (max-width: 1109px) {
      .boxHomeMain video {
        display: none; } }

.boxHomeMain__text {
  position: relative;
  z-index: 3;
  padding: 20vh 0 0 36px; }
  .boxHomeMain__text h1 img {
    width: 45vw;
    max-width: 526px;
    height: auto; }
    @media screen and (max-width: 1109px) {
      .boxHomeMain__text h1 img {
        width: 70vw; } }
    @media screen and (max-width: 767px) {
      .boxHomeMain__text h1 img {
        width: calc(100vw - 72px); } }
  .boxHomeMain__text h1 span {
    display: block;
    line-height: 140%;
    margin: 3vh 0 5vh 0;
    color: #ffffff;
    font-weight: bold;
    font-size: 1.8vw; }
    @media screen and (max-width: 1109px) {
      .boxHomeMain__text h1 span {
        font-size: 3vw; } }
    @media screen and (max-width: 767px) {
      .boxHomeMain__text h1 span {
        font-size: 4.5vw; } }
  .boxHomeMain__text .btnPurple, .boxHomeMain__text .btnWhite {
    font-size: 16px;
    font-weight: bold;
    margin: 0; }

.boxHomeNews {
  margin: 60px auto;
  max-width: 750px;
  box-sizing: border-box; }
  @media screen and (max-width: 1109px) {
    .boxHomeNews {
      padding: 0 20px; } }

.boxHomeTitle, .boxHomeTitle_color_white {
  text-align: center;
  margin: 0 0 30px 0;
  padding: 0 0 20px 0;
  position: relative; }
  .boxHomeTitle::after, .boxHomeTitle_color_white::after {
    content: "";
    width: 55px;
    height: 6px;
    background-color: #51245f;
    display: block;
    position: absolute;
    bottom: 0;
    left: 50%;
    margin-left: -27.5px; }
  .boxHomeTitle h2, .boxHomeTitle_color_white h2 {
    font-size: 29px;
    line-height: 130%; }
  .boxHomeTitle span, .boxHomeTitle_color_white span {
    display: block;
    font-size: 16px;
    margin: 10px 0 0 0;
    line-height: 130%; }

.boxHomeTitle_color_white {
  color: #ffffff; }
  .boxHomeTitle_color_white::after {
    background-color: #ffffff; }

.boxHomeNews__list {
  margin: 0 0 40px 0; }
  .boxHomeNews__list dl {
    margin: 0 0 20px 0;
    display: flex;
    justify-content: space-between;
    line-height: 130%; }
    @media screen and (max-width: 767px) {
      .boxHomeNews__list dl {
        flex-direction: column; } }
    .boxHomeNews__list dl dt {
      width: 170px;
      display: flex;
      justify-content: space-between;
      align-items: center; }
      @media screen and (max-width: 767px) {
        .boxHomeNews__list dl dt {
          justify-content: flex-start;
          width: 100%;
          margin: 0 0 8px 0; } }
      .boxHomeNews__list dl dt time {
        display: inline-block; }
      .boxHomeNews__list dl dt a {
        min-width: 76px;
        height: 24px;
        box-sizing: border-box;
        justify-content: center;
        display: flex;
        align-items: center;
        border-width: 1px;
        border-style: solid;
        border-color: #707070; }
        .boxHomeNews__list dl dt a:hover {
          text-decoration: none;
          opacity: 0.7; }
        @media screen and (max-width: 767px) {
          .boxHomeNews__list dl dt a {
            width: 76px;
            margin-left: 15px; } }
    .boxHomeNews__list dl dd {
      width: calc(100% - 200px);
      font-size: 16px; }
      @media screen and (max-width: 767px) {
        .boxHomeNews__list dl dd {
          width: 100%; } }

.boxHomeBg, .boxHomeBg_color_reverse {
  position: relative; }
  .boxHomeBg::before, .boxHomeBg_color_reverse::before {
    content: "";
    background-color: #1D0D24;
    width: 50%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1; }
    @media screen and (max-width: 767px) {
      .boxHomeBg::before, .boxHomeBg_color_reverse::before {
        display: none; } }
  .boxHomeBg::after, .boxHomeBg_color_reverse::after {
    content: "";
    background-color: #060E1C;
    width: 50%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1; }
    .reverse .boxHomeBg::after, .reverse .boxHomeBg_color_reverse::after {
      background-color: #1D0D24; }
    @media screen and (max-width: 767px) {
      .boxHomeBg::after, .boxHomeBg_color_reverse::after {
        display: none; } }

.boxHomeBg_color_reverse::before {
  background-color: #060E1C; }
.boxHomeBg_color_reverse::after {
  background-color: #1D0D24; }

@media screen and (max-width: 767px) {
  .bgHomeLight {
    background-color: #1D0D24;
    padding: 50px 20px; } }

@media screen and (max-width: 767px) {
  .bgHomeDark {
    background-color: #060E1C;
    padding: 50px 20px; } }

.boxHomeBg__inner {
  padding: 60px 0 30px 0;
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 2; }
  @media screen and (max-width: 1100px) {
    .boxHomeBg__inner {
      margin: 0 20px; } }
  @media screen and (max-width: 767px) {
    .boxHomeBg__inner {
      margin: 0;
      padding: 0; }
      .boxHomeBg__inner .boxColumn2__inner {
        margin-bottom: 0; } }

.boxHomeExample {
  color: #ffffff; }
  .boxHomeExample figure {
    margin: 0 0 30px 0; }
    .boxHomeExample figure img {
      width: 100%;
      height: auto; }
  .boxHomeExample dl {
    line-height: 180%; }
    .boxHomeExample dl dt {
      font-size: 18px;
      margin: 0 0 20px 0; }
    @media screen and (max-width: 767px) {
      .boxHomeExample dl dd {
        margin: 0 0 20px 0; } }

.btnAlign {
  padding-bottom: 80px;
  position: relative; }
  @media screen and (max-width: 767px) {
    .btnAlign {
      padding-bottom: 50px; } }
  .btnAlign .btnWhite,
  .btnAlign .btnPurple,
  .btnAlign .btnWhite {
    position: absolute;
    bottom: 0;
    left: 50%;
    margin-left: -122.5px; }
    @media screen and (max-width: 767px) {
      .btnAlign .btnWhite,
      .btnAlign .btnPurple,
      .btnAlign .btnWhite {
        position: relative;
        left: 0;
        margin-left: auto; } }

.boxHomeEvent section {
  color: #ffffff; }
  .boxHomeEvent section:nth-child(2) {
    margin-bottom: 10px; }
  .boxHomeEvent section h3 {
    font-size: 20px;
    line-height: 130%;
    margin: 0 0 20px 0; }
  .boxHomeEvent section table {
    font-size: 16px; }
    @media screen and (max-width: 1109px) {
      .boxHomeEvent section table {
        display: block; }
        .boxHomeEvent section table thead, .boxHomeEvent section table tbody, .boxHomeEvent section table th, .boxHomeEvent section table td {
          display: block; }
        .boxHomeEvent section table tr:nth-child(n + 3) {
          display: none; } }
    .boxHomeEvent section table th {
      white-space: nowrap;
      padding: 0 18px 18px 0;
      line-height: 160%;
      vertical-align: top; }
      @media screen and (max-width: 1109px) {
        .boxHomeEvent section table th {
          padding: 0 0 5px 0; } }
      .boxHomeEvent section table th time {
        display: inline-block;
        margin: 0 0 0 5px; }
      .boxHomeEvent section table th .cat {
        display: inline-block;
        text-align: center;
        background-color: #FFFFFF;
        width: 70px;
        height: 22px;
        box-sizing: border-box;
        color: #333333;
        font-size: 14px;
        margin: 0 0 0 10px; }
    .boxHomeEvent section table td {
      line-height: 160%;
      padding: 0 0 18px 0;
      vertical-align: top; }
      .boxHomeEvent section table td a {
        color: #ffffff; }

.boxHomeInquiry {
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }
  @media screen and (max-width: 1100px) {
    .boxHomeInquiry {
      margin: 0 20px; } }
  @media screen and (max-width: 767px) {
    .boxHomeInquiry {
      padding: 40px 0; } }

.boxHomeInquiry__text {
  width: 48%; }
  .boxHomeInquiry__text h2 {
    font-size: 24px;
    line-height: 130%;
    margin: 0 0 24px 0; }
    @media screen and (max-width: 767px) {
      .boxHomeInquiry__text h2 {
        text-align: center; } }
  .boxHomeInquiry__text p {
    line-height: 180%;
    font-size: 16px; }
  @media screen and (max-width: 767px) {
    .boxHomeInquiry__text {
      width: 100%;
      margin: 0 0 20px 0; } }

.boxHomeInquiry__btn {
  width: 48%;
  text-align: center; }
  .boxHomeInquiry__btn li {
    margin: 0 0 10px 0; }
    .boxHomeInquiry__btn li:last-child {
      margin-bottom: 0; }
  @media screen and (max-width: 767px) {
    .boxHomeInquiry__btn {
      width: 100%; } }

.textHome01 {
  text-align: center;
  color: #ffffff;
  font-size: 16px;
  line-height: 180%; }
  @media screen and (max-width: 767px) {
    .textHome01 {
      margin: 0 0 20px 0; } }

.boxHomeBnr {
  background-color: #f7f7f7;
  padding: 48px 0; }
  @media screen and (max-width: 767px) {
    .boxHomeBnr {
      padding: 48px 0 36px 0; } }
  .boxHomeBnr ul {
    display: flex;
    max-width: 1100px;
    margin: 0 auto;
    flex-wrap: wrap; }
    @media screen and (max-width: 1100px) {
      .boxHomeBnr ul {
        margin: 0 20px; } }
    .boxHomeBnr ul li {
      width: 16.8%;
      margin: 0 4% 0 0; }
      .boxHomeBnr ul li:last-child {
        margin-right: 0; }
      .boxHomeBnr ul li img {
        width: 100%;
        height: auto; }
      .boxHomeBnr ul li a:hover {
        opacity: 0.7; }
      @media screen and (max-width: 767px) {
        .boxHomeBnr ul li {
          width: 48%;
          margin: 0 4% 12px 0; }
          .boxHomeBnr ul li:nth-child(2n) {
            margin-right: 0; } }
