@charset "utf-8";

/*==========================================
 font
===========================================*/
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Noto+Serif+JP:wght@200..900&display=swap');
html {
  font-family: "Noto Serif JP", serif;
  font-size: 62.5%;
  font-weight: 400;
  color: #000000;
  letter-spacing: 0.1em;
}

/* link */
a:hover img {
  opacity: 0.8;
  filter: alpha(opacity=80);
}
a { outline: none; text-decoration: none; }
a:link    { color: #000000; text-decoration: none; }
a:visited { color: #000000; text-decoration: underline; }
a:hover   { color: #000000; text-decoration: underline; }
a:active  { color: #000000; text-decoration: underline; }

/* font-family: "EB Garamond", serif; */

/*==========================================
 body
===========================================*/

html {
  background: #092E3B;
  overflow: auto;
}
body {
  overflow: hidden;
	min-width: 1100px;
  -webkit-text-size-adjust: 100%;
}
@media only screen and (max-width: 767px) {
  body {
  	min-width: auto;
  }
}

/*==========================================
 画像切替
===========================================*/
/* PC、スマートフォン表示分岐 */
.pcView {
  display: block;
}
.spView {
  display: none;
}
@media only screen and (max-width: 767px) {
  .pcView {
    display: none;
  }
  .spView {
    display: block;
  }
}

/*==========================================
 フェードイン
===========================================*/
/* 上下フェード */
.fade_off {
  opacity: 0;
  transform: translateY(50px);
  filter: blur(5px);
  transition: all 1.5s ease;
}
.delay_1 { transition-delay: 0.5s; }
.delay_2 { transition-delay: 1.0s; }
.delay_3 { transition-delay: 1.5s; }

.fade_on {
  opacity: 1;
  transform: translateY(0px);
  filter: blur(0);
}


/*==========================================
 ヘッダーのスタイル
===========================================*/
header {
  position: fixed;
  z-index: 1000;
  width: 100%;
  height: 100px;
  background-color: rgba(255, 255, 255, 0);
  transition: all 0.3s ease;
}
header.h_Color_02 {
  background-color: rgba(255, 255, 255, 0.5);
}

header #header {
  position: relative;
  width: calc(100% - 90px);
  margin: 0 auto;
}
header #headerLogoArea {
  position: absolute;
  /* z-index: 500; */
  top: 34px;
}
header #headerLogoArea img {
  width: 224px;
  height: auto;
}
header #header_SpIcon {
  display: none;
}
@media only screen and (max-width: 767px) {
  header {
    height: 57px;
  }
  header #header {
    position: relative;
    width: calc(100% - 30px);
  }
  header #headerLogoArea {
    top: 16px;
  }
  header #headerLogoArea img {
    width: 138px;
    height: auto;
  }

  header #header_SpIcon {
    display: block;
    z-index: 500;
    position: absolute;
    right: 0;
    top: 25px;
    width: 20px;
    height: 11px;
    box-sizing: border-box;
  }
  header #header_SpIcon .menu-trigger,
  header #header_SpIcon .menu-trigger span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
  }
  header #header_SpIcon .menu-trigger {
    position: relative;
    width: 20px;
    height: 11px;
  }
  header #header_SpIcon .menu-trigger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #000000;
  }
  header #header_SpIcon .menu-trigger span:nth-of-type(1) {
    top: 0;
  }
  header #header_SpIcon .menu-trigger span:nth-of-type(2) {
    top: 5px;
  }
  header #header_SpIcon .menu-trigger span:nth-of-type(3) {
    bottom: 0;
  }

  header #header_SpIcon .menu-trigger.active span {
    background-color: #FFF;
  }
  header #header_SpIcon .menu-trigger.active span:nth-of-type(1) {
    transform: translateY(5px) rotate(-45deg);
  }
  header #header_SpIcon .menu-trigger.active span:nth-of-type(2) {
    opacity: 0;
  }
  header #header_SpIcon .menu-trigger.active span:nth-of-type(3) {
    transform: translateY(-5px) rotate(45deg);
  }
}


/*グローバルナビゲーション ////////////////////////////////// */
header #headerGlobalArea {
  position: absolute;
  right: 135px;
  top: 54px;
}
header #headerGlobalArea ul {
  width: 200px;
  display: flex;
  justify-content: space-between;
}
header #headerGlobalArea li a {
  font-size: 1.6rem;
  font-weight: 600;
  transition: all 0.3s ease;
}
header #headerGlobalArea li a:hover {
  color: #808080;
  text-decoration: none;
}

