@charset "UTF-8";
/**********************************************************
Grobal
***********************************************************/
html {
  background: #434343;
  scroll-behavior: smooth;
}

body {
  font-size: 14px;
  font-weight: normal;
  font-family: "Noto Sans JP", sans-serif;
  margin: 0;
  padding: 0;
}
body.fixed {
  position: fixed;
  width: 100vw;
  height: 100vh;
}

.wrapper {
  height: 100%;
  position: relative;
}

h1, h2, h3, h4, h5, h6, p {
  font-weight: lighter;
  padding: 0;
  margin: 0;
}

h2 {
  font-size: 48px;
}

h3 {
  font-size: 24px;
}

p {
  line-height: 1.6;
}

a,
a:hover,
a:active,
a:focus,
a:visited {
  text-decoration: none;
  color: #434343;
}

ul, ol, dl {
  padding: 0;
}

li, dt, dd {
  list-style-type: none;
}

div {
  box-sizing: border-box;
}

/**********************************************************
パララックスブロック
***********************************************************/
.parallaxBlock {
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  color: #ffffff;
  position: sticky;
  top: 0;
  overflow-x: hidden;
}
.parallaxBlock.-fixed {
  position: fixed;
}

/**********************************************************
header
***********************************************************/
.header {
  width: 100%;
  background: rgba(255, 255, 255, 0.5);
  position: fixed;
  top: 0;
  z-index: 1000;
}

.header__inner.content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 60px;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .header__inner.content {
    height: 50px;
    padding: 0 16px;
  }
}
.header__inner.content .logo {
  display: flex;
  align-items: center;
  width: 33.3%;
}
.header__inner.content .logo img {
  width: 150px;
}
@media screen and (max-width: 420px) {
  .header__inner.content .logo img {
    width: 120px;
  }
}

/* Grand Menu */
.humburgerIcon {
  height: 24px;
}
@media screen and (max-width: 767px) {
  .humburgerIcon {
    height: 16px;
  }
}

.grandMenu {
  text-align: center;
  width: 33.3%;
  position: relative;
}
.grandMenu .grandMenu__trigger {
  font-size: 12px;
  opacity: 0.4;
  transition: 0.5s;
}
.grandMenu .grandMenu__trigger:hover {
  opacity: 1;
}

.grandMenu__text {
  margin-top: 2px;
}
@media screen and (max-width: 767px) {
  .grandMenu__text {
    display: none;
  }
}

.grandMenu__trigger,
.grandMenu__trigger span {
  display: inline-block;
  transition: all 0.4s;
  box-sizing: border-box;
}

.grandMenu__trigger {
  position: relative;
  width: 35px;
  height: 24px;
  margin-top: 5px;
}
@media screen and (max-width: 767px) {
  .grandMenu__trigger {
    width: 24px;
    height: 16px;
  }
}

.grandMenu__trigger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #434343;
  border-radius: 1px;
}
.grandMenu__trigger span:nth-of-type(1) {
  top: 0;
}
.grandMenu__trigger span:nth-of-type(2) {
  top: 11px;
}
@media screen and (max-width: 767px) {
  .grandMenu__trigger span:nth-of-type(2) {
    top: 7px;
  }
}
.grandMenu__trigger span:nth-of-type(3) {
  bottom: 0;
}

.grandMenu__trigger.active span:nth-of-type(1) {
  transform: translateY(11px) rotate(-45deg);
}
@media screen and (max-width: 767px) {
  .grandMenu__trigger.active span:nth-of-type(1) {
    transform: translateY(7px) rotate(-45deg);
  }
}
.grandMenu__trigger.active span:nth-of-type(2) {
  opacity: 0;
}
.grandMenu__trigger.active span:nth-of-type(3) {
  transform: translateY(-11px) rotate(45deg);
}
@media screen and (max-width: 767px) {
  .grandMenu__trigger.active span:nth-of-type(3) {
    transform: translateY(-7px) rotate(45deg);
  }
}

.grandMenu__menu {
  display: none;
  position: absolute;
  top: 70px;
  left: 50%;
  transform: translateX(-50%);
}
.grandMenu__menu li {
  width: 156px;
  padding: 8px 12px;
  background: #ffffff;
  opacity: 0.5;
}
.grandMenu__menu li:hover {
  opacity: 0.8;
  transition: 0.3s;
}
.grandMenu__menu li a {
  display: block;
  width: 100%;
  height: 100%;
}

