@charset "UTF-8";
/* ==========================================================================
   ベース（変数・リセット・共通）
   ========================================================================== */
:root {
	--ink: #3a3a3a;
	--green: #5eb675;
	--deep: #146552;
	--white: #ffffff;
	--pale: #f5faf5;
	--mint: #dbf1e0;
	--line: #dceef8;
	--gray: #d9d9d9;
	--pill-ink: #276174;
	--font-jp: 'Yu Gothic', YuGothic, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
	--font-en: 'Poppins', var(--font-jp);
	--font-cond: 'DIN Condensed', 'Oswald', 'Arial Narrow', var(--font-jp);
}
.page {
	--vw: 100vw;
	--canvas: min(var(--vw), 1600px);
	--u: calc(var(--canvas) / 1440);
	--bleed: calc((var(--vw) - var(--canvas)) / 2);
	position: relative;
	width: var(--canvas);
	margin-inline: auto;
}
* {
	box-sizing: border-box;
}
html,
body {
	margin: 0;
	padding: 0;
}
body {
	font-family: var(--font-jp);
	color: var(--ink);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
	text-size-adjust: 100%;
	overflow-x: hidden;
}
img,
svg {
	display: block;
	max-width: 100%;
}
a {
	color: inherit;
	text-decoration: none;
}
ul,
li {
	margin: 0;
	padding: 0;
	list-style: none;
}
hr {
	margin: 0;
	border: 0;
}
h1,
h2,
h3,
p {
	margin: 0;
}
.pc {
	display: block !important;
}
.sp {
	display: none !important;
}
section[id] {
	scroll-margin-top: calc(110 * var(--u));
}
@supports (width: 1cqw) {
	body {
		container-type: inline-size;
	}
	.page {
		--vw: 100cqw;
	}
}

/* --- ベース（変数・リセット・共通）：SP（768px以下） --- */
@media (max-width: 768px) {
	.pc {
		display: none !important;
	}
	.sp {
		display: block !important;
	}
	section[id] {
		scroll-margin-top: 20vw;
	}
	body.is-menu-open {
		position: fixed;
		left: 0;
		right: 0;
		width: 100%;
		overflow: hidden;
	}
}

/* ==========================================================================
   Header / ナビゲーション
   ========================================================================== */
.header {
	position: absolute;
	inset: 0 auto auto 0;
	width: calc(1440 * var(--u));
	z-index: 10;
	height: calc(101 * var(--u));
}
.header__logo {
	position: absolute;
	left: calc(50 * var(--u));
	top: calc(54 * var(--u));
	width: calc(260 * var(--u));
	height: calc(22 * var(--u));
}
.header__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: brightness(0) invert(1);
}
.header.is-stuck .header__logo img {
	filter: none;
}
.gnav {
	position: absolute;
	right: calc(112 * var(--u));
	top: calc(29 * var(--u));
	height: calc(72 * var(--u));
	display: flex;
	align-items: center;
	gap: calc(5 * var(--u));
	padding: 0 calc(10 * var(--u));
	background: rgba(255, 255, 255, 0.85);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	border-radius: calc(12 * var(--u));
}
.gnav__item {
	width: calc(118 * var(--u));
	height: calc(52 * var(--u));
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: calc(14 * var(--u));
	font-weight: 700;
	line-height: 2;
	white-space: nowrap;
	border-radius: calc(6 * var(--u));
	transition:
		background-color 0.2s,
		color 0.2s;
}
.gnav__item:hover {
	background: #53bb6e;
	color: var(--white);
}
.header__mail {
	position: absolute;
	left: calc(1338 * var(--u));
	top: calc(29 * var(--u));
	width: calc(72 * var(--u));
	height: calc(72 * var(--u));
	display: grid;
	place-items: center;
	background: #1a725d;
	border-radius: calc(12 * var(--u));
	transition: opacity 0.2s;
}
.header__mail:hover {
	opacity: 0.88;
}
.header__menu,
.gnav__cta {
	display: none;
}
.header.is-stuck {
	--head-h: calc(90 * var(--u));
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
	height: var(--head-h);
	animation: header-drop 0.3s ease both;
}
.header.is-stuck .header__logo,
.header.is-stuck .gnav,
.header.is-stuck .header__mail {
	top: 50%;
	transform: translateY(-50%);
}
.header.is-stuck.is-hiding {
	animation: header-up 0.3s ease both;
}
.header.is-stuck::before {
	content: '';
	position: absolute;
	left: calc(-1 * var(--bleed));
	right: calc(-1 * var(--bleed));
	top: 0;
	bottom: 0;
	background: rgba(255, 255, 255, 0.85);
	box-shadow: 0 calc(2 * var(--u)) calc(16 * var(--u)) rgba(20, 101, 82, 0.08);
}
.header.is-stuck .gnav {
	background: transparent;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}
.header__mail img {
	width: calc(27.5 * var(--u));
	height: auto;
}
@keyframes header-drop {
	from {
		transform: translateY(-100%);
		opacity: 0;
	}
	to {
		transform: none;
		opacity: 1;
	}
}
@keyframes header-up {
	from {
		transform: none;
		opacity: 1;
	}
	to {
		transform: translateY(-100%);
		opacity: 0;
	}
}

/* --- Header / ナビゲーション：SP（768px以下） --- */
@media (max-width: 768px) {
	.header {
		height: auto;
	}
	.header.is-stuck {
		--head-h: 15vw;
	}
	.header.is-stuck .header__logo,
	.header.is-stuck .header__menu {
		top: 50%;
		transform: translateY(-50%);
	}
	.header.is-stuck .gnav {
		top: 0;
		transform: translateY(-2vw);
		background: var(--white);
	}
	.is-menu-open .header.is-stuck .gnav {
		transform: none;
	}
	.gnav {
		position: fixed;
		top: 0;
		left: 0;
		right: auto;
		bottom: auto;
		z-index: 1;
		display: block;
		width: 100vw;
		height: 100vh;
		height: 100dvh;
		padding: 24vw 5vw 12vw;
		background: var(--white);
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		border-radius: 0;
		overflow-y: auto;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-2vw);
		transition:
			opacity 0.25s ease,
			transform 0.25s ease,
			visibility 0.25s;
	}
	.is-menu-open .gnav {
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.gnav__item {
		width: auto;
		height: auto;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 4.6vw 1vw;
		border-radius: 0;
		border-bottom: 1px solid #dfe9e1;
		font-size: 4.4vw;
		color: var(--ink);
	}
	.gnav__item:first-of-type {
		border-top: 1px solid #dfe9e1;
	}
	.gnav__item:hover {
		background: transparent;
		color: var(--green);
	}
	.gnav__cta {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		height: 15vw;
		margin-top: 8vw;
		background: var(--deep);
		color: var(--white);
		border-radius: 2.5vw;
		font-size: 4.2vw;
		font-weight: 700;
	}
	.gnav__cta::after {
		content: '';
		position: absolute;
		right: 6%;
		width: 4.5vw;
		aspect-ratio: 18 / 14.73;
		background: currentColor;
		-webkit-mask: url('../img/arrow.svg') no-repeat center / contain;
		mask: url('../img/arrow.svg') no-repeat center / contain;
	}
	.header__logo {
		left: 5vw;
		top: 5vw;
		width: 52vw;
		height: auto;
		z-index: 2;
	}
	.is-menu-open .header__logo img {
		filter: none;
	}
	.header__menu {
		--bar: 5vw;
		--gap: 1.7vw;
		position: absolute;
		right: 5vw;
		top: 2.25vw;
		z-index: 2;
		display: grid;
		place-items: center;
		width: 10.5vw;
		height: 10.5vw;
		padding: 0;
		border: 0;
		background: var(--deep);
		border-radius: 1.6vw;
		cursor: pointer;
	}
	.header__menu-bar,
	.header__menu-bar::before,
	.header__menu-bar::after {
		content: '';
		display: block;
		width: var(--bar);
		height: 0.55vw;
		background: var(--white);
		border-radius: 0.3vw;
		transition:
			transform 0.25s ease,
			background-color 0.15s ease;
	}
	.header__menu-bar {
		position: relative;
	}
	.header__menu-bar::before {
		position: absolute;
		left: 0;
		top: calc(-1 * var(--gap));
	}
	.header__menu-bar::after {
		position: absolute;
		left: 0;
		top: var(--gap);
	}
	.is-menu-open .header__menu-bar {
		background: transparent;
	}
	.is-menu-open .header__menu-bar::before {
		transform: translateY(var(--gap)) rotate(45deg);
	}
	.is-menu-open .header__menu-bar::after {
		transform: translateY(calc(-1 * var(--gap))) rotate(-45deg);
	}
	.header__mail {
		display: none;
	}
}

/* ==========================================================================
   FV（メインビジュアル）
   ========================================================================== */