header #headerGlobalArea_Contact {
  position: absolute;
  right: 0;
  top: 56px;
}
header #headerGlobalArea_Contact::before {
  position: absolute;
  left: -30px;
  top: 50%;
  width: 1px;
  height: 23px;
  margin: -11px 0 0;
  background-color: #000;
  content: "";
}
header #headerGlobalArea_Contact a {
  font-size: 1.2rem;
  font-weight: 600;
  transition: all 0.3s ease;
}
header #headerGlobalArea_Contact a:hover {
  color: #808080;
  text-decoration: none;
}

header #headerNavi_Sp {
  display: none;
}
@media only screen and (max-width: 767px) {
  header #headerGlobalArea,
  header #headerGlobalArea_Contact {
    display: none;
  }
  header #headerNavi_Sp {
    position: absolute;
    right: -100vw;
    top: 0;
    display: block;
    width: 100%;
    height: 100vh;
    padding: 16px 15px;
    box-sizing: border-box;
    background-color: #092E3B;
  }
  header #headerNavi_Sp .headerNavi_Sp_Logo {
    width: 138px;
  }
  header #headerNavi_Sp .headerNavi_Sp_Logo img {
    width: 138px;
    height: auto;
  }

  header #headerNavi_Sp #headerNavi_Sp_Scroll {
    width: 100%;
    height: 95Vh;
    overflow: scroll;
  }
  header #headerNavi_Sp .headerNavi_Sp_Course {
    width: 315px;
    height: 82px;
    margin: 0 auto;
    padding: 47px 0 0;
  }
  header #headerNavi_Sp .headerNavi_Sp_Course a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    padding: 30px 0 0 30px;
    border: 1px solid #808080;
    box-sizing: border-box;
    font-size: 2.1rem;
    font-weight: 500;
    text-align: center;
    color: #FFF;
    transition: all 0.3s ease;
  }
  header #headerNavi_Sp .headerNavi_Sp_Course a:hover {
    text-decoration: none;
  }
  header #headerNavi_Sp .headerNavi_Sp_Course a::before {
    position: absolute;
    left: 53px;
    top: 50%;
    width: 29px;
    height: 34px;
    margin: -16px 0 0 0;
    background-image: url("../img/icon04.svg");
    background-size: contain;
    content: "";
  }
  header #headerNavi_Sp .headerNavi_Sp_Course a::after {
    position: absolute;
    right: 9px;
    top: 9px;
    width: 14px;
    height: 12px;
    background-image: url("../img/icon03.svg");
    background-size: cover;
    content: "";
  }
  header #headerNavi_Sp .headerNavi_Sp_Contact {
    width: 315px;
    margin: 0 auto;
    padding: 55px 0 0;
  }
  header #headerNavi_Sp .headerNavi_Sp_Contact h3 {
    font-size: 1.8rem;
    font-weight: 600;
    color: #FFF;
  }
  header #headerNavi_Sp .headerNavi_Sp_Contact .link01,
  header #headerNavi_Sp .headerNavi_Sp_Contact .link02 {
    width: 100%;
    padding: 37px 0 0;
  }
  header #headerNavi_Sp .headerNavi_Sp_Contact .link01 a,
  header #headerNavi_Sp .headerNavi_Sp_Contact .link02 a {
    position: relative;
    padding: 0 0 0 37px;
    font-size: 2.1rem;
    font-weight: 500;
    color: #FFF;
    transition: all 0.3s ease;
  }
  header #headerNavi_Sp .headerNavi_Sp_Contact .link02 a {
    font-family: "EB Garamond", serif;
    font-size: 2.7rem;
  }
  header #headerNavi_Sp .headerNavi_Sp_Contact .link01 a::before,
  header #headerNavi_Sp .headerNavi_Sp_Contact .link02 a:before {
    position: absolute;
    left: 0;
    top: 50%;
    background-size: cover;
    content: "";
  }
  header #headerNavi_Sp .headerNavi_Sp_Contact .link01 a::before {
    width: 22px;
    height: 14px;
    margin: -6px 0 0 0;
    background-image: url("../img/icon05.svg");
  }
  header #headerNavi_Sp .headerNavi_Sp_Contact .link02 a::before {
    width: 17px;
    height: 24px;
    margin: -11px 0 0 0;
    background-image: url("../img/icon06.svg");
  }
  header #headerNavi_Sp .headerNavi_Sp_Contact  .link01 a:hover,
  header #headerNavi_Sp .headerNavi_Sp_Contact  .link02 a:hover {
    text-decoration: none;
  }
  header #headerNavi_Sp .headerNavi_Sp_Navi {
    width: 315px;
    margin: 55px auto 0;
    padding: 55px 0 20px;
    border-top: 1px solid #808080;
    border-bottom: 1px solid #808080;
  }
  header #headerNavi_Sp .headerNavi_Sp_Navi ul {
    list-style-type: none;
  }
  header #headerNavi_Sp .headerNavi_Sp_Navi ul li {
    padding: 0 0 35px;
  }
  header #headerNavi_Sp .headerNavi_Sp_Navi ul li a {
    font-size: 2.2rem;
    font-weight: 500;
    color: #FFF;
  }
  header #headerNavi_Sp .headerNavi_Sp_Navi ul li a:hover {
    text-decoration: none;
  }
  header #headerNavi_Sp .headerNavi_Sp_Bottom {
    width: 315px;
    margin: 0 auto;
    padding: 50px 0 0;
  }
  header #headerNavi_Sp .headerNavi_Sp_Bottom h2 img {
    width: 188px;
    height: auto;
  }
  header #headerNavi_Sp .headerNavi_Sp_Bottom p {
    padding: 20px 0 0;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.4;
    color: #FFF;
  }
  header #headerNavi_Sp .headerNavi_Sp_Bottom small {
    display: block;
    width: 100%;
    margin: 20px 0 0;
    padding: 20px 0 100px;
    border-top: 1px solid #808080;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.4;
    color: #FFF;
  }
}