/* Side Menu */
.sideMenu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 33.3%;
  height: 100%;
}

.contactUs {
  display: flex;
  align-items: center;
  height: 24px;
}
.contactUs li {
  margin-left: 16px;
  opacity: 0.3;
  transition: 0.5s;
}
.contactUs li:hover {
  opacity: 1;
}

/**********************************************************
content
***********************************************************/
.content {
  width: 1170px;
}
@media screen and (max-width: 1200px) {
  .content {
    width: 940px;
  }
}
@media screen and (max-width: 991px) {
  .content {
    width: 720px;
  }
}
@media screen and (max-width: 767px) {
  .content {
    width: 100%;
    padding: 0 16px;
  }
}
.content .content__header {
  display: flex;
  align-items: flex-end;
  height: 180px;
  padding-bottom: 16px;
  position: sticky;
  top: 0;
  background: linear-gradient(to bottom, rgb(255, 255, 255) 90%, rgba(255, 255, 255, 0));
  z-index: 3;
}

/**********************************************************
横のドットのナビ
***********************************************************/
.contentsSideNav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  position: relative;
  z-index: 10000;
}
.contentsSideNav .contentsSideNav__list {
  padding: 16px;
  position: fixed;
  top: 40%;
}
.contentsSideNav .contentsSideNav__list li {
  width: 10px;
  height: 10px;
  margin: 10px 0;
}
.contentsSideNav .contentsSideNav__list li a {
  display: block;
  width: 10px;
  height: 10px;
  background: #cccccc;
  border-radius: 50%;
}

/**********************************************************
top block
***********************************************************/
.parallaxBlock.-top {
  align-items: bottom;
  background: url("../images/background_01.png");
  background-size: cover;
  background-position: bottom;
  z-index: 100;
}

.scrollDown {
  text-align: center;
  position: absolute;
  bottom: 0;
}
.scrollDown span {
  font-size: 36px;
  color: #ffffff;
}

/**********************************************************
concept block
***********************************************************/
.parallaxBlock.-concept {
  padding-top: 200px;
  background: transparent;
  z-index: 200;
}
@media screen and (max-width: 420px) {
  .parallaxBlock.-concept {
    padding-top: 100px;
  }
}
.parallaxBlock.-concept h2 {
  margin-bottom: 40px;
}
.parallaxBlock.-concept p {
  font-size: 24px;
  margin-bottom: 24px;
}

/**********************************************************
concept description block
***********************************************************/
.parallaxBlock.-conceptDesc {
  padding-top: 200px;
  background: linear-gradient(to bottom, rgba(33, 46, 50, 0), rgba(33, 46, 50, 0.9) 60px);
  z-index: 300;
}
@media screen and (max-width: 420px) {
  .parallaxBlock.-conceptDesc {
    padding-top: 100px;
  }
}
.parallaxBlock.-conceptDesc h2 {
  margin-bottom: 40px;
}
.parallaxBlock.-conceptDesc h3 {
  margin-bottom: 24px;
}
.parallaxBlock.-conceptDesc p {
  margin-bottom: 24px;
}

/**********************************************************
Service block
***********************************************************/
.parallaxBlock.-service {
  padding-top: 100px;
  background: #85937a;
  z-index: 400;
}
@media screen and (max-width: 420px) {
  .parallaxBlock.-service {
    height: 180vh;
    padding-top: 100px;
    top: -50vh;
  }
}

.serviceList {
  width: 100%;
  height: 550px;
  position: relative;
  overflow: hidden;
}
@media screen and (max-width: 991px) {
  .serviceList {
    height: 800px;
  }
}
@media screen and (max-width: 420px) {
  .serviceList {
    height: 1000px;
  }
}
.serviceList__box {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80vh;
}
@media screen and (max-width: 420px) {
  .serviceList__box {
    align-items: flex-start;
    margin: 16px -16px 0;
  }
}

