/*------------------------------------------
  Import
------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600&display=swap');

/*------------------------------------------
  Base
------------------------------------------*/
/* variable */
:root {
  /* Color */
  --c-primary: #1b1b1b;
  /*
  --c-secondary: #ff0000;
  --c-tertiary: #0000ff;
  --c-other: #00ff00;
  */
  --c-white: #fff;
  --c-black: #000;
  --c-blue: #0000ff;
  --c-text: #333;
  
  /* Font Family */
  --ff-gothic: 'Noto Sans JP', "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  --ff-mincho: 'Noto Serif JP', "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  
  /* Font Weight */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 600;
  
  /* Font Size */
  --fs-regular: 16px;
  --fs-small: 14px;
  --fs-xsmall: 12px;
  --fs-xxsmall: 10px;
}

body {
  font-family: var(--ff-mincho);
  font-size: var(--fs-regular);
  font-weight: var(--fw-medium);
  background: var(--c-white);
  color: var(--c-text);
}

a {
  text-decoration: none;
  color: var(--c-text);
}
a.blue {
  color: var(--c-blue);
}
a.blue:not(:hover) {
  text-decoration: underline;
}

.wrapper {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
}

/* デザインによって変更 */
.content {
  width: 100%;
  position: relative;
  margin-top: 120px;
  transition: transform .7s .3s cubic-bezier(0.25, 1, 0.5, 1);
}
.content.active {
  transform: translateX(-100%);
}
.inner {
  max-width: 1280px;
  width: 95%;
  margin: auto;
}

.disp-pc {
  display: block;
}
.disp-sp {
  display: none;
}
@media (max-width: 1280px) {
  /*
  .content {
    margin-top: 70px;
  }
  */
}
@media (max-width: 767px) {
  .disp-pc {
    display: none;
  }
  .disp-sp {
    display: block;
  }
}

/*------------------------------------------
  Heading
------------------------------------------*/
.heading01 {
  font-size: 36px;
  line-height: 1.4;
}
.heading02 {
  font-size: 32px;
  line-height: 1.5;
}
.heading03 {
  font-size: 28px;
  line-height: 1.5;
}
.heading04 {
  font-size: 24px;
  line-height: 1.5;
}
.heading05 {
  font-size: 20px;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .heading01 {
    font-size: 32px;
    line-height: 1.5;
  }
  .heading02 {
    font-size: 28px;
  }
  .heading03 {
    font-size: 24px;
  }
  .heading04 {
    font-size: 20px;
  }
  .heading05 {
    font-size: 16px;
    line-height: 1.7;
  }	
}

/*------------------------------------------
  Form
------------------------------------------*/
.form-block {
  max-width: 370px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin: auto;
}
.form-block .required {
  display: inline-block;
  color: #FF004D;
}
.form-block dl {
  display: flex;
  flex-flow: wrap row;
  justify-content: space-between;
  align-items: flex-start;
  font-size: 14px;
}
.form-block dt {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 0 10px;
  margin-bottom: .5rem;
}
.form-block dd {
  width: 100%;
}
.form-block input[type="text"],
.form-block textarea {
  background: #F6F6F6;
  border-radius: 2px;
  width: 100%;
  padding: 8px 10px;
  box-sizing: border-box;
  border: 1px solid #333;
}
.form-block textarea {
  resize: none;
}
.form-block .privacy {
  text-align: center;
  margin: 0 0 3rem;
}
.form-block .submit {
  max-width: 270px;
  width: 100%;
  position: relative;
  margin: auto;
}
.form-block .submit input[type="submit"] {
  width: 100%;
  height: 50px;
  line-height: 48px;
  border: 1px solid #333;
  text-align: center;
  transition: .3s;
}
.form-block .submit input[type="submit"]:hover {
  background: #333;
  color: var(--c-white);
  cursor: pointer;
}
.complete-section {
  display: flex;
  flex-direction: column;
  gap: 3rem 0;
}