/*==========================================
 フッターのスタイル
===========================================*/
footer {
  width: 100%;
  min-height: 550px;
  padding: 70px 0 0;
  box-sizing: border-box;
  background-color: #092E3B;
}
footer #footerBody {
  position: relative;
  width: 1200px;
  margin: 0 auto;
}
footer #footerBody .footerLink {
  position: relative;
  width: 100%;
}
footer #footerBody .footerLink .footerLink_Course {
  width: 550px;
  height: 82px;
}
footer #footerBody .footerLink .footerLink_Course a {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 30px 0 0 30px;
  border: 1px solid #808080;
  box-sizing: border-box;
  font-size: 2.1rem;
  font-weight: 500;
  text-align: center;
  color: #FFF;
  transition: all 0.3s ease;
}
footer #footerBody .footerLink .footerLink_Course a::before {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 32px;
  height: 34px;
  margin: -16px 0 0 -110px;
  background-image: url("../img/icon04.svg");
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
}
footer #footerBody .footerLink .footerLink_Course a::after {
  position: absolute;
  right: 9px;
  top: 9px;
  width: 14px;
  height: 12px;
  background-image: url("../img/icon03.svg");
  background-size: cover;
  content: "";
}
footer #footerBody .footerLink .footerLink_Course a:hover {
  background-color: #10556E;
  text-decoration: none;
}