.service__box {
  text-align: center;
  width: 250px;
  height: 250px;
  margin: 24px 0 0 24px;
  position: absolute;
  overflow: hidden;
  background: #ffffff;
  border-radius: 10px;
  transform: rotate(45deg);
  transform-origin: 50% 50%;
  transition: 0.4s;
  cursor: pointer;
}
.service__box:hover {
  background: #feb614;
}
@media screen and (max-width: 991px) {
  .service__box {
    width: 200px;
    height: 200px;
  }
}
.service__box.-web {
  top: 30px;
  left: 30px;
}
@media screen and (max-width: 420px) {
  .service__box.-web {
    top: 30px;
    left: -20px;
  }
}
.service__box.-design {
  top: 30px;
  left: 410px;
}
@media screen and (max-width: 991px) {
  .service__box.-design {
    left: 350px;
  }
}
@media screen and (max-width: 420px) {
  .service__box.-design {
    top: 190px;
    left: 140px;
  }
}
.service__box.-wordpress {
  top: 30px;
  left: 790px;
}
@media screen and (max-width: 1200px) {
  .service__box.-wordpress {
    top: 220px;
    left: 220px;
  }
}
@media screen and (max-width: 991px) {
  .service__box.-wordpress {
    top: 190px;
    left: 190px;
  }
}
@media screen and (max-width: 420px) {
  .service__box.-wordpress {
    top: 350px;
    left: -20px;
  }
}
.service__box.-seminar {
  top: 220px;
  left: 220px;
}
@media screen and (max-width: 1200px) {
  .service__box.-seminar {
    top: 220px;
    left: 600px;
  }
}
@media screen and (max-width: 991px) {
  .service__box.-seminar {
    top: 350px;
    left: 30px;
  }
}
@media screen and (max-width: 420px) {
  .service__box.-seminar {
    top: 510px;
    left: 140px;
  }
}
.service__box.-seminar .service__boxLayout p {
  margin-top: 16px;
}
@media screen and (max-width: 991px) {
  .service__box.-seminar .service__boxLayout p {
    margin-top: 8px;
    padding: 8px 24px;
  }
}
.service__box.-emptyBlock {
  background: #feb614;
}
.service__box.-emptyBlock.-top {
  top: -160px;
  left: 220px;
}
@media screen and (max-width: 991px) {
  .service__box.-emptyBlock.-top {
    top: -130px;
    left: 190px;
  }
}
@media screen and (max-width: 420px) {
  .service__box.-emptyBlock.-top {
    top: -130px;
    left: 140px;
  }
}
.service__box.-emptyBlock.-bottom01 {
  top: 220px;
  left: 600px;
}
@media screen and (max-width: 1200px) {
  .service__box.-emptyBlock.-bottom01 {
    top: 30px;
    left: 790px;
  }
}
@media screen and (max-width: 991px) {
  .service__box.-emptyBlock.-bottom01 {
    top: 190px;
    left: 510px;
  }
}
@media screen and (max-width: 420px) {
  .service__box.-emptyBlock.-bottom01 {
    top: 350px;
    left: 300px;
  }
}
.service__box.-emptyBlock.-bottom02 {
  top: 410px;
  left: 790px;
}
@media screen and (max-width: 991px) {
  .service__box.-emptyBlock.-bottom02 {
    top: 350px;
    left: 670px;
  }
}
@media screen and (max-width: 420px) {
  .service__box.-emptyBlock.-bottom02 {
    top: 670px;
    left: -20px;
  }
}

.service__boxLayout {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 250px;
  height: 250px;
  transform: rotateZ(-45deg);
  transform-origin: 50% 50%;
}
@media screen and (max-width: 991px) {
  .service__boxLayout {
    max-width: 200px;
    height: 200px;
  }
}
.service__boxLayout h3 {
  font-size: 20px;
  font-weight: normal;
  padding-top: 30px;
}
.service__boxLayout p {
  font-weight: lighter;
  margin-top: 40px;
  padding: 8px 16px;
  border-top: 1px solid #85937a;
}
@media screen and (max-width: 991px) {
  .service__boxLayout p {
    font-size: 12px;
    line-height: 1.4em;
    margin-top: 18px;
  }
}

.service__boxLayout h3,
.service__boxLayout p {
  color: #434343;
}

/**********************************************************
Workflow block
***********************************************************/
.parallaxBlock.-workflow {
  background: #ffffff;
  height: 100%;
  position: relative;
  top: auto;
  z-index: 700;
}
.parallaxBlock.-workflow h2 {
  color: #434343;
}

