@charset "utf-8";
/* CSS Document */


/* reset
----------------------------------------*/
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	list-style-type: none;
	text-decoration: none;
}
img {
	max-width: 100%;
	vertical-align: bottom;
}
.grecaptcha-badge { 
	visibility: hidden;
}


/* common1
----------------------------------------*/
:root {
	--font-size-verysmall: .8rem;
	--font-size-small: .9rem;
	--font-size: 1rem;
	--font-size-title: 1.5rem;
	--line-height: 2;
	--pink: #D89EA3;
	--gray: #333;
	--white: #fff;
}


/* common2
----------------------------------------*/
html {
	scroll-padding-top: 5em;
	text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}
body {
	display: none;
	font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	font-size: var(--font-size);
	line-height: var(--line-height);
	color: var(--gray);
	background-color: var(--pink);
}
.no-scroll {
	overflow: hidden;
}
.overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, .8);
	cursor: pointer;
	z-index: 3;
}
#wrap {
	position: relative;
	max-width: 480px;
	margin: 0 auto;
	box-shadow: 0 0 5px 2px rgba(0, 0, 0, .1);
	background: var(--pink) url("../img/back_ami.png");
}
.section_title {
	display: block;
	width: 60%;
	margin: 0 auto 3rem auto;
}


/* pc_screen
----------------------------------------*/
.pc_screen {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	padding: 1rem;
	border-radius: 10px;
	background: url("../img/back_pc.png") bottom 100% center / cover;
}
.pc_screen a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 200px;
	height: 200px;
	padding: 1rem;
	border-radius: 10px;
	background-color: var(--white);
}


/* header
----------------------------------------*/
header {
	position: absolute;
	right: 0;
	left: 0;
	padding-top: 1rem;
	text-align: center;
	z-index: 2;
}
header h1 img {
	height: 60px;
}
.header_other {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: .5rem 0;
	position: absolute;
	top: 1.5rem;
	right: .5rem;
}
.header_other > div a {
	position: relative;
	margin: 0 .5rem;
	color: var(--white);
	font-weight: bold;
}
.header_other .lang_now::after {
	content: "/";
	position: absolute;
	top: 50%;
	right: -.75rem;
	transform: translateY(-50%);
	pointer-events: none;
}
.header_other a.shop {
	display: block;
	width: 45px;
	height: 40px;
}


/* nav
----------------------------------------*/
#toggle {
	position: fixed;
	top: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
	gap: 6px 0;
	width: 40px;
    height: 40px;
	margin-left: 20px;
    cursor: pointer;
	z-index: 100;
}
#toggle .bar {
	width: 100%;
    height: 4px;
	border-radius: 10px;
    background-color: var(--white);
    transition: .3s;
}
.top-bar {
    transform-origin: top left;
}
.bottom-bar {
    transform-origin: bottom left;
}
#toggle.open-toggle .top-bar {
	background-color: var(--pink);
    transform: translateY(5px);
}
#toggle.open-toggle .bottom-bar {
	background-color: var(--pink);
    transform: translateY(-5px);
}
nav.open-nav {
	top: 0;
	visibility: visible;
	opacity: 1;
}
nav {
	visibility: hidden;
	position: fixed;
	top: -100%;
	max-width: 480px;
	width: 100%;
	height: auto;
	padding: 1rem 1rem 2rem 1rem;
	border-radius: 0 0 2rem 2rem;
	background-color: var(--white);
	opacity: 0;
	transition: .5s;
	z-index: 4;
}
.nav_logo_wrap {
	margin-top: 2rem;
	text-align: center;
}
.nav_logo_wrap p {
	font-size: var(--font-size-small);
}
.nav_logo_wrap img {
	height: 80px;
	margin-bottom: 10px;
}
nav ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(2, auto);
	gap: 1rem;
	margin-top: 50px;
}
nav ul li {
	border-radius: 10px;
	text-align: center;
	background-color: var(--pink);
}
nav ul li a {
	display: block;
	width: 100%;
	padding: 1.2rem 1rem 1rem 1rem;
	color: var(--white);
	font-weight: bold;
	line-height: 1.2;
}
nav ul li img {
	display: block;
	width: 40%;
	margin: 0 auto .8rem auto;
}
nav ul li a span {
	display: block;
	font-size: var(--font-size-small);
	font-weight: normal;
	letter-spacing: .05rem;
	opacity: .7;
}