footer #footerBody .footerLink .footerLink_Contact {
  position: absolute;
  right: 0;
  top: 0;
  width: 535px;
  height: 82px;
  display: flex;
  justify-content: space-between;
}
footer #footerBody .footerLink .footerLink_Contact .column_L {
  position: relative;
  width: 224px;
  display: flex;
  align-items: center;
}
footer #footerBody .footerLink .footerLink_Contact .column_L ::before {
  position: absolute;
  right: 0;
  top: 0;
  width: 1px;
  height: 82px;
  background-color: #808080;
  content: "";
}
footer #footerBody .footerLink .footerLink_Contact .column_L h3 {
  font-size: 1.7rem;
  font-weight: 600;
  color: #FFF;
}
footer #footerBody .footerLink .footerLink_Contact .column_R {
  width: 260px;
  height: 82px;
}
footer #footerBody .footerLink .footerLink_Contact .column_R .link01,
footer #footerBody .footerLink .footerLink_Contact .column_R .link02 {
  width: 260px;
  height: 41px;
  display: flex;
  align-items: center;
}
footer #footerBody .footerLink .footerLink_Contact .column_R .link01 a,
footer #footerBody .footerLink .footerLink_Contact .column_R .link02 a {
  position: relative;
  padding: 0 0 0 37px;
  font-size: 2.1rem;
  font-weight: 500;
  color: #FFF;
  transition: all 0.3s ease;
}
footer #footerBody .footerLink .footerLink_Contact .column_R .link02 a {
  font-family: "EB Garamond", serif;
  font-size: 2.7rem;
}
footer #footerBody .footerLink .footerLink_Contact .column_R .link01 a::before,
footer #footerBody .footerLink .footerLink_Contact .column_R .link02 a:before {
  position: absolute;
  left: 0;
  top: 50%;
  background-size: cover;
  content: "";
}
footer #footerBody .footerLink .footerLink_Contact .column_R .link01 a::before {
  width: 22px;
  height: 14px;
  margin: -7px 0 0 0;
  background-image: url("../img/icon05.svg");
}
footer #footerBody .footerLink .footerLink_Contact .column_R .link02 a::before {
  width: 17px;
  height: 24px;
  margin: -12px 0 0 0;
  background-image: url("../img/icon06.svg");
}
footer #footerBody .footerLink .footerLink_Contact .column_R .link01 a:hover,
footer #footerBody .footerLink .footerLink_Contact .column_R .link02 a:hover {
  text-decoration: none;
  opacity: 0.7;
}

footer #footerBody .footerMain {
  width: 100%;
  margin: 70px 0 0;
  padding: 70px 0 0;
  border-top: 1px solid #808080;
}
footer #footerBody .footerMain h2 img {
  width: 255px;
  height: auto;
}
footer #footerBody .footerMain p {
  padding: 30px 0 0;
  font-size: 1.4rem;
  font-weight: 400;
  color: #FFF;
  line-height: 1.6;
}

footer #footerBody .footerNavi {
  position: absolute;
  right: 0;
  top: 225px;
}
footer #footerBody .footerNavi ul {
  width: 205px;
  display: flex;
  justify-content: space-between;
}
footer #footerBody .footerNavi ul li a {
  font-size: 1.6rem;
  font-weight: 600;
  color: #FFF;
  transition: all 0.3s ease;
}
footer #footerBody .footerNavi ul li a:hover {
  text-decoration: none;
  opacity: 0.7;
}

footer #footerBody small {
  display: block;
  padding: 80px 0 0;
  font-size: 1.2rem;
  font-weight: 400;
  color: #FFF;
}
@media only screen and (max-width: 767px) {
  footer {
    min-height: auto;
    padding: 50px 0 0;
  }
  footer #footerBody {
    width: calc(100% - 40px);
  }
  footer #footerBody .footerLink .footerLink_Course {
    width: 100%;
  }
  footer #footerBody .footerLink .footerLink_Course a::before {
    left: 50%;
    width: 32px;
    height: 34px;
    margin: -16px 0 0 -105px;
    background-size: contain;
    background-repeat: no-repeat;
  }
  footer #footerBody .footerLink .footerLink_Course a:hover {
    background-color: #092E3B;
    text-decoration: none;
  }

  footer #footerBody .footerLink .footerLink_Contact {
    position: static;
    width: 100%;
    height: auto;
    display: block;
  }
  footer #footerBody .footerLink .footerLink_Contact .column_L {
    width: 100%;
    padding: 55px 0 0;
  }
  footer #footerBody .footerLink .footerLink_Contact .column_L ::before {
    display: none;
  }
  footer #footerBody .footerLink .footerLink_Contact .column_L h3 {
    font-size: 1.8rem;
  }
  footer #footerBody .footerLink .footerLink_Contact .column_R {
    width: 100%;
    height: auto;
  }
  footer #footerBody .footerLink .footerLink_Contact .column_R .link01,
  footer #footerBody .footerLink .footerLink_Contact .column_R .link02 {
    width: 100%;
    height: auto;
    padding: 37px 0 0;
  }
  footer #footerBody .footerMain {
    margin: 0;
    padding: 50px 0 0;
    border-top: none;
  }
  footer #footerBody .footerMain h2 img {
    width: 188px;
  }
  footer #footerBody .footerMain p {
    padding: 20px 0 0;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.4;
    color: #FFF;
  }


  footer #footerBody .footerNavi {
    position: static;
    width: 100%;
    margin: 55px auto 0;
    padding: 55px 0 20px;
    border-top: 1px solid #808080;
    border-bottom: 1px solid #808080;
  }
  footer #footerBody .footerNavi ul {
    list-style-type: none;
    display: block;
  }
  footer #footerBody .footerNavi ul li {
    padding: 0 0 35px;
  }
  footer #footerBody .footerNavi ul li a {
    font-size: 2.2rem;
    font-weight: 500;
    color: #FFF;
  }

  footer #footerBody small {
    display: block;
    width: 100%;
    margin: 20px 0 0;
    padding: 20px 0 40px;
    border-top: 1px solid #808080;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.4;
    color: #FFF;
  }
}


