/* -----------------------------------------------
= kv
----------------------------------------------- */
.kv {
	position: relative;
}
.kv::before,
.kv::after {
	content: "";
	position: absolute;
	background: var(--green);
}
.kv::before {
	left: 50%;
	bottom: -23px;
	width: 1px;
	height: 15px;
	animation: scrollLine 1.5s infinite;
}
.kv::after {
	left: calc(50% - 3px);
	bottom: -32px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
}
@keyframes scrollLine {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
	50% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	50.1% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}
.kv .box {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 250px;
	padding: 25px 0 0;
	background: #fff;
	border-radius: 5px;
	text-align: center;
}
.kv h2 {
	display: inline-block;
	position: relative;
	margin-bottom: 5px;
	padding: 0 20px;
	color: var(--green);
	font-size: calc(3.5rem / 1.6);
	font-weight: bold;
	line-height: calc(40 / 35);
}
.kv h2::before,
.kv h2::after {
	content: "";
	position: absolute;
	width: 15px;
	height: 15px;
	background: var(--green);
}
.kv h2::before {
	top: 3px;
	left: 0;
	clip-path: polygon(0 0,100% 0,0 100%);
}
.kv h2::after {
	right: 0;
	bottom: 5px;
	clip-path: polygon(100% 0,100% 100%,0 100%);
}
.kv p {
	margin-bottom: -10px;
	font-size: calc(1.3rem / 1.6);
	font-weight: bold;
	line-height: calc(20 / 13);
}
.kv a {
	display: block;
	position: relative;
	bottom: -20px;
	width: 160px;
	margin: 0 auto;
	padding: 10px 20px;
	color: #fff;
	background: var(--gradGreen);
	border-radius: 3em;
	font-size: calc(1.7rem / 1.6);
	font-weight: bold;
	letter-spacing: .04em;
}
.kv a::before {
	content: "";
	position: absolute;
	top: calc(50% - 7px);
	left: 12px;
	width: 15px;
	height: 15px;
	background: url(../img/shared/icon_link_arrow.svg) no-repeat 50% / cover;
	filter: var(--filterWhite);
}
@media print, screen and (width >= 768px) {/* PC */
.kv::before {
	bottom: -28px;
	height: 60px;
}
.kv::after {
	left: calc(50% - 5px);
	bottom: -47px;
	width: 11px;
	height: 11px;
}
.kv .box {
	width: 710px;
	padding: 35px 0 0;
	border-radius: 10px;
}
.kv h2 {
	margin-bottom: 15px;
	padding: 0 40px;
	font-size: calc(6rem / 1.6);
}
.kv h2::before,
.kv h2::after {
	width: 30px;
	height: 30px;
}
.kv h2::before {
	top: 3px;
}
.kv h2::after {
	bottom: 5px;
}
.kv p {
	margin-bottom: -5px;
	font-size: calc(2.4rem / 1.6);
}
.kv a {
	bottom: -25px;
	width: 220px;
	padding: 12px 20px;
	font-size: calc(2.4rem / 1.6);
}
.kv a:hover {
	background: var(--gradGreenHover);
}
.kv a::before {
	top: calc(50% - 11px);
	left: 20px;
	width: 22px;
	height: 22px;
}
}/* @media */
/* -----------------------------------------------
= lead
----------------------------------------------- */
.lead {
	padding: 40px 18px;
	font-size: calc(1.3rem / 1.6);
	line-height: calc(25 / 13);
	text-align: center;
	letter-spacing: .04em;
}
@media print, screen and (width >= 768px) {/* PC */
.lead {
	padding: 60px 20px;
	font-size: calc(2rem / 1.6);
	line-height: calc(46 / 20);
}
}/* @media */
/* -----------------------------------------------
= message
----------------------------------------------- */
.message {
	margin: 0 18px 40px;
	padding: 20px;
	box-shadow: -3px -3px 3px #fff, 3px 3px 3px rgba(0,0,0,.1);
	border-radius: 5px;
}
.message h2 {
	display: flex;
	align-items: center;
	margin-bottom: 25px;
	letter-spacing: .04em;
}
.message h2 .en {
	margin-right: 14px;
	color: var(--green);
	font-size: calc(3rem / 1.6);
	font-weight: bold;
}
.message h2 .jp {
	flex: 1;
	position: relative;
	padding-bottom: 10px;
	font-size: calc(1.5rem / 1.6);
}
.message h2 .jp::before,
.message h2 .jp::after {
	content: "";
	position: absolute;
}
.message h2 .jp::before {
	left: 0;
	bottom: 0;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--green);
}
.message h2 .jp::after {
	left: 11px;
	bottom: 3px;
	width: calc(100% - 11px);
	height: 1px;
	background: #8ab48d;
}
.message img {
	display: block;
	width: 170px;
	margin: 0 auto;
	border-radius: 5px;
}
.message p {
	margin-top: 24px;
	font-size: calc(1.3rem / 1.6);
	line-height: calc(25 / 13);
	letter-spacing: .04em;
}
.message p span {
	font-weight: bold;
}
.message p span span {
	font-size: calc(1.8rem / 1.6);
	line-height: calc(25 / 18);
}
@media print, screen and (width >= 768px) {/* PC */
.message {
	max-width: 1020px;
	margin: 0 auto 60px;
	padding: 40px;
	box-shadow: -5px -5px 5px #fff, 5px 5px 5px rgba(0,0,0,.1);
	border-radius: 10px;
}
.message h2 {
	margin-bottom: 30px;
}
.message h2 .en {
	margin-right: 20px;
	font-size: calc(6rem / 1.6);
}
.message h2 .jp {
	padding: 0 0 15px 5px;
	font-size: calc(2rem / 1.6);
}
.message h2 .jp::before {
	width: 11px;
	height: 11px;
}
.message h2 .jp::after {
	left: 15px;
	bottom: 5px;
	width: calc(100% - 15px);
}
.message img {
	float: right;
	width: 220px;
	margin: 0 0 20px 40px;
	border-radius: 10px;
}
.message p {
	margin-top: 0;
	font-size: calc(1.5rem / 1.6);
	line-height: calc(28 / 15);
}
.message p + p {
	margin-top: 1em;
}
.message p span span {
	font-size: calc(2rem / 1.6);
	line-height: calc(28 / 15);
}
}/* @media */
/* -----------------------------------------------
= industry
----------------------------------------------- */
.industry {
	padding: 30px 18px 50px;
	background: #f8faf8;
}
.industry h2 {
	margin-bottom: 20px;
	color: var(--green);
	font-size: calc(2.5rem / 1.6);
	font-weight: bold;
	text-align: center;
	letter-spacing: .04em;
}
.industry .inner {
	padding: 20px 20px 0;
	background: #fff;
	box-shadow: -3px -3px 3px #fff, 3px 3px 3px rgba(0,0,0,.1);
	border-radius: 5px;
}
.tabs {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 10px;
	margin-bottom: 20px;
}
.tabs button {
	padding: 10px;
	color: var(--green);
	background: #f6f6f6;
	border-radius: 3px;
	font-size: calc(1rem / 1.6);
}
.tabs button[aria-selected="true"] {
	color: #fff;
	background: var(--green);
}
.industry h3 {
	position: relative;
	margin-bottom: 14px;
	padding-bottom: 10px;
	color: var(--green);
	font-size: calc(2rem / 1.6);
	font-weight: bold;
	text-align: center;
	letter-spacing: .04em;
}
.industry h3::before,
.industry h3::after {
	content: "";
	position: absolute;
}
.industry h3::before {
	left: 0;
	bottom: 0;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--green);
}
.industry h3::after {
	left: 11px;
	bottom: 3px;
	width: calc(100% - 11px);
	height: 1px;
	background: #8ab48d;
}
.industry .description {
	margin-bottom: 30px;
	font-size: calc(1.3rem / 1.6);
	line-height: calc(25 / 13);
	text-align: center;
	letter-spacing: .04em;
}
.industry h4 {
	position: relative;
	margin-bottom: 24px;
	padding-bottom: 20px;
	font-size: calc(2rem / 1.6);
	font-weight: bold;
	text-align: center;
	letter-spacing: .04em;
}
.industry h4::after {
	content: "";
	position: absolute;
	left: calc(50% - 10px);
	bottom: 0;
	width: 19px;
	height: 10px;
	background: url(../img/shared/icon_title_arrow.svg) no-repeat 50% / cover;
	filter: var(--filterGreen);
}
.industry ul {
	border-top: 1px dotted #ccc;
}
.industry li {
	display: grid;
	grid-template-columns: 75px auto;
	grid-template-rows: auto 1fr;
	gap: 0 15px;
	padding: 20px 0 18px;
	border-bottom: 1px dotted #ccc;
	letter-spacing: .04em;
}
.industry li img {
	grid-column: 1 / 2;
	grid-row: 1 / 3;
}
.industry li h5 {
	grid-column: 2 / 3;
	grid-row: 1 / 2;
	margin-bottom: 3px;
	color: var(--green);
	font-size: calc(1.4rem / 1.6);
	font-weight: bold;
}
.industry li p {
	grid-column: 2 / 3;
	grid-row: 2 / 3;
	font-size: calc(1.3rem / 1.6);
}
.industry .btn_more {
	display: block;
	position: relative;
	bottom: -20px;
	width: 160px;
	margin: 0 auto;
	padding: 10px 20px;
	color: #fff;
	background: var(--gradGreen);
	border-radius: 3em;
	font-size: calc(1.7rem / 1.6);
	font-weight: bold;
	text-align: center;
	letter-spacing: .04em;
}
.industry .btn_more::before {
	content: "";
	position: absolute;
	top: calc(50% - 7px);
	left: 12px;
	width: 15px;
	height: 15px;
	background: url(../img/shared/icon_link_arrow.svg) no-repeat 50% / cover;
	filter: var(--filterWhite);
}
@media print, screen and (width >= 768px) {/* PC */
.industry {
	padding: 40px 20px 100px;
}
.industry h2 {
	margin-bottom: 25px;
	font-size: calc(4rem / 1.6);
}
.industry .inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 20px 0 0;
	box-shadow: 5px 5px 5px rgba(0,0,0,.1);
	border-radius: 10px;
}
.tabs {
	grid-template-columns: repeat(6,1fr);
	gap: 8px;
	margin: 0 10px 45px;
	padding: 0 10px;
	border-bottom: 1px solid #ccc;
}
.tabs button {
	padding: 10px;
	border-radius: 5px 5px 0 0;
	font-size: calc(1.6rem / 1.6);
}
.tabs button:hover {
	background: #ddeede;
}
.tabs button[aria-selected="true"]:hover {
	background: var(--green);
}
.industry h3 {
	max-width: 720px;
	margin: 0 auto 20px;
	padding-bottom: 15px;
	font-size: calc(3.6rem / 1.6);
}
.industry h3::before {
	width: 11px;
	height: 11px;
}
.industry h3::after {
	left: 15px;
	bottom: 5px;
	width: calc(100% - 15px);
}
.industry .description {
	margin-bottom: 25px;
	font-size: calc(1.6rem / 1.6);
	line-height: 2;
}
.industry h4 {
	padding-bottom: 18px;
	font-size: calc(3rem / 1.6);
}
.industry ul {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 0 40px;
	margin: 0 40px 10px;
	border-top: none;
}
.industry li:nth-child(1),
.industry li:nth-child(2) {
	border-top: 1px dotted #ccc;
}
.industry li {
	grid-template-columns: 100px auto;
	gap: 0 20px;
}
.industry li img {
	width: 100px;
}
.industry li h5 {
	font-size: calc(1.8rem / 1.6);
}
.industry li p {
	font-size: calc(1.5rem / 1.6);
}
.industry .btn_more {
	bottom: -35px;
	width: 300px;
	padding: 17px 20px;
	font-size: calc(2.4rem / 1.6);
}
.industry .btn_more:hover {
	background: var(--gradGreenHover);
}
.industry .btn_more::before {
	top: calc(50% - 11px);
	left: 20px;
	width: 22px;
	height: 22px;
}
}/* @media */
