

/* -----------------------------------------------------------------------
 TOPPAGE: hero
----------------------------------------------------------------------- */
.hero {
	height: 100vh;
	position: relative;
	overflow: hidden;
}
.inner-hero {
	height: 100vh;
	/* align-content: center; */
	display: flex;
	align-items: center;
	justify-content: center;
}
.hero-content {
	position: relative;
	display: block;
	margin: auto;
	text-align: center;
}
.hero-ttl {
	line-height: 1.2;
	font-weight: 900;
	text-shadow: 0px 0px .1em #fff;
}
.hero-txt {
	margin-top: 1em;
	font-weight: 500;
	text-shadow: 0px 0px .1em #fff;
}
.flx-hero {
	align-items: center;
	justify-content: center;
	margin: auto;
}
.btn-hero.download {
	background-color: #000;
}
@media (max-width: 767px) {
	.inner-hero {
		min-height: 150vw;
	}
	.hero-ttl {
		font-size: 12.3077vw;
	}
	.hero-txt {
		font-size: 4.1026vw;
	}
	.flx-hero {
		flex-direction: column;
		row-gap: 1em;
		margin-top: 1.5em;
	}
	.btn-hero {
		width: 46.1538vw;
		padding: 5.641vw .5em;
		font-size: 4.1026vw;
	}
}
@media (min-width: 768px) {
	.inner-hero {
		min-height: 600px;
	}
	.hero-ttl {
		font-size: 60px;
	}
	.hero-txt {
		font-size: 18px;
	}
	.flx-hero {
		margin-top: 2em;
		column-gap: 20px;
	}
	.btn-hero {
		max-width: 180px;
	}
}

/* -----------------------------------
 TOPPAGE: hero 背景画像アニメーション
----------------------------------- */
.hero__bg-wrapper {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.hero__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	opacity: 0;
	animation: heroSlide 30s infinite;
}
.hero__bg--1 {
	animation-delay: 0s;
}
.hero__bg--2 {
	animation-delay: 10s;
}
.hero__bg--3 {
	animation-delay: 20s;
}
@keyframes heroSlide {
	0% { opacity: 0; }
	6.67% { opacity: 1; }
	33.33% { opacity: 1; }
	40% { opacity: 0; }
	100% { opacity: 0; }
}
@media (max-width: 767px) {
	.hero__bg--1 {
	background-image: url(../img/top/hero_bg_sp_01.webp);
	}
	.hero__bg--2 {
	background-image: url(../img/top/hero_bg_sp_02.webp);
	}
	.hero__bg--3 {
	background-image: url(../img/top/hero_bg_sp_03.webp);
	}
}
@media (min-width: 768px) {
	.hero__bg--1 {
	background-image: url(../img/top/hero_bg_pc_01.webp);
	}
	.hero__bg--2 {
	background-image: url(../img/top/hero_bg_pc_02.webp);
	}
	.hero__bg--3 {
	background-image: url(../img/top/hero_bg_pc_03.webp);
	}
}


/* -----------------------------------------------------------------------
 TOPPAGE: 共通
----------------------------------------------------------------------- */
.top-sec {
	position: relative;
}
.top-sec-ttl .en-ttl {
	display: block;
	margin-top: .7em;
	font-family: var(--theme-en-font);
	color: var(--main-theme-color);
}
.top-sec-ttl {
	text-align: center;
	font-weight: 900;
}
@media (max-width: 767px) {
	.top-sec {
		padding: 2.5em 0;
	}
	.top-sec-ttl {
		margin-bottom: .7em;
		font-size: 9.2308vw;
	}
	.top-sec-ttl .en-ttl {
		font-size: 3.5897vw;
	}
}
@media (min-width: 768px) {
	.top-sec {
		padding: 5em 0;
	}
	.top-sec-ttl {
		margin-bottom: 1em;
		font-size: 42px;
	}
	.top-sec-ttl .en-ttl {
		font-size: 16px;
	}
	.lead-top-service {
		text-align: center;
	}
}



/* -----------------------------------------------------------------------
 TOPPAGE: about
----------------------------------------------------------------------- */
.service-section {
	background-color: var(--theme-bg-color);
}
.inner-top-about {
	max-width: 1020px;
}
.about-section::before {
	content: "";
	position: absolute;
	background-color: var(--theme-bg-color2);
	z-index: -1;
}
.top-sec-ttl.about {
	text-align: left;
}
.about-description {
	margin-bottom: 2em;
}
.flx-top-about {
	align-items: center;
}
@media (max-width: 767px) {
	.about-section::before {
		left: 0;
		right: 0;
		bottom: 0;
		height: 100vw;
		clip-path: polygon(0 44%, 100% 0%, 100% 100%, 0% 100%);
	}
	.top-sec-ttl.about {
		font-size: 7.6923vw;
	}
	.flx-top-about {
		flex-direction: column;
		row-gap: 4em;
	}
	.top-sec-ttl.about {
		font-size: 7.6923vw;
	}
	.img-top-about {
		width: 46.1538vw;
	}
}
@media (min-width: 768px) {
	.about-section::before {
		right: 0;
		top: 0;
		bottom: 0;
		width: calc(50% + 30px);
		clip-path: polygon(23% 0%, 100% 0%, 100% 100%, 0% 100%);
	}
	.flx-top-about {
		align-items: center;
		justify-content: space-between;
	}
	.top-sec-ttl.about {
		font-size: 33px;
	}
	.about-description {
		line-height: 2;
	}
	.img-top-about {
		width: 330px;
	}
}