.workflow__layout {
  width: 600px;
  margin-bottom: 180px;
}
@media screen and (max-width: 420px) {
  .workflow__layout {
    width: 100%;
  }
}
.workflow__block {
  display: flex;
  align-items: center;
  margin-top: 80px;
  position: relative;
}
@media screen and (max-width: 420px) {
  .workflow__block {
    align-items: flex-start;
  }
}
.workflow__block.-odd {
  justify-content: flex-start;
}
.workflow__block.-odd .workflow__num {
  order: 2;
}
@media screen and (max-width: 420px) {
  .workflow__block.-odd .workflow__num {
    order: 1;
  }
}
.workflow__block.-odd .workflow__text {
  order: 1;
  margin-right: 32px;
  margin-left: 0;
}
@media screen and (max-width: 420px) {
  .workflow__block.-odd .workflow__text {
    order: 2;
    margin-right: 0;
    margin-left: 32px;
  }
}
.workflow__block.-even {
  justify-content: flex-end;
}
.workflow__block.-even .workflow__num {
  order: 1;
}
.workflow__block.-even .workflow__text {
  order: 2;
  margin-right: 0;
  margin-left: 32px;
}
.workflow__num {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 140px;
  height: 140px;
  background: #feb614;
  border-radius: 50%;
  z-index: 2;
}
@media screen and (max-width: 420px) {
  .workflow__num {
    width: 80px;
    height: 80px;
  }
}
.workflow__numInner {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  font-family: "Dancing Script", cursive;
  width: 130px;
  height: 130px;
  border: 2px solid #ffffff;
  border-radius: 50%;
}
@media screen and (max-width: 420px) {
  .workflow__numInner {
    font-size: 24px;
    width: 74px;
    height: 74px;
  }
}
.workflow__text {
  max-width: 350px;
}
.workflow__text h3 {
  color: #feb614;
}
.workflow__text p {
  color: #434343;
}

