@charset "utf-8";

/************************************************
	General settings
*************************************************/

* {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.fot-klee,
.fot-klee > *,
#splash_text .progressbar-text {
  font-family: "Klee One", cursive;
  font-style: normal;
  font-weight: 500;
}

.typeka,
.typeka > * {
  font-family: typeka, sans-serif;
  font-style: normal;
  font-weight: 400;
}

.fell,
.fell > *:not(.nof) {
  font-family: "IM Fell English SC", serif;
  font-style: normal;
  font-weight: 400;
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  line-height: 1.15;
  overflow-x: hidden;
  width: 100%;
}

body {
  position: relative;
}

.animation,
.animation a,
.animation *,
.animation::after,
.animation::before,
.toggle_title,
ul.sns-list-btn > li > a,
input[type="submit"].submit {
  transition-duration: 0.3s;
  transition-property: all;
}

.txt-center,
.has-text-align-center {
  text-align: center;
}

.embed-youtube {
  height: 0;
  margin: 1em auto;
  max-width: 100%;
  overflow: hidden;
  padding-bottom: 56.25%;
  position: relative;
}

.embed-map {
  height: 0;
  margin: 1.6em auto;
  max-width: 100%;
  overflow: hidden;
  padding-bottom: 56.25%;
  position: relative;
}

