/* ----------------------------------
  基本的なリセットと全体設定
----------------------------------- */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: Arial, sans-serif;
	line-height: 1.6;
	background-color: #f4f4f4;
	color: #000;
}
ul li {
	list-style: none;
}

/* ----------------------------------
  スクロールダウン
----------------------------------- */
.scroll_down {
	position: relative;
}
.scroll_down:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 80%;
	background: linear-gradient(180deg,rgba(#000, 0) 0, rgba(#000, .8) 80%, rgba(#000, .8) 100%);
}
.scroll_down a {
	display: inline-block;
	position: absolute;
/*	right: 0;*/
	bottom: -52vw;
	left: 0;
	z-index: 2;
	width: 13px;
	padding: 10px 20px 110px;
	color: #fff;
	font-size: 14px;
	font-family: 'Josefin Sans', sans-serif;
	line-height: 1;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	writing-mode: vertical-lr;
	transition: .2s;
	overflow: hidden;
	margin: auto;
}
.scroll_down a:before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 2px;
	height: 100px;
	background: #ddd;
}
.scroll_down a:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 2px;
	height: 100px;
	background: #000;
}
.scroll_down a:hover {
	opacity: .5;
}
#type01 a:after {
	animation: sdl01 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}
@keyframes sdl01 {
	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%;
	}
}

/* ----------------------------------
  レイアウトの共通設定
----------------------------------- */
body .main .container p,
body .main .container-p0 .inner .description p,
body .main .container-flex .fl-box .inner .description p {
	margin-bottom: 1.6em;
}

/* ----------------------------------
  動き関連
----------------------------------- */
.fade-in {
	opacity: 0;
	animation: fadeIn 1s ease-in-out forwards;
}
@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.fadein {
  opacity : 0;
  transform : translate(0, 100px);
  transition : all 2s;
}
 
.fadein.active{
  opacity : 1;
  transform : translate(0, 0);
}

/* ----------------------------------
  ヘッダー・フッター関連
----------------------------------- */
.header {
	background-image: url("../img/background_fv_new02_pc.jpg");
	background-size: cover;
	background-position: center; /* 画像を中央に配置 */
	background-repeat: no-repeat; /* 画像を繰り返さない */
	width: 100vw; /* ビューポート幅に合わせる */
	height: 100vh; /* ビューポート高さに合わせる */
	margin: 0; /* マージンをリセット */
	padding: 0; /* パディングをリセット */
	position: fixed;
}

.header-menu {
	background-image: url("../menu/img/background_fv_menu.jpg");
	background-size: cover;
	background-position: center; /* 画像を中央に配置 */
	background-repeat: no-repeat; /* 画像を繰り返さない */
	width: 100vw; /* ビューポート幅に合わせる */
	height: 100vh; /* ビューポート高さに合わせる */
	margin: 0; /* マージンをリセット */
	padding: 0; /* パディングをリセット */
}

.logo {
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
	text-align: center;
}

.logo img {
	width: 80%;
}

.fix-logo {
/*	position: relative;*/
	z-index: 100;
}
.fix-logo img {
	position: absolute;
    top: 20px;
    left: 20px;
    width: 10%;
}

.title {
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
	text-align: center;
	color: #fff;
	font-size: 5em;
}

footer.footer {
	padding: 10% 5%;
	width: 100%;
	text-align: center;
	background-color: #1a1a1a;
	opacity: 0.96;
}
footer.footer .foot-logo {
	margin-bottom: 2%;
}
footer.footer .foot-logo img {
	width: 12%;
}
footer.footer .copyright {
	color: #fff;
	font-size: .7em;
}

/* ----------------------------------
  メインパート
----------------------------------- */
@media screen and (min-width: 768px) {
	.sp {
		display: none;
	}
}

.figtree {
  font-family: "Figtree", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
}

.icon-instagram {
	position: relative;
	z-index: 100;
}
.icon-instagram img {
	position: fixed;
    top: 20px;
    right: 20px;
    width: 3%;
}
.main {
	padding-bottom: 2%;
	position: absolute;
    top: 100%;
	width: 96%;
    left: 0;
    right: 0;
    margin: auto;
}
.main-full {
	width: 100%;
    margin: 0 auto;
	background-color: #fff;
}

.container {
	padding: 160px 100px;
	width: 100%;
	margin: 0 auto;
	background-color: rgba(255, 255, 255, 0.94);
}

