@charset "utf-8";

/* ===== Layer order ===== */
@layer reset,
tokens,
base,
layout,
component,
page,
utility,
override;

/* ===== Tokens ===== */
@layer tokens {
	:root {
		--font-base: "Noto sans JP", sans-serif;
		--font-serif: "Noto Serif JP", serif;
	}
}

/* ===== Reset ===== */
@layer reset {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
	}

	* {
		margin: 0;
	}

	:where(img, svg, video, canvas, audio, iframe, embed, object, picture) {
		display: block;
		max-width: 100%;
	}

	:where(img, video) {
		height: auto;
	}

	:where(ol, ul, menu) {
		list-style: none;
		padding: 0;
	}

	:where(button, input, select, textarea) {
		font: inherit;
		color: inherit;
		line-height: inherit;
		margin: 0;
		padding: 0;
		text-transform: none;
		background-color: transparent;
		background-image: none;
		outline: none;
		border: none;
	}
}

/* ===== Base ===== */
@layer base {
	html {
		font-size: 16px;
		line-height: 1.5;
		letter-spacing: 0em;
		font-family: var(--font-base);
		color: #000;
		background: #fff;
		scroll-behavior: smooth;
		-webkit-text-size-adjust: 100%;
	}

	body {
		position: relative;
	}

	:where(h1, h2, h3, h4, h5, h6) {
		line-height: 1.5;
		font-weight: 600;
		overflow-wrap: anywhere;
	}

	:where(a) {
		color: inherit;
		text-decoration: none;
	}

	:where(main) {
		width: 100%;
		position: relative;
	}
}

/* ===== Layout ===== */
@layer layout {
	.l-section {
		width: 100%;
		position: relative;
		z-index: 10;
		overflow: hidden;
	}

	.l-inner {
		width: min(500px, 100%);
		position: relative;
		z-index: 0;
		margin-inline: auto;
	}
	.l-col {
		width: 100%;
		display: flex;
		flex-flow: column;
		align-items: flex-start;
	}

	.img-cont {
		width: 100%;
		height: auto;
		display: grid;
		place-items: center;
		overflow: hidden;
		position: relative;
		z-index: 0;
	}
	.img-cont img {
		width: 100%;
		height: 100%;
		object-fit: contain;
	}
}

/* ===== Component ===== */
@layer component {
	/* --------- Text --------- */
	:where(.c-txt) {
		font-size: clamp(14px, 1.111vw, 16px);
		line-height: 1.8;
		font-weight: 500;
	}

	/* --------- CTA --------- */
	.cta-btn-wrapper {
		width: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
		z-index: 10;
		left: 0;
		right: 0;
		aspect-ratio: 563 / 144;
	}

	.img-btn-cta-balloon {
		width: 69.27%;
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		aspect-ratio: 59 / 8;
		margin-inline: auto;
		z-index: 10;
	}

	.c-btn-cta {
		width: 90.23%;
		height: auto;
		object-fit: contain;
		position: absolute;
		z-index: 0;
		aspect-ratio: 508 / 124;
		bottom: 0;
		left: 0;
		right: 0;
		margin-inline: auto;
		filter: drop-shadow(0px 0px 10px rgb(0 0 0 / 10%));
	}

	.c-btn-cta:before,
	.c-btn-cta:after {
		content: "";
		position: absolute;
		z-index: -10;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		border-radius: 9999px;
		background: #fbb53d;
		transform: translate3d(0, 0, 0);
	}

	.c-btn-cta:before {
		animation: anime 1s ease-out infinite;
	}

	.c-btn-cta:after {
		animation: anime 1s ease-out 1s infinite;
	}

	@keyframes anime {
		0% {
			transform: scale(0.95);
			opacity: 1;
		}
		90% {
			opacity: 0.1;
		}
		to {
			transform: scale(1.1, 1.2);
			opacity: 0;
		}
	}

	/* --------- Footer  --------- */
	footer {
		width: 100%;
		position: relative;
		background: #122363;
		color: #fff;
		padding: 20px;
	}
	.footer-cont {
		align-items: center;
		gap: 15px;
		font-size: 14px;
	}
	.footer-copy {
		text-align: center;
	}
	.footer-links {
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: clamp(20px, 10vw, 40px);
	}
	.footer-links a {
		text-decoration: underline;
		text-underline-offset: 2px;
	}
}

@layer utility {
	[x-cloak] {
		display: none !important;
	}

	.not-scroll {
		overflow: hidden;
		touch-action: none;
	}

	::-webkit-scrollbar {
		width: 0;
		height: 0;
	}
}