/* ファーストビュー
----------------------------------------*/
#f_view {
	position: relative;
	width: 100%;
	height: 100svh;
	border-radius: 0 0 20px 20px;
	overflow: hidden;
}
#f_view::after {
	content: "";
	display: block;
	width: 300%;
	height: 300%;
	position: absolute;
	top: -100%;
	left: -100%;
	background: url("../img/back_noise.png");
	animation: noise 8s steps(10) infinite;
	z-index: 1;
}
@keyframes noise {
	to { background-position: 0 0; }
	10% { background-position: -5% -10%; }
	20% { background-position: -15% 5%; }
	30% { background-position: 7% -25%; }
	40% { background-position: 20% 25%; }
	50% { background-position: -25% 10%; }
	60% { background-position: 15% 5%; }
	70% { background-position: 0 15%; }
	80% { background-position: 25% 35%; }
	90% { background-position: -10% 10%; }
}
.fade_container {
	position: relative;
	width: 100%;
	height: 100vh;
}
.fade_item {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-size: cover;
	background-position: center center;
	opacity: 0;
	animation: fade 29s ease-in-out infinite;
}
.src1 {
	background-image: url("../img/fade/f01.jpg");
	animation-delay: -1s;
}
.src2 {
	background-image: url("../img/fade/f02.jpg");
	animation-delay: 8.5s;
}
.src3 {
	background-image: url("../img/fade/f03.jpg");
	animation-delay: 18.5s;
}
@keyframes fade {
	0% {
		opacity: 0;
		transform: scale(1);
	}
	4.16% {
		opacity: 1;
	}
	33.33% {
		opacity: 1;
	}
	41.66% {
		opacity: 0;
		transform: scale(1.1);
	}
	100% {
		opacity: 0;
	}
}
.catch {
	position: absolute;
	top: 150px;
	left: 1rem;
	width: 70%;
	z-index: 1;
}
.f_news_wrap {
	position: absolute;
	bottom: 0;
	width: calc(100% - 2rem);
	margin: 1rem;
	border-radius: 10px;
	background-color: var(--white);
	overflow: hidden;
	z-index: 2;
}
.f_news_wrap ul li a {
	color: var(--gray);
	line-height: 1.5;
}
.news_item {
    display: flex;
    align-items: center;
	gap: 0 .5rem;
	padding: .5rem;
}
.f_news_img {
	flex: 0 0 120px;
	border-radius: 5px;
	overflow: hidden;
}
.f_news_wrap ul li img {
	width: 100%;
	height: 100px;
	object-fit: cover;
}
.f_news_text {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100px;
}
.f_news_text p:first-child {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	text-overflow: ellipsis;
}


/* Our Concept - コンセプト
----------------------------------------*/
#concept {
	padding: 5rem 0;
}
.demo_wrap {
	display: flex;
	width: 100%;
	overflow: hidden;
}
#concept ul {
	display: flex;
	align-items: center;
	gap: 0 1rem;
	margin: 3rem 1rem 0 0;
	animation: roop 60s infinite linear .5s both;
}
@keyframes roop {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}
#concept ul li {
	width: calc(100vh / 3);
}
#concept ul li img {
	width: 100%;
}
.concept_list_title {
	display: block;
	font-size: var(--font-size-title);
	font-weight: bold;
	line-height: 1.5;
	text-align: center;
}
.concept_list_title_sub {
	margin-bottom: 1em;
	font-size: var(--font-size-verysmall);
	text-align: center;
}
.concept_item {
	padding: 0 2rem;
	text-align: justify;
}
#concept ol {
	margin: 2em 2em 0 2em;
}
.value-list li {
	display: flex;
	justify-content: space-around;
	align-items: flex-start;
	flex-wrap: nowrap;
	gap: 0 1em;
	margin-bottom: 1em;
}
.value-number {
	flex-shrink: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 1.5em;
	height: 1.5em;
	margin-top: .3em;
	border-radius: 50%;
	font-size: var(--font-size-title);
	font-weight: bold;
	background-color: var(--white);
}
.value-content {
	flex: auto;
}
.concept_img {
	margin: 2em 0 4em 0;
}
.concept_img:nth-of-type(1) {
	padding-right: 2em;
}
.concept_img:nth-of-type(2) {
	padding-left: 2em;
}
.bld {
	font-weight: bold;
}

