@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@400;700;800;900&display=swap');

html {
	scroll-behavior: smooth;
}

body {
	font-family: 'LINE Seed JP', sans-serif;
	font-feature-settings: "palt";
	padding-top: 70px;
}

h2 {
	font-weight: 800;
	color: #202380;
	font-size: clamp(3.2rem, 5vw, 6.2rem); 
	position: relative;
	z-index: 2;
}

h3 {
	font-weight: 800;
	color: #202380;
}

h4, h4 span {
	font-size: 2.0rem;
	color: #F37F44;
	margin: 16px auto 8px auto;
}

b {
	font-weight: 800;
}

p, li {
	font-weight: 400;
	font-size: 2.0rem;
	line-height: 3.2rem;
}

p {
	margin-bottom: 0;
}

a {
	color: #000;
	text-decoration: none;
}

ul li {
	list-style: none;
}

ul {
	padding: 0;
}

section {
	margin-bottom: 0;
}

.accent, .c-red {
	color: #E60012 !important;
	font-weight: bold !important;
}

header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 70px;
	background-color: #FFFFFF;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 40px;
	box-sizing: border-box;
	z-index: 1000;
	box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

header .logo {
	margin: 0;
	display: flex;
	align-items: center;
}

header .logo img {
	height: 35px;
	width: auto;
}

header .header-btns {
	display: none !important;
}

header .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 42px;
	padding: 0 32px;
	border-radius: 42px;
	color: #fff;
	font-weight: bold;
	font-size: 1.5rem;
	text-decoration: none;
	border: 1px solid transparent;
}

header #btn01:hover {
	background-color: #1DB68A !important;
	color: #fff !important;
	border-color: transparent !important;
}

header #btn02:hover {
	background-color: #E60012 !important;
	color: #fff !important;
	border-color: transparent !important;
}

.sp {
	display: none !important; 
}

.pc {
	display: block !important;
}

br.pc, span.pc {
	display: inline !important; 
}

.btn {
	border: none;
	background: #E60012;
}

.btn:hover {
	color: #E60012;
	border: 1px solid #E60012;
	background: #fff;
}

#btn01 {
	background: #1DB68A;
}

#btn01:hover {
	color: #1DB68A;
	border: 1px solid #1DB68A;
}

#btn02 {
	background: #E60012;
}

#btn02:hover {
	color: #E60012;
	border: 1px solid #E60012;
}

.cta-banner, #chatpluscontent {
	display: none !important;
}

.banner {
	margin-top: 24px;
}

.bg-w {
	background-color: #FFFFFF;
}

.bg-o {
	background-color: #FAF2E8;
}

footer .inner .ta-c {
	margin-bottom: 16px;
}

footer .inner p {
	line-height: 2.8rem;
}

footer .inner .ta-c br {
	margin-bottom: 0;
}

.copyright {
	text-align: center;
	padding: 30px 20px;
	background-color: #fff;
	color: #F37F44;
	font-size: 14px;
}

.spoon-mv {
	position: relative;
	background-color: #FAF2E8;
	width: 100%;
	height: auto;
	min-height: calc(70vh - 50px);
	padding: 40px 20px; 
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 60px;
	overflow: hidden;
	z-index: 1;
	border-radius: 0 0 50% 50% / 0 0 60px 60px;
}

.spoon-mv h1 {
	position: relative;
	width: 100%;
	text-align: center;
	margin: 0;
	z-index: 2;
	flex-shrink: 0; 
}

.spoon-mv h1 img {
	max-width: 500px;
	width: 80%;
	margin: 0 auto;
}

#mv-text {
	position: relative;
	z-index: 2;
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: 'Noto Serif JP', serif;
	font-size: clamp(28px, 5.5vw, 68px);
	font-weight: bold;
	margin: 40px auto; 
	letter-spacing: 0.3em;
	line-height: 1.6;
	color: #0f2350;
	white-space: nowrap;
	text-shadow: 
		2px 2px 0 #fff, -2px -2px 0 #fff,
		-2px 2px 0 #fff, 2px -2px 0 #fff,
		0px 2px 0 #fff, 0 -2px 0 #fff,
		-2px 0 0 #fff, 2px 0 0 #fff;
}

.spoon-mv .bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	pointer-events: none;
}

.spoon-mv .bg img:nth-child(1) {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 38vw; 
	height: 100%;
	max-width: none;
	object-fit: cover; 
	object-position: left center;
}

.spoon-mv .bg img:nth-child(2) {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	width: 38vw; 
	height: 100%;
	max-width: none;
	object-fit: cover; 
	object-position: right center;
}

.spoon-mv .arrow {
	position: relative; 
	width: 12px;
	height: 63px;
	z-index: 2;
	animation: bounce 2s infinite;
	flex-shrink: 0; 
}