/* 斜め線 */
.diagonalLine__box {
  text-align: center;
  width: 305px;
  height: 8px;
  margin: 0 auto;
  position: absolute;
  top: -30%;
}
@media screen and (max-width: 420px) {
  .diagonalLine__box {
    display: none;
  }
}
.diagonalLine__box.-rightTop {
  background: linear-gradient(90deg, #feb614, #ffffff);
  transform: skewY(-38deg);
  left: 150px;
}
.diagonalLine__box.-leftTop {
  background: linear-gradient(-90deg, #feb614, #ffffff);
  transform: skewY(38deg);
  right: 150px;
}

/**********************************************************
Interval block
***********************************************************/
.parallaxBlock.-interval {
  position: relative;
  width: 100%;
  height: 50vh;
  z-index: 600;
  overflow: hidden;
}
.parallaxBlock.-interval .content {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-clip-path: content-box;
          clip-path: content-box;
}
@media screen and (max-width: 767px) {
  .parallaxBlock.-interval .content {
    padding: 0;
  }
}
.parallaxBlock.-interval .content::before {
  content: "";
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  background-image: url("../images/background_02.png");
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: -1;
}

/**********************************************************
Results block
***********************************************************/
.parallaxBlock.-results {
  margin-bottom: -100px;
  padding-top: 100px;
  background: linear-gradient(to bottom, #85937a 25%, #ffffff);
  top: 0;
  z-index: 700;
}
@media screen and (max-width: 1200px) {
  .parallaxBlock.-results {
    margin-bottom: -80px;
    padding-top: 80px;
  }
}
@media screen and (max-width: 420px) {
  .parallaxBlock.-results {
    margin-bottom: -50px;
    padding-top: 50px;
  }
}

.results__layout {
  display: flex;
  justify-content: space-around;
  padding: 0;
}
@media screen and (max-width: 420px) {
  .results__layout {
    flex-direction: column;
    justify-content: flex-start;
    padding: 0;
  }
}

.results__box {
  text-align: center;
  width: 300px;
  height: 300px;
  padding: 50px;
  border-radius: 50%;
  transition: 0.5s;
}
.results__box:hover {
  background: #ffffff;
}
@media screen and (max-width: 420px) {
  .results__box {
    width: auto;
    height: 243px;
    padding: 0;
  }
}

.results__icon img {
  height: 250px;
}
@media screen and (max-width: 420px) {
  .results__icon img {
    height: 150px;
  }
}

.results__head {
  font-size: 32px;
  font-weight: bold;
  color: #85937a;
  padding-top: 24px;
  opacity: 0;
  transition: 0.5s;
}

.results__head {
  opacity: 1;
}

.results__carouselContainer {
  max-width: 100%;
  margin: 48px auto 0;
  padding: 0;
}
@media screen and (max-width: 1200px) {
  .results__carouselContainer {
    margin-top: 24px;
  }
}
@media screen and (max-width: 767px) {
  .results__carouselContainer {
    margin-top: 16px;
  }
}
@media screen and (max-width: 420px) {
  .results__carouselContainer {
    margin-top: 8px;
  }
}

.carousel {
  display: block;
  text-align: left;
  width: 100%;
  position: relative;
  margin-bottom: 30px;
}
@media screen and (max-width: 420px) {
  .carousel {
    width: 90vw;
  }
}
.carousel > input {
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
}
.carousel > input:nth-of-type(6):checked ~ .carousel__slides .carousel__slide:first-of-type {
  margin-left: -500%;
}
.carousel > input:nth-of-type(5):checked ~ .carousel__slides .carousel__slide:first-of-type {
  margin-left: -400%;
}
.carousel > input:nth-of-type(4):checked ~ .carousel__slides .carousel__slide:first-of-type {
  margin-left: -300%;
}
.carousel > input:nth-of-type(3):checked ~ .carousel__slides .carousel__slide:first-of-type {
  margin-left: -200%;
}
.carousel > input:nth-of-type(2):checked ~ .carousel__slides .carousel__slide:first-of-type {
  margin-left: -100%;
}
.carousel > input:nth-of-type(1):checked ~ .carousel__slides .carousel__slide:first-of-type {
  margin-left: 0%;
}
.carousel > input:nth-of-type(1):checked ~ .carousel__thumbnails li:nth-of-type(1) {
  opacity: 1;
}
.carousel > input:nth-of-type(2):checked ~ .carousel__thumbnails li:nth-of-type(2) {
  opacity: 1;
}
.carousel > input:nth-of-type(3):checked ~ .carousel__thumbnails li:nth-of-type(3) {
  opacity: 1;
}
.carousel > input:nth-of-type(4):checked ~ .carousel__thumbnails li:nth-of-type(4) {
  opacity: 1;
}
.carousel > input:nth-of-type(5):checked ~ .carousel__thumbnails li:nth-of-type(5) {
  opacity: 1;
}
.carousel > input:nth-of-type(6):checked ~ .carousel__thumbnails li:nth-of-type(6) {
  opacity: 1;
}

.carousel__slides {
  position: relative;
  z-index: 1;
  padding: 0;
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  box-sizing: border-box;
  display: flex;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.3);
}

.carousel__slide {
  position: relative;
  display: block;
  flex: 1 0 100%;
  width: 100%;
  height: 100%;
  padding: 16px;
  overflow: hidden;
  transition: all 300ms ease-out;
  box-sizing: border-box;
  white-space: normal;
}
@media screen and (max-width: 420px) {
  .carousel__slide {
    padding: 8px;
  }
}
.carousel__slide figure {
  display: flex;
  color: #666;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .carousel__slide figure {
    display: block;
  }
}
.carousel__slide div {
  position: relative;
  width: 70%;
}
.carousel__slide div:before {
  display: block;
  content: "";
  width: 100%;
  padding-top: 66.6666666667%;
}
.carousel__slide div > img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
@media screen and (max-width: 420px) {
  .carousel__slide div:before {
    padding-top: 50%;
  }
}
@media screen and (max-width: 767px) {
  .carousel__slide div {
    width: 100%;
  }
}
.carousel__slide img {
  display: block;
  flex: 1 1 auto;
  -o-object-fit: cover;
     object-fit: cover;
  border: solid 1px #ccc;
}
.carousel__slide figcaption {
  align-self: flex-end;
  padding: 20px 20px 0 20px;
  flex: 0 0 auto;
  width: 30%;
  min-width: 150px;
}
@media screen and (max-width: 767px) {
  .carousel__slide figcaption {
    width: calc(100% - 40px);
    min-width: auto;
    padding: 20px;
  }
}
@media screen and (max-width: 420px) {
  .carousel__slide figcaption {
    padding: 8px;
  }
  .carousel__slide figcaption ul {
    font-size: 0.8em;
  }
}
.carousel__slide .resultTitle {
  margin-bottom: 16px;
}
@media screen and (max-width: 420px) {
  .carousel__slide .resultTitle {
    font-size: 1.2em;
    margin-bottom: 8px;
  }
}
.carousel__slide .credit {
  margin-top: 1rem;
  color: rgba(0, 0, 0, 0.5);
  display: block;
}
@media screen and (max-width: 420px) {
  .carousel__slide .credit {
    fonmargin-top: 0.7em;
  }
}
.carousel__slide.scrollable {
  overflow-y: scroll;
}

.carousel__thumbnails {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: center;
  margin: 0 -10px;
}
.carousel__slides + .carousel__thumbnails {
  margin-top: 24px;
}
.carousel__thumbnails li {
  flex: 1 1 auto;
  max-width: 36px;
  height: 36px;
  margin: 0 10px;
  background: #999;
  border-radius: 50%;
  opacity: 0.5;
  transition: all 300ms ease-in-out;
}
.carousel__thumbnails li:hover, .carousel__thumbnails li:focus {
  opacity: 1;
}
.carousel__thumbnails label {
  display: block;
  position: relative;
}
.carousel__thumbnails label:before {
  display: block;
  content: "";
  width: 100%;
  padding-top: 100%;
}
.carousel__thumbnails label > img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.carousel__thumbnails label:hover, .carousel__thumbnails label:focus {
  cursor: pointer;
}
.carousel__thumbnails label:before {
  display: none;
}
.carousel__thumbnails label p {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  line-height: 1.6;
  width: 36px;
  height: 36px;
  transition: all 300ms ease-in-out;
}
.carousel__thumbnails img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

input {
  display: none;
}

a.popupbBtn,
label.popupbBtn {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  padding: 8px;
  background: #999;
  border-radius: 8px;
  opacity: 0.6;
  text-decoration: none;
  cursor: pointer;
}
a.popupbBtn:hover, a.popupbBtn:focus,
label.popupbBtn:hover,
label.popupbBtn:focus {
  opacity: 1;
  transition: 0.3s;
}

.popupbBtn__layout {
  margin-top: 16px;
}

#overlay {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 710;
  visibility: hidden;
}