/*------------------------------------------
  Header
------------------------------------------*/
.cmn-header {
  width: 100%;
  height: 70px;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 99;
  box-shadow: 0 5px 4px rgba(0, 0, 0, 0.1);
  background: #fff;
}
.cmn-header .inner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  height: 100%;
  position: relative;
}
.cmn-header .logo {
  position: absolute;
  left: 0;
  top: 0;
}
.cmn-header .gnav {
  transition: .5s;
  font-size: var(--fs-small);
}
.cmn-header .gnav .menu {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0 30px;
  position: relative;
}
.cmn-header .gnav .gitem {
  position: relative;
  padding: 1rem 0;
}
@media (max-width: 1024px) {
  .cmn-header .gnav .menu {
    gap: 0 10px;
  }
}
@media (max-width: 767px) {
  .cmn-header {
    height: 50px;
  }
  .cmn-header .inner {
    width: 97.5%;
    margin: 0 auto 0 0;
  }
  .cmn-header .logo {
    width: 100px; 
  }
  .cmn-header .gnav {
    font-size: var(--fs-xsmall);
  }
}

/*------------------------------------------
Footer
------------------------------------------*/
.cmn-footer {
  width: 100%;
  background: url(../images/common/footer_bg.png) no-repeat center / cover;
  text-align: center;
  padding: 10rem 0 .5rem;
}
.cmn-footer .heading02 {
  margin-bottom: 3rem;
}
.cmn-footer .flex-content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 3rem 0;
}
.cmn-footer .copy {
  font-size: var(--fs-xsmall);
  color: var(--c-white);
  margin-top: 10rem;
}
@media (max-width: 767px) {
  .cmn-footer {
    padding: 5rem 0 .5rem;
  }
  .cmn-footer .copy {
    margin-top: 5rem;
  }
}


/*------------------------------------------
  Loading Aniimation
------------------------------------------*/
/* Loading */
.loading {
  position: fixed;
  width: 100%;
  height: 100%;
  background: #f4f4f4;
  z-index: 9999999;
  text-align:center;
  /*color: var(--c-white);*/
}
.loading.show {
  animation-name: loadingAnime;
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
}
@keyframes loadingAnime {
  0% {
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    z-index: 99;
  }
}

.loading div {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.loading div.show {
  animation-name: logoAnime;
  animation-duration: 1.2s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
}
@keyframes logoAnime {
  0% {
    opacity: 1;
  }
  70% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

/* Loading Background */
.loading-bg {
  display: none;
}
body.appear .loading-bg {
  display: block;
  content: "";
  position:fixed;
  z-index: 999;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  transform: scaleX(0);
  background-color: var(--c-text); /* Background Color */
  animation-name: PageAnime;
  animation-duration: 1.2s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
}
@keyframes PageAnime {
  0% {
    transform-origin: left;
    transform: scaleX(0);
  }
  50% {
    transform-origin: left;
    transform: scaleX(1);
  }
  50.001% {
    transform-origin: right;
  }
  100% {
    transform-origin: right;
    transform: scaleX(0);
  }
}

/* Wrapper */
.wrapper {
  opacity: 0;
}
body.appear .wrapper {
  animation-name: PageAnimeAppear;
  animation-duration: 1s;
  animation-delay: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes PageAnimeAppear {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/*------------------------------------------
	Slide background to fade in text Animation
------------------------------------------*/
/* Common */
.bgLRextendTrigger {
	position: relative;
	overflow: hidden;
	opacity: 0;
}
.bgLRextend {
	animation-name: bgextendAnimeBase;
	animation-duration: 1s;
	animation-fill-mode: forwards;
	position: relative;
	overflow: hidden;
	opacity: 0;
}
@keyframes bgextendAnimeBase {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* Text */
.bgappear {
	animation-name: bgextendAnimeSecond;
	animation-duration: 1s;
	animation-delay: 0.6s;
	animation-fill-mode: forwards;
	opacity: 0;
}
@keyframes bgextendAnimeSecond {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/* Background */
.bgLRextend::before {
	animation-name: bgLRextendAnime;
	animation-duration: 1s;
	animation-fill-mode: forwards;
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--c-primary); /* Background Color */
}
@keyframes bgLRextendAnime {
	0% {
		transform-origin: left;
		transform: scaleX(0);
	}
	50% {
		transform-origin: left;
		transform: scaleX(1);
	}
	50.001% {
		transform-origin: right;
	}
	100% {
		transform-origin: right;
		transform: scaleX(0);
	}
}