.fv {
	position: relative;
	padding: calc(494 * var(--u)) calc(72 * var(--u)) calc(54 * var(--u));
	background: var(--white);
	overflow: hidden;
}
.fv__media {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: calc(740 * var(--u));
	overflow: hidden;
}
.fv__media img {
	position: absolute;
	left: 0;
	top: 0;
	width: calc(1440 * var(--u));
	height: calc(820 * var(--u));
	max-width: none;
	object-fit: cover;
}
.fv__fade {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(546 * var(--u));
	height: calc(195 * var(--u));
	background: linear-gradient(to top, var(--white), rgba(255, 255, 255, 0));
}
.fv__label {
	position: relative;
	margin-left: calc(-72 * var(--u));
	display: flex;
	align-items: center;
	color: var(--white);
	font-family: var(--font-en);
	font-weight: 600;
	font-size: calc(26 * var(--u));
	line-height: 1.6;
	white-space: nowrap;
}
.fv__label::before {
	content: '';
	width: calc(60 * var(--u));
	height: 1px;
	background: currentColor;
	margin-right: calc(12 * var(--u));
}
.fv__panel {
	position: absolute;
	left: 0;
	top: calc(546 * var(--u));
	width: calc(861 * var(--u));
	height: calc(194 * var(--u));
	background: rgba(255, 255, 255, 0.85);
	backdrop-filter: blur(7px);
	-webkit-backdrop-filter: blur(7px);
	border-top-right-radius: calc(52 * var(--u));
}
.fv__title {
	position: relative;
	margin-top: calc(40.4 * var(--u));
	font-size: calc(48 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.01em;
	white-space: nowrap;
}
.fv__title .is-green {
	color: var(--green);
	display: block;
}
.fv__foot {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: calc(40 * var(--u));
	margin-top: calc(40.4 * var(--u));
}
.fv__lead {
	max-width: calc(856 * var(--u));
	padding-left: calc(40 * var(--u));
	border-left: calc(2 * var(--u)) solid var(--green);
	font-size: calc(20 * var(--u));
	font-weight: 700;
	line-height: 2;
	white-space: nowrap;
}
.fv__btn {
	position: relative;
	flex: none;
	margin-top: calc(50 * var(--u));
	width: calc(400 * var(--u));
	height: calc(70 * var(--u));
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--deep);
	color: var(--white);
	font-size: calc(18 * var(--u));
	font-weight: 700;
	border-radius: calc(12 * var(--u));
	transition: opacity 0.2s;
}
.fv__btn:hover {
	opacity: 0.88;
}
.fv__btn::after {
	content: '';
	position: absolute;
	right: calc(20 * var(--u));
	width: calc(18 * var(--u));
	aspect-ratio: 18 / 14.73;
	background: currentColor;
	-webkit-mask: url('../img/arrow.svg') no-repeat center / contain;
	mask: url('../img/arrow.svg') no-repeat center / contain;
}

/* --- FV（メインビジュアル）：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.fv {
		overflow: visible;
		clip-path: inset(0 calc(-1 * var(--bleed)));
	}
	.fv__media {
		overflow: visible;
		clip-path: inset(0 calc(-1 * var(--bleed)));
	}
	.fv__media img {
		left: calc(-1 * var(--bleed));
		width: calc(1440 * var(--u) + 2 * var(--bleed));
		object-position: 50% 0;
	}
	.fv__fade {
		left: calc(-1 * var(--bleed));
		right: auto;
		width: calc(100% + 2 * var(--bleed));
	}
	.fv__panel {
		left: calc(-1 * var(--bleed));
		width: calc(861 * var(--u) + var(--bleed));
	}
	.fv__label::before {
		margin-left: calc(-1 * var(--bleed));
		width: calc(60 * var(--u) + var(--bleed));
	}
}

/* --- FV（メインビジュアル）：SP（768px以下） --- */
@media (max-width: 768px) {
	.fv {
		height: auto;
		padding: 0 0 10vw;
	}
	.fv__media {
		position: relative;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}
	.fv__media img {
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		object-position: 50% 45%;
	}
	.fv__fade {
		position: absolute;
		left: 0;
		right: 0;
		top: 42vw;
		height: 34vw;
	}
	.fv__label {
		position: absolute;
		top: 46vw;
		margin-left: 0;
		font-size: 4.4vw;
		text-shadow: 0 0.3vw 1.2vw rgba(0, 0, 0, 0.45);
	}
	.header__logo img {
		filter: brightness(0) invert(1) drop-shadow(0 0.3vw 1vw rgba(0, 0, 0, 0.45));
	}
	.fv__label::before {
		width: 3.5vw;
		height: 1px;
		margin-right: 1.5vw;
	}
	.fv__panel {
		display: none;
	}
	.fv__title {
		position: relative;
		width: 75%;
		margin-top: -20vw;
		padding: 6vw 5vw;
		font-size: 6.2vw;
		line-height: 1.5;
		white-space: normal;
		background: rgba(255, 255, 255, 0.85);
		backdrop-filter: blur(7px);
		-webkit-backdrop-filter: blur(7px);
		border-top-right-radius: 8vw;
	}
	.fv__foot {
		display: block;
	}
	.fv__lead {
		max-width: none;
		margin: 2vw 5vw 0;
		padding-left: 4vw;
		border-left-width: 2px;
		font-size: 3.8vw;
		line-height: 1.9;
		white-space: normal;
	}
	.fv__btn {
		width: 90%;
		height: 15vw;
		margin: 8vw auto 0;
		font-size: 4vw;
		border-radius: 2.5vw;
	}
	.fv__btn::after {
		width: 4.5vw;
		right: 6%;
	}
}

/* ==========================================================================
   Why?
   ========================================================================== */