#bg_gray {
  background: rgba(0, 0, 0, 0.4);
  width: 100%;
  height: 100%;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 720;
}

.modal-wrapper {
  width: 70%;
  max-height: 85%;
  padding: 20px;
  position: relative;
  background-color: #FEFEFE;
  border-radius: 16px;
  box-shadow: 0px 0px 20px -6px rgba(0, 0, 0, 0.6);
  z-index: 870;
}
@media screen and (max-width: 767px) {
  .modal-wrapper {
    width: 90%;
    padding: 8px;
  }
}

/* 閉じるボタン */
.closeBtn__fncyTeaser {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  position: absolute;
  top: -40px;
  right: 0;
  background: #fff;
  border-radius: 50%;
  opacity: 0.7;
  z-index: 880;
  cursor: pointer;
}
.closeBtn__fncyTeaser:hover {
  opacity: 1;
}
.closeBtn__fncyTeaser .close {
  position: relative;
  font-size: 24px;
  color: #434343;
  text-decoration: none;
}

/* クリックで表示 */
#fncy_teaser:checked ~ #overlay {
  visibility: visible;
}

#fncy_teaser:checked ~ #overlay #window {
  animation: fadein 500ms forwards;
  animation-timing-function: ease-in-out;
}

@keyframes fadein {
  100% {
    opacity: 1;
  }
}
.modal-content div {
  position: relative;
}
.modal-content div:before {
  display: block;
  content: "";
  width: 100%;
  padding-top: 56.25%;
}
.modal-content div > img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.modal-content video {
  display: block;
  width: 100%;
  position: absolute;
  top: 0;
}