.container .prod-img,
.container-p0 .inner .prod-img,
.container-flex .fl-box .inner .prod-imgo,
.container-flex .fl-box .inner .prod-imgn,
.container-menu .prod-img {
	margin: 0 auto;
    text-align: center;
}
.container .prod-img img {
	width: 29%;
    opacity: 0.15;
}
.container-p0 .inner .prod-img img {
	width: 29%;
    opacity: 0.15;
}
.container-flex .fl-box .inner .prod-imgo img {
	width: 54%;
    opacity: 0.15;
}
.container-flex .fl-box .inner .prod-imgn img {
	width: 69%;
    opacity: 0.15;
}
.container-menu .prod-img img {
	width: 29%;
    opacity: 0.15;
}

.container h2,
.container-p0 h2,
.container-flex .fl-box .inner h2,
.container-info h2,
.container-infomenu h2,
.container-menu h2 {
	margin-bottom: 50px;
    width: 100%;
    text-align: center;
    font-size: 2em;
	line-height: 1.4;
}
.container .lead p,
.container-p0 .inner .description p,
.container-flex .fl-box .inner .description p,
.container-info .description p,
.container-infomenu .description p {
	text-align: center;
}

.container-p0 {
	padding: 0;
	width: 100%;
	margin: 0 auto;
	background-color: rgba(255, 255, 255, 0.94);
}
.container-p0 .img {
	width: 100%;
}
.container-p0 .img img {
	width: 100%;
}
.container-p0 .inner {
	padding: 100px;
}
.container-p0 .inner h2 img {
	width: 280px;
}

.container-flex {
	width: 100%;
	display: flex;
	background-color: rgba(255, 255, 255, 0.94);
}
.container-flex .fl-box {
	width: 50%;
}
.container-flex .fl-box .img img {
	width: 100%;
}
.container-flex .fl-box .inner {
	padding: 100px;
}

.container-info {
	padding: 100px;
	width: 100%;
	margin: 0 auto;
	background-color: rgba(251, 247, 247, 0.96);
}
.container-infomenu {
	padding: 120px;
	width: 94%;
    margin: 0 auto 3%;
	background-color: #fbf7f7;
}
.container-info .description .icon,
.container-infomenu .description .icon {
	width: 100%;
    text-align: center;
}
.container-info .description .icon img,
.container-infomenu .description .icon img {
	width: 3%;
}
.container-info .separate,
.container-infomenu .separate {
	margin-top: 5%;
	display: flex;
	justify-content: space-between;
}
.container-info .separate .separate-first,
.container-infomenu .separate .separate-first {
	width: 48%;
}
.container-info .separate .separate-first .info-img,
.container-infomenu .separate .separate-first .info-img {
	margin-bottom: 2%;
}
.container-info .separate .separate-first .info-ul,
.container-infomenu .separate .separate-first .info-ul {
	margin-bottom: 2%;
}
.container-info .separate .separate-first img,
.container-infomenu .separate .separate-first img {
	width: 100%;
}
/*
.container-info .separate .separate-first .map {
	margin-bottom: 2%;
	width: 100%;
	height: 320px;
}
*/
.container-info .separate .separate-second,
.container-infomenu .separate .separate-second {
	width: 48%;
}
.container-info .separate .separate-second .map {
	margin-bottom: 2%;
	width: 100%;
	height: 340px;
}
.container-infomenu .separate .separate-second .map {
	margin-bottom: 2%;
	width: 100%;
	height: 300px;
}
.container-info .separate .separate-second img,
.container-infomenu .separate .separate-second img {
	width: 100%;
}

.container-menu {
	padding: 100px;
	width: 86%;
	margin: 0 auto;
	background-color: #fff;
}
.container-menu .separate-menu {
	display: flex;
    justify-content: space-between;
}
.container-menu .separate-menu .separate-first,
.container-menu .separate-menu .separate-second {
	width: 48%;
	margin-bottom: 3%;
}
.container-menu .separate-menu .separate-first img,
.container-menu .separate-menu .separate-second img {
	width: 100%;
}
.container-menu .separate-menu .separate-first h3.under-line,
.container-menu .separate-menu .separate-second h3.under-line {
	margin-bottom: 5%;
    padding: 2%;
    font-size: 1.6em;
    font-weight: normal;
    border-bottom: 1px solid #333;
}
.container-menu .separate-menu .separate-first h3.paint,
.container-menu .separate-menu .separate-second h3.paint {
	margin-bottom: 5%;
    padding: 3%;
	text-align: center;
    font-size: 1.4em;
    font-weight: normal;
	background-color: #f0f0f0;
}
.container-menu h3.type {
	margin-bottom: 30px;
    width: 100%;
    text-align: center;
    font-size: 2em;
    line-height: 1.4;
	font-weight: normal;
}
.container-menu h3.type-mb10 {
	margin-bottom: 10px;
    width: 100%;
    text-align: center;
    font-size: 2em;
    line-height: 1.4;
	font-weight: normal;
}