@keyframes bounce {
	0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
	40% { transform: translateY(-15px); }
	60% { transform: translateY(-7px); }
}

.text-group p {
	margin-bottom: 24px;
	color: #333333;
}

.text-group p:last-child {
	margin-bottom: 0;
}

.content-01 {
	width: 100%;
	padding: 120px 20px;
	box-sizing: border-box;
}

.content-01 h2 {
	text-align: center;
	margin-bottom: 40px;
	text-shadow: 
		2px 2px 0 #fff, -2px -2px 0 #fff,
		-2px 2px 0 #fff, 2px -2px 0 #fff,
		0px 2px 0 #fff, 0 -2px 0 #fff,
		-2px 0 0 #fff, 2px 0 0 #fff,
		0 0 15px rgba(255,255,255,0.9), 
		0 0 30px rgba(255,255,255,0.9);
}

.content-01-inner {
	position: relative;
	width: 80%;
	max-width: 1200px;
	margin: 0 auto;
}

.content-01 .text-group {
	position: relative;
	z-index: 2;
}

.content-01 .text-group p {
	text-align: center;
	text-shadow: 
		2px 2px 0 #fff, -2px -2px 0 #fff,
		-2px 2px 0 #fff, 2px -2px 0 #fff,
		0px 2px 0 #fff, 0 -2px 0 #fff,
		-2px 0 0 #fff, 2px 0 0 #fff,
		0 0 10px rgba(255,255,255,0.9);
}

.content-01 .deco-img {
	position: absolute;
	width: 240px;
	max-width: 20vw;
	z-index: 1;
}

.content-01 .img1 { top: -20px; left: -5%; }
.content-01 .img2 { bottom: -40px; left: 0; }
.content-01 .img3 { top: 50%; right: -5%; transform: translateY(-50%); }

.content-02 {
	width: 100%;
	padding: 0 20px 0; 
	background-color: #FFFFFF;
	text-align: center;
	box-sizing: border-box;
}

.movie-frame {
	position: relative;
	width: 95%; 
	max-width: 1200px;
	margin: 0 auto;
	cursor: pointer;
	transition: transform 0.3s ease;
}

.movie-frame:hover {
	transform: scale(1.02);
}

.movie-frame .frame-bg {
	display: block;
	width: 100%;
	height: auto;
}

.content-03 {
	width: 100%;
	padding: 80px 20px;
	box-sizing: border-box;
}

.content-03 .text-group {
	width: 80%;
	max-width: 800px;
	margin: 0 auto;
}

.content-03 .text-group p {
	text-align: center;
}

.content-04 {
	width: 100%;
	padding: 100px 20px;
	box-sizing: border-box;
}

.content-04 h2 {
	text-align: center;
	margin-bottom: 60px;
}

.content-04-inner {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 60px;
	width: 80%;
	max-width: 1200px;
	margin: 0 auto;
}

.content-04-inner img {
	width: 45%;
	height: auto;
	border-radius: 8px;
}

.content-04 .text-group {
	width: 55%;
}

.content-04 .text-group p {
	text-align: left;
}

.content-05 {
	width: 100%;
	padding: 100px 20px 50px; 
	box-sizing: border-box;
	text-align: center;
}

.content-05 h2 {
	margin-bottom: 24px;
}

.content-05 p {
	font-size: 4.2rem;
	font-weight: 800;
	line-height: 4.6rem;
	margin: 0 auto 60px auto;
	width: 80%;
	color: #333333;
}

.content-05 img {
	display: block;
	width: 80%;
	max-width: 1000px;
	height: auto;
	margin: 0 auto;
}

.content-06 {
	width: 100%;
	padding: 100px 20px 40px;
	box-sizing: border-box;
	text-align: center;
}

.content-06 h2 {
	margin-bottom: 24px;
}

.content-06 p {
	margin: 0 auto 24px auto; 
	width: 80%;
	color: #333333;
}

.content-06 p:last-of-type {
	margin-bottom: 0; 
}

.content-07 {
	width: 100%;
	padding: 100px 20px;
	box-sizing: border-box;
}

.content-07 h2 {
	text-align: center;
	margin-bottom: 40px;
}

.content-07 .text-group {
	width: 80%;
	max-width: 1200px;
	margin: 0 auto;
}

.content-07 .text-group p {
	text-align: center;
}

.content-08 {
	width: 100%;
	padding: 100px 20px;
	box-sizing: border-box;
	background-color: #FAF2E8;
	border-radius: 50% 50% 0 0 / 60px 60px 0 0;
}

.content-08 h2 {
	text-align: center;
	margin-bottom: 60px;
}