/*==========================================
 コンテンツのスタイル 共通
===========================================*/
#mainContents {
  min-height: 1000px;
  padding: 0;
}
@media only screen and (max-width: 767px) {
  #mainContents {
    min-height: 1000px;
  }
}

/*==========================================
 Top
===========================================*/
#mainContents .topMV {
  width: 100%;
  height: 100vh;
  position: relative;
  overflow: hidden;
  background-color: #000; /* 隙間から背景が見えないように */
}
#mainContents .backImgArea {
  width: 100%;
  height: 100vh;
  position: relative;
  overflow: hidden;
  background-color: #000; /* 隙間から背景が見えないように */
}
#mainContents .backImgArea .bx-wrapper {
  max-width: 100% !important;
  margin: 0 !important;
  -moz-box-shadow: none !important;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
  border: none !important;
  background: none !important;
}
#mainContents .backImgArea .bx-viewport {
  overflow:visible !important;
}
#mainContents .backImgArea .bkMv {
  position: relative;
  opacity: 0;
}
#mainContents .backImgArea .bkMv #bk01 {
  background-image: url("../img/top/top_mv01.jpg");
}
#mainContents .backImgArea .bkMv #bk02 {
  background-image: url("../img/top/top_mv02.jpg");
}
#mainContents .backImgArea .bkMv #bk03 {
  background-image: url("../img/top/top_mv03.jpg");
}
#mainContents .backImgArea .bkMv #bk04 {
  background-image: url("../img/top/top_mv04.jpg");
}
#mainContents .backImgArea .bkMv #bk05 {
  background-image: url("../img/top/top_mv05.jpg");
}
#mainContents .backImgArea .bkMv .bkImg {
  width: calc(100vw + 100px) !important;
  height: 100vh;
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
  animation: anim 8s linear;
}
@keyframes anim {
  0% {
  transform: translateX(0);
  }
  100% {
  transform: translateX(-100px);
  }
}
@media only screen and (max-width: 767px) {
  #mainContents .backImgArea .bkMv #bk01 {
    background-image: url("../img/top/top_mv01_sp.jpg");
  }
  #mainContents .backImgArea .bkMv #bk02 {
    background-image: url("../img/top/top_mv02_sp.jpg");
  }
  #mainContents .backImgArea .bkMv #bk03 {
    background-image: url("../img/top/top_mv03_sp.jpg");
  }
  #mainContents .backImgArea .bkMv #bk04 {
    background-image: url("../img/top/top_mv04_sp.jpg");
  }
  #mainContents .backImgArea .bkMv .bkImg {
    width: calc(100vw + 80px) !important;
    animation: anim_sp 8s linear;
  }
}
@keyframes anim_sp {
  0% {
  transform: translateX(0);
  }
  100% {
  transform: translateX(-80px);
  }
}