.container-menu ul.menu-caption {
	margin-bottom: 30px;
    text-align: center;
}

.container-menu .separate-menu .separate-first h3.normal,
.container-menu .separate-menu .separate-second h3.normal {
	
}
.container-menu .separate-menu .separate-first ul.menu-list,
.container-menu .separate-menu .separate-second ul.menu-list {
	
}
.container-menu .separate-menu .separate-first ul.menu-list li,
.container-menu .separate-menu .separate-second ul.menu-list li {
	margin-bottom: .6em;
    font-size: 1.2em;
}

.container-menu .separate-menu .separate-first ul.nameprice,
.container-menu .separate-menu .separate-first ul.caption,
.container-menu .separate-menu .separate-second ul.nameprice,
.container-menu .separate-menu .separate-first ul.caption {
	width: 100%;
	margin-bottom: 5%;
}
.container-menu .separate-menu .separate-first ul.nameprice li,
.container-menu .separate-menu .separate-second ul.nameprice li {
	margin-bottom: 2%;
    display: flex;
    justify-content: space-between;
    border-bottom: 1px dashed #ccc;
}
.container-menu .separate-menu .separate-first ul.nameprice li .name,
.container-menu .separate-menu .separate-second ul.nameprice li .name {
	padding: 2%;
    width: 70%;
}
.container-menu .separate-menu .separate-first ul.nameprice li .name-single,
.container-menu .separate-menu .separate-second ul.nameprice li .name-single {
	padding: 2%;
    width: 100%;
}
.container-menu .separate-menu .separate-first ul.nameprice li .price,
.container-menu .separate-menu .separate-second ul.nameprice li .price {
	padding: 2%;
    width: 30%;
    text-align: right;
}

.container-menu .separate-menu .separate-first ul.caption,
.container-menu .separate-menu .separate-second ul.caption {
	padding: 2%;
}

.container-menu .separate-menu .separate-first ul.caption li,
.container-menu .separate-menu .separate-first ul.caption li {
	
}

.part-change {
	width: 100%
}
.part-change img {
	width: 100%;
}

/* ----------------------------------
  ボタン
----------------------------------- */
.newbtn-center {
    margin: 5% auto;
    padding: 1vw;
    display: block;
    width: 240px;
    color: #000;
	border: 1px solid #000;
    overflow: hidden;
    position: relative;
    transition-duration: .4s;
    z-index: 2;
    text-decoration: none;
    text-align: center;
}
.newbtn::after,
.newbtn-center::after {
    background: #000;
    border-radius: 50%;
    content: "";
    display: block;
    margin: auto;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    width: 100%;
    padding-top: 100%;
    height: 0;
    z-index: -1;
    transform: translateY(-50%) scale(0.1);
    transition: opacity .5s, transform 0s;
    transition-delay: 0s, .4s;
}
.newbtn:hover,
.newbtn-center:hover {
    color: #ffffff;
	text-decoration: none;
}
.newbtn:hover::after,
.newbtn-center:hover::after {
    opacity: 1;
    transform: translateY(-50%) scale(1.1);
    transition-delay: 0s;
    transition: opacity .8s, transform .6s ease-in-out;
}

@media screen and (max-width: 767px) {
	.newbtn-center {
		padding: 3.6vw;
	}
}

/* ----------------------------------
  メディアクエリ
----------------------------------- */
/* スマートフォン向けのスタイル (デフォルト) */
.container {
	display: block; /* 縦に並べる */
}

