@charset "UTF-8";
/*-----------------------------------
	common
-----------------------------------*/
h2.style01 {
	font-size: min(48px,4.1vw);
	font-weight: 500;
	padding-left: min(50px,4.27vw);
	background: url(../img/common/icon_title.svg) no-repeat left min(18px,1.54vw)/min(39px,3.33vw);
	margin-bottom: 36px;
}
p.style {
	font-size: min(18px,1.54vw);
	line-height: 2;
	letter-spacing: -0.08em;
	white-space: pre-line;
}
h2.style02 {
	font-size: min(35px,2.99vw);
	font-weight: 500;
	line-height: 1;
	writing-mode: vertical-rl;
	background: #FFF;
	color: #000;
	height: max-content;
	padding: min(50px,4.27vw) min(20px,1.71vw);
	position: absolute;
}
.kodawari {
	width: min(1160px,95%);
	margin: -1px auto 0;
}
.kodawari .ttlimg {
	width: 100%;
	position: relative;
}
.kodawari .text .copy {
	font-size: min(48px,4.1vw);
	font-weight: 500;
	line-height: 1.35;
	white-space: pre-line;
	margin-bottom: min(30px,2.56vw);
}
/* modaal */
.modaal-wrapper {
    z-index: 99999;
}
.modaal-overlay {
    z-index: 9999 !important;
}
.modaal-close:focus:after,
.modaal-close:focus:before,
.modaal-close:hover:after,
.modaal-close:hover:before{
	background:#666;
}
.modaal-video .modaal-inner-wrapper{
	padding:0;
}
.modaal-video-container {
    padding-bottom: 0;
	max-height: 80dvh;
    height: auto;
    aspect-ratio: 9 / 16;
    background: none;
}
@media screen and (max-width: 640px) {
	h2.style01 {
		font-size: 6.93vw;
		padding-left: 0;
		background: none;
		margin-bottom: 15px;
	}
	p.style {
		font-size: 12px;
	}
	h2.style02 {
		font-size: min(24px,6.4vw);
		padding: min(36px,9.6vw) min(15px,4vw);
	}
	.kodawari {
		width: 100vw;
	}
	.kodawari .text {
		width: 100% !important;
	}
	.kodawari .text .copy {
		font-size: min(18px,4.8vw);
		margin-bottom: min(15px,4vw);
	}
}
/*-----------------------------------
	mainvisual_block
-----------------------------------*/
#mainvisual_block {
	background: url(../img/kodawari/mv_img.jpg) no-repeat center / cover;
	width: 100vw;
	height: 620px;
	margin: 63px 0 0;
	position: relative;
}
#mainvisual_block .logo {
	background: #FFF;
	padding: 30px 20px;
	position: absolute;
	top: 0;
	left: max(calc(50vw - 525px), 5vw);
	z-index: 2;
}
#mainvisual_block .logo a {
	width: 43px;
	height: 100%;
	line-height: 0;
}
#mainvisual_block .copy {
	position: absolute;
	top: 60px;
	right: max(calc((50vw - 525px) + 150px), 17.82vw);
	z-index: 1;
}
#mainvisual_block .copy p {
	color: #FFF;
	font-size: 38px;
	line-height: 1.75;
	white-space: pre-line;
	writing-mode: vertical-rl;
}
#mainvisual_block .link_movie {
	width: 222px;
	position: absolute;
	bottom: 45px;
	left: max(calc(50vw - 525px), 5vw);
	z-index: 2;
}
#mainvisual_block .link_reserve {
	width: 382px;
	position: absolute;
	bottom: -75px;
	right: max(calc(50vw - 525px), 5vw);
	z-index: 2;
}
@media screen and (max-width: 840px) {
	#mainvisual_block .copy p {
		font-size: 30px;
	}
	#mainvisual_block .link_movie {
		width: 155px;
		bottom: 32px;
		left: 49px;
	}
	#mainvisual_block .link_reserve {
		width: 267px;
		bottom: -53px;
		right: 30px;
	}
}
@media screen and (max-width: 640px) {
	#mainvisual_block {
		background: url(../img/kodawari/sp/mv_img.jpg) no-repeat center / cover;
		height: 100dvh;
		margin: 0;
	}
	#mainvisual_block .swiper img {
		height: 100dvh;
	}
	#mainvisual_block .logo {
		padding: 22px 14px;
		top: 60px;
		left: 0;
	}
	#mainvisual_block .logo a {
		width: 37px;
	}
	#mainvisual_block .copy {
		width: 140px;
		top: calc(40% - 173px);
		left: calc(70% - 70px);
	}
	#mainvisual_block .link_movie {
		width: 114px;
		bottom: 60px;
		left: 15px;
	}
	#mainvisual_block .link_reserve {
		width: 222px;
		bottom: 50px;
		right: 15px;
	}
}
/*-----------------------------------
	grain
-----------------------------------*/
#grain {
	background: url(../img/kodawari/bg_grain.webp) no-repeat center center/cover;
	position: relative;
	z-index: 0;
}
#grain::before {
	content: "";
	width: 540px;
	height: 316px;
	background: url(../img/kodawari/grain_deco.png) no-repeat center/contain;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}