#mainContents .topLayout01 {
  width: 100%;
  padding: 80px 0 70px;
  background-color: #D1D6D9;
}
#mainContents .topLayout01_inner {
  width: 800px;
  margin: 0 auto;
}
#mainContents .topLayout01_inner .imgBox {
  width: 300px;
}
#mainContents .topLayout01_inner .imgBox img {
  width: 100%;
  height: auto;
}
#mainContents .topLayout01_inner h2 {
  padding: 60px 0 0;
  font-size: 2.6rem;
  font-weight: 600;
}
#mainContents .topLayout01_inner p {
  padding: 30px 0 70px;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.8;
}
#mainContents .topLayout01_inner .link01 {
  position: relative;
  width: 100%;
  height: 40px;
}
#mainContents .topLayout01_inner .link01 a {
  position: absolute;
  right: 0;
  top: 0;
  display: block;
  width: 150px;
  height: 40px;
  padding: 10px 0 0;
  box-sizing: border-box;
  border-bottom: 1px solid #000;
  font-size: 2.0rem;
  font-weight: 600;
  transition: all 0.3s ease;
}
#mainContents .topLayout01_inner .link01 a:hover {
  border-bottom: 1px solid #808080;
  text-decoration: none;
  color: #808080;
}
#mainContents .topLayout01_inner .link01 a::after {
  position: absolute;
  right: 0;
  top: 50%;
  width: 19px;
  height: 18px;
  margin: -8px 0 0;
  background-image: url("../img/icon01.svg");
  background-size: cover;
  content: "";
}
#mainContents .topLayout01_inner .link01 a:hover::after {
  opacity: 0.5;
}
@media only screen and (max-width: 767px) {
  #mainContents .topLayout01 {
    padding: 75px 0;
  }
  #mainContents .topLayout01_inner {
    width: calc(100% - 60px);
  }
  #mainContents .topLayout01_inner .imgBox {
    width: 207px;
  }
  #mainContents .topLayout01_inner h2 {
    padding: 45px 0 0;
    font-size: 2.2rem;
    line-height: 1.5;
  }
  #mainContents .topLayout01_inner p {
    padding: 25px 0;
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.8;
  }
  #mainContents .topLayout01_inner .link01 {
    position: relative;
    width: 100%;
    height: 33px;
  }
  #mainContents .topLayout01_inner .link01 a {
    width: 120px;
    height: 33px;
    padding: 8px 0 0;
    font-size: 1.6rem;
  }
  #mainContents .topLayout01_inner .link01 a::after {
    width: 16px;
    height: 15px;
    margin: -7px 0 0;
  }
  #mainContents .topLayout01_inner .link01 a:hover {
    border-bottom: 1px solid #000;
    text-decoration: none;
    color: #000;
  }
}

#mainContents .topLayout02 {
  position: relative;
  width: 100%;
  padding: 180px 0 0;
}
#mainContents .topLayout02 .titleBox {
  width: 1200px;
  margin: 0 auto;
}
#mainContents .topLayout02 .titleBox h3 {
  font-size: 3.2rem;
  font-weight: 600;
  color: #FFF;
}
#mainContents .topLayout02 .topSlide {
  width: 100%;
  padding: 40px 0 0;
}
#mainContents .topLayout02 .topSlideMv {
  display: block;
  opacity: 0;
  margin-left: 50%;
}
#mainContents .topLayout02 .topSlideMv img {
  margin-left: -450px; /* 900 / 2 */
  margin-right: 470px !important; /* 900 / 2 + 20 */
}
#mainContents .topLayout02 .bx-wrapper {
  margin: 0 auto !important;
  -moz-box-shadow: none !important;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
  border: none !important;
  background: none !important;
}
#mainContents .topLayout02 .bx-wrapper .bx-prev {
  left: 80px;
  background: url("../img/icon02.svg") 0 0 no-repeat !important;
  transform: rotate(180deg);
}
#mainContents .topLayout02 .bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover {
  background-position: 0 0 !important;
  opacity: 0.7;
}
#mainContents .topLayout02 .bx-wrapper .bx-next {
  right: 80px;
  background: url("../img/icon02.svg") 0 0 no-repeat !important;
}
#mainContents .topLayout02 .bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover {
  background-position: 0 0 !important;
  opacity: 0.7;
}
#mainContents .topLayout02 .bx-wrapper .bx-controls-direction a {
  top: 50% !important;
  margin-top: -22px !important;
  width: 44px !important;
  height: 44px !important;
}
#mainContents .topLayout02 .topSlideMv_Sp {
  display: none;
}