.content-08-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 60px;
	width: 80%;
	max-width: 1200px;
	margin: 0 auto 100px;
}

.content-08-inner .text-group {
	width: 55%;
}

.content-08-inner .text-group p {
	text-align: left;
}

.content-08-inner img {
	width: 45%;
	height: auto;
	border-radius: 8px;
}

.content-08-inner .cta-button {
	width: 320px;
	margin: 40px 0 0;
}

.contact {
	width: 80%;
	max-width: 1200px;
	margin: 0 auto;
}

.contact-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 60px;
}

.contact-inner .text-group {
	width: 50%;
	text-align: left;
}

.contact-inner h3 {
	font-size: 3.2rem;
	font-weight: bold;
	color: #0f2350;
	margin-bottom: 24px;
}

.contact-inner p {
	margin-bottom: 24px; 
	color: #333333;
}

.contact-inner p:last-of-type {
	margin-bottom: 0;
}

.contact-inner .cta-button {
	width: 320px;
	margin: 40px 0 0;
}

.contact-inner img {
	width: 50%;
	height: auto;
	border-radius: 12px;
}

.movie-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
}

.movie-modal.is-active {
	display: flex;
}

.movie-modal-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.85);
	cursor: pointer;
}

.movie-modal-content {
	position: relative;
	z-index: 10000;
	width: 90%;
	max-width: 1200px;
	background: #000;
	box-shadow: 0 4px 20px rgba(0,0,0,0.5);
}

.movie-modal-close {
	position: absolute;
	top: -45px;
	right: 0;
	background: none;
	border: none;
	color: #fff;
	font-size: 40px;
	cursor: pointer;
	line-height: 1;
}

.video-wrapper {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}

.video-wrapper video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.custom-controls {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.play-pause-btn {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	outline: none;
	transition: transform 0.2s ease;
	pointer-events: auto;
}

.play-pause-btn:hover {
	transform: scale(1.1);
}

.play-pause-btn .material-symbols-outlined {
	font-size: 100px; 
	color: #FFFFFF;
	text-shadow: 0px 4px 15px rgba(0, 0, 0, 0.6);
}

.image-grid-cotent {
	width: 100%;
	margin: 0;
	padding: 40px 20px;
	display: flex;
	justify-content: center;
}

.image-grid {
	width: 100%;
	max-width: 1000px;
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	justify-content: center;
}

.circle-item {
	width: calc((100% - 40px) / 3); 
	height: auto;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	overflow: hidden;
	cursor: pointer;
	box-shadow: 0 4px 10px rgba(0,0,0,0.1);
	transition: transform 0.3s ease;
}

.circle-item:hover {
	transform: scale(1.05);
}

.circle-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease;
	z-index: 1000;
}

.modal-overlay.is-active {
	opacity: 1;
	pointer-events: auto;
}

.modal-content {
	background-color: #fff;
	padding: 60px 40px 40px; 
	border-radius: 16px;
	width: 80%; 
	max-width: 800px;
	text-align: center;
	position: relative;
	transform: translateY(20px);
	transition: transform 0.4s ease;
}

.modal-overlay.is-active .modal-content {
	transform: translateY(0);
}

.close-btn {
	position: absolute;
	top: 15px;
	right: 20px;
	background: none;
	border: none;
	font-size: 35px;
	cursor: pointer;
	color: #666;
	z-index: 10; 
}

.split-container {
	display: flex;
	justify-content: center;
	gap: 20px;
	margin-bottom: 24px;
	position: relative;
}

.split-img {
	width: 38%;
	max-width: 280px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.3s ease;
	position: relative;
	filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.15));
	will-change: transform, opacity;
	transform: translateZ(0); 
}

.img-a {
	z-index: 1;
	transform: translate3d(30px, 0, 0);
	opacity: 0;
}

.img-b {
	z-index: 2;
	transform: translate3d(-30px, 0, 0);
	opacity: 0;
}

.modal-overlay.is-active .img-a,
.modal-overlay.is-active .img-b {
	transform: translate3d(0, 0, 0);
	opacity: 1;
	transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) 0.4s, opacity 0.4s ease 0.4s;
}

.modal-text {
	font-size: 2.0rem;
	margin: 0;
	line-height: 1.5;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.4s ease 0.4s, transform 0.4s ease 0.4s;
	white-space: pre-line;
}

.modal-overlay.is-active .modal-text {
	opacity: 1;
	transform: translateY(0);
}

@media (min-width: 769px) {
	.cta-button {
		width: 420px;
		height: 62px;
		line-height: 62px;
		text-align: center;
		display: block;
		color: #fff;
		font-weight: 900;
		background: #F37F44;
		border-radius: 62px;
		margin: 40px auto 0;
		box-shadow: 0px 6px 0px 0px #CD6936;
	}
}