.btnbox {
    display: flex;
    align-items: center;
    flex-direction: column;
}
@media screen and (max-width: 767px) {
  .btnbox {
    margin-top: 16px;
  }
}
.btn {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff !important;
    width: 300px;
    padding: 8px;
    background: #999;
    border-radius: 8px;
    opacity: 0.6;
    text-decoration: none;
    cursor: pointer;
}
.btn + .btn {
  margin-top: 16px;
}
a.btn:hover, a.btn:focus {
    opacity: 1;
    transition: 0.3s;
}

.headerbox {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .headerbox {
    flex-direction: column;
  }
}

/**********************************************************
About this website block
***********************************************************/
.parallaxBlock.-aboutWeb {
  margin-bottom: -100px;
  padding-top: 100px;
  background: linear-gradient(to bottom, rgba(24, 44, 86, 0), rgba(24, 44, 86, 0.8) 60px, rgba(24, 44, 86, 0.8) 30%, rgba(109, 58, 117, 0.8));
  z-index: 800;
}
@media screen and (max-width: 1200px) {
  .parallaxBlock.-aboutWeb {
    margin-bottom: -80px;
    padding-top: 80px;
  }
}
@media screen and (max-width: 420px) {
  .parallaxBlock.-aboutWeb {
    margin-bottom: -50px;
    padding-top: 50px;
  }
}
.parallaxBlock.-aboutWeb h2 {
  margin-bottom: 80px;
}
@media screen and (max-width: 420px) {
  .parallaxBlock.-aboutWeb h2 {
    margin-bottom: 40px;
  }
}
.parallaxBlock.-aboutWeb.-fixed {
  top: 9999px;
}

.textSet {
  display: flex;
  position: relative;
}
.textSet .textSet__vertical {
  writing-mode: vertical-rl;
  margin-right: 40px;
}
.textSet .textSet__vertical h3 {
  font-size: 2.2em;
  letter-spacing: 0.2rem;
}
.textSet .textSet__desc p {
  line-height: 1.6rem;
}
@media screen and (max-width: 420px) {
  .textSet .textSet__desc p {
    font-size: 0.9em;
    line-height: 1.3rem;
  }
}
@media screen and (max-width: 375px) {
  .textSet .textSet__desc p.hidden_xxs {
    display: none;
  }
}
.textSet .textSet__desc p + p {
  padding-top: 20px;
}
@media screen and (max-width: 420px) {
  .textSet .textSet__desc p + p {
    padding-top: 12px;
  }
}
.textSet .textSet__desc div {
  padding-top: 20px;
}
@media screen and (max-width: 420px) {
  .textSet .textSet__desc div.hidden_xxs {
    display: none;
  }
}
.textSet .textSet__desc div h4 {
  font-size: 1.1em;
  letter-spacing: 0.2rem;
}
.textSet .textSet__desc div ul {
  padding-left: 16px;
}
.textSet .textSet__desc div ul li {
  font-size: 0.8em;
  list-style-type: decimal;
  font-weight: lighter;
}

/**********************************************************
footer block
***********************************************************/
.parallaxBlock.-footer {
  height: 350px;
  background-image: url("../images/wave.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  z-index: 900;
}
@media screen and (max-width: 420px) {
  .parallaxBlock.-footer {
    background-image: url("../images/wave_sp.svg");
  }
}
.parallaxBlock.-footer.-fixed {
  position: fixed;
  top: 9999px;
}
.parallaxBlock.-footer .content {
  position: absolute;
  bottom: 0;
}
.parallaxBlock.-footer .copyright {
  width: 100%;
  padding: 14px 0;
}
.parallaxBlock.-footer .copyright address {
  display: flex;
  flex-direction: column;
  width: 200px;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .parallaxBlock.-footer .copyright address {
    margin-right: 0;
  }
}
.parallaxBlock.-footer .copyright small {
  display: flex;
  justify-content: center;
  font-size: 14px;
  color: #ffffff;
}

/**********************************************************
rotate image
***********************************************************/
.rotate {
  position: relative;
  width: 100%;
  height: 100vh;
  z-index: 1500;
  overflow: hidden;
}
.rotate.hidden {
  display: none;
}
.rotate::before {
  content: "";
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  background-image: url(../images/rotate_image.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}/*# sourceMappingURL=common.css.map */