#mainContents .topLayout02 .topSlide_Text {
  position: absolute;
  left: 50%;
  top: 252px;
  width: 900px;
  height: 600px;
  margin: 0 0 0 -450px;
}
#mainContents .topLayout02 .topSlide_Text_inner {
  position: absolute;
  right: 30px;
  top: 270px;
  width: 300px;
}
#mainContents .topLayout02 .topSlide_Text_inner h4 {
  font-size: 2.4rem;
  font-weight: 600;
  color: #FFF;
}
#mainContents .topLayout02 .topSlide_Text_inner p {
  padding: 20px 0 0;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.8;
  color: #FFF;
}
#mainContents .topLayout02 .topSlide_Text_inner .link01 {
  width: 225px;
  height: 51px;
  padding: 40px 0 0;
}
#mainContents .topLayout02 .topSlide_Text_inner .link01 a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 16px 0 0;
  box-sizing: border-box;
  border: 1px solid #808080;
  background-color: #051921;
  font-size: 1.6rem;
  font-weight: 600;
  color: #FFF;
  text-align: center;
  transition: all 0.3s ease;
}
#mainContents .topLayout02 .topSlide_Text_inner .link01 a:hover {
  text-decoration: none;
  background-color: #0D4054;
}

@media only screen and (max-width: 767px) {
  #mainContents .topLayout02 {
    padding: 60px 0 0;
  }
  #mainContents .topLayout02 .titleBox {
    width: calc(100% - 60px);
  }
  #mainContents .topLayout02 .titleBox h3 {
    font-size: 2.4rem;
  }
  #mainContents .topLayout02 .topSlide {
    width: 100%;
    padding: 30px 0 0;
  }
  #mainContents .topLayout02 .topSlideMv {
    display: none;
  }
  #mainContents .topLayout02 .topSlideMv_Sp {
    display: block;
    opacity: 0;
    margin-left: 50%;
  }
  #mainContents .topLayout02 .topSlideMv_Sp img {
    margin-left: -133px; /* 266 / 2 */
    margin-right: 143px !important; /* 266 / 2 + 10 */
  }
  #mainContents .topLayout02 .bx-wrapper .bx-prev {
    left: 15px;
  }
  #mainContents .topLayout02 .bx-wrapper .bx-next {
    right: 15px;
  }
  #mainContents .topLayout02 .bx-wrapper .bx-controls-direction a {
    z-index: 0;
    margin-top: -10px !important;
    width: 21px !important;
    height: 20px !important;
    background-size: cover !important;
  }

  #mainContents .topLayout02 .topSlide_Text {
    position: static;
    width: calc(100% - 60px);
    height: auto;
    margin: 0 auto;
    padding: 40px 0 0;
  }
  #mainContents .topLayout02 .topSlide_Text_inner {
    position: static;
    width: 100%;
  }
  #mainContents .topLayout02 .topSlide_Text_inner h4 {
    font-size: 1.8rem;
  }
  #mainContents .topLayout02 .topSlide_Text_inner .link01 {
    width: 100%;
    padding: 30px 0 0;
  }
  #mainContents .topLayout02 .topSlide_Text_inner .link01 a:hover {
    text-decoration: none;
    background-color: #051921;
  }
}


#mainContents .topLayout03 {
  position: relative;
  width: 100%;
  padding: 120px 0 0;
}
#mainContents .topLayout03 .titleBox {
  width: 1200px;
  margin: 0 auto;
}
#mainContents .topLayout03 .titleBox h3 {
  font-size: 3.2rem;
  font-weight: 600;
  color: #FFF;
}
#mainContents .topLayout03 .topLayout03_Main {
  position: relative;
  width: 100%;
  margin: 40px 0 0;
}
#mainContents .topLayout03 .topLayout03_Main img {
  width: 100%;
  height: auto;
}