/* Works - 事業内容
----------------------------------------*/
#works {
	margin-bottom: 100px;
}
.works_list_wrap {
	background-color: var(--white);
}
.works_list_wrap:nth-child(even) {
	margin-right: 1rem;
	border-radius: 0 20px 20px 0;
}
.works_list_wrap:nth-child(odd) {
	margin: 2rem 0 2rem 1rem;
	border-radius: 20px 0 0 20px;
}
.works_text_wrap {
	padding: 3rem;
}
.works_list_title {
	display: block;
	margin-bottom: 2rem;
	line-height: 1.5;
	font-size: var(--font-size-title);
	font-weight: bold;
	text-align: center;
}
.works_item {
	text-align: justify;
}
.link_button {
	display: block;
	position: relative;
	width: 100%;
	margin-top: 2rem;
	padding: 1rem;
	border-radius: 50vw;
	color: var(--white);
	text-align: center;
	background-color: var(--pink);
}
.button_icon::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
}
.icon1::after {
	content: url("../img/icon/link_brank.svg");
}
.icon2::after {
	content: url("../img/icon/link.svg");
}
.card-container {
	position: relative;
	width: 80%;
	margin: 0 auto;
	aspect-ratio: 2 / 2;
}
.card-wrapper {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	height: 100%;
}
.card {
	position: absolute;
	width: 70%;
	height: 100%;
	border-radius: 8px;
	background: var(--img) center / cover no-repeat;
	transition: transform 0.3s ease-out;
	will-change: transform;
}
.card-left {
	top: 10%;
	left: -15%;
	transform: rotate(-10deg);
	z-index: 1;
}
.card-right {
	top: 12%;
	right: -15%;
	transform: rotate(5deg);
}


/* news
----------------------------------------*/
#news {
	padding: 100px 0;
	background: rgba(0, 0, 0, .3) url("../img/back_noise.png");
	overflow: hidden;
}
#news ul {
	display: flex;
	justify-content: space-between;
	gap: 0 1rem;
	padding: 0 1rem 1rem 0;
	overflow-x: scroll;
}
#news ul li a {
	display: flex;
    flex-direction: column;
    flex-grow: 1;
	color: var(--white);
}
#news ul li {
	display: flex;
	flex-direction: column;
	position: relative;
	min-width: 55%;
	padding-bottom: .5rem;
	border-bottom: solid 1px var(--white);
}
#news ul li:first-child {
	margin-left: 1rem;
}
.news_img_wrap {
	margin-bottom: 1rem;
	border-radius: 10px;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.news_img_wrap img {
	width: auto;
	height: 100%;
	object-fit: cover;
}
.news_title {
	margin-bottom: 5rem;
}
.news_day {
	margin-top: auto;
}
#news ul li::after {
	content: '➔';
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	right: 0;
	bottom: 1rem;
	width: 50px;
	height: 50px;
	border: solid 1px var(--white);
	border-radius: 50%;
	color: var(--white);
	pointer-events: none;
}
.news_button_wrap {
	padding: 0 2.5rem;
}


/* other
----------------------------------------*/
#other {
	padding: 2rem 1rem;
	background-color: var(--white);
}
#other ul li {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
}
#other ul li::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, .75);
	z-index: 1;
}
#other ul li:nth-child(1) {
	margin-bottom: 2rem;
	background: url("../img/back_company.jpg") no-repeat center center / cover;
}
#other ul li:nth-child(2) {
	background: url("../img/back_recruit.jpg") no-repeat center center / cover;
}
#other ul li a {
	display: block;
	position: relative;
	padding: 3rem 0;
	z-index: 2;
}


/* footer
----------------------------------------*/
footer {
	padding: 3rem 0;
	color: var(--gray);
	text-align: center;
	background-color: var(--white)
}
footer img {
	height: 60px;
}
footer ul {
	margin: 2rem 0;
}
footer ul li {
	border-top: 1px solid #eee;
}
footer ul li:last-child {
	border-bottom: 1px solid #eee;
}
footer ul li a {
	display: block;
	padding: 1rem;
	color: var(--gray);
}
footer .copy_light {
	font-size: var(--font-size-small);
}