@media screen and (max-width: 840px) {
	.icon-instagram img {
		width: 8%;
	}
	.pc {
		display: none;
	}
	br {
		display: none;
	}
	.scroll_down a {
		left: 0;
        bottom: -130vw;
	}
	.header {
		background-image: url("../img/background_fv_new02_sp.jpg");
		background-size: cover;
		background-position: center; /* 画像を中央に配置 */
		background-repeat: no-repeat; /* 画像を繰り返さない */
		width: 100vw; /* ビューポート幅に合わせる */
		height: 100vh; /* ビューポート高さに合わせる */
		margin: 0; /* マージンをリセット */
		padding: 0; /* パディングをリセット */
		position: fixed;
	}
	.logo img {
		width: 100%;
	}
	.fix-logo img {
		width: 20%;
	}
	.title {
		font-size: 12vw;
	}
	.container {
		padding: 16% 5%;
	}
	.container-info,
	.container-infomenu {
		padding: 10% 5%;
	}
	.container .prod-img img {
		width: 67%;
	}
	.container-p0 .inner .prod-img img {
		width: 67%;
	}
	.container h2,
	.container-p0 h2,
	.container-flex .fl-box .inner h2,
	.container-info h2,
	.container-infomenu h2,
	.container-menu h2 {
		margin-bottom: 5%;
		font-size: 1.8em;
		line-height: 1.4;
	}
	.container .lead p,
	.container-p0 .inner .description p,
	.container-flex .fl-box .inner .description p {
		text-align: left;
	}
	.container-p0 .inner {
		padding: 10% 5%  20%;
	}
	.container-p0 .inner h2 img {
		width: 180px;
	}
	
	.container-flex {
		display: block;
	}
	.container-flex .fl-box {
		width: 100%;
	}
	.container-flex .fl-box .inner {
		padding: 10% 5%  20%;
	}
	.container-flex .fl-box .inner .newbtn-center {
		padding: 4%;
	}
	
	.container-info .description .icon img,
	.container-infomenu .description .icon img {
		width: 10%;
	}
	.container-info .separate,
	.container-infomenu .separate {
		display: block;
	}
	.container-info .separate .separate-first,
	.container-info .separate .separate-second,
	.container-infomenu .separate .separate-first,
	.container-infomenu .separate .separate-second {
		width: 100%;
		margin-bottom: 10%;
	}
	.container-info .separate .separate-first .info-img,
	.container-infomenu .separate .separate-first .info-img {
		margin-bottom: 3%;
		height: auto;
	}
	.container-info .separate .separate-first .info-ul,
	.container-infomenu .separate .separate-first .info-ul {
		margin-bottom: 3%;
	}
	.container-info .separate .separate-first .map,
	.container-infomenu .separate .separate-first .map {
		margin-bottom: 3%;
	}
	.container-info .separate .separate-first p,
	.container-infomenu .separate .separate-first p {
		margin-bottom: 3% !important;
	}
	
	.container-menu {
		padding: 10% 5%;
		width: 100%;
	}
	.container-menu h3.type {
		margin-bottom: 10px;
	}
	.container-menu ul.menu-caption {
		margin-bottom: 5%;
		text-align: left;
	}
	.container-menu .prod-img img {
		width: 70%;
	}
	.container-menu .separate-menu {
		display: block;
		margin-bottom: 10%;
	}
	.container-menu .separate-menu .separate-first {
		width: 100%;
		margin-bottom: 0;
	}
	.container-menu .separate-menu .separate-second {
		width: 100%;
		margin-bottom: 10%;
	}
	.container-menu .separate-menu .separate-first h3.under-line,
	.container-menu .separate-menu .separate-second h3.under-line {
		text-align: center;
		font-size: 1.2em;
	}
	.container-menu .separate-menu .separate-first h3.paint,
	.container-menu .separate-menu .separate-second h3.paint {
		font-size: 1.2em;
	}
	.container-menu .separate-menu .separate-first ul.nameprice {
		margin-bottom: 0;
}
	.container-menu .separate-menu .separate-second ul.menu-list li {
		font-size: 1em;
	}
	
	footer.footer .foot-logo {
		margin-bottom: 3%;
	}
	footer.footer .foot-logo img {
		width: 20%;
	}
}

/* タブレット向けのスタイル（画面幅が600px以上の場合に適用） */
@media (min-width: 600px) {
/*
  .container {
	  display: flex;
	  flex-wrap: wrap;
	  justify-content: space-between;
  }
*/
  .box {
	  width: 48%; /* 2列表示 */
  }
}

/* PC向けのスタイル（画面幅が992px以上の場合に適用） */
@media (min-width: 992px) {
  .box {
	  width: 32%; /* 3列表示 */
  }
}