@charset "utf-8";

/*
* Base
* Font
* Style (Home)
* Style (Page)
* Style (Contact)
* ページ遷移のアニメーション
*/

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

	Base

================================================== */
html {
  scroll-behavior: auto !important; /* cssのスムーススクロールをオフ */
}
body {
  background-color: #E8E8E8;
}
body.page {
  background-color: #E8E8E8;
  color: #707070;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 400; /* Bootstrap reset */
  line-height: 1.6; /* Bootstrap reset */
}

a, a:hover {
  color: #202020;
  text-decoration: none;
  cursor: pointer;
	transition-property: opacity;
	transition: 0.3s;

}
a:hover {
  opacity: 0.5;
}
a.instagram-link {
  color: #202020;
  border-bottom: #202020 1px solid;
}
a.page-text-link {
  color: #707070;
}

/* container
-------------------------------------------------- */
.container {
  padding: 0;
  margin: 0 auto;
}
.container-inner {
  margin: 0 auto;
  width: 720px;
}
@media (max-width: 840px) {
  .container {
    padding: 0 20px;
  }
  .container-inner {
    width: auto;
  }
}
@media (max-width: 768px) {
  .container {
    padding: 0 35px;
  }
}



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

	Font

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

/* --------------------------------------------------
  400 Regular
  500 Medium
  600 SemiBold
  700 Bold
-------------------------------------------------- */
h1.home-title,
.page-title,
.page-subtitle,
.copyright {
  font-family: "Cormorant Garamond", serif;
	font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0.02rem;
}

.nav-link,
a.instagram-link {
  font-family: "Cormorant Garamond", serif;
	font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.container {
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  font-style: normal;
}



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

	Style (Home)

================================================== */
.home-container {
  position: relative;
  width: 100vw;
  min-height: 100vh; /* Windows, Android */
  min-height: 100svh; /* Safari */
  -webkit-user-select: none; /* テキストを選択不可にする */
  -moz-user-select: none;
  user-select: none;
}

/* mainvisual
-------------------------------------------------- */
.carousel-style {
  position: fixed;
  top: 0;
}
.carousel-item img {
  z-index: -1;
  object-fit: cover; /* アスペクト比を維持したまま拡大縮小 */
  min-height: 100vh; /* Windows, Android */
  min-height: 100svh; /* Safari */
  width: 100%;
}
.carousel-item {
  display: block;
  width: 100vw;
  height: 100vh;
}

 /* Header
 -------------------------------------------------- */
 header {
	 margin-left: 50px;
   margin-bottom: 50px;
 }
 @media (max-width: 768px) {
   header {
		 margin-left: 30px;
     margin-bottom: 30px;
   }
 }
.nav ul {
  list-style:none;
  margin:0;
  padding:0;
}
.nav-link {
  display: inline-block;
  padding: 0;
  color: rgba(255, 255, 255, 1.0);
  font-size: 14px;
  line-height: 2;
}
.nav-link:hover,
.nav-link:focus {
  color: rgba(255, 255, 255, .5);
}

/* タイトル
 -------------------------------------------------- */
.home-title-position {
  /* 中央揃え */
  height: 100%;
  width: 100%;
}
h1.home-title {
  width: 100%;
  margin: 0;
  padding: 0;
  color: rgb(255, 255, 255);
  font-size: 20px;
  text-align: center;
  /* 中央揃え */
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media (max-width: 768px) {
  h1.home-title {
    font-size: 5.2vw; /* 横幅で可変 */
  }
}



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

	Style (Page)

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

/* closeボタン */
.nav-close {
  margin-top: 30px;
  margin-left: 50px;
}
.nav-close-btn img {
  width: 30px;
}
@media (max-width: 1080px) {
  .nav-close {
    margin-top: 30px;
    margin-left: 30px;
  }
}
@media (max-width: 768px) {
  .nav-close {
    margin-top: 30px;
    margin-left: 20px;
  }
  .nav-close-btn img {
    width: 20px;
  }
}
.nav-close-btn {
  transition-property: opacity;
  transition-duration: 0.3s;
}
.nav-close-btn:hover {
  opacity: 0.5;
}

/* ページ共通
-------------------------------------------------- */
/* タイトル */
h1.page-title {
  margin-bottom: 40px;
  padding: 0;
  color: #202020;
  font-size: 24px;
  line-height: 1;
}
@media (max-width: 768px) {
  h1.page-title {
    font-size: 24px;
    text-align: center;
  }
}

/* サブタイトル */
h2.page-subtitle {
  margin-bottom: 16px;
  padding: 0;
  color: #202020;
  font-size: 16px;
  line-height: 1;
}
@media (max-width: 768px) {
  h2.page-subtitle {
    font-size: 16px;
  }
}

/* 本文 */
.page p {
  font-size: 14px;
  line-height: 2;
  margin-bottom: 3.5rem;
}
.page-section {
  margin-top: 150px;
  padding-top: 100px;
}
#about-frame.page-section { margin-top: 0; }
@media (max-width: 768px) {
  .page-section {
    margin-top: 100px;
    padding-top: 100px;
  }
  #about-frame.page-section { margin-top: 0; }
}

/* 日本語・英語 */
.page-section .row {
  margin: 0;
}
.page-section .row .col-md {
}
.page-text-ja {
  width: 320px;
  padding: 0;
  margin-right: 80px;
}
.page-text-en {
  width: 320px;
  padding: 0;
}
@media (max-width: 768px) {
  .page-text-ja, .page-text-en {
    width: auto;
    margin: 0;
    padding: 0;
  }
}

/* 本文見出し画像 */
.page-picture {
  display: block;
  margin: 40px 0 40px;
}
.page-picture img {
  max-width: 100%;
}
@media (max-width: 768px) {
  .page-picture {
    margin: 40px -15px 40px; /* 横幅をcontainerより広くするためにマイナス値を設定する */
  }
}

/* WORKS
-------------------------------------------------- */
@media (max-width: 768px) {
  #works-film h2.page-subtitle {
    margin: 0 -15px 18px; /* 画像と位置を揃えるためにマイナス値を設定する */
  }
}

/* 画像 */
.works-picture {
  display: block;
  margin: 0 0 40px;
}
.works-picture img {
  max-width: 100%;
}
@media (max-width: 768px) {
  .works-picture {
    margin: 0 -15px 40px; /* 横幅をcontainerより広くするためにマイナス値を設定する */
  }
}

/* YouTube埋め込みをレスポンシブ対応 */
.works-youtube {
  aspect-ratio: 16/9;
}
.works-youtube iframe {
  width: 100%;
  height: 100%;
}

/* copyright
-------------------------------------------------- */
.copyright {
  margin: 180px auto 0;
  padding-bottom: 30px;
  color: #202020;
  font-size: 10px;
  text-align: center;
}
@media (max-width: 768px) {
  .copyright {
    margin: 120px auto 0;
  }
}



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

	Style (Contact)

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

body.contact .page-section {
  margin-top: 0;
  padding-top: 0;
}

/* Googleフォーム埋め込み用 */
body.contact iframe {
  width: 100%;
  height: 100vh;
  border: 0;
  margin: 0;
}
@media (max-width: 768px) {
  /* iframe内に余白があるため、余白を0にする */
  body.contact .container {
    padding: 0 0;
  }
}



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

	ページ遷移のアニメーション

================================================== */
.fade {
	animation: fadein 3s forwards;
}

@keyframes fadein {
	0% {opacity: 0}
	100% {opacity: 1}
}