@media (max-width: 1024px) {
	.spoon-mv {
		height: auto;
		min-height: 70vh; 
		padding: 40px 20px 60px;
	}

	.spoon-mv .bg img:nth-child(1) {
		content: url("https://www.narikoma-group.co.jp/lp/assets/images/spoon-samurai/tb-mv-01.png");
		width: 45vw; 
		max-width: 45vw;
	}

	.spoon-mv .bg img:nth-child(2) {
		content: url("https://www.narikoma-group.co.jp/lp/assets/images/spoon-samurai/tb-mv-02.png");
		width: 45vw;
		max-width: 45vw;
	}
}

@media (max-width: 800px) {
	.content-04-inner {
		flex-direction: column;
		gap: 40px;
	}

	.content-04-inner img,
	.content-04 .text-group {
		width: 100%;
	}

	.content-08-inner,
	.contact-inner {
		flex-direction: column-reverse;
		gap: 30px;
	}

	.content-08-inner .text-group,
	.content-08-inner img,
	.contact-inner .text-group,
	.contact-inner img {
		width: 100%;
	}

	.content-08-inner .cta-button,
	.contact-inner .cta-button {
		margin: 40px auto 0;
	}
}

@media (max-width: 768px) {
	.pc {
		display: none !important; 
	}

	.sp {
		display: block !important;
	}

	br.sp, span.sp {
		display: inline !important;
	}

	header {
		padding: 0 10px;
		height: 60px;
	}

	header .logo {
		flex-shrink: 1;
	}

	header .logo img {
		height: 20px;
		max-width: 100%;
		object-fit: contain;
	}
	
	body {
		padding-top: 60px;
	}

	.content-01, .content-03, .content-04, 
	.content-06, .content-07, .content-08 {
		padding: 60px 20px;
	}

	.content-05 {
		padding: 60px 20px 30px; 
	}

	.content-04 h2, .content-08 h2 {
		margin-bottom: 30px;
	}

	.spoon-mv {
		height: auto; 
		min-height: 85vh; 
		padding: 40px 20px 60px; 
	}

	.spoon-mv .bg img:nth-child(1) {
		content: url("https://www.narikoma-group.co.jp/lp/assets/images/spoon-samurai/sp-mv-01.png");
		width: 100%;
		height: 100%;
		max-width: none;
		object-fit: cover;
		object-position: center;
	}
	
	.spoon-mv .bg img:nth-child(2) {
		display: none;
	}

	#mv-text {
		font-size: clamp(32px, 8.5vw, 60px);
		margin: 25px auto;
	}

	.content-01 .deco-img {
		display: none;
	}

	.content-02 {
		padding: 0;
	}

	.movie-frame {
		width: 100%;
	}

	.content-05 p {
		margin-bottom: 24px;
		font-size: clamp(2.4rem, 6vw, 4.2rem); 
		line-height: 1.4;
	}

	.content-06 p {
		margin-bottom: 24px; 
	}

	.contact-inner h3 {
		text-align: center;
	}

	.cta-button {
		width: 100%;
		height: 52px;
		line-height: 52px;
		text-align: center;
		display: block;
		color: #fff;
		font-weight: 900;
		background: #F37F44;
		border-radius: 40px;
		margin: 40px auto;
		box-shadow: 0px 6px 0px 0px #CD6936;
	}
	
	.content-01-inner,
	.content-03 .text-group,
	.content-04-inner,
	.content-05 p,
	.content-05 img,
	.content-06 p,
	.content-07 .text-group,
	.content-08-inner,
	.contact {
		width: 90%;
	}

	.image-grid-cotent {
		padding: 10px 0; 
	}

	.image-grid {
		width: 100%; 
		padding: 0 5px; 
		box-sizing: border-box;
		gap: 10px; 
	}

	.circle-item {
		width: calc((100% - 10px) / 2); 
	}

	.play-pause-btn .material-symbols-outlined {
		font-size: 70px;
	}

	.modal-content {
		width: 95%; 
		padding: 50px 15px 30px;
	}

	.close-btn {
		top: 10px;
		right: 15px;
	}

	.split-container {
		gap: 10px; 
	}

	.split-img {
		width: 45%; 
	}

	.header_link {
		display: none;
	}

	.img-a {
		transform: translate3d(15px, 0, 0);
	}

	.img-b {
		transform: translate3d(-15px, 0, 0);
	}

	.modal-overlay.is-active .img-a,
	.modal-overlay.is-active .img-b {
		transform: translate3d(0, 0, 0);
		opacity: 1;
		transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1) 0.4s, opacity 0.4s ease 0.4s;
	}
}