@media screen and (max-width: 640px) {
	#grain::before {
		content: none;
		display: none;
	}
}
/*-----------------------------------
	scroll_box
-----------------------------------*/
#scroll_box {
	padding: 30px 0;
}
@media screen and (max-width: 640px) {
	#scroll_box {
		width: 100%;
		position: absolute;
		bottom: 100%;
		padding: 15px 0;
	}
	#scroll_box .scroll_txt {
		color: #FFF !important;
	}
	#scroll_box .scroll_line {
		background: rgba(255, 255, 255, 0.5) !important;
	}
}
/*-----------------------------------
	logo_block
-----------------------------------*/
#logo_block {
	padding: 70px 0 160px;
}
#logo_block img {
	display: block;
	width: min(690px,60%);
	margin: 0 auto;
}
@media screen and (max-width: 640px) {
	#logo_block {
		padding: 60px 0;
	}
	#logo_block img {
		width: 68.8vw;
	}
}
/*-----------------------------------
	omoi_block
-----------------------------------*/
#omoi_block {
	padding: 0 0 95px;
	position: relative;
	z-index: 0;
}
#omoi_block::before {
	content: "";
	width: 305px;
	height: 240px;
	background: url(../img/kodawari/omoi_deco.png) no-repeat center/contain;
	position: absolute;
	bottom: 0;
	right: max(calc((50vw - 525px) - 61px),0.5vw);
	z-index: -1;
}
#omoi_block .row_box {
	align-items: end;
}
#omoi_block .text {
	width: 54%;
}
#omoi_block .image {
	width: 41.43%;
}
@media screen and (max-width: 640px) {
	#omoi_block {
		padding: 0 0 50px;
	}
	#omoi_block::before {
		content: none;
		display: none;
	}
	#omoi_block .row_box {
		align-items:normal;
		gap: 40px;
	}
	#omoi_block .text {
		width: 100%;
	}
	#omoi_block .image {
		width: 100%;
	}
}
/*-----------------------------------
	kodawari_block
-----------------------------------*/
#kodawari_block {
	padding-bottom: 124px;
	position: relative;
	z-index: 0;
}
#kodawari_block::before {
	content: "";
	width: 607px;
	height: 834px;
	background: url(../img/kodawari/kodawari_deco.webp) no-repeat center/contain;
	position: absolute;
	bottom: 0;
	right: max(calc((50vw - 525px) - 28px),2.61vw);
	z-index: -1;
}
#kodawari_block .row_box {
	margin-top: 60px;
	align-items: center;
}
#kodawari_block .row_box:nth-child(2n) {
	flex-direction: row-reverse;
}
#kodawari_block .row_box:first-of-type {
	align-items:end !important;
	margin-top: max(-40px,-2.56vw);
}
#kodawari_block .row_box .text {
	width: 67%;
}
#kodawari_block .row_box .text h3 {
	font-size: min(28px,2.39vw);
	font-weight: 500;
	white-space: pre-line;
	margin-bottom: 10px;
}
#kodawari_block .row_box .text h3::before {
	content: "【";
}
#kodawari_block .row_box .text h3::after {
	content: "】";
}
#kodawari_block .row_box .image {
	width: 31.43%;
}
#kodawari_block .row_box .image p {
	font-size: 12px;
}
@media screen and (max-width: 640px) {
	#kodawari_block {
		padding-bottom: 60px;
	}
	#kodawari_block::before {
		content: none;
		display: none;
	}
	#kodawari_block .row_box {
		margin-top: 60px;
		align-items: normal;
	}
	#kodawari_block .row_box:first-of-type {
		align-items: normal !important;
		margin-top: 35px;
	}
	#kodawari_block .row_box .text {
		width: 58%;
	}
	#kodawari_block .row_box .text h3 {
		font-size: 4.26vw;
		letter-spacing: -0.08em;
	}
	#kodawari_block .row_box .text h3::before {
		content: none;
		display: none;
	}
	#kodawari_block .row_box .text h3::after {
		content: none;
		display: none;
	}
	#kodawari_block .row_box .image {
		width: 39%;
	}
	#kodawari_block .row_box .image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	#kodawari_block .row_box .image p {
		font-size: 2vw;
	}
	#kodawari_block .row_box:nth-of-type(2) .image {
		width: 44%;
		margin-left: -5vw;
	}
	#kodawari_block .row_box:nth-of-type(3) .text {
		width: 55%;
	}
	#kodawari_block .row_box:nth-of-type(3) .image {
		width: 50%;
		margin-right: -5vw;
	}
	#kodawari_block .row_box:nth-of-type(3) .image img {
		object-position: left;
	}
}
/*-----------------------------------
	ajituke_block
-----------------------------------*/
#ajituke_block {
	background: #FFFFFF;
	background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) calc(100% - min(226px,19.31vw)), rgba(255, 255, 255, 0) calc(100% - min(226px,19.31vw)), rgba(255, 255, 255, 0) 100%);
	padding-bottom: 105px;
}
#ajituke_block .text {
	width: 55.33%;
}
#ajituke_block .text::before {
	content: "";
	width: min(350px,29.91vw);
	height: min(433px,37vw);
	background: url(../img/kodawari/ajituke_logo.png) no-repeat center/contain;
	display: block;
	margin: 0 auto min(72px,6.15vw);
}
#ajituke_block .image {
	padding-top: min(140px,11.96vw);
	width: 44.67%;
}
@media screen and (max-width: 640px) {
	#ajituke_block {
		background: none;
		padding-bottom: 60px;
	}
	#ajituke_block .row_box {
		position: relative;
	}
	#ajituke_block .text {
		width: 100%;
		position: relative;
	}
	#ajituke_block .text::before {
		width: 36.26vw;
		height: 44.8vw;
		margin: 0 auto 5.33vw 0;
	}
	#ajituke_block .image {
		padding-top: 9.6vw;
		width: 50.46%;
		position: absolute;
		top: 0;
		right: 0;
	}
}
/*-----------------------------------
	cut_block
-----------------------------------*/
#cut_block {
	background: #000;
	color: #FFF;
}
#cut_block .ttlimg h2.style02 {
	bottom: max(-103px,-8.8vw);
	left: min(181px,calc(2.5% + 10.77vw));
}
#cut_block .row_box {
	padding: min(95px,8.19vw) 0 min(50px,4.31vw);
	align-items: center;
}
#cut_block .text {
	width: 67.33%;
}
#cut_block .image {
	width: 32.67%;
}
@media screen and (max-width: 640px) {
	#cut_block .ttlimg h2.style02 {
		bottom: auto;
		top: calc(100% - min(50px,13.33vw));
		left: 10vw;
	}
	#cut_block .row_box {
		padding: min(40px,10.66vw) 0;
		flex-direction: column-reverse;
		align-items: end;
		gap: min(30px,8vw);
	}
	#cut_block .image {
		width: 47.38%;
		margin-right: min(25px,6.66vw);
	}
}
/*-----------------------------------
	material_block
-----------------------------------*/
#material_block .ttlimg h2.style02 {
	bottom: -1px;
	right: min(181px,calc(2.5% + 10.77vw));
}
#material_block .row_box {
	padding: min(120px,10.25vw) 0;
	align-items: center;
}
#material_block .text {
	width: 53.02%;
}
#material_block .image {
	width: 46.98%;
}
@media screen and (max-width: 640px) {
	#material_block .ttlimg h2.style02 {
		bottom: auto;
		top: calc(100% - min(117px,31.2vw));
		right: 10vw;
	}
	#material_block .row_box {
		padding: min(50px,13.33vw) 0;
		flex-direction: column-reverse;
		align-items:normal;
		gap: min(30px,8vw);
	}
	#material_block .image {
		width: 71%;
	}
}
/*-----------------------------------
	charcoal_block
-----------------------------------*/
#charcoal_block {
	background: #000;
	color: #FFF;
}
#charcoal_block .ttlimg h2.style02 {
	bottom: max(-80px,-6.83vw);
	left: min(181px,calc(2.5% + 10.77vw));
}
#charcoal_block .row_box {
	padding: min(120px,10.25vw) 0;
	align-items: center;
}
#charcoal_block .text {
	width: 69.81%;
}
#charcoal_block .image {
	width: 30.19%;
}
@media screen and (max-width: 640px) {
	#charcoal_block .ttlimg h2.style02 {
		bottom: auto;
		top: calc(100% - min(71px,18.93vw));
		left: 10vw;
	}
	#charcoal_block .row_box {
		padding: min(50px,13.33vw) 0;
		flex-direction: column-reverse;
		align-items: end;
		gap: min(30px,8vw);
	}
	#charcoal_block .image {
		width: 44%;
		margin-right: min(25px,6.66vw);
	}
}
/*-----------------------------------
	inquiry_block
-----------------------------------*/
#inquiry_block .ttlimg h2.style02 {
	bottom: -1px;
	right: min(181px,calc(2.5% + 10.77vw));
}
#inquiry_block .row_box {
	padding: min(120px,10.25vw) 0 0;
	align-items: center;
}
#inquiry_block .text {
	width: 66.86%;
}
#inquiry_block .image {
	width: 33.14%;
}
@media screen and (max-width: 640px) {
	#inquiry_block .ttlimg h2.style02 {
		bottom: auto;
		top: calc(100% - min(117px,31.2vw));
		right: 10vw;
	}
	#inquiry_block .row_box {
		padding: min(50px,13.33vw) 0 0;
		flex-direction: column-reverse;
		align-items:normal;
		gap: min(30px,8vw);
	}
	#inquiry_block .image {
		width: 40%;
		margin-left: min(30px,8vw);
	}
}