.embed-youtube iframe,
.embed-map iframe {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

iframe {
  vertical-align: bottom;
}

/****************************************
	Normalize
*****************************************/

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
section,
summary {
  display: block;
}

/* Remove default padding */
ul[class],
ol[class] {
  padding: 0;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
ul[class],
ol[class],
li,
figure,
figcaption,
blockquote,
dl,
dd {
  margin: 0;
}

/* Set core body defaults */
body {
  min-height: 100vh;
}

/* Safari用のハックは、Chromeに適用されないようにする */
@supports (-webkit-touch-callout: none) {
  body {
    /* Safari用のハック */
    height: -webkit-fill-available;
  }
}

/* Remove list styles on ul, ol elements with a class attribute */
ul[class],
ol[class] {
  list-style: none;
}

/* Make images easier to work with */
img {
  display: block;
  height: auto;
  max-width: 100%;
}

/* Natural flow and rhythm in articles by default */
article > * + * {
  margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

button {
  appearance: none;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
}

/* iOSでのデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"] {
  -webkit-appearance: button;
  appearance: button;
  border: none;
  border-radius: 0;
  -webkit-box-sizing: content-box;
  box-sizing: border-box;
  cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
  display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
  outline-offset: -2px;
}

/*メニューを開いた時スクロールを固定する*/
.scroll-prevent {
  height: 100%;
  position: fixed;
  /* overflow-y: scroll; */
  width: 100%;
}

/************************************************
	ローディング画面
*************************************************/
/* Loading背景画面設定　*/
#splash {
  background-color: #1b2120;
  color: #fff;
  height: 100%;
  position: fixed;
  text-align: center;
  width: 100%;
  z-index: 999;
}

.start.no-active {
  opacity: 0;
  visibility: hidden;
}

.start.is-active {
  opacity: 1;
  visibility: visible;
}

/************************************************
	Basic layout
*************************************************/
html {
  background-color: #1b2120;
  font-size: 15px;
}

div#wrapper {
  overflow-x: hidden;
}

body {
  letter-spacing: 0.024em;
  margin: 0;
  /* overflow-x: hidden; */
}

/* webフォントのちらつき対策 */
html {
  visibility: hidden;
}

@media all and (-ms-high-contrast: none) {
  html {
    visibility: visible;
  }
}

html.wf-active,
html.loading-delay {
  visibility: visible;
}
/* webフォントのちらつき対策 */

.widthMax {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

/*inview*/
.list-mv {
  /*overflow: hidden;*/
  position: relative;
}
.list-mv01 {
  opacity: 0;
  -webkit-transform: translate(0, 24px);
  transform: translate(0, 24px);
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
  -webkit-transition-delay: 160ms;
  transition-delay: 160ms;
}
.mv01 {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.list-mv02 {
  opacity: 0;
  -webkit-transition: 0.8s;
  transition: 0.8s;
}
.mv02 {
  opacity: 1;
}
.list-mv03 {
  transform: scale(1, 0);
  transition: 0.6s ease-out;
  transition-delay: 160ms;
}
.mv03 {
  transform: scale(1, 1);
}
.list-mv04 {
  transform: scale(0, 1);
  transition: 0.6s ease-out;
  transition-delay: 160ms;
}
.mv04 {
  transform: scale(1, 1);
}

.delay200 {
  transition-delay: 200ms;
}

.delay400 {
  transition-delay: 400ms;
}

.delay600 {
  transition-delay: 600ms;
}

.delay800 {
  transition-delay: 800ms;
}

p + h2:not(.no-margin),
table + h2:not(.no-margin),
img + h2:not(.no-margin),
figure + h2:not(.no-margin),
div + h2:not(.no-margin),
ul + h2:not(.no-margin),
pre + h2:not(.no-margin),
blockquote + h2:not(.no-margin),
p + h3:not(.no-margin),
table + h3:not(.no-margin),
img + h3:not(.no-margin),
figure + h3:not(.no-margin),
div + h3:not(.no-margin),
ul + h3:not(.no-margin),
pre + h3:not(.no-margin),
blockquote + h3:not(.no-margin),
p + h4:not(.no-margin),
table + h4:not(.no-margin),
img + h4:not(.no-margin),
figure + h4:not(.no-margin),
div + h4:not(.no-margin),
ul + h4:not(.no-margin),
pre + h4:not(.no-margin),
blockquote + h4:not(.no-margin),
p + h5:not(.no-margin),
table + h5:not(.no-margin),
img + h5:not(.no-margin),
figure + h5:not(.no-margin),
div + h5:not(.no-margin),
ul + h5:not(.no-margin),
pre + h5:not(.no-margin) {
  margin-top: 2.4em !important;
}

/* Header
------------------------------------------------------------*/
#header {
  padding: 0.6em 1em;
  position: absolute;
  width: 100%;
  z-index: 5;
}

.head-inner {
  display: block;
  margin: 0 auto;
  width: 100%;
}

a.logo-link {
  color: #fff;
  font-size: 22px;
  text-decoration: none;
}

/* 画像アニメーション
------------------------------------------------------------*/
.img-wrap {
  opacity: 0;
}

.img-animation {
  animation: img-opacity 2s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
  position: relative;
  opacity: 1;
}

.img-animation:before {
  animation: img-animation 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  background: #1a1a1a;
  bottom: 0;
  content: "";
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

@keyframes img-opacity {
  100% {
    opacity: 1;
  }
}

@keyframes img-animation {
  100% {
    transform: translateX(100%);
  }
}

/* TOPスライダー
------------------------------------------------------------*/
.slide-area {
  background-color: #1b2120;
  height: 100vh;
  position: relative;
}

.slide-area::after {
  background-color: hsla(170, 10%, 12%, 0.84);
  content: "";
  display: block;
  height: 100%;
  left: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

.slide-area-inner,
.swiper-wrap,
.img-musk,
.slide-img {
  height: 100%;
}

img.slide {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img {
  animation: zoom 20s linear 0s 1 normal both;
}

@keyframes zoom {
  0% {
    filter: blur(8px);
    transform: scale(1.15);
  }
  16% {
    filter: blur(0px);
  }
  100% {
    transform: scale(1);
  }
}

img.slide {
  height: 100%;
  object-fit: cover;
}

.f-style {
  color: #fff;
  font-size: 8rem;
  height: 1em;
  left: 0;
  margin: auto;
  pointer-events: none;
  position: absolute;
  right: 0;
  text-align: center;
  top: 36%;
  width: 1em;
  z-index: 2;
}

.f-keyword {
  color: #fff;
  font-size: 15px;
  line-height: 2;
  pointer-events: none;
  position: absolute;
  left: 50%;
  top: 66%;
  z-index: 2;
  height: 4em;
  width: 76%;
  transform: translateX(-50%);
  letter-spacing: 0.16em;
}

a.scroll-link {
  bottom: 0;
  color: #fff;
  display: inline-block;
  font-size: 14px;
  left: 50%;
  line-height: 1;
  overflow: hidden;
  padding: 10px 10px 64px;
  position: absolute;
  text-decoration: none;
  transform: translateX(-50%);
  z-index: 2;
}

a.scroll-link::after {
  animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
  background: #fff;
  bottom: 0;
  content: "";
  height: 54px;
  left: 50%;
  position: absolute;
  width: 1px;
}

@keyframes sdl {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

/* OVERLAY-navi
---------------------------------------------------------- */
.menu-btn {
  display: block;
  height: 52px;
  position: fixed;
  right: 0.5em;
  top: 0.4em;
  width: 52px;
  z-index: 9980;
}

.bar {
  background-color: #fff;
  display: block;
  height: 1px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 27px;
}
.bar_top {
  top: 35%;
  transform: translate(-50%, -50%);
}
.bar_mid {
  top: 50%;
  transform: translate(-50%, -50%);
}
.bar_bottom {
  top: 65%;
  transform: translate(-50%, -50%);
}

.btn-close .bar_top {
  transform: translate(-50%, 7px) rotate(45deg);
  transition: transform 0.3s;
}
.btn-close .bar_mid {
  opacity: 0;
  transition: opacity 0.3s;
}
.btn-close .bar_bottom {
  transform: translate(-50%, -9px) rotate(-45deg);
  transition: transform 0.3s;
}

/* .btn-close .bar {
	background-color: var(--color1);
} */

.menu-btn button {
  display: inline-block;
  height: 100%;
  line-height: 1;
  text-decoration: none;
  width: 4em;
}

.btn-open {
  border-radius: 50%;
  cursor: pointer;
  height: 100%;
  position: relative;
}

.btn-close {
  border: none;
  border-radius: 50%;
  cursor: pointer;
  height: 100%;
  position: relative;
}

/* OVERLAY */
.overlay {
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  background: rgba(0, 0, 0, 0.4);
  display: none;
  height: 100vh;
  left: 0;
  overflow: auto;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9976;
}

.slidein-nav {
  background: rgb(27 33 32 / 90%);
  height: auto;
  height: 100vh;
  margin-left: 12%;
  padding: 1em 1.4em;
  transform: translateX(100%);
  transition: 0.3s;
  width: 88%;
  z-index: 2;
}

.slidein-nav.slide-in {
  transform: translateX(0);
  transition: 0.32s;
}
/*
.slidein-nav > .sp {
    width: calc(100% - 24%);
} */

.search-form {
  margin: 0 auto 3.2em;
  width: 100%;
}

.menu-layout {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 3.6em 0 0;
  width: 100%;
}

.main-nav {
  width: 100%;
}

.smenu-title {
  color: #fff;
  font-size: 24px;
  padding: 0.2em 0;
}

li.menu-item {
  font-size: 22px;
  margin: 2em 0;
  position: relative;
}

a.menu-item-link {
  color: #fff;
  display: block;
  padding: 0 0 0 1.1em;
  position: relative;
  text-decoration: none;
}

a.menu-item-link::before {
  background-color: #fff;
  border-radius: 50%;
  content: "";
  display: block;
  height: 4px;
  left: 0.4em;
  position: absolute;
  top: 0.6em;
  width: 4px;
}

ul.pc-menu li.menu-item span:nth-child(2) {
  display: none;
}

/* TOP About エリア
------------------------------------------------------------*/
.wood-bg {
  background-image: url(../img/bg-pattern.jpg);
  background-position: center;
  background-repeat: repeat;
  background-size: 100%;
}

.wood-ai-bg {
  background-image: url(../img/bg-pattern-ai.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.sec-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 0;
  position: relative;
}

.photo-area {
  background-color: #1a1a1a;
  padding: 4em 4em;
  text-align: center;
}

figure.about-img-wrap {
  display: inline-block;
  margin: 0 0 -14em;
}

.about-txt-area {
  padding: 12em 8em 7em;
}

.top-head-txt {
  color: #fff;
  display: inline-block;
  font-size: 4.6rem;
  height: 1em;
  line-height: 1;
  margin: 0 0 24px;
  padding: 0 0 1.2em;
  position: relative;
  width: 100%;
  letter-spacing: 0.08em;
}

.top-head-txt.ac {
  left: -0.24em;
}

h2.top-head-txt.min {
  font-size: 3.2rem;
  padding: 0 0 1.5em;
}

h2.top-head-txt.min .glitch__img:first-letter {
  letter-spacing: 0.24em;
}

.top-head-txt::before {
  background-image: url(../img/star.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  bottom: -3px;
  content: "";
  display: block;
  height: 8px;
  left: -0.2em;
  position: absolute;
  width: 8px;
}

.top-head-txt::after {
  background-color: #fff;
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  width: 96%;
}

.top-head-txt.min::after {
  width: 108%;
}

.top-subhead-txt {
  color: #fff;
  font-size: 1rem;
  margin: 0 0 3em;
  letter-spacing: 0.16em;
}

a.more-link {
  background-color: #fff;
  border: solid 1px #333;
  color: #151515;
  display: block;
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  padding: 0.72em;
  position: relative;
  text-align: center;
  text-decoration: none;
  width: 202px;
}

a:hover.more-link {
  background-color: #333;
  color: #fff;
}

a.more-link::after {
  background: #aeaeae;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  right: -20px;
  top: 50%;
  width: 52px;
}

a:hover.more-link::after {
  right: -28px;
}

/* TOP ドットライン
------------------------------------------------------------*/
span.top-line {
  border-bottom: dotted rgb(255 255 255 / 50%) 1px;
  height: 1px;
  position: absolute;
  right: 16%;
  width: 960px;
  transform-origin: left top;
}

span.top-line.line01 {
  right: 0;
  top: 52%;
  width: 44%;
}

span.top-line.line02 {
  right: 0;
  bottom: 10%;
  width: 100%;
}

span.top-line.line03 {
  bottom: 0;
  border-left: dotted rgb(255 255 255 / 50%) 1px;
  width: 1px;
  height: 128px;
  left: 13%;
  transform-origin: left bottom;
  transition: 1.2s ease-out;
}

span.top-line.line04 {
  left: 0;
  top: 52%;
  width: 50%;
  transition: 1.3s ease-out;
}

span.top-line.line05 {
  right: 0;
  bottom: 5%;
  width: 100%;
  transition: 1.3s ease-out;
}

span.top-line.line06 {
  bottom: 0;
  border-left: dotted rgb(255 255 255 / 50%) 1px;
  width: 1px;
  height: 170px;
  left: 94%;
  transition: 1.4s ease-out;
  transform-origin: left bottom;
}

/* TOP パララックス
------------------------------------------------------------*/
.parallax-area {
  height: 100vh;
  overflow: hidden;
  padding: 0;
  width: 100%;
}

@media all and (max-width: 375px) {
  .parallax-area {
    height: 120vh;
  }
}

.clip {
  clip-path: polygon(0 5%, 100% 0%, 100% 95%, 0% 100%);
  margin: -10% 0;
  position: relative;
  z-index: 1;
}

.cd-fixed-bg {
  background-attachment: fixed;
  min-height: 100%;
  position: relative;
  z-index: 0;
}

.cd-fixed-bg.cd-bg-1 {
  background-color: #fff;
}

@media screen and (max-width: 736px) {
  .cd-fixed-bg {
    background-attachment: scroll;
    background-size: cover;
  }
}

.works-fixed {
  left: 50%;
  max-width: 1320px;
  /* position: fixed; */
  position: absolute;
  text-align: center;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
}

.top-head-txt2 {
  border-bottom: solid 1px;
  color: #080b2d;
  display: inline-block;
  font-size: 4.4rem;
  line-height: 1;
  margin: 0 0 0.24em;
  position: relative;
  letter-spacing: 0.08em;
  padding: 0 0 1em;
}

h2.top-head-txt2.wo {
  width: 3.3em;
}

.top-head-txt2::before,
.top-head-txt2::after {
  background-color: #080b29;
  bottom: -1px;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  width: 6px;
}

.top-head-txt2::before {
  left: -12px;
}

.top-head-txt2::after {
  right: -12px;
}

.top-subhead-txt2 {
  color: #080b2d;
  font-size: 15px;
  letter-spacing: 0.16em;
}

.works-link-area {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 2em 0 0;
  position: relative;
  width: 100%;
}

a.works-link {
  background-color: #333;
  display: block;
  margin: 0.2em 0;
  overflow: hidden;
  padding-top: 30%;
  position: relative;
  text-align: center;
  text-decoration: none;
  width: 100%;
  letter-spacing: 0.16em;
}

a.works-link .works-link-img {
  filter: grayscale(100%);
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%) scale3d(1, 1, 1);
}

a:hover.works-link .works-link-img {
  filter: grayscale(0);
  transform: translate(-50%, -50%) scale3d(1.1, 1.1, 1.1);
}

.works-link-txt {
  color: #fff;
  font-size: 18px;
  left: 50%;
  padding: 0 1em;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  z-index: 2;
}

a.works-link::after {
  background-color: rgb(66 33 11 / 45%);
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

a:hover.works-link::after {
  background-color: rgb(66 33 11 / 0%);
}

.works-btn-wrap {
  text-align: center;
  margin: 2em auto;
}

a.works-btn {
  background-color: #fff;
  border: solid 1px #333;
  color: #151515;
  display: block;
  font-size: 15px;
  letter-spacing: 0.16em;
  padding: 1em 0.72em;
  position: relative;
  text-align: center;
  text-decoration: none;
  width: 180px;
  margin: 0 auto;
}

a:hover.works-btn {
  background-color: #333;
  color: #fff;
}

a.works-btn::after {
  background: #333;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  right: -20px;
  top: 50%;
  width: 52px;
}

a:hover.works-btn::after {
  right: -28px;
}

/* TOPアカデミー
------------------------------------------------------------*/
.academy-wrap.sec-wrap {
  flex-direction: column-reverse;
}

.academy-wrap.sec-wrap {
  align-items: center;
}

.academy-txt-area {
  padding: 12em 2em 5em;
}

figure.academy-img-wrap {
  margin: 3em -2em -11em;
}

.academy-txt-inner {
  position: relative;
  z-index: 2;
}

/* TOP instagramエリア
------------------------------------------------------------*/
.cd-fixed-bg.cd-bg-2 {
  background-color: #000;
}

.instagram-logo {
  background-image: url(../img/instagram-logo.svg);
  background-position: center;
  background-repeat: repeat;
  background-size: cover;
  height: 96px;
  margin: 0 auto 2em;
  width: 96px;
}

.instagram-inner {
  display: flex;
  gap: 0.4em;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 1200px;
  padding: 0 0.4em;
  width: 100%;
}

.parallax-area.instagram {
  height: 63vh;
}

.instagram-inner .instagram-link:nth-child(4),
.instagram-inner .instagram-link:nth-child(5) {
  display: none;
}

/* TOP お問い合わせエリア
------------------------------------------------------------*/
.top-contact-wrap {
  background-image: url(../img/contact-bg.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 77%;
  position: relative;
}

.top-contact-inner {
  background-color: rgb(0 0 0 / 50%);
  border: solid 1px #fff;
  bottom: 0;
  height: 80%;
  left: 0;
  margin: auto;
  max-width: 1000px;
  padding: 1em 2em;
  position: absolute;
  right: 0;
  text-align: center;
  top: 0;
  width: 90%;
}

.top-contact-title {
  background-image: url(../img/star.svg), url(../img/star.svg);
  background-position: center left, center right;
  background-repeat: no-repeat, no-repeat;
  background-size: 0.5rem;
  color: #fff;
  display: inline-block;
  font-size: 30px;
  height: 1em;
  padding: 0 0.6em;
  position: relative;
  width: 6em;
}

p.top-contact-txt {
  color: #fff;
  font-size: 15px;
  margin: 0.4em 0 2em;
}

.contact-info-wrap {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 2em auto 1em;
  max-width: 840px;
}

.tel-num-box,
.contact-link-box {
  width: 100%;
}

.tel-num-box {
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.3em;
  margin-bottom: 1.6em;
  line-height: 1.6;
}

a.contact-link {
  border: solid 1px;
  color: #fff;
  display: inline-block;
  font-size: 14px;
  padding: 1.2em;
  position: relative;
  text-decoration: none;
  width: 90%;
}

a:hover.contact-link {
  color: #000;
  background-color: #d6d6d6;
}

a.contact-link > span {
  position: relative;
  z-index: 1;
}

/* 下層ページレイアウト
------------------------------------------------------------*/

/* 下層ページ共通 */
img.hero-img {
  width: 100%;
  object-fit: cover;
  height: 100%;
  position: relative;
}

img.hero-img.com {
  top: -4em;
}

figure.hero-img-wrap {
  height: 242px;
}

header#header.sub-page {
  background-color: rgb(27 33 32 / 84%);
  padding: 1.4em 1em;
}

.sub-page-title-wrap {
  background-color: #1b2120;
  margin-top: -3em;
  padding: 1em;
  position: relative;
  letter-spacing: 0.06em;
}

.sub-page-title-inner {
  margin: 0 auto;
  max-width: 1200px;
  position: relative;
  width: 100%;
}

.sub-page-title-box {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
}

.sub-page-title {
  color: #fff;
  font-size: 40px;
  padding: 0 0 0 0.5em;
  position: relative;
  width: 100%;
}

.sub-page-title::after {
  background-color: #fff;
  content: "";
  display: block;
  height: 1.6em;
  left: 0;
  position: absolute;
  top: 0.05em;
  width: 1px;
}

span.page-title-jp {
  color: #fff;
  font-size: 15px;
  margin-left: 1.4em;
}

.page-title-ani {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  position: relative;
  overflow: hidden;
}

.page-title-ani.list-mv05::after {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: #1b2120;
  left: 2px;
  transition: 0.5s ease-out;
  transition-delay: 700ms;
}

.page-title-ani.list-mv05.mv05::after {
  left: 100%;
}

.breadcrumb-wrap {
  bottom: -2em;
  position: absolute;
  right: 1em;
}

ul.bread-crumb {
  display: flex;
  justify-content: flex-end;
}

a.breadcrumb-last {
  color: #fff;
  text-decoration: none;
}

a:hover.breadcrumb-last {
  text-decoration: underline;
}

li.breadcrumb-li {
  color: #fff;
  padding: 0 2em 0 0;
  position: relative;
}

li.breadcrumb-li.home::after {
  content: ">";
  position: absolute;
  right: 0.7em;
}

.toc-wrap {
  background-color: #fff;
  padding: 3.6em 1em;
}

.toc-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 auto;
  max-width: 1200px;
  width: 100%;
}

a.toc-link {
  border-right: solid 1px;
  color: #1a1a1a;
  display: inline-block;
  padding: 0.2em 1.6em;
  text-decoration: none;
}

a:hover.toc-link {
  text-decoration: underline;
}

a.toc-link:last-child {
  border-right: none;
}

.noise-bg {
  background-image: url(../img/noise-bg.jpg);
  background-size: contain;
  background-repeat: repeat-y;
}

.section-p {
  padding: 3em 1em;
}

/* 教室案内レイアウト */
.guide-sec {
  background-image: url(../img/guide-bg-sp.jpg);
  background-position: center;
  background-repeat: repeat;
  background-size: cover;
  height: 560px;
  padding: 15% 1.6em 0.6em;
  width: 100%;
}

.guide-inner {
  height: 100%;
  margin: 0 auto;
  max-width: 1200px;
  position: relative;
  width: 100%;
}

.sub-page-head {
  font-size: 25px;
  margin: 0 0 1em;
  padding: 0 0 0 0.7em;
  position: relative;
  letter-spacing: 0.08em;
}

.sub-page-head::before {
  position: absolute;
  content: "";
  display: block;
  width: 0.4em;
  height: 1px;
  background-color: #000;
  left: 0;
  top: 52%;
}

.sub-page-head > span {
  font-size: 0.6em;
  margin-left: 2em;
}

.sub-page-head.white {
  color: #fff;
}

.sub-page-head.white::before {
  background-color: #fff;
}

.guide-content-inner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  color: #fff;
  width: 100%;
  margin: 2em auto;
}

.sub-page-head-h3 {
  font-size: 18px;
  max-width: 600px;
  margin: 2em auto 1.2em;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.12em;
}

.guide-content-inner > p {
  line-height: 2;
  letter-spacing: 0.1em;
}

p.coming-soon {
  font-size: 3rem;
  width: 100%;
  text-align: center;
}

.course-sec {
  background-color: #fff;
}

.lesson-box {
  background-color: #1b2120;
  display: flex;
  flex-wrap: wrap;
  margin: 2em 0;
  padding: 2em;
}

figure.course-img-wrap {
  width: 100%;
}

.lesson-info-box {
  width: 100%;
  padding: 1em 0;
  color: #fff;
}

.lesson-title-wrap {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 2em;
  flex-wrap: wrap;
  gap: 1em;
}

h3.lesson-title {
  font-size: 16px;
}

.price {
  width: 100%;
  text-align: right;
}

ul.lesson-ul {
  margin: 2em 0 3em;
  line-height: 1.8;
  padding: 0 0 0 1em;
}

ul.lesson-ul > li {
  list-style: disc;
  padding: 0;
}

p.lesson-txt {
  line-height: 1.7;
}

/* 会社案内レイアウト */
.content-width-md {
  margin: 0 auto;
  max-width: 1480px;
  width: 100%;
}

.message-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 80%;
}

figure.message-img-wrap {
  width: 100%;
  margin: 0 0 2em;
}

.message-txt-box {
  padding: 0;
  width: 100%;
}

.message-title {
  color: #4d5359;
  font-size: 24px;
  margin: 0 0 1em;
  line-height: 1.4;
}

p.message-txt {
  line-height: 1.8;
  margin: 0 0 1.6em;
  font-size: 14px;
}

.features-box {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin: 3em 0;
  position: relative;
}

figure.features-img-wrap {
  position: relative;
  width: 100%;
  z-index: 2;
}

.features-txt-wrap {
  color: #fff;
  text-align: center;
  width: 100%;
  padding: 1.2em 1em;
}

.features-num {
  display: inline-block;
  font-size: 26px;
  margin: 0 0 1em;
  padding: 0 0.8em 0.4em 0;
  position: relative;
}

.features-num::before {
  background-color: #fff;
  bottom: 0.4em;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  right: 0;
  transform: skewY(320deg);
  width: 1.4em;
}

.features-title {
  font-size: 25px;
  letter-spacing: 0;
  line-height: 1.5;
  margin: 0 0 1.3em;
}

p.features-txt {
  line-height: 2;
  text-align: left;
}

span.dotline1 {
  border-top: dotted rgb(255 255 255 / 50%) 1px;
  height: 1px;
  position: absolute;
  right: -20%;
  top: -0.8em;
  width: 100%;
}

span.dotline2 {
  border-left: dotted rgb(255 255 255 / 50%) 1px;
  bottom: 100%;
  height: 141px;
  position: absolute;
  right: 16%;
  width: 1px;
}

span.dotline3 {
  border-top: dotted rgb(255 255 255 / 50%) 1px;
  bottom: -1em;
  height: 1px;
  position: absolute;
  right: 46.5%;
  width: 80%;
}

span.dotline4 {
  border-left: dotted rgb(255 255 255 / 50%) 1px;
  bottom: 100%;
  height: 64px;
  left: 80%;
  position: absolute;
  width: 1px;
}

span.dotline5 {
  border-top: dotted rgb(255 255 255 / 50%) 1px;
  bottom: -1em;
  height: 1px;
  position: absolute;
  right: -20%;
  width: 100%;
}

span.dotline6 {
  border-left: dotted rgb(255 255 255 / 50%) 1px;
  height: 320px;
  position: absolute;
  right: 16%;
  top: 100%;
  width: 1px;
}

.profile-sec {
  background-color: #000;
}

.profile-wrap {
  color: #fff;
  padding: 3em 2.4em;
  border: solid 1px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  background-color: #000;
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto 3em;
}

.profile-txt-wrap {
  width: 100%;
  margin: 2em 0 0;
}

p.profile-txt {
  line-height: 2;
}

.profile-name-wrap {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin: 0 0 2em;
  white-space: nowrap;
  flex-wrap: wrap;
}

.profile-name {
  font-size: 26px;
  margin: 0 1.2em 0 0;
  letter-spacing: 0.14em;
}

.profile-name-en {
  font-size: 14px;
  letter-spacing: 0.4em;
  margin: 0.96em 0 0;
}

ul.profile-ul {
  margin: 3em 0 0;
  padding: 0 0 0 1.1em;
}

ul.profile-ul > li {
  margin: 0 0 1em;
  list-style: disc;
  letter-spacing: 0.18em;
}

.white-bg {
  background-color: #fff;
}

table.com-table {
  width: 100%;
  max-width: 1020px;
  margin: 0 auto;
  border-collapse: collapse;
}

table.com-table tr {
  border-bottom: solid 1px #aeaeae;
}

table.com-table tr:last-child {
  border-bottom: none;
}

.com-table td,
.com-table th {
  font-size: 15px;
  display: block;
}

.com-table th {
  width: 100%;
  text-align: left;
  padding: 1em 0 0.44em;
}

.com-table td {
  padding: 0.44em 0 1em;
}

.map-emb {
  width: 100vw;
  margin: 0 -1em 1.4em;
  padding-top: 56%;
  position: relative;
}

.map-emb > iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
}

/* 業務案内レイアウト */
.half-sec {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  flex-direction: column-reverse;
}

.works-img-wrap,
.works-txt-wrap {
  width: 100%;
}

.half-sec.black-bg {
  background-color: #000;
}

.half-sec.indigo-bg {
  background-color: #0e202d;
}

.works-txt-inner.white {
  color: #fff;
}

.works-title {
  font-size: 25px;
  margin: 0 0 0.8em;
}

.works-txt-inner {
  padding: 3em 2em;
  width: 100%;
  letter-spacing: 0.26em;
}

.half-sec.right .works-txt-inner {
  margin-left: auto;
}

figure.works-img-wrap {
  height: 100%;
}

img.works-img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.half-sec.right .works-txt-inner {
  margin-left: auto;
}

.construction-inner {
  width: 100%;
  max-width: 1200px;
  margin: 1.6em auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  padding: 1em;
}

.construction-img-wrap,
.construction-txt-wrap {
  width: 100%;
}

.caption {
  text-align: center;
  padding: 0.5em 0;
  letter-spacing: 0.1em;
  font-size: 14px;
}

.caption.white {
  color: #fff;
}

p.construction-txt {
  width: 100%;
  font-size: 14px;
  color: #fff;
  line-height: 2;
  padding: 1em 0;
}

p.construction-txt.black {
  color: #000;
}

.construction-wrap .construction-inner:nth-child(even) {
  flex-direction: row-reverse;
}

.construction-wrap .construction-inner:nth-child(even) p.construction-txt {
  margin-left: auto;
}

.price-box {
  width: 100%;
  border: solid 1px;
  min-height: 360px;
  color: #fff;
  margin: 4em auto 2em;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  padding: 2em 5%;
}

.price-box.blue {
  background-color: #192333;
}

.price-box.green {
  background-color: #192d27;
}

h3.price-title {
  font-size: 18px;
  letter-spacing: 0.1em;
  padding: 0 0 1.8em;
  position: relative;
  margin-bottom: 0.5em;
}

h3.price-title::after {
  background-color: #fff;
  bottom: 0.8em;
  content: "";
  display: block;
  height: 1px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 2.2em;
}

p.price-txt {
  font-size: 14px;
  letter-spacing: 0.08em;
  line-height: 2;
  margin: 0 0 1.6em;
}

.price-link-wrap {
  text-align: center;
  width: 100%;
}

a.price-link {
  background-color: #fff;
  color: #192333;
  display: block;
  font-size: 14px;
  letter-spacing: 0.16em;
  margin: 0 auto;
  max-width: 486px;
  padding: 1em 1em 1em 4em;
  text-decoration: none;
  width: 90%;
  background-image: url(../img/ico-mail-black.svg);
  background-position: center left 1em;
  background-repeat: no-repeat;
  background-size: 1.8em;
}

a:hover.price-link {
  background-color: #324461;
  color: #fff;
  background-image: url(../img/icon-mail.svg);
  background-position: center left 3.4em;
  background-repeat: no-repeat;
  background-size: 1.8em;
}

p.price-txt.line {
  border-bottom: solid 1px;
  padding-bottom: 1.5em;
}

/* お問い合わせレイアウト */
.gray-bg {
  background-color: #f2f2f2;
}

.sub-contact-head {
  font-size: 2.4rem;
  text-align: center;
}

.sub-contact-head.white {
  color: #fff;
}

.sub-contact-head > span {
  font-size: 0.5em;
  display: block;
  margin: 1.6em 0;
}

.Indigo-bg {
  background-color: #192333;
}

p.contact-sec-txt {
  text-align: left;
  color: #fff;
  margin: 3em 0;
  font-size: 15px;
  line-height: 1.8;
}

p.contact-sec-txt.txt-center {
  text-align: center;
}

.phone-num {
  color: #fff;
  font-size: 1.4rem;
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0 0 1em;
  line-height: 1.6;
}

.phone-num .tel-link a {
  color: #fff;
  text-decoration: none;
}

.sub-form-head {
  padding: 2.4em 0 2em;
  text-align: center;
  font-size: 22px;
  background-image: url(../img/ico-mail-black.svg);
  background-size: 2.6rem;
  background-position: center top;
  background-repeat: no-repeat;
}

@media only screen and (max-width: 375px) {
  .sub-form-head {
    font-size: 18px;
  }
}

span.tel-link > a {
  text-decoration: none;
  color: #fff;
}

a.acc-link {
  color: var(--color1);
}

a:hover.acc-link {
  text-decoration: none;
}

/* Accordion
---------------------------------------------------------- */
.toggle_contents {
  margin: 1.6em auto;
  max-width: 1150px;
  width: 100%;
}

.qa-content-inner {
  counter-reset: number 0;
}

.toggle_contents.faq {
  margin: 0.6em auto;
  position: relative;
  width: 100%;
}

.toggle_title {
  align-items: center;
  color: #333;
  cursor: pointer;
  display: flex;
  font-size: 15px;
  height: 80px;
  line-height: 1.4;
  margin: 0;
  padding: 0 3em 0.4em 1em;
  position: relative;
}

dt.toggle_title.faq {
  height: auto;
  min-height: 80px;
  background-color: #1a1a1a;
  padding: 0 4.4em 0 3.2em;
  color: #fff;
  position: relative;
}

dt.toggle_title.flow {
  padding: 0 3.2em 0 4.4em;
  color: #000;
}

p.txt.faq {
  font-size: 14px;
  padding: 0 0 1em;
  margin-bottom: 1.4em;
}

.toggle_contents.faq dt.toggle_title.faq::before {
  color: #fff;
  content: counter(number);
  counter-increment: number 1;
  font-size: 14px;
  left: 0.8em;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  height: 1.4em;
  line-height: 1.2;
  width: 1.4em;
  border: solid 1px;
  border-radius: 50%;
  text-align: center;
}

.toggle_contents.flow dt.toggle_title.flow::before {
  color: #fff;
  content: counter(number) ".";
  counter-increment: number 1;
  font-size: 16px;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  height: 50px;
  line-height: 50px;
  width: 50px;
  background-color: #000;
  text-align: center;
}

@media only screen and (max-width: 375px) {
  .toggle_title {
    font-size: 14px;
  }
}

dl.toggle_contents.flow {
  border-bottom: solid 1px;
  margin: 1.6em auto;
  position: relative;
}

dl.toggle_contents.flow::after {
  position: absolute;
  content: "";
  display: block;
  width: 28px;
  height: 10px;
  bottom: -1.6em;
  left: 50%;
  transform: translateX(-50%);
  background-image: url(../img/arrow-flow.svg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.qa-content-inner dl.toggle_contents.flow:last-child::after {
  content: none;
}

.toggle_btn {
  border-radius: 50%;
  top: 22%;
  display: block;
  height: 48px;
  overflow: hidden;
  position: absolute;
  right: 0;
  text-indent: 100%;
  white-space: nowrap;
  width: 48px;
  z-index: 1;
}

span.toggle_btn.faq {
  right: 1em;
}

span.toggle_btn.contact {
  bottom: 0.7em;
  right: 0.6em;
}

dt.selected .toggle_btn {
  transform: rotateZ(180deg);
}

.toggle_btn:before,
.toggle_btn:after {
  background-color: #fff;
  content: "";
  display: block;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}

.toggle_btn.flow:before,
.toggle_btn.flow:after {
  background-color: #000;
}

.toggle_btn:before {
  height: 1.5em;
  width: 1px;
}

.toggle_btn:after {
  height: 1px;
  width: 1.5em;
}

.toggle_title.selected .toggle_btn:before {
  content: normal;
}

.toggle_contents dd {
  display: none;
}

.toggle_contents p {
  line-height: 2;
}

.toggle_contents > dd > p {
  text-align: justify;
}

.accordion-inner {
  margin: 0 auto;
  padding: 0 0 0.6em;
}

div.contact-acc-inner {
  padding: 1.6em 0;
}

.faq-acc-inner {
  margin: 1.2em auto 0;
  max-width: 1000px;
}

.plan-link-inner {
  padding: 0;
}

.accordion-inner.link {
  max-width: 92%;
  padding: 0 0 1.6em;
}

.accordion-inner.ig {
  max-width: 100%;
}

.accordion-inner.link p {
  font-size: 14px;
}

p.txt.flow {
  font-size: 13px;
}

/* フッターレイアウト
------------------------------------------------------------*/
footer {
  background-color: #23221c;
  padding: 2em 1em;
}

.footer-inner {
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  justify-content: space-between;
  line-height: 1.7;
  margin: 0 auto;
  width: 100%;
}
.acc-inner {
  margin: 0 0 1em;
}

.acc-com {
  font-size: 1.3em;
}

.access-area,
.copyright {
  width: 100%;
}

.access-area {
  margin: 0 0 2em;
  text-align: center;
}

/* TOPへ戻るボタン
------------------------------------------------------------*/
#back-to-top {
  bottom: 1em;
  display: none;
  position: fixed;
  right: 1em;
  z-index: 99;
}

a.back-to-btn {
  background-color: #000;
  background-image: url(../img/back-to-top.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border: solid 1px #fff;
  display: block;
  height: 32px;
  position: relative;
  width: 32px;
}

/* PC 非表示
---------------------------------------------------------- */

.pc {
  display: none;
}

.pc-only-nav {
  display: none;
}