.why {
	position: relative;
	padding: calc(6 * var(--u)) calc(144 * var(--u)) 0;
	overflow: hidden;
}
.why__deco {
	display: block;
	margin-inline: calc(-144 * var(--u));
	text-align: center;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: calc(148 * var(--u));
	line-height: 1.6;
	color: #e2f3e6;
	user-select: none;
}
.why__band {
	position: absolute;
	left: 0;
	top: calc(169 * var(--u));
	width: 100%;
	height: calc(798 * var(--u));
	overflow: hidden;
	background: linear-gradient(to bottom, rgba(94, 182, 117, 0) 0%, var(--green) 14.035%, var(--green) 85.965%, rgba(94, 182, 117, 0) 100%);
}
.why__band-img {
	position: absolute;
	left: calc(-393.39 * var(--u));
	top: calc(112.86 * var(--u));
	width: calc(1933.137 * var(--u));
	height: calc(850.368 * var(--u));
	display: grid;
	place-items: center;
	overflow: hidden;
}
.why__band-img img {
	width: calc(1872.399 * var(--u));
	height: calc(642.233 * var(--u));
	object-fit: cover;
	opacity: 0.2;
	transform: rotate(173.49deg) scaleY(-1);
}
.why__ttl {
	position: relative;
	padding-top: calc(152 * var(--u));
	text-align: center;
	font-size: calc(42 * var(--u));
	font-weight: 700;
	line-height: 2;
	color: var(--white);
}
.why__sub {
	position: relative;
	margin-top: calc(30 * var(--u));
	text-align: center;
	font-size: calc(20 * var(--u));
	font-weight: 700;
	line-height: 2;
	color: var(--white);
}
.why__cols {
	position: relative;
	height: calc(720 * var(--u));
	margin-top: calc(432.2 * var(--u));
}
.why__col {
	position: absolute;
}
.why__col--l {
	left: calc(18 * var(--u));
	top: 0;
	width: calc(511 * var(--u));
}
.why__col--r {
	left: calc(606 * var(--u));
	top: calc(168 * var(--u));
	width: calc(546 * var(--u));
}
.why__photo {
	position: relative;
	overflow: hidden;
	background: var(--gray);
}
.why__photo img {
	position: absolute;
	max-width: none;
	object-fit: cover;
}
.why__photo--l {
	margin-left: calc(2 * var(--u));
	width: calc(506 * var(--u));
	height: calc(310 * var(--u));
}
.why__photo--l img {
	left: calc(-678 * var(--u));
	top: calc(-1 * var(--u));
	width: calc(1708 * var(--u));
	height: calc(311 * var(--u));
}
.why__photo--r {
	width: calc(546 * var(--u));
	height: calc(350 * var(--u));
}
.why__photo--r img {
	left: 0;
	top: 0;
	width: calc(546 * var(--u));
	height: calc(382 * var(--u));
}
.why__h3 {
	margin-top: calc(20 * var(--u));
	text-align: center;
	font-size: calc(32 * var(--u));
	font-weight: 700;
	line-height: 1.6;
}
.why__list {
	margin-top: calc(19.8 * var(--u));
	margin-left: calc(2 * var(--u));
}
.why__list li {
	display: flex;
	gap: calc(8 * var(--u));
	font-size: calc(18 * var(--u));
	line-height: 1.6;
	color: var(--ink);
}
.why__list li::before {
	content: '';
	flex: none;
	width: calc(24 * var(--u));
	height: calc(24 * var(--u));
	margin-top: calc(1.5 * var(--u));
	background: var(--white) url('../img/check.svg') no-repeat center / calc(14 * var(--u)) auto;
	border: 1px solid var(--gray);
	border-radius: calc(6 * var(--u));
}
.why__list--l li {
	margin-bottom: calc(18.7 * var(--u));
	font-weight: 700;
}
.why__list--r li {
	margin-bottom: calc(12.2 * var(--u));
	font-weight: 700;
}
.why__list li:last-child {
	margin-bottom: 0;
}
.why__pull {
	position: relative;
	margin-top: calc(20 * var(--u));
	font-size: calc(54 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}
.why__note {
	position: relative;
	margin-top: calc(36.2 * var(--u));
	font-size: calc(22 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
}
.why__src {
	position: relative;
	margin-top: calc(10.8 * var(--u));
	font-size: calc(12 * var(--u));
	font-weight: 500;
	line-height: 1.6;
}

/* --- Why?：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.why {
		overflow: visible;
		clip-path: inset(0 calc(-1 * var(--bleed)));
	}
	.why__band {
		left: calc(-1 * var(--bleed));
		width: calc(100% + 2 * var(--bleed));
	}
	.why__band-img {
		left: calc(-393.39 * var(--u) - var(--bleed));
		width: calc(1933.137 * var(--u) + 3 * var(--bleed));
	}
	.why__band-img img {
		width: calc(1872.399 * var(--u) + 3 * var(--bleed));
	}
}

/* --- Why?：SP（768px以下） --- */
@media (max-width: 768px) {
	.why {
		padding: 12vw 0 0;
	}
	.why__deco {
		position: absolute;
		left: 0;
		right: 0;
		top: 2vw;
		margin-inline: 0;
		font-size: 22vw;
	}
	.why__band {
		position: relative;
		left: auto;
		top: auto;
		height: auto;
		margin-top: 14vw;
		padding: 10vw 5vw 37.5vw;
	}
	.why__band-img {
		position: absolute;
		inset: 0;
		left: 0;
		top: 0;
		width: auto;
		height: auto;
		display: grid;
	}
	.why__band-img img {
		width: 180%;
		max-width: none;
		height: auto;
		opacity: 0.25;
	}
	.why__ttl {
		padding-top: 0;
		font-size: 4.7vw;
		line-height: 1.7;
	}
	.why__sub {
		margin-top: 5vw;
		font-size: 3.7vw;
		line-height: 1.9;
	}
	.why__sub br {
		display: none;
	}
	.why__cols {
		display: block;
		height: auto;
		margin: 0;
	}
	.why__col {
		position: relative;
		left: auto;
		top: auto;
		width: auto;
		margin: 0;
	}
	.why__photo,
	.why__h3,
	.why__list,
	.why__pull,
	.why__note,
	.why__src {
		position: relative;
		left: auto;
		top: auto;
		transform: none;
		white-space: normal;
	}
	.why__photo {
		width: 90%;
		height: auto;
		margin: 10vw auto 0;
	}
	.why__photo--l {
		aspect-ratio: 506 / 310;
		margin-top: -27.5vw;
	}
	.why__photo--r {
		aspect-ratio: 546 / 350;
	}
	.why__photo--l img {
		left: -133.99%;
		top: -0.32%;
		width: 337.55%;
		height: 100.32%;
	}
	.why__photo--r img {
		left: 0;
		top: 0;
		width: 100%;
		height: 109.14%;
	}
	.why__h3 {
		margin-top: 6vw;
		font-size: 4.6vw;
	}
	.why__list {
		width: 90%;
		margin: 5vw auto 0;
	}
	.why__list li {
		gap: 2.5vw;
		font-size: 3.7vw;
	}
	.why__list--l li,
	.why__list--r li {
		margin-bottom: 3vw;
	}
	.why__list--r li {
		white-space: normal;
	}
	.why__list li::before {
		width: 5.5vw;
		height: 5.5vw;
		margin-top: 0;
		background-size: 3.2vw auto;
		border-radius: 1.5vw;
	}
	.why__pull {
		width: 90%;
		margin: 12vw auto 0;
		font-size: 5.8vw;
		text-wrap: balance;
	}
	.why__note {
		width: 90%;
		margin: 5vw auto 0;
		font-size: 4vw;
	}
	.why__src {
		width: 90%;
		margin: 2vw auto 0;
		font-size: 3vw;
	}
	.why__sub,
	.why__note {
		text-align: left;
		text-wrap: pretty;
	}
}

/* ==========================================================================
   Line-up
   ========================================================================== */
.lu {
	position: relative;
	padding: calc(290 * var(--u)) calc(72 * var(--u)) calc(120 * var(--u));
	overflow: hidden;
}
.lu__deco {
	position: absolute;
	left: calc(-68 * var(--u));
	top: calc(-56 * var(--u));
	width: calc(1118 * var(--u));
	height: calc(503 * var(--u));
}
.lu__deco img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scaleX(-1);
}
.lu__photo {
	position: absolute;
	overflow: hidden;
	background: var(--gray);
}
.lu__photo img {
	position: absolute;
	max-width: none;
	object-fit: cover;
}
.lu__photo--a {
	left: calc(1047 * var(--u));
	top: calc(60 * var(--u));
	width: calc(393 * var(--u));
	height: calc(286 * var(--u));
}
.lu__photo--a img {
	left: calc(-63 * var(--u));
	top: 0;
	width: calc(528 * var(--u));
	height: calc(308 * var(--u));
}
.lu__label {
	position: relative;
	margin-inline: calc(-72 * var(--u));
	text-align: center;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: calc(28 * var(--u));
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}
.lu__h2 {
	position: relative;
	margin-top: calc(40.2 * var(--u));
	text-align: center;
	font-size: calc(54 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
}
.lu__cards {
	position: relative;
	z-index: 2;
	display: flex;
	gap: calc(30 * var(--u));
	margin-top: calc(80 * var(--u));
}
.lu__card {
	position: relative;
	flex: 1 1 0;
	height: calc(426 * var(--u));
	background: var(--green);
	border-radius: calc(24 * var(--u));
}
.lu__thumb {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(20 * var(--u));
	width: calc(372 * var(--u));
	height: calc(230 * var(--u));
	background: var(--green);
	border-radius: calc(24 * var(--u));
	overflow: hidden;
}
.lu__thumb img {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: calc(100% + 1px);
	max-width: none;
	object-fit: cover;
}
.lu__tag {
	position: absolute;
	left: calc(21 * var(--u));
	top: calc(270 * var(--u));
	width: calc(372 * var(--u));
	height: calc(52 * var(--u));
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--white);
	border-radius: calc(70 * var(--u));
	font-size: calc(20 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--pill-ink);
	white-space: nowrap;
}
.lu__desc {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(342 * var(--u));
	width: calc(372 * var(--u));
	text-align: center;
	font-size: calc(17 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
}
.lu__bottom {
	position: relative;
	z-index: 1;
	height: calc(420 * var(--u));
	margin-top: calc(-50 * var(--u));
}
.lu__photo--b {
	left: calc(-72 * var(--u));
	top: 0;
	width: calc(720 * var(--u));
	height: calc(420 * var(--u));
}
.lu__photo--b img {
	left: calc(-1 * var(--u));
	top: calc(-55 * var(--u));
	width: calc(736 * var(--u));
	height: calc(519 * var(--u));
}
.lu__note {
	position: absolute;
	left: calc(697 * var(--u));
	top: calc(182 * var(--u));
	font-size: calc(32 * var(--u));
	font-weight: 700;
	line-height: 2;
	white-space: nowrap;
}
.lu__note em {
	font-style: normal;
	color: var(--green);
}
/* 流れる英字（marquee） */
.loop {
	position: absolute;
	left: 0;
	width: 100%;
	overflow: hidden;
	font-family: var(--font-en);
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
	user-select: none;
	pointer-events: none;
}
.loop__track {
	display: flex;
	width: max-content;
	animation: loop-x 40s linear infinite;
	will-change: transform;
}
.loop__track span {
	padding-right: calc(60 * var(--u));
}
@keyframes loop-x {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}
.lu__loop {
	z-index: 0;
	top: calc(1272 * var(--u));
	font-size: calc(128 * var(--u));
	color: var(--pale);
}

/* --- Line-up：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.lu {
		overflow: visible;
		clip-path: inset(0 calc(-1 * var(--bleed)));
	}
	.loop {
		left: calc(-1 * var(--bleed));
		width: calc(100% + 2 * var(--bleed));
	}
	.lu__photo--a {
		width: calc(393 * var(--u) + var(--bleed));
	}
	.lu__photo--a img {
		width: calc(528 * var(--u) + var(--bleed));
	}
	.lu__photo--b {
		left: calc(-72 * var(--u) - var(--bleed));
		width: calc(720 * var(--u) + var(--bleed));
	}
	.lu__photo--b img {
		left: calc(-1 * var(--u) - var(--bleed));
		width: calc(736 * var(--u) + 2 * var(--bleed));
	}
}

/* --- Line-up：SP（768px以下） --- */
@media (max-width: 768px) {
	.lu {
		padding: 10vw 0 5vw;
	}
	.lu__deco {
		left: -40vw;
		top: 16vw;
		width: 90vw;
		height: 40vw;
	}
	.lu__photo--a {
		position: relative;
		left: auto;
		top: auto;
		width: 62%;
		height: auto;
		aspect-ratio: 393 / 286;
		margin: 4vw 0 0 auto;
	}
	.lu__photo--a img {
		left: -16.03%;
		top: 0;
		width: 134.35%;
		height: 107.69%;
	}
	.lu__label,
	.lu__h2 {
		position: relative;
		left: auto;
		top: auto;
		transform: none;
		white-space: normal;
		text-align: center;
	}
	.lu__label {
		margin: 8vw 0 0;
		font-size: 4.4vw;
	}
	.lu__h2 {
		margin: 2vw 5vw 0;
		font-size: 6vw;
		line-height: 1.5;
	}
	.lu__cards {
		position: relative;
		left: auto;
		top: auto;
		height: auto;
		display: grid;
		grid-template-columns: 1fr;
		gap: 5vw;
		width: 90%;
		margin: 9vw auto 0;
	}
	.lu__cards .lu__card {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		height: auto;
		padding: 5vw 5vw 7vw;
		border-radius: 4vw;
	}
	.lu__thumb {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		height: auto;
		aspect-ratio: 372 / 230;
		border-radius: 3vw;
	}
	.lu__tag,
	.lu__desc {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
	}
	.lu__tag {
		height: auto;
		margin-top: 4vw;
		padding: 2.5vw 4vw;
		border-radius: 10vw;
		font-size: 4.6vw;
		white-space: normal;
		text-align: center;
	}
	.lu__desc {
		margin-top: 3vw;
		font-size: 3.7vw;
	}
	.lu__bottom {
		height: auto;
		margin-top: 10vw;
	}
	.lu__photo--b {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		height: auto;
		aspect-ratio: 720 / 420;
	}
	.lu__photo--b img {
		left: -0.14%;
		top: -13.1%;
		width: 102.22%;
		height: 123.57%;
	}
	.lu__note {
		position: relative;
		left: auto;
		top: auto;
		width: 90%;
		margin: 9vw auto 0;
		font-size: 5vw;
		line-height: 1.7;
		white-space: normal;
	}
	.lu__loop {
		position: relative;
		top: auto;
		margin-top: 0;
		font-size: 15vw;
	}
	.loop__track {
		animation-duration: 120s;
		will-change: transform;
	}
}

/* ==========================================================================
   Our Strength
   ========================================================================== */
.str {
	position: relative;
	margin-top: calc(-20 * var(--u));
	padding: calc(100 * var(--u)) calc(72 * var(--u)) calc(30 * var(--u));
	overflow: hidden;
}
.str__bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: calc(1000 * var(--u));
	background: var(--pale);
}
.str__deco {
	position: absolute;
	left: calc(514 * var(--u));
	top: calc(762 * var(--u));
	width: calc(1000 * var(--u));
	height: calc(313 * var(--u));
	opacity: 0.5;
}
.str__deco img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.str__deco-fade {
	position: absolute;
	left: calc(457 * var(--u));
	top: calc(790 * var(--u));
	width: calc(519 * var(--u));
	height: calc(210 * var(--u));
	background: linear-gradient(to left, rgba(245, 250, 245, 0), var(--pale) 75.481%);
}
/* セクション見出しの英字ラベル */
.str__label {
	position: relative;
	display: flex;
	align-items: center;
	margin-inline: calc(-72 * var(--u));
	font-family: var(--font-en);
	font-weight: 500;
	font-size: calc(28 * var(--u));
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}
.str__label::before,
.str__label::after {
	content: '';
	border-top: 1px solid var(--gray);
}
.str__label::before {
	flex: 0 0 calc(52 * var(--u));
}
.str__label::after {
	flex: 1 1 auto;
}
.str__label span {
	padding: 0 calc(19 * var(--u));
	background: var(--pale);
}
.str__h2 {
	position: relative;
	margin-top: calc(33.2 * var(--u));
	font-size: calc(54 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
}
.str__lead {
	position: relative;
	margin-top: calc(46.6 * var(--u));
	font-size: calc(18 * var(--u));
	font-weight: 700;
	line-height: 1.6;
}
.str__lead em {
	font-style: normal;
	color: var(--green);
}
.str__cards {
	position: relative;
	display: flex;
	gap: calc(30 * var(--u));
	margin-top: calc(39.4 * var(--u));
}
.str__card {
	position: relative;
	flex: 1 1 0;
	height: calc(354 * var(--u));
	background: var(--green);
	border-radius: calc(12 * var(--u));
}
.str__thumb {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(20 * var(--u));
	width: calc(262 * var(--u));
	height: calc(170 * var(--u));
	background: var(--white);
	border-radius: calc(12 * var(--u));
	overflow: hidden;
}
.str__thumb img {
	position: absolute;
	max-width: none;
	object-fit: cover;
}
.str__thumb--1 .a {
	left: calc(129 * var(--u));
	top: 0;
	width: calc(126 * var(--u));
	height: calc(178 * var(--u));
}
.str__thumb--1 .b {
	left: calc(5 * var(--u));
	top: calc(-13 * var(--u));
	width: calc(137 * var(--u));
	height: calc(194 * var(--u));
}
.str__thumb--2 img {
	left: calc(-40.04 * var(--u));
	top: calc(-11.24 * var(--u));
	width: calc(430.55 * var(--u));
	height: calc(251.16 * var(--u));
	transform: rotate(5.83deg);
}
.str__thumb--3 img {
	left: calc(-127 * var(--u));
	top: calc(-109 * var(--u));
	width: calc(453 * var(--u));
	height: calc(299 * var(--u));
}
.str__thumb--4 img {
	left: calc(-7 * var(--u));
	top: calc(-4 * var(--u));
	width: calc(277 * var(--u));
	height: calc(183 * var(--u));
}
.str__ttl {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(210 * var(--u));
	width: calc(262 * var(--u));
	text-align: center;
	font-size: calc(20 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
}
.str__card hr {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(253 * var(--u));
	width: calc(262 * var(--u));
	border-top: 1px solid var(--line);
}
.str__desc {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(273 * var(--u));
	width: calc(262 * var(--u));
	text-align: center;
	font-size: calc(15 * var(--u));
	font-weight: 500;
	line-height: 1.6;
	color: var(--white);
}
.str__pull {
	position: relative;
	margin-top: calc(80 * var(--u));
	font-size: calc(40 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}

/* --- Our Strength：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.str {
		overflow: visible;
		clip-path: inset(0 calc(-1 * var(--bleed)));
	}
	.str__bg {
		left: calc(-1 * var(--bleed));
		width: calc(100% + 2 * var(--bleed));
	}
	.str__label {
		margin-inline: calc(-72 * var(--u) - var(--bleed));
	}
	.str__label::before {
		flex: 0 0 calc(52 * var(--u) + var(--bleed));
	}
}

/* --- Our Strength：SP（768px以下） --- */
@media (max-width: 768px) {
	.str {
		margin-top: 0;
		padding: 8vw 0 14vw;
	}
	.str__bg {
		height: 100%;
	}
	.str__deco,
	.str__deco-fade {
		display: none;
	}
	.str__label,
	.str__h2,
	.str__lead {
		position: relative;
		left: auto;
		right: auto;
		top: auto;
		white-space: normal;
	}
	.str__label {
		height: auto;
		margin: 0;
		padding: 0;
		font-size: 4.4vw;
		gap: 1.5vw;
		background: transparent;
	}
	.str__label span {
		padding: 0;
		background: transparent;
	}
	.str__label::before {
		flex: 0 0 3.5vw;
	}
	.str__label::after {
		flex: 1 1 auto;
	}
	.str__h2 {
		margin: 4vw 5vw 0;
		font-size: 6vw;
		line-height: 1.5;
		text-align: left;
	}
	.str__lead {
		width: 90%;
		margin: 5vw auto 0;
		font-size: 3.8vw;
		line-height: 1.9;
	}
	.str__cards {
		position: relative;
		left: auto;
		top: auto;
		height: auto;
		display: grid;
		grid-template-columns: 1fr;
		gap: 5vw;
		width: 90%;
		margin: 9vw auto 0;
	}
	.str__cards .str__card {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		height: auto;
		padding: 5vw 5vw 7vw;
		border-radius: 3vw;
	}
	.str__thumb {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		height: auto;
		aspect-ratio: 262 / 170;
		border-radius: 2.5vw;
	}
	.str__thumb--1 .a {
		left: 49.24%;
		top: 0;
		width: 48.09%;
		height: 104.71%;
	}
	.str__thumb--1 .b {
		left: 1.91%;
		top: -7.65%;
		width: 52.29%;
		height: 114.12%;
	}
	.str__thumb--2 img {
		left: -5.28%;
		top: -6.61%;
		width: 164.33%;
		height: 147.74%;
	}
	.str__thumb--3 img {
		left: -48.47%;
		top: -64.12%;
		width: 172.9%;
		height: 175.88%;
	}
	.str__thumb--4 img {
		left: -2.67%;
		top: -2.35%;
		width: 105.73%;
		height: 107.65%;
	}
	.str__ttl,
	.str__desc {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
	}
	.str__ttl {
		margin-top: 4vw;
		font-size: 5vw;
	}
	.str__card hr {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		margin: 3.5vw 0;
	}
	.str__desc {
		font-size: 3.7vw;
	}
	.str__pull {
		position: relative;
		left: auto;
		top: auto;
		width: 90%;
		margin: 10vw auto 0;
		font-size: 5.8vw;
		white-space: normal;
	}
}

/* ==========================================================================
   What We Verify
   ========================================================================== */
.en {
	position: relative;
	padding: calc(100 * var(--u)) calc(72 * var(--u)) calc(100 * var(--u));
	background: var(--pale);
}
.en__label {
	position: relative;
	display: flex;
	align-items: center;
	margin-inline: calc(-72 * var(--u));
	font-family: var(--font-en);
	font-weight: 500;
	font-size: calc(28 * var(--u));
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}
.en__label::before,
.en__label::after {
	content: '';
	border-top: 1px solid var(--gray);
}
.en__label::before {
	flex: 1 1 auto;
}
.en__label::after {
	flex: 0 0 calc(70 * var(--u));
}
.en__label span {
	padding: 0 calc(20 * var(--u));
	background: var(--pale);
}
.en__h2 {
	position: relative;
	margin-top: calc(33.2 * var(--u));
	text-align: right;
	font-size: calc(54 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
}
.en__cards {
	position: relative;
	display: flex;
	gap: calc(30 * var(--u));
	margin-top: calc(46.6 * var(--u));
}
.en__card {
	position: relative;
	flex: 1 1 0;
	height: calc(354 * var(--u));
	background: var(--green);
	border-radius: calc(12 * var(--u));
}
.en__thumb {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(20 * var(--u));
	width: calc(262 * var(--u));
	height: calc(170 * var(--u));
	background: var(--white);
	border-radius: calc(12 * var(--u));
	overflow: hidden;
}
.en__thumb img {
	position: absolute;
	max-width: none;
	object-fit: cover;
}
.en__thumb--1 img {
	left: 0;
	top: calc(-5 * var(--u));
	width: calc(262 * var(--u));
	height: calc(175 * var(--u));
}
.en__thumb--2 img {
	left: calc(-5.293 * var(--u));
	top: calc(-49.033 * var(--u));
	width: calc(343.586 * var(--u));
	height: calc(230.903 * var(--u));
}
.en__thumb--3 img {
	left: calc(-4 * var(--u));
	top: calc(-8 * var(--u));
	width: calc(267 * var(--u));
	height: calc(178 * var(--u));
}
.en__thumb--4 img {
	left: calc(-35 * var(--u));
	top: calc(-31 * var(--u));
	width: calc(434 * var(--u));
	height: calc(237 * var(--u));
}
.en__ttl {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(210 * var(--u));
	width: calc(262 * var(--u));
	text-align: center;
	font-size: calc(20 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
}
.en__card hr {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(253 * var(--u));
	width: calc(262 * var(--u));
	border-top: 1px solid var(--line);
}
.en__desc {
	position: absolute;
	left: calc(20 * var(--u));
	top: calc(273 * var(--u));
	width: calc(262 * var(--u));
	text-align: center;
	font-size: calc(15 * var(--u));
	font-weight: 500;
	line-height: 1.6;
	color: var(--white);
}
.en__note {
	position: relative;
	margin-top: calc(20 * var(--u));
	font-size: calc(12 * var(--u));
	font-weight: 500;
	line-height: 1.6;
}

/* --- What We Verify：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.en {
		box-sizing: content-box;
		margin-inline: calc(-1 * var(--bleed));
		border-inline: var(--bleed) solid var(--pale);
	}
	.en__label {
		margin-inline: calc(-72 * var(--u) - var(--bleed));
	}
	.en__label::after {
		flex: 0 0 calc(70 * var(--u) + var(--bleed));
	}
}

/* --- What We Verify：SP（768px以下） --- */
@media (max-width: 768px) {
	.en {
		height: auto;
		padding: 0 0 14vw;
	}
	.en__label,
	.en__h2 {
		position: relative;
		left: auto;
		right: auto;
		top: auto;
		white-space: normal;
	}
	.en__label {
		height: auto;
		margin: 0;
		padding: 0;
		font-size: 4.4vw;
		gap: 1.5vw;
		background: transparent;
	}
	.en__label span {
		padding: 0;
		background: transparent;
	}
	.en__label::before {
		flex: 0 0 3.5vw;
	}
	.en__label::after {
		flex: 1 1 auto;
	}
	.en__h2 {
		margin: 4vw 5vw 0;
		font-size: 6vw;
		line-height: 1.5;
		text-align: left;
	}
	.en__cards {
		position: relative;
		left: auto;
		top: auto;
		height: auto;
		display: grid;
		grid-template-columns: 1fr;
		gap: 5vw;
		width: 90%;
		margin: 9vw auto 0;
	}
	.en__cards .en__card {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		height: auto;
		padding: 5vw 5vw 7vw;
		border-radius: 3vw;
	}
	.en__thumb {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		height: auto;
		aspect-ratio: 262 / 170;
		border-radius: 2.5vw;
	}
	.en__thumb--1 img {
		left: 0;
		top: -2.5%;
		width: 100%;
		height: 102.94%;
	}
	.en__thumb--2 img {
		left: -2.02%;
		top: -28.84%;
		width: 131.14%;
		height: 135.83%;
	}
	.en__thumb--3 img {
		left: -1.53%;
		top: -4.3%;
		width: 101.91%;
		height: 104.71%;
	}
	.en__thumb--4 img {
		left: -13.36%;
		top: -18.24%;
		width: 165.65%;
		height: 139.41%;
	}
	.en__ttl,
	.en__desc {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
	}
	.en__ttl {
		margin-top: 4vw;
		font-size: 5vw;
	}
	.en__card hr {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		margin: 3.5vw 0;
	}
	.en__desc {
		font-size: 3.7vw;
	}
	.en__note {
		width: 90%;
		margin: 6vw auto 0;
		font-size: 3vw;
		line-height: 1.8;
	}
}

/* ==========================================================================
   Use Cases
   ========================================================================== */
.uc {
	position: relative;
	padding: calc(163 * var(--u)) calc(144 * var(--u)) 0;
	overflow: hidden;
}
.uc__bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: calc(400 * var(--u));
	overflow: hidden;
}
.uc__bg img {
	position: absolute;
	left: calc(-311 * var(--u));
	top: calc(-4 * var(--u));
	width: calc(1820 * var(--u));
	height: calc(400 * var(--u));
	max-width: none;
	object-fit: cover;
}
.uc__deco {
	position: absolute;
	left: calc(-147 * var(--u));
	top: calc(363 * var(--u));
	width: calc(1588 * var(--u));
	height: calc(714 * var(--u));
	opacity: 0.35;
}
.uc__deco img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.uc__label {
	position: relative;
	text-align: center;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: calc(46 * var(--u));
	line-height: 1.6;
	color: var(--white);
	white-space: nowrap;
	text-shadow: 0 calc(2 * var(--u)) calc(12 * var(--u)) rgba(0, 0, 0, 0.35);
}
.uc__hero {
	position: relative;
	display: flex;
	gap: calc(50 * var(--u));
	margin-top: calc(17.4 * var(--u));
	min-height: calc(300 * var(--u));
	padding: calc(50 * var(--u));
	background: var(--pale);
	border-radius: calc(24 * var(--u));
}
.uc__body {
	flex: 1 1 auto;
}
.uc__icon {
	position: relative;
	flex: none;
	width: calc(200 * var(--u));
	height: calc(200 * var(--u));
}
.uc__icon .ring {
	width: 100%;
	height: 100%;
}
.uc__icon .pic {
	position: absolute;
	left: calc(33 * var(--u));
	top: calc(57 * var(--u));
	width: calc(134 * var(--u));
	height: calc(87 * var(--u));
	object-fit: contain;
}
.uc__tag {
	margin-top: calc(13 * var(--u));
	width: calc(200 * var(--u));
	height: calc(28 * var(--u));
	display: flex;
	align-items: center;
	padding-left: calc(30 * var(--u));
	background: var(--deep);
	border-radius: calc(30 * var(--u));
	font-size: calc(14 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
}
.uc__ttl {
	margin-top: calc(10 * var(--u));
	font-size: calc(24 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--deep);
}
.uc__hero hr {
	margin: calc(29.6 * var(--u)) 0 calc(19 * var(--u));
	border: 0;
	border-top: 1px solid var(--line);
}
.uc__desc {
	max-width: calc(802 * var(--u));
	font-size: calc(15 * var(--u));
	font-weight: 500;
	line-height: 1.6;
}
.uc__h2 {
	position: relative;
	margin-top: calc(80 * var(--u));
	font-size: calc(54 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	white-space: nowrap;
}
.uc__h2 em {
	font-style: normal;
	color: var(--green);
}
.uc__rail-wrap {
	position: relative;
	margin: calc(79.2 * var(--u)) calc(-144 * var(--u)) 0;
	height: calc(268 * var(--u));
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.uc__rail-wrap::-webkit-scrollbar {
	display: none;
}
.uc__rail {
	display: flex;
	gap: calc(16 * var(--u));
	width: max-content;
	padding: 0 calc(88 * var(--u));
}
.uc__item {
	position: relative;
	flex: none;
	width: calc(412 * var(--u));
	height: calc(268 * var(--u));
	background: var(--pale);
	border-radius: calc(24 * var(--u));
}
.uc__item .ring {
	position: absolute;
	left: calc(30 * var(--u));
	top: calc(30 * var(--u));
	width: calc(120 * var(--u));
	height: calc(120 * var(--u));
}
.uc__item .pic {
	position: absolute;
	left: calc(90 * var(--u));
	top: calc(90 * var(--u));
	transform: translate(-50%, -50%);
	object-fit: contain;
	width: calc(80 * var(--u));
	height: calc(80 * var(--u));
}
.uc__item h3 {
	position: absolute;
	left: calc(170 * var(--u));
	top: calc(74 * var(--u));
	width: calc(222 * var(--u));
	font-size: calc(24 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--deep);
}
.uc__item hr {
	position: absolute;
	left: calc(30 * var(--u));
	top: calc(171 * var(--u));
	width: calc(352 * var(--u));
	margin: 0;
	border: 0;
	border-top: 1px solid var(--line);
}
.uc__item p {
	position: absolute;
	left: calc(30 * var(--u));
	top: calc(191 * var(--u));
	width: calc(352 * var(--u));
	font-size: calc(15 * var(--u));
	font-weight: 500;
	line-height: 1.6;
}
.uc__fade {
	position: absolute;
	top: calc(886 * var(--u));
	width: calc(200 * var(--u));
	height: calc(268 * var(--u));
	pointer-events: none;
}
.uc__fade--l {
	left: 0;
}
.uc__fade--r {
	right: 0;
}
.uc__fade img {
	width: 100%;
	height: 100%;
}
.uc__fade--r img {
	transform: scaleX(-1);
}
.uc__nav {
	position: absolute;
	top: calc(986 * var(--u));
	width: calc(68 * var(--u));
	height: calc(68 * var(--u));
	padding: 0;
	border: 0;
	background: transparent;
	border-radius: calc(12 * var(--u));
	cursor: pointer;
	z-index: 2;
	transition: opacity 0.2s;
}
.uc__nav:hover {
	opacity: 0.75;
}
.uc__nav:focus-visible {
	outline: 2px solid var(--deep);
	outline-offset: 3px;
}
.uc__nav--prev {
	left: calc(72 * var(--u));
}
.uc__nav--next {
	right: calc(72 * var(--u));
}

/* --- Use Cases：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.uc {
		overflow: visible;
		clip-path: inset(0 calc(-1 * var(--bleed)));
	}
	.uc__bg {
		left: calc(-1 * var(--bleed));
		width: calc(100% + 2 * var(--bleed));
	}
	.uc__bg img {
		position: static;
		width: 100%;
		height: 100%;
		object-position: 57% 50%;
	}
	.uc__deco {
		left: calc(-147 * var(--u) - var(--bleed));
		width: calc(1588 * var(--u) + 2 * var(--bleed));
	}
}

/* --- Use Cases：SP（768px以下） --- */
@media (max-width: 768px) {
	.uc {
		padding: 0 0 5vw;
	}
	.uc__bg {
		height: 62vw;
	}
	.uc__bg img {
		position: static;
		width: 100%;
		height: 100%;
		object-position: 50% 50%;
	}
	.uc__deco {
		display: none;
	}
	.uc__label {
		position: absolute;
		left: 0;
		right: 0;
		top: 30vw;
		font-size: 8vw;
	}
	.uc__hero {
		display: block;
		width: 90%;
		min-height: 0;
		margin: 54vw auto 0;
		padding: 7vw 5vw;
		border-radius: 4vw;
	}
	.uc__icon {
		width: 30vw;
		height: 30vw;
		margin: 0 auto;
	}
	.uc__icon .pic {
		left: 5vw;
		top: 8.5vw;
		width: 20vw;
		height: 13vw;
	}
	.uc__tag {
		width: max-content;
		height: auto;
		margin: 5vw auto 0;
		padding: 2.5vw 5vw;
		font-size: 3.6vw;
		border-radius: 8vw;
	}
	.uc__ttl {
		margin-top: 4vw;
		font-size: 5vw;
		text-align: center;
	}
	.uc__hero hr {
		margin: 4vw 0;
	}
	.uc__desc {
		max-width: none;
		font-size: 3.7vw;
		line-height: 1.9;
	}
	.uc__h2 {
		margin: 11vw 5vw 0;
		font-size: 6vw;
		line-height: 1.5;
		white-space: normal;
	}
	.uc__slider {
		position: relative;
	}
	.uc__rail-wrap {
		height: auto;
		margin: 9vw 0 0;
		padding: 0 5vw 4vw;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
	}
	.uc__rail {
		gap: 4vw;
		padding: 0;
	}
	.uc__item {
		width: 78vw;
		height: auto;
		min-height: 62vw;
		padding: 6vw 5vw;
		border-radius: 4vw;
		scroll-snap-align: center;
	}
	.uc__item .ring {
		position: relative;
		left: auto;
		top: auto;
		display: block;
		width: 22vw;
		height: 22vw;
		margin: 0 auto;
	}
	.uc__item .pic {
		left: 50% !important;
		top: 17vw !important;
		width: 14vw !important;
		height: 14vw !important;
		transform: translate(-50%, -50%);
	}
	.uc__item h3 {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		margin-top: 4vw;
		font-size: 5vw;
		text-align: center;
	}
	.uc__item hr {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		margin: 3.5vw 0;
	}
	.uc__item p {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		font-size: 3.7vw;
		line-height: 1.9;
	}
	.uc__fade {
		display: none;
	}
	.uc__nav {
		display: grid;
		place-items: center;
		top: 45%;
		transform: translateY(-50%);
		width: 12vw;
		height: 12vw;
		background: var(--green);
		border-radius: 2vw;
		box-shadow: 0 0.5vw 2vw rgba(20, 101, 82, 0.2);
	}
	.uc__nav--prev {
		left: 1.5vw;
	}
	.uc__nav--next {
		right: 1.5vw;
	}
	.uc__nav::after {
		content: '';
		width: 4.4vw;
		aspect-ratio: 18 / 14.73;
		background: var(--white);
		-webkit-mask: url('../img/arrow.svg') no-repeat center / contain;
		mask: url('../img/arrow.svg') no-repeat center / contain;
	}
	.uc__nav--prev::after {
		transform: scaleX(-1);
	}
}

/* ==========================================================================
   Works（In Action）
   ========================================================================== */
.ia {
	position: relative;
	margin-top: calc(100 * var(--u));
	padding: calc(97 * var(--u)) calc(72 * var(--u)) calc(153 * var(--u));
	overflow: hidden;
}
.ia__bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: calc(687 * var(--u));
	background: var(--green);
}
.ia__label {
	position: relative;
	display: flex;
	align-items: center;
	margin-inline: calc(-72 * var(--u));
	font-family: var(--font-en);
	font-weight: 500;
	font-size: calc(28 * var(--u));
	line-height: 1.6;
	color: var(--white);
	white-space: nowrap;
}
.ia__label::before,
.ia__label::after {
	content: '';
	border-top: 1px solid var(--white);
}
.ia__label::before {
	flex: 0 0 calc(53 * var(--u));
}
.ia__label::after {
	flex: 1 1 auto;
}
.ia__label span {
	padding: 0 calc(19 * var(--u));
	background: var(--green);
}
.ia__main {
	position: relative;
	z-index: 1;
	height: calc(676 * var(--u));
	margin-top: calc(38.2 * var(--u));
}
.ia__photo {
	position: absolute;
	width: calc(600 * var(--u));
	height: calc(338 * var(--u));
	overflow: hidden;
	background: var(--gray);
}
.ia__photo img {
	position: absolute;
	max-width: none;
	object-fit: cover;
}
.ia__photo--a {
	left: 0;
	top: 0;
}
.ia__photo--a img {
	left: calc(-21 * var(--u));
	top: calc(-67 * var(--u));
	width: calc(689 * var(--u));
	height: calc(486 * var(--u));
}
.ia__photo--b {
	left: calc(696 * var(--u));
	top: calc(338 * var(--u));
}
.ia__photo--b img {
	left: 0;
	top: calc(-51 * var(--u));
	width: calc(710 * var(--u));
	height: calc(400 * var(--u));
}
.ia__h2 {
	position: absolute;
	left: calc(680 * var(--u));
	top: calc(83 * var(--u));
	font-size: calc(54 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
	white-space: nowrap;
}
.ia__text {
	position: absolute;
	left: 0;
	top: calc(398 * var(--u));
	font-size: calc(34 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
	white-space: nowrap;
}
.ia__loop {
	z-index: 0;
	top: calc(804 * var(--u));
	font-size: calc(128 * var(--u));
	color: var(--green);
}

/* --- Works：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.ia {
		overflow: visible;
		clip-path: inset(0 calc(-1 * var(--bleed)));
	}
	.ia__bg {
		left: calc(-1 * var(--bleed));
		width: calc(100% + 2 * var(--bleed));
	}
	.ia__label {
		margin-inline: calc(-72 * var(--u) - var(--bleed));
	}
	.ia__label::before {
		flex: 0 0 calc(53 * var(--u) + var(--bleed));
	}
}

/* --- Works：SP（768px以下） --- */
@media (max-width: 768px) {
	.ia {
		margin-top: 0;
		padding: 0 0 8vw;
	}
	.ia__bg {
		height: calc(100% - 25vw);
	}
	.ia__label {
		position: relative;
		left: auto;
		top: auto;
		height: auto;
		margin: 10vw 0 0;
		padding: 0;
		font-size: 4.4vw;
		gap: 1.5vw;
		background: transparent;
	}
	.ia__label span {
		padding: 0;
		background: transparent;
	}
	.ia__label::before,
	.ia__label::after {
		border-top-color: rgba(255, 255, 255, 0.5);
	}
	.ia__label::before {
		flex: 0 0 3.5vw;
	}
	.ia__label::after {
		flex: 1 1 auto;
	}
	.ia__main {
		display: block;
		height: auto;
		margin-top: 6vw;
	}
	.ia__h2,
	.ia__text {
		position: relative;
		left: auto;
		top: auto;
		width: 90%;
		margin: 0 auto;
		white-space: normal;
	}
	.ia__h2 {
		margin-top: 5vw;
		font-size: 6vw;
	}
	.ia__text {
		margin-top: 5vw;
		font-size: 4.4vw;
	}
	.ia__photo {
		position: relative;
		left: auto;
		top: auto;
		width: 90%;
		height: auto;
		aspect-ratio: 600 / 338;
		margin: 7vw auto 0;
	}
	.ia__photo--a img {
		left: -3.5%;
		top: -19.82%;
		width: 114.83%;
		height: 143.79%;
	}
	.ia__photo--b img {
		left: 0;
		top: -15.09%;
		width: 118.33%;
		height: 118.34%;
	}
	.ia__loop {
		position: relative;
		top: auto;
		margin-top: 6vw;
		font-size: 13vw;
		display: block;
	}
}

/* ==========================================================================
   Track Record
   ========================================================================== */
.tr {
	position: relative;
	margin-top: calc(77 * var(--u));
	padding: 0 calc(72 * var(--u)) calc(28.8 * var(--u));
	overflow: hidden;
}
.tr__photo {
	position: absolute;
	right: 0;
	top: calc(80 * var(--u));
	width: calc(636 * var(--u));
	height: calc(875 * var(--u));
	overflow: hidden;
	background: var(--gray);
}
.tr__photo img {
	position: absolute;
	left: 0;
	top: calc(-79 * var(--u));
	width: calc(636 * var(--u));
	height: calc(954 * var(--u));
	max-width: none;
	object-fit: cover;
}
.tr__label {
	position: relative;
	display: flex;
	align-items: center;
	margin-inline: calc(-72 * var(--u));
	font-family: var(--font-en);
	font-weight: 500;
	font-size: calc(28 * var(--u));
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}
.tr__label::before,
.tr__label::after {
	content: '';
	border-top: 1px solid var(--gray);
}
.tr__label::before {
	flex: 1 1 auto;
}
.tr__label::after {
	flex: 0 0 calc(52 * var(--u));
}
.tr__label span {
	padding: 0 calc(20 * var(--u));
	background: var(--white);
}
.tr__h2 {
	position: relative;
	margin-top: calc(139.2 * var(--u));
	font-size: calc(54 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
}
.tr__cards {
	position: relative;
	display: flex;
	gap: calc(30 * var(--u));
	margin-top: calc(59.2 * var(--u));
}
.tr__card {
	position: relative;
	flex: 1 1 0;
	height: calc(216 * var(--u));
	background: var(--green);
	border-radius: calc(24 * var(--u));
}
.tr__tag {
	position: absolute;
	left: 50%;
	top: calc(20 * var(--u));
	transform: translateX(-50%);
	padding: calc(8 * var(--u)) calc(30 * var(--u)) calc(7 * var(--u));
	background: var(--pale);
	border-radius: calc(40 * var(--u));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	line-height: 1;
	color: var(--green);
	white-space: nowrap;
}
.tr__num {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(68 * var(--u));
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: calc(6 * var(--u));
	color: var(--white);
	white-space: nowrap;
}
.tr__num b {
	font-family: var(--font-cond);
	font-weight: 700;
	font-size: calc(68 * var(--u));
	line-height: 1.6;
}
.tr__num span {
	font-weight: 700;
	font-size: calc(28 * var(--u));
	line-height: 1.6;
}
.tr__period {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(159 * var(--u));
	text-align: center;
	font-size: calc(18 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
}
.tr__pill {
	position: relative;
	margin-top: calc(60 * var(--u));
	width: calc(298 * var(--u));
	height: calc(53 * var(--u));
	display: flex;
	align-items: center;
	padding-left: calc(50 * var(--u));
	border: 1px solid var(--green);
	border-radius: calc(50 * var(--u));
	font-size: calc(33 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}
.tr__body {
	position: relative;
	margin: calc(31 * var(--u)) 0 0 calc(50 * var(--u));
	max-width: calc(632 * var(--u));
	font-size: calc(26 * var(--u));
	font-weight: 700;
	line-height: 1.6;
}
.tr__note {
	position: relative;
	margin: calc(6.2 * var(--u)) 0 0 calc(50 * var(--u));
	font-size: calc(12 * var(--u));
	font-weight: 500;
	line-height: 1.6;
}

/* --- Track Record：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.tr {
		overflow: visible;
		clip-path: inset(0 calc(-1 * var(--bleed)));
	}
	.tr__label {
		margin-inline: calc(-72 * var(--u) - var(--bleed));
	}
	.tr__label::after {
		flex: 0 0 calc(52 * var(--u) + var(--bleed));
	}
	.tr__photo {
		right: calc(-1 * var(--bleed));
		width: calc(636 * var(--u) + var(--bleed));
	}
	.tr__photo img {
		width: calc(636 * var(--u) + var(--bleed));
	}
}

/* --- Track Record：SP（768px以下） --- */
@media (max-width: 768px) {
	.tr {
		margin-top: 0;
		padding: 2vw 0 14vw;
	}
	.tr__photo {
		position: relative;
		right: auto;
		top: auto;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}
	.tr__photo img {
		position: static;
		width: 100%;
		height: 100%;
		object-position: 50% 24%;
	}
	.tr__label {
		margin: 8vw 5vw 0 0;
		font-size: 4.4vw;
	}
	.tr__label::after {
		flex: 0 0 3.5vw;
	}
	.tr__label span {
		padding-right: 1.5vw;
	}
	.tr__h2 {
		margin: 5vw 5vw 0;
		font-size: 6vw;
		white-space: normal;
	}
	.tr__cards {
		display: grid;
		gap: 4vw;
		width: 90%;
		margin: 8vw auto 0;
	}
	.tr__card {
		height: auto;
		padding: 14vw 4vw 6vw;
		border-radius: 4vw;
	}
	.tr__tag {
		top: 4vw;
		padding: 2.5vw 5vw;
		border-radius: 8vw;
		font-size: 3.6vw;
	}
	.tr__num {
		position: relative;
		top: auto;
		gap: 2vw;
	}
	.tr__num b {
		font-size: 14vw;
	}
	.tr__num span {
		font-size: 5.5vw;
	}
	.tr__period {
		position: relative;
		top: auto;
		margin-top: -2vw;
		font-size: 3.8vw;
	}
	.tr__pill {
		width: max-content;
		height: auto;
		margin: 10vw auto 0;
		padding: 2.5vw 8vw;
		border-radius: 10vw;
		font-size: 5.5vw;
	}
	.tr__body {
		width: 90%;
		max-width: none;
		margin: 6vw auto 0;
		font-size: 4.2vw;
	}
	.tr__note {
		width: 90%;
		margin: 4vw auto 0;
		font-size: 3.2vw;
	}
}

/* ==========================================================================
   Difference（“展示模型”と“工学実験模型”の比較表）
   ========================================================================== */
.rg {
	position: relative;
	display: flex;
	align-items: flex-start;
	margin-top: calc(100 * var(--u));
	padding: calc(95 * var(--u)) calc(72 * var(--u)) calc(100.4 * var(--u));
}
.rg__bg {
	position: absolute;
	left: 0;
	top: 0;
	width: calc(1296 * var(--u));
	height: 100%;
	background: var(--pale);
}
.rg__head {
	position: relative;
	flex: 0 0 calc(326 * var(--u));
}
.rg__main {
	position: relative;
	flex: 1 1 auto;
}
.rg__label {
	font-family: var(--font-en);
	font-weight: 500;
	font-size: calc(28 * var(--u));
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}
.rg__h2 {
	margin-top: calc(10.2 * var(--u));
	font-size: calc(38 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
}
.rg__table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
	font-size: calc(18 * var(--u));
	line-height: 1.8;
}
.rg__table th,
.rg__table td {
	height: calc(72 * var(--u));
	padding: 0 calc(20 * var(--u));
	text-align: left;
	vertical-align: middle;
}
.rg__table th {
	background: var(--mint);
	color: var(--deep);
	font-weight: 700;
	white-space: nowrap;
}
.rg__table td {
	background: var(--white);
	color: var(--ink);
	font-weight: 500;
}
.rg__table tbody tr + tr td {
	border-top: 1px solid var(--gray);
}
.rg__table th + th {
	border-left: 1px solid var(--white);
}
.rg__table td + td {
	border-left: 1px solid var(--gray);
}
.rg__table col:nth-child(1) {
	width: calc(170 * var(--u));
}
.rg__table col:nth-child(2) {
	width: calc(200 * var(--u));
}
.rg__note {
	margin-top: calc(14 * var(--u));
	font-size: calc(12 * var(--u));
	font-weight: 500;
	line-height: 1.8;
}

/* --- Difference：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.rg__bg {
		left: calc(-1 * var(--bleed));
		width: calc(1296 * var(--u) + var(--bleed));
	}
}

/* --- Difference：SP（768px以下） --- */
@media (max-width: 768px) {
	.rg {
		display: block;
		margin-top: 0;
		margin-bottom: 5vw;
		padding: 12vw 0;
	}
	.rg__bg {
		width: 87%;
	}
	.rg__label,
	.rg__h2 {
		margin-left: 5vw;
		white-space: normal;
	}
	.rg__label {
		font-size: 4.4vw;
	}
	.rg__h2 {
		margin-top: 2vw;
		font-size: 6vw;
	}
	.rg__h2 br {
		display: none;
	}
	.rg__table {
		display: block;
		width: 90%;
		margin: 7vw auto 0;
	}
	.rg__table th {
		white-space: normal;
	}
	.rg__table thead {
		display: none;
	}
	.rg__table tbody,
	.rg__table tr,
	.rg__table td {
		display: block;
		width: 100%;
	}
	.rg__table tr {
		background: var(--white);
	}
	.rg__table tbody tr + tr {
		border-top: 1px solid var(--gray);
	}
	.rg__table td {
		display: flex;
		align-items: center;
		gap: 4vw;
		height: auto;
		padding: 0 4vw 0 0;
		background: var(--white);
		font-size: 3.7vw;
		line-height: 1.7;
	}
	.rg__table tr td + td {
		border-top: 1px solid var(--gray);
		border-left: 0;
	}
	.rg__table tr td + td::before {
		margin-top: -1px;
		border-top: 1px solid var(--white);
	}
	.rg__table td::before {
		content: attr(data-label);
		white-space: pre-line;
		flex: none;
		align-self: stretch;
		display: flex;
		align-items: center;
		width: 38%;
		padding: 3.5vw 3vw;
		background: var(--mint);
		border-right: 1px solid var(--white);
		color: var(--deep);
		font-weight: 700;
	}
	.rg__table td:first-child {
		font-weight: 700;
		color: var(--deep);
	}
	.rg__note {
		width: 90%;
		margin: 4vw auto 0;
		font-size: 3.2vw;
	}
}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq {
	position: relative;
	width: 100%;
	margin-top: calc(100 * var(--u));
	padding: calc(100 * var(--u)) 0 calc(100 * var(--u));
}
.faq__bg {
	position: absolute;
	left: calc(144 * var(--u));
	top: 0;
	width: calc(1296 * var(--u));
	height: 100%;
	background: var(--pale);
}
.faq__inner {
	position: relative;
	display: flex;
	align-items: flex-start;
	padding: 0 calc(72 * var(--u));
}
.faq__head {
	flex: none;
	width: calc(326 * var(--u));
}
.faq__label {
	font-family: var(--font-en);
	font-weight: 500;
	font-size: calc(28 * var(--u));
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}
.faq__h2 {
	margin-top: calc(10 * var(--u));
	font-size: calc(38 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
}
.faq__list {
	flex: none;
	width: calc(970 * var(--u));
}
.faq__item {
	margin-bottom: calc(30 * var(--u));
}
.faq__item:last-child {
	margin-bottom: 0;
}
.faq__item summary {
	position: relative;
	height: calc(72 * var(--u));
	display: flex;
	align-items: center;
	padding: 0 calc(60 * var(--u)) 0 calc(82 * var(--u));
	background: var(--mint);
	border-radius: calc(60 * var(--u));
	font-size: calc(18 * var(--u));
	font-weight: 700;
	line-height: 1.8;
	color: var(--deep);
	cursor: pointer;
	list-style: none;
}
.faq__item summary::-webkit-details-marker {
	display: none;
}
.faq__item summary:focus-visible {
	outline: 2px solid var(--deep);
	outline-offset: 2px;
}
.faq__item summary::before {
	content: 'Q';
	position: absolute;
	left: calc(10 * var(--u));
	top: calc(10 * var(--u));
	width: calc(52 * var(--u));
	height: calc(52 * var(--u));
	display: grid;
	place-items: center;
	background: var(--white);
	border-radius: 50%;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: calc(24 * var(--u));
	color: var(--green);
}
.faq__item summary::after {
	content: '';
	position: absolute;
	right: calc(26 * var(--u));
	top: 50%;
	width: calc(20 * var(--u));
	height: calc(20 * var(--u));
	background: var(--deep);
	-webkit-mask: url('../img/arrow.svg') no-repeat center / contain;
	mask: url('../img/arrow.svg') no-repeat center / contain;
	transform: translateY(-50%) rotate(90deg);
	transition: transform 0.25s;
}
.faq__item[open] summary::after {
	transform: translateY(-50%) rotate(-90deg);
}
.faq__body {
	position: relative;
	margin-top: calc(20 * var(--u));
	padding: calc(12 * var(--u)) calc(60 * var(--u)) calc(40 * var(--u)) calc(82 * var(--u));
	border-bottom: 1px solid var(--gray);
	font-size: calc(16 * var(--u));
	font-weight: 500;
	line-height: 1.8;
}
.faq__body::before {
	content: 'A';
	position: absolute;
	left: calc(10 * var(--u));
	top: 0;
	width: calc(52 * var(--u));
	height: calc(52 * var(--u));
	display: grid;
	place-items: center;
	background: var(--green);
	border-radius: 50%;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: calc(24 * var(--u));
	color: var(--white);
}

/* --- FAQ：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.faq__bg {
		width: calc(1296 * var(--u) + var(--bleed));
	}
}

/* --- FAQ：SP（768px以下） --- */
@media (max-width: 768px) {
	.faq {
		margin-top: 0;
		padding: 8vw 0 12vw;
	}
	.faq__bg {
		left: 13%;
		width: 87%;
	}
	.faq__inner {
		display: block;
		padding: 0;
	}
	.faq__head {
		width: auto;
		margin-left: 5vw;
	}
	.faq__label {
		font-size: 4.4vw;
	}
	.faq__h2 {
		margin-top: 2vw;
		font-size: 6vw;
	}
	.faq__list {
		width: 90%;
		margin: 7vw 4% 0 5%;
	}
	.faq__item {
		margin-bottom: 4vw;
	}
	.faq__item summary {
		height: auto;
		min-height: 16vw;
		padding: 4vw 12vw 4vw 17vw;
		border-radius: 4vw;
		font-size: 4.1vw;
		line-height: 1.7;
	}
	.faq__item summary::before {
		left: 3vw;
		top: 3vw;
		width: 11vw;
		height: 11vw;
		font-size: 5vw;
	}
	.faq__item summary::after {
		right: 5vw;
		width: 5.2vw;
		height: 5.2vw;
	}
	.faq__body {
		margin-top: 4vw;
		padding: 0 2vw 6vw 17vw;
		font-size: 3.8vw;
	}
	.faq__body::before {
		left: 3vw;
		width: 11vw;
		height: 11vw;
		font-size: 5vw;
	}
}

/* ==========================================================================
   Contact
   ========================================================================== */
.ct {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	margin-top: calc(100 * var(--u));
	padding: calc(100 * var(--u)) calc(72 * var(--u)) calc(99.6 * var(--u));
	background: var(--green);
	overflow: hidden;
}
.ct__label {
	font-family: var(--font-en);
	font-weight: 500;
	font-size: calc(30 * var(--u));
	line-height: 1.6;
	color: var(--white);
	white-space: nowrap;
}
.ct__tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: calc(20 * var(--u));
	margin-top: calc(40 * var(--u));
}
.ct__tag {
	display: flex;
	align-items: center;
	padding: calc(16 * var(--u)) calc(30 * var(--u));
	background: var(--pale);
	border-radius: calc(40 * var(--u));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	line-height: 1;
	color: var(--deep);
	white-space: nowrap;
}
.ct__h2 {
	margin-top: calc(41 * var(--u));
	font-size: calc(48 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
	white-space: nowrap;
}
.ct__lead {
	margin-top: calc(25.2 * var(--u));
	font-size: calc(22 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
	white-space: nowrap;
}
.ct__btn {
	position: relative;
	margin-top: calc(59.8 * var(--u));
	width: calc(400 * var(--u));
	height: calc(70 * var(--u));
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--deep);
	color: var(--white);
	font-size: calc(18 * var(--u));
	font-weight: 700;
	border-radius: calc(12 * var(--u));
	transition: opacity 0.2s;
}
.ct__btn:hover {
	opacity: 0.88;
}
.ct__btn::after {
	content: '';
	position: absolute;
	right: calc(20 * var(--u));
	width: calc(18 * var(--u));
	aspect-ratio: 18 / 14.73;
	background: currentColor;
	-webkit-mask: url('../img/arrow.svg') no-repeat center / contain;
	mask: url('../img/arrow.svg') no-repeat center / contain;
}
.ct__link {
	margin-top: calc(30 * var(--u));
	font-size: calc(14 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	color: var(--white);
	white-space: nowrap;
	text-decoration: underline;
	text-underline-offset: 0.3em;
}

/* --- Contact：1600px超（左右に余白ができる画面） --- */
@media (min-width: 1601px) {
	.ct {
		box-sizing: content-box;
		margin-inline: calc(-1 * var(--bleed));
		border-inline: var(--bleed) solid var(--green);
	}
}

/* --- Contact：SP（768px以下） --- */
@media (max-width: 768px) {
	.ct {
		margin-top: 0;
		padding: 14vw 0;
	}
	.ct__label {
		font-size: 6vw;
	}
	.ct__tags {
		gap: 2.5vw;
		width: 90%;
		margin: 6vw auto 0;
	}
	.ct__tag {
		padding: 2.5vw 4.5vw;
		border-radius: 8vw;
		font-size: 3.4vw;
	}
	.ct__h2 {
		margin: 8vw 5vw 0;
		font-size: 5.6vw;
		white-space: normal;
	}
	.ct__lead {
		margin: 5vw 5vw 0;
		font-size: 3.9vw;
		line-height: 1.9;
		text-align: left;
		text-wrap: pretty;
		white-space: normal;
	}
	.ct__btn {
		width: 90%;
		height: 15vw;
		margin: 8vw auto 0;
		font-size: 4.2vw;
		border-radius: 2.5vw;
	}
	.ct__btn::after {
		width: 4.5vw;
		right: 6%;
	}
	.ct__link {
		display: block;
		margin-top: 7vw;
		font-size: 3.7vw;
	}
}

/* ==========================================================================
   References
   ========================================================================== */
.rf {
	position: relative;
	display: flex;
	align-items: flex-start;
	margin-top: calc(100 * var(--u));
	padding: 0 calc(72 * var(--u)) 0 calc(73 * var(--u));
}
.rf__head {
	flex: 0 0 calc(325 * var(--u));
}
.rf__label {
	margin-top: calc(31 * var(--u));
	font-family: var(--font-en);
	font-weight: 500;
	font-size: calc(28 * var(--u));
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}
.rf__h2 {
	margin-top: calc(10.2 * var(--u));
	font-size: calc(38 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
}
.rf__box {
	flex: 1 1 auto;
	min-height: calc(177 * var(--u));
	padding: calc(30 * var(--u));
	background: var(--white);
	border: 1px solid var(--green);
	border-radius: calc(24 * var(--u));
}
.rf__list {
	font-size: calc(14 * var(--u));
	font-weight: 500;
	line-height: 1.6;
}
.rf__list li {
	list-style: disc;
	margin-left: calc(21 * var(--u));
}
.rf__list a {
	color: var(--green);
}
.rf__note {
	margin: calc(8.4 * var(--u)) 0 0 calc(7 * var(--u));
	font-size: calc(12 * var(--u));
	font-weight: 500;
	line-height: 1.6;
}

/* --- References：SP（768px以下） --- */
@media (max-width: 768px) {
	.rf {
		display: block;
		margin-top: 0;
		padding: 12vw 0;
	}
	.rf__label,
	.rf__h2 {
		margin-left: 5vw;
		white-space: normal;
	}
	.rf__label {
		margin-top: 0;
		font-size: 4.4vw;
	}
	.rf__h2 {
		margin-top: 2vw;
		font-size: 5.6vw;
	}
	.rf__box {
		width: 90%;
		min-height: 0;
		margin: 6vw auto 0;
		padding: 5vw;
		border-radius: 3vw;
	}
	.rf__list {
		font-size: 3vw;
		line-height: 1.8;
	}
	.rf__list li {
		margin-left: 4vw;
		margin-bottom: 2vw;
	}
	.rf__note {
		margin: 3vw 0 0;
		font-size: 3.1vw;
	}
}

/* ==========================================================================
   footer
   ========================================================================== */
.ft {
	position: relative;
	margin-top: calc(100 * var(--u));
	padding: calc(100 * var(--u)) calc(144 * var(--u)) calc(99.8 * var(--u));
}
.ft__bg {
	position: absolute;
	left: calc(31 * var(--u));
	top: 0;
	width: calc(1380 * var(--u));
	height: calc(500 * var(--u));
	background: var(--mint);
	border-radius: calc(24 * var(--u));
}
.ft__inner {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}
.ft__logo {
	width: calc(720 * var(--u));
}
.ft__logo img {
	width: 100%;
	height: auto;
}
.ft__addr {
	font-size: calc(13 * var(--u));
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
}
.ft__addr--1 {
	margin-top: calc(88 * var(--u));
}
.ft__addr--2 {
	margin-top: calc(11.2 * var(--u));
}
.ft__btn {
	position: relative;
	flex: none;
	margin-top: calc(141 * var(--u));
	width: calc(280 * var(--u));
	height: calc(70 * var(--u));
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--white);
	color: var(--deep);
	font-size: calc(18 * var(--u));
	font-weight: 700;
	border-radius: calc(12 * var(--u));
	transition: opacity 0.2s;
}
.ft__btn:hover {
	opacity: 0.8;
}
.ft__btn::after {
	content: '';
	position: absolute;
	right: calc(20 * var(--u));
	width: calc(18 * var(--u));
	aspect-ratio: 18 / 14.73;
	background: currentColor;
	-webkit-mask: url('../img/arrow.svg') no-repeat center / contain;
	mask: url('../img/arrow.svg') no-repeat center / contain;
}
.ft__copy {
	position: relative;
	text-align: right;
	margin-top: calc(54 * var(--u));
	font-family: var(--font-en);
	font-weight: 500;
	font-size: calc(22 * var(--u));
	line-height: 1.6;
	color: var(--green);
	white-space: nowrap;
}

/* --- footer：SP（768px以下） --- */
@media (max-width: 768px) {
	.ft {
		margin-top: 0;
		padding: 0 0 8vw;
	}
	.ft__bg {
		left: 2.5%;
		width: 95%;
		height: 100%;
		border-radius: 4vw;
	}
	.ft__inner {
		display: block;
	}
	.ft__logo {
		width: 70%;
		margin: 0 auto;
		padding-top: 12vw;
	}
	.ft__addr {
		width: 84%;
		margin: 0 auto;
		font-size: 3.4vw;
		line-height: 1.8;
		white-space: normal;
	}
	.ft__addr--1 {
		margin-top: 8vw;
	}
	.ft__addr--2 {
		margin-top: 2vw;
	}
	.ft__btn {
		width: 84%;
		height: 15vw;
		margin: 8vw auto 0;
		font-size: 4.2vw;
		border-radius: 2.5vw;
	}
	.ft__btn::after {
		width: 4.5vw;
		right: 6%;
	}
	.ft__copy {
		display: block;
		width: 90%;
		margin: 8vw auto 0;
		text-align: center;
		font-size: 3.2vw;
		white-space: normal;
	}
}

/* ==========================================================================
   その他（アニメーション・動きの抑制）
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	*:not(.loop__track) {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
	}
	.loop__track {
		animation: none !important;
	}
}