/* -----------------------------------------------------------------------
 TOPPAGE: service
----------------------------------------------------------------------- */
.lead-top-service {
	margin-bottom: 2.5em;
}
.col-top-service {
	background-color: #fff;
}
.img-col-top-service {
	margin: 0 auto 2em;
}
.ttl-col-top-service {
	text-align: center;
	font-weight: 900;
}
.txt-col-top-service {
	margin-bottom: 1.5em;
}
@media (max-width: 767px) {
	.flx-top-service {
		flex-direction: column;
		row-gap: 2em;
	}
	.col-top-service {
		padding: 7.6923vw;
		border-radius: var(--radius-sp);
	}
	.ttl-col-top-service {
		margin-bottom: .5em;
		font-size: 6.9231vw;
	}
	.img-col-top-service {
		width: 41.0256vw;
	}
	.btn-more {
		max-width: 117px;
		padding: .75em 1.25em;
	}
}
@media (min-width: 768px) {
	.flx-top-service {
		align-items: stretch;
		justify-content: flex-start;
		column-gap: min(48px, 5%);
		flex-grow: 1;
	}
	.col-top-service {
		width: 32%;
		padding: min(30px,2.5vw);
		border-radius: var(--radius-pc);
	}
	.ttl-col-top-service {
		margin-bottom: 1em;
		min-height: 80px;
		align-content: center;
		font-size: 27px;
	}
	.img-col-top-service {
		max-width: 160px;
	}
	.btn-more {
		max-width: 117px;
		padding: .75em 1.25em;
	}
}


/* -----------------------------------------------------------------------
 TOPPAGE: case
----------------------------------------------------------------------- */

.ttl-col-top-case {
	margin-bottom: .5em;
	font-weight: 900;
}
.info-col-top-case {
	margin-bottom: 1em;
}
.voice-col-top-case {
	padding: 1em;
	background-color: var(--theme-bg-color3);
	color: var(--main-accent-color);
	font-style: italic;
}
.col-top-case-txt {
	border-bottom: 1px solid var(--theme-border-color);
}
@media (max-width: 767px) {
	.flx-top-case {
		flex-direction: column;
		gap: 2em;
	}
	.col-top-case-img img {
		border-radius: var(--radius-sp);
	}
	.ttl-col-top-case {
		font-size: 6.9231vw;
	}
	.voice-col-top-case {
		margin: 1.5em 0;
		border-radius: var(--radius-sp);
	}
	.btn-case {
		max-width: 39.2308vw;
		margin-bottom: 2em;
	}
	.blk-btn.top-case {
		margin-top: 2em;
	}
}
@media (min-width: 768px) {
	.flx-top-case {
		align-items: stretch;
		justify-content: space-between;
	}
	.col-top-case-img {
		width: 43.86%;
	}
	.col-top-case-img img {
		border-radius: var(--radius-pc);
	}
	.col-top-case-txt {
		width: 50%;
		align-content: center;
	}
	.ttl-col-top-case {
		font-size: 27px;
	}
	.voice-col-top-case {
		margin: 2em 0;
		border-radius: var(--radius-pc);
		font-size: 18px;
	}
	.btn-case {
		max-width: 153px;
	}
	.blk-btn.top-case {
		margin-top: 3em;
	}
}


/* -----------------------------------------------------------------------
 TOPPAGE: pickup (注目記事)
----------------------------------------------------------------------- */
.pickup-section {
	position: relative;
	background-color: var(--theme-bg-color2);
}
@media (max-width: 767px) {
	.pickup .ttl-list-blk {
		font-size: 4.6154vw;
	}
}
@media (min-width: 768px) {
	.pickup .ttl-list-blk {
		font-size: 18px;
	}
}


/* -----------------------------------------------------------------------
 TOPPAGE: new (新着記事)
----------------------------------------------------------------------- */
.new-section {
	background-color: var(--theme-bg-color);
}
@media (max-width: 767px) {
	.blk-btn.top-new {
		margin-top: 2em;
	}
}
@media (min-width: 768px) {
	.blk-btn.top-new {
		margin-top: 3em;
	}
}


/* -----------------------------------------------------------------------
 TOPPAGE: info (お知らせ)
----------------------------------------------------------------------- */
.new-section {
	background-color: var(--theme-bg-color);
}
@media (max-width: 767px) {
	.blk-btn.top-info {
		margin-top: 2em;
	}
}
@media (min-width: 768px) {
	.blk-btn.top-info {
		margin-top: 3em;
	}
}