@layer page {
	/* --------- FV  --------- */
	.fv-cont {
		width: 100%;
		height: auto;
		aspect-ratio: 563 / 743;
		overflow: hidden;
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
	}
	.fv-cont > .img-cont {
		position: absolute;
		inset: 0;
	}
	.fv-layer {
		z-index: 10;
		aspect-ratio: 563 / 743;
	}
	.fv-bg {
		position: relative;
		aspect-ratio: 563 / 743;
		z-index: 0;
	}
	.fv-video-wrapper {
		position: absolute;
		width: 66.607%;
		left: 5.33%;
		top: 29.1%;
		display: flex;
		justify-content: center;
		align-items: center;
		overflow: hidden;
		aspect-ratio: 375 / 265;
		z-index: 5;
	}
	.fv-video {
		width: 100%;
		height: 100%;
		z-index: 0;
		position: relative;
		object-fit: cover;
	}
	.fv-video-bar {
		position: absolute;
		z-index: 10;
		bottom: 0;
		left: 0;
		right: 0;
		margin-inline: auto;
		aspect-ratio: 375 / 25;
	}
	/* ---------  section CTA --------- */
	.sec-fv-cta {
		padding-block: 20px 50px;
	}
	.sec-mid-cta > .l-inner {
		background: linear-gradient(-18deg, #154df1, #1868ea);
		padding-block: 0 20px;
	}
	/* --------- situation  --------- */
	.sec-situation .img-cont {
		aspect-ratio: 563 / 925;
	}
	/* --------- automation  --------- */
	.sec-automation .img-cont {
		aspect-ratio: 563 / 1563;
	}
	/* --------- feature  --------- */
	.sec-feature .img-cont {
		aspect-ratio: 563 / 1502;
	}
	/* --------- seminar  --------- */
	.sec-seminar .img-cont {
		aspect-ratio: 563 / 1697;
	}
	/* --------- voice  --------- */
	.sec-voice .img-cont {
		aspect-ratio: 563 / 3088;
	}
	/* --------- present  --------- */
	.sec-present .img-cont {
		aspect-ratio: 563 / 896;
	}
	/* --------- entry  --------- */
	.sec-entry .img-cont {
		aspect-ratio: 563 / 662;
	}
	/* --------- media  --------- */
	.sec-media .img-cont {
		aspect-ratio: 563 / 843;
	}
	/* --------- reputation  --------- */
	.sec-reputation .img-cont {
		aspect-ratio: 563 / 1181;
	}
	/* --------- FAQ  --------- */
	.sec-faq > .l-inner {
		padding-inline: 20px;
		z-index: 10;
		padding-block: 50px;
		background: #d3dce2;
	}
	.faq-cont {
		align-items: center;
		gap: 20px;
	}
	.faq-cont > h2 {
		font-size: 20px;
		font-weight: 700;
		color: #122363;
	}
	.faq-list {
		width: 100%;
		margin-inline: auto;
		gap: 25px;
	}
	.c-acc {
		width: 100%;
		position: relative;
		background: #fff;
	}
	.c-acc__head {
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-block: 20px;
		padding-inline: 20px;
		position: relative;
		cursor: pointer;
		background: #fff;
		gap: 18px;
	}
	.c-acc__ttl {
		width: auto;
		font-size: 17px;
		font-weight: 600;
		display: flex;
		align-items: baseline;
		position: relative;
		color: #122363;
		gap: 5px;
	}
	.c-acc__ttl::before {
		content: "";
		width: 18px;
		height: 18px;
		aspect-ratio: 1 / 1;
		background-image: url("../images/icon-q.webp");
		background-position: center;
		background-size: contain;
		background-repeat: no-repeat;
		position: relative;
		top: 2px;
	}
	.c-acc__icon {
		width: 36px;
		height: 36px;
		aspect-ratio: 1 / 1;
		display: grid;
		position: relative;
		flex-shrink: 0;
		overflow: hidden;
		background: #122363;
		display: flex;
		justify-content: center;
		align-items: center;
		border-radius: 999px;
	}
	.c-acc__icon::before {
		content: "";
		width: 18px;
		height: 18px;
		aspect-ratio: 1 / 1;
		background-image: url("../images/icon-plus.svg");
		background-position: center;
		background-size: contain;
		background-repeat: no-repeat;
	}
	.is-active .c-acc__icon::before {
		background-image: url("../images/icon-minus.svg");
	}
	.c-acc__inner {
		padding: 20px;
		padding-top: 15px;
	}
	.c-faq-answer {
		gap: 6px;
		position: relative;
	}
	.c-faq-answer::before {
		content: "";
		width: 100%;
		height: 1px;
		background: #a3a9c2;
		position: absolute;
		top: -15px;
		left: 0;
		right: 0;
		margin-inline: auto;
	}
	.c-faq__ttl {
		width: auto;
		font-size: 15px;
		font-weight: 600;
		display: flex;
		align-items: baseline;
		position: relative;
		color: #122363;
		gap: 5px;
	}
	.c-faq__ttl::before {
		content: "";
		width: 18px;
		height: 18px;
		aspect-ratio: 1 / 1;
		background-image: url("../images/icon-a.webp");
		background-position: center;
		background-size: contain;
		background-repeat: no-repeat;
		position: relative;
		top: 2px;
	}
	.c-faq__txt {
		width: 100%;
		font-size: 14px;
		line-height: 1.8;
	}

	/* --------- Company  --------- */
	.sec-company .img-cont {
		aspect-ratio: 563 / 604;
	}

	/* --------- Fixed CTA  --------- */
	.fixed-cta {
		position: fixed;
		bottom: 10px;
		z-index: 999;
		width: 100%;
		height: auto;
		width: min(500px, 100%);
		margin-inline: auto;
		left: 0;
		right: 0;
		pointer-events: none;
	}
	.fixed-cta.is-active {
		pointer-events: all;
	}
	.fixed-cta > .cta-btn-wrapper {
		transition: all ease-in-out 0.33s;
		translate: 0 calc(100% + 10px);
		opacity: 0;
		pointer-events: none;
	}
	.fixed-cta.is-active > .cta-btn-wrapper {
		translate: 0 0;
		opacity: 1;
		pointer-events: all;
	}
}
