@charset "utf-8";

/* ==========================================================================
   Hero Section (PC & SP Common)
   ========================================================================== */
.p-hero {
	overflow: hidden;
	position: relative;
	background-position: center;
	background-size: cover;
}

.p-hero__content {
	text-align: left;
}

.p-hero__sub {
	font-weight: 700;
	color: var(--color-text);
	margin-bottom: 15px;
}

.p-hero__title {
	font-weight: 900;
	line-height: 1.4;
	color: var(--color-text);
}

.p-hero__title span {
	color: var(--color-accent);
}

.p-hero__lead {
	font-weight: 500;
	color: var(--color-text);
}
.m-cta-group {
	display: flex;
}
/* ==========================================================================
   PC Only
   ========================================================================== */
@media (min-width: 769px) {
	.p-hero {
		padding: 140px 0 100px;
		background-image: url(https://tp-img.imgix.net/s/salesdemo/top/mv_bg_pc.png);
	}
	.p-hero__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	.p-hero__sub { font-size: clamp(1.5rem, 2.2vw, 2rem);}
	.p-hero__title { font-size: clamp(2.25rem, 3.5vw, 3.125rem); margin-bottom: 30px; }
	.p-hero__title span { font-size: inherit;
	}
	.p-hero__lead {
		font-size: clamp(0.9375rem, 1.2vw, 1.0625rem);
		margin-bottom: 40px;
		line-height: 1.8;
	}
	.p-hero__visual {
		flex: 1;
		position: relative;
	}

	.m-cta-group {
		justify-content: flex-start;
		gap: 20px;
	}
}

/* ==========================================================================
   SP Only
   ========================================================================== */
@media (max-width: 768px) {
	.l-mv__wrapper {
		background-image: url(https://tp-img.imgix.net/s/salesdemo/top/mv_bg_sp.png);
		background-size: cover;
	}
	.p-hero {
		padding: 100px 0 60px;
		text-align: center;
	}
	.p-hero__sub { font-size: clamp(0.875rem, 4.2vw, 2.125rem); }
	.p-hero__title {
		font-size: clamp(1.375rem, 6.6vw, 2.75rem);
		margin-bottom: 20px; }
	.p-hero__title span {
		font-size: inherit;
	}
	.p-hero__lead {
		font-size: clamp(0.875rem, 4.2vw, 1rem);
		margin-bottom: 30px;
		line-height: 1.5;
	}
	.p-hero__visual {
		text-align: center;
		padding: 0 10px;
	}
	.m-cta-group {
		flex-direction: column;
		gap: 13px;
	}
}

.m-section-title {
	text-align: center;
	margin-bottom: 60px;
	color: var(--color-accent);
	font-style: normal;
	font-weight: 700;
	line-height: 100%;
}

.m-section-title__en {
	display: block;
	color: var(--color-accent);
	font-size: 14px;
	letter-spacing: 0.1em;
	margin-bottom: 8px;
}

.u-color-accent { color: var(--color-accent); }

@media (min-width: 769px) {
	.m-section-title {
		font-size: var(--40px);
	}
}
@media (max-width: 768px) {
	.m-section-title {
		font-size: var(--28px);
	}
}
/* ==========================================================================
   About Section
   ========================================================================== */
.p-top-about {
	padding: 0 0 120px;
	text-align: center;
	position: relative;
}
.l-top-about__wrap {
	background-color: #fff;
	width: 96%;
	margin-left: auto;
	clip-path: polygon(
		60px 0,
		100% 0,
		100% 100%,
		60px 100%,
		0 calc(100% - 60px),
		0 60px
	);
	padding: 64px 0;
}

.p-hero .l-container {
	padding: 0 2%;
}
.p-top-about .l-container {
	position: relative;
	z-index: 1;
}
.p-top-about__lead {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.8;
	color: var(--color-text);
	margin-bottom: 60px;
	letter-spacing: 0.05em;
}
.p-top-about__lead > span {
	color: var(--color-accent);
	font-size: inherit;
}
.p-top-about__visual {
	max-width: 1000px;
	margin: 0 auto;
}

.p-top-about__visual img {
	width: 100%;
	height: auto;
	display: block;
}
@media (min-width: 769px) {
	.p-top-scenes .l-container {
		padding: 0;
	}

	.p-hero .l-container {
		max-width: 1400px;
	}
	.p-top-about {
		background: linear-gradient(0deg, #FF5527 0%, #FFBE7C 94.23%);
	}
}
/* ==========================================================================
   SP Only
   ========================================================================== */
@media (max-width: 768px) {
	.p-top-about {
		padding: 0 0 60px;
	}
	
	.p-top-about__lead {
		font-size: 16px;
		text-align: left;
		margin-bottom: 40px;
		padding: 0 10px;
	}
	
	.p-top-about__visual {
		padding: 0;
	}
}

/* ==========================================================================
   Features Section
   ========================================================================== */
.p-top-features {
	padding: 100px 0;
	background-color: #fff;
}

.p-top-features__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 80px 90px;
}

.p-top-features__item {
	width: calc((100% - 180px) / 3);
	display: flex;
	flex-direction: column;
}

.p-top-features__item-img {
	margin-bottom: 25px;
	text-align: center;
}

.p-top-features__item-img img {
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.p-top-features__item-title {
	font-size: 20px;
	font-weight: 700;
	color: var(--color-accent);
	line-height: 1.4;
	margin-bottom: 15px;
}

.p-top-features__item-text {
	font-size: 16px;
	line-height: 1.75;
	color: var(--color-text);
}

/* ==========================================================================
   SP Only (max-width: 768px)
   ========================================================================== */
@media (max-width: 768px) {
	.p-top-features {
		padding: 60px 0;
	}

	.p-top-features__list {
		flex-direction: column;
		align-items: center;
		gap: 50px;
	}

	.p-top-features__item {
		width: 100%;
		max-width: 450px;
	}

	.p-top-features__item-title {
		font-size: 18px;
	}
}

/* ==========================================================================
   Scenes Section
   ========================================================================== */
.p-top-scenes {
	padding: 100px 0 0;
	background-color: #FFF0E6;
}
.l-top-scenes__wrap {
	background-color: #fff;
	width: 96%;
	margin-left: auto;
	clip-path: polygon(
		60px 0,
		100% 0,
		100% 100%,
		0 100%,
		0 calc(100% - 60px),
		0 60px
	);
	padding: 64px 64px 1px 64px;

}

.p-top-scenes__sub-label {
	display: table;
	margin: -40px auto 60px;
	padding: 8px 30px;
	border: 1px solid var(--color-accent);
	color: var(--color-accent);
	border-radius: 50px;
	font-weight: 700;
}

.p-top-scenes__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 100px;
}

.p-top-scenes__item--reverse {
	flex-direction: row-reverse;
}

.p-top-scenes__content {
	flex: 1;
}

.p-top-scenes__image {
	flex: 1;
	background-color: #FFF0E6;
	border-radius: 10px;
}

.p-top-scenes__meta {
	margin-bottom: 15px;
	font-size: 14px;
	font-weight: 700;
}

.p-top-scenes__number {
	color: var(--color-accent);
	background: rgba(255, 85, 39, 0.1);
	padding: 2px 10px;
	border-radius: 4px;
	margin-right: 15px;
}

.p-top-scenes__category {
	color: var(--color-accent);
}

.p-top-scenes__title {
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 25px;
	line-height: 1.4;
}

.p-top-scenes__box {
	padding: 20px 16px;
	font-size: 15px;
	line-height: 150%;
}

.p-top-scenes__box--challenge {
	background: #fff;
	border: 1px solid #FF5527;
	display: flex;
	gap: 32px;
	align-items: center;
	position: relative;
}
.p-top-scenes__box--challenge::before {
	content: '';
	position: absolute;
	bottom: -10px;
	left: 50%;
	transform: translateX(-50%) rotate(180deg);
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 10px solid #FFF;
	z-index: 1;
}
.p-top-scenes__label {
	flex-shrink: 0;
	color: var(--color-accent);
	font-weight: 700;
}

.p-top-scenes__text {
	color: #233748;
	font-size: var(--16px);
	font-style: normal;
	font-weight: 400;
	line-height: 150%;
	position: relative;
}
.p-top-scenes__text::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -16px;
	transform: translateY(-50%);
	width: 1px;
	height: 100%;
	background-color: var(--color-accent);
}
.p-top-scenes__box--solution {
	background: var(--color-accent);
	color: #fff;
	position: relative;
}

.p-top-scenes__solution-head {
	font-weight: 700;
	margin-bottom: 8px;
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: var(--18px);
}
.p-top-scenes__solution-body {
	color: #FFF;
	font-size: var(--16px);
	font-style: normal;
	font-weight: 700;
	line-height: 150%;
}
.icon-scenes {
	display: flex;
	color: #fff;
}
@media (min-width: 769px) {
	.p-top-scenes__content {
		max-width: 46%;
	}
	.p-top-scenes__image {
		max-width: 50%;
	}
}
@media (max-width: 768px) {
	.l-top-scenes__wrap {
		padding: 64px 0;
	}
	.p-top-scenes__item,
	.p-top-scenes__item--reverse {
		flex-direction: column;
		gap: 30px;
		margin-bottom: 60px;
	}

	.p-top-scenes__image {
		order: -1;
		padding: 20px;
	}

	.p-top-scenes__title {
		font-size: 20px;
	}
}

/* ==========================================================================
   Functions Section
   ========================================================================== */
.p-top-functions {
	padding: 100px 0 0;
	background-color: #fff;
}

.p-top-functions__lead {
	text-align: center;
	font-size: 18px;
	margin-top: -30px;
	margin-bottom: 60px;
	color: var(--color-text);
}

.p-top-functions__category {
	background-color: #FFF5F0;
	padding: 40px;
	border-radius: 12px;
	margin-bottom: 40px;
}

.p-top-functions__category-title {
	background-color: var(--color-accent);
	color: #fff;
	display: table;
	margin: 0 auto 20px;
	padding: 10px 60px;
	border-radius: 6px;
	font-size: 20px;
	font-weight: 700;
}

.p-top-functions__category-desc {
	text-align: center;
	font-size: 16px;
	font-weight: 500;
	margin-bottom: 30px;
}

.p-top-functions__card-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
}

.p-top-functions__card {
	background-color: #fff;
	border-radius: 8px;
	padding: 15px 20px;
	flex: 0 0 calc((100% - 45px) / 4);
	display: flex;
	align-items: center;
	font-size: 15px;
	font-weight: 700;
	color: var(--color-text);
}

.p-top-functions__card img {
	width: 24px;
	height: auto;
	margin-right: 12px;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
	.p-top-functions__card {
		flex: 0 0 calc((100% - 15px) / 2);
	}
}

@media (max-width: 768px) {
	.p-top-functions {
		padding: 60px 0;
	}
	.p-top-functions__category {
		padding: 30px 15px;
	}
	.p-top-functions__category-title {
		width: 100%;
		text-align: center;
		padding: 10px 20px;
		font-size: 18px;
	}
	.p-top-functions__card {
		flex: 1 1 100%;
		font-size: 14px;
	}
}