#mainContents .topLayout03 .topLayout03_Main .textBox {
  position: absolute;
  left: 50%;
  top: 0;
  width: 900px;
  height: 600px;
  margin: 0 0 0 -450px;
}
#mainContents .topLayout03 .topLayout03_Main .textBox_inner {
  position: absolute;
  right: 30px;
  top: 70px;
  width: 300px;
}
#mainContents .topLayout03 .topLayout03_Main .textBox_inner h4 {
  font-size: 2.4rem;
  font-weight: 600;
}
#mainContents .topLayout03 .topLayout03_Main .textBox_inner p {
  padding: 20px 0 0;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.8;
}
#mainContents .topLayout03 .topLayout03_Main .textBox_inner .link01 {
  width: 225px;
  height: 51px;
  padding: 40px 0 0;
}
#mainContents .topLayout03 .topLayout03_Main .textBox_inner .link01 a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 16px 0 0;
  box-sizing: border-box;
  border: 1px solid #808080;
  background-color: #051921;
  font-size: 1.6rem;
  font-weight: 600;
  color: #FFF;
  text-align: center;
  transition: all 0.3s ease;
}
#mainContents .topLayout03 .topLayout03_Main .textBox_inner .link01 a:hover {
  text-decoration: none;
  background-color: #0D4054;
}
@media only screen and (max-width: 767px) {
  #mainContents .topLayout03 {
    padding: 90px 0 0;
  }
  #mainContents .topLayout03 .titleBox {
    width: calc(100% - 60px);
    margin: 0 auto;
  }
  #mainContents .topLayout03 .titleBox h3 {
    font-size: 2.4rem;
  }
  #mainContents .topLayout03 .topLayout03_Main {
    margin: 30px 0 0;
  }
  #mainContents .topLayout03 .topLayout03_Main .textBox {
    position: static;
    width: calc(100% - 60px);
    height: auto;
    margin: 0 auto;
    padding: 40px 0 60px;
  }
  #mainContents .topLayout03 .topLayout03_Main .textBox_inner {
    position: static;
    width: 100%;
  }
  #mainContents .topLayout03 .topLayout03_Main .textBox_inner h4 {
    font-size: 1.8rem;
    color: #FFF;
  }
  #mainContents .topLayout03 .topLayout03_Main .textBox_inner p {
    color: #FFF;
  }
  #mainContents .topLayout03 .topLayout03_Main .textBox_inner .link01 {
    width: 100%;
    padding: 30px 0 0;
  }
  #mainContents .topLayout03 .topLayout03_Main .textBox_inner .link01 a:hover {
    text-decoration: none;
    background-color: #051921;
  }
}


#mainContents .topLayout04 {
  width: 100%;
  padding: 120px 0 170px;
}
#mainContents .topLayout04_inner {
  width: 1200px;
  margin: 0 auto;
}
#mainContents .topLayout04_inner h3 {
  font-size: 3.2rem;
  font-weight: 600;
  color: #FFF;
}
#mainContents .topLayout04_inner p {
  width: 740px;
  margin: 0 auto;
  padding: 130px 0 0;
  font-size: 2.2rem;
  font-weight: 600;
  color: #FFF;
  line-height: 2.6;
}
@media only screen and (max-width: 767px) {
  #mainContents .topLayout04 {
    padding: 90px 0 80px;
  }
  #mainContents .topLayout04_inner {
    width: calc(100% - 60px);
  }
  #mainContents .topLayout04_inner h3 {
    font-size: 2.3rem;
  }
  #mainContents .topLayout04_inner p {
    width: 100%;
    padding: 35px 0 0;
    font-size: 1.7rem;
    line-height: 2.2;
  }
}

#mainContents .topLayout05 {
  width: 100%;
  margin: -1px 0 0;
  padding: 110px 0;
  background-color: #D1D6D9;
}
#mainContents .topLayout05 p {
  font-family: "EB Garamond", serif;
  font-size: 2.9rem;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
}
#mainContents .topLayout05 h3 {
  padding: 20px 0 0;
  font-family: "EB Garamond", serif;
  font-size: 4.5rem;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
}
#mainContents .topLayout05 .link01 {
  width: 225px;
  height: 51px;
  margin: 0 auto;
  padding: 60px 0 0;
}
#mainContents .topLayout05 .link01 a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 16px 0 0;
  box-sizing: border-box;
  border: 1px solid #808080;
  background-color: #333333;
  font-size: 1.6rem;
  font-weight: 600;
  color: #FFF;
  text-align: center;
  transition: all 0.3s ease;
}
#mainContents .topLayout05 .link01 a:hover {
  text-decoration: none;
  background-color: #0D4054;
}
@media only screen and (max-width: 767px) {
  #mainContents .topLayout05 {
    padding: 60px 0;
  }
  #mainContents .topLayout05 p {
    font-size: 2.2rem;
  }
  #mainContents .topLayout05 h3 {
    padding: 20px 0 0;
    font-size: 3.2rem;
    line-height: 1.5;
  }
  #mainContents .topLayout05 .link01 {
    width: calc(100% - 40px);
    padding: 40px 0 0;
  }
  #mainContents .topLayout05 .link01 a:hover {
    text-decoration: none;
    background-color: #333333;
  }
}