/* ==========================================================================
   Root
   ========================================================================== */

:root {
	--content-width: 1200px;
	--gutter: clamp(25px, 4vw, 48px);
	--site-header-height: 100px;
	--color-text: #111;
	--color-background: #fff;
	--color-navy: #0c203b;
	--color-blue: #00448d;
	--color-link-blue: #056db9;
	--color-sky: #edf4fa;
	--color-sky-dark: #bfe4f0;
	--color-accent: #5acbc1;
	--font-base: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	--font-en: "Barlow", "Arial", sans-serif;
}

/* ==========================================================================
   Base
   ========================================================================== */

html {
	box-sizing: border-box;
	scroll-behavior: smooth;
	scroll-padding-top: var(--site-header-height);
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body {
	margin: 0;
	padding-top: var(--site-header-height);
	color: var(--color-text);
	font-family: var(--font-base);
	font-size: clamp(14px, calc(12px + 0.3333vw), 16px);
	line-height: 1.8;
	background: var(--color-background);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

h2,
h3 {
	font-feature-settings: "palt";
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
select,
textarea {
	font: inherit;
}

button {
	color: inherit;
}

/* ==========================================================================
   Layout
   ========================================================================== */

.l-site {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.l-main {
	--cta-before-space: min(12.5vw, 150px);

	flex: 1 0 auto;
}

.l-container {
	width: min(calc(100% - var(--gutter) * 2), var(--content-width));
	margin-inline: auto;
}

/* ==========================================================================
   Common: Accessibility
   ========================================================================== */

.c-skip-link {
	position: absolute;
	z-index: 1000;
	top: 0;
	left: 0;
	padding: 8px 12px;
	color: #fff;
	background: #000;
	transform: translateY(-120%);
}

.c-skip-link:focus {
	transform: translateY(0);
}

/* ==========================================================================
   Common: Buttons
   ========================================================================== */

.c-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	text-align: center;
	font-weight: 700;
	line-height: 1;
}

.c-button--contact {
	min-width: 180px;
	min-height: 44px;
	padding: 0 28px;
	border-radius: 999px;
	color: #fff;
	background: var(--color-accent);
	transition: background-color 0.45s ease;
}

.c-button--contact:hover,
.c-button--contact:focus-visible {
	background-color: #1d1d1d;
}

/* ==========================================================================
   Common: Section Heading
   ========================================================================== */

.c-section-heading {
	display: flex;
	align-items: center;
	color: var(--color-navy);
}

.c-section-heading__title {
	margin: 0;
	font-size: var(--c-section-heading-title-size, 60px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}

.c-section-heading__line {
	flex: 0 0 var(--c-section-heading-line-width, 80px);
	width: var(--c-section-heading-line-width, 80px);
	height: 1px;
	background: currentColor;
	transform: rotate(-50deg);
	transform-origin: center;
}

.c-section-heading__label {
	color: var(--color-link-blue);
	font-family: var(--font-en);
	font-size: var(--c-section-heading-label-size, 30px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
	white-space: nowrap;
}

/* ==========================================================================
   Common: Lower Section Heading
   ========================================================================== */

.c-lower-section-heading {
	display: flex;
	align-items: center;
	gap: var(--c-lower-section-heading-gap, min(1.5vw, 18px));
}

.c-lower-section-heading__title {
	margin: 0;
	color: var(--c-lower-section-heading-title-color, #1d1d1d);
	font-size: var(--c-lower-section-heading-title-size, min(3.3333vw, 40px));
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}

.c-lower-section-heading__label {
	margin: 0;
	color: var(--c-lower-section-heading-label-color, var(--color-link-blue));
	font-family: var(--font-en);
	font-size: var(--c-lower-section-heading-label-size, min(1.3333vw, 16px));
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.c-lower-section-heading {
		gap: var(--c-lower-section-heading-gap-sp, 12px);
	}

	.c-lower-section-heading__title {
		font-size: var(--c-lower-section-heading-title-size-sp, 23px);
	}

	.c-lower-section-heading__label {
		font-size: var(--c-lower-section-heading-label-size-sp, 10px);
	}
}

.c-section-text {
	margin: 0;
	color: #1d1d1d;
	font-size: var(--c-section-text-size, clamp(14px, 1.3333vw, 16px));
	font-weight: 400;
	line-height: var(--c-section-text-line-height, 1.8);
	letter-spacing: 0;
}

.c-more-link {
	display: inline-flex;
	align-items: center;
	gap: var(--c-more-link-gap, min(0.3333vw, 4px));
	color: var(--color-link-blue);
	font-size: var(--c-more-link-font-size, clamp(13px, 1.3333vw, 16px));
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
	transition: color 0.45s ease;
}

.c-more-link__icon {
	display: grid;
	place-items: center;
	width: var(--c-more-link-icon-size, clamp(34px, 3.3333vw, 40px));
	height: var(--c-more-link-icon-size, clamp(34px, 3.3333vw, 40px));
	border-radius: 50%;
	color: #fff;
	background: var(--color-link-blue);
	font-family: var(--font-en);
	font-size: var(--c-more-link-icon-font-size, clamp(14px, 1.3333vw, 16px));
	font-weight: 700;
	line-height: 1;
	padding-bottom: 2px;
	transition:
		transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
		color 0.45s ease,
		background-color 0.45s ease;
	will-change: transform;
}

.c-more-link:hover,
.c-more-link:focus-visible {
	color: var(--color-accent);
}

.c-more-link:hover .c-more-link__icon,
.c-more-link:focus-visible .c-more-link__icon {
	color: #fff;
	background-color: #1d1d1d;
	transform: translateX(6px);
}

.c-more-link--reverse:hover .c-more-link__icon,
.c-more-link--reverse:focus-visible .c-more-link__icon {
	transform: translateX(-6px);
}

@media (prefers-reduced-motion: reduce) {
	.c-more-link__icon {
		transition:
			color 0.2s ease,
			background-color 0.2s ease;
	}

	.c-more-link:hover .c-more-link__icon,
	.c-more-link:focus-visible .c-more-link__icon,
	.c-more-link--reverse:hover .c-more-link__icon,
	.c-more-link--reverse:focus-visible .c-more-link__icon {
		transform: none;
	}
}

/* ==========================================================================
   Common: Lower KV
   ========================================================================== */

.c-lower-kv {
	--lower-kv-visual-left: min(4.1667vw, 50px);
	--lower-kv-visual-height: min(33.3333vw, 400px);
	--lower-kv-title-height: min(11.6667vw, 140px);
	--lower-kv-title-overflow: min(0.8333vw, 10px);
	--lower-kv-title-padding-left: min(4.1667vw, 50px);
	--lower-kv-title-padding-right: var(--lower-kv-title-padding-left);
	--lower-kv-title-radius: 10px;
	--lower-kv-copy-top: min(3vw, 36px);
	--lower-kv-copy-right: min(13.4167vw, 161px);
	--lower-kv-copy-width: min(8.3333vw, 100px);
	--lower-kv-heading-title-size: min(5vw, 60px);
	--lower-kv-heading-label-size: min(2.5vw, 30px);
	--lower-kv-heading-line-width: min(6.6667vw, 80px);

	position: relative;
	height: max(
		calc(var(--lower-kv-visual-height) + var(--lower-kv-title-overflow)),
		calc(var(--lower-kv-copy-top) + (var(--lower-kv-copy-width) * 3.837))
	);
}

.c-lower-kv__visual {
	position: relative;
	height: var(--lower-kv-visual-height);
	margin-left: var(--lower-kv-visual-left);
}

.c-lower-kv__image {
	position: relative;
	height: 100%;
	overflow: hidden;
}

.c-lower-kv__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.c-lower-kv__copy {
	position: absolute;
	z-index: 1;
	top: var(--lower-kv-copy-top);
	right: var(--lower-kv-copy-right);
	display: block;
	width: var(--lower-kv-copy-width);
	height: auto;
}

.c-lower-kv__heading-panel {
	position: absolute;
	top: calc(var(--lower-kv-visual-height) - var(--lower-kv-title-height) + var(--lower-kv-title-overflow));
	left: 0;
	display: flex;
	align-items: center;
	width: fit-content;
	height: var(--lower-kv-title-height);
	padding: 0 var(--lower-kv-title-padding-right) 0 var(--lower-kv-title-padding-left);
	border-radius: 0 var(--lower-kv-title-radius) 0 0;
	background: #fff;
}

.c-lower-kv__heading {
	--c-section-heading-title-size: var(--lower-kv-heading-title-size);
	--c-section-heading-label-size: var(--lower-kv-heading-label-size);
	--c-section-heading-line-width: var(--lower-kv-heading-line-width);
}

@media (max-width: 600px) {
	.c-lower-kv {
		--lower-kv-visual-left: 0px;
		--lower-kv-visual-height: 200px;
		--lower-kv-title-height: 52px;
		--lower-kv-title-overflow: 0px;
		--lower-kv-title-padding-left: 14px;
		--lower-kv-title-padding-right: 14px;
		--lower-kv-copy-top: 20px;
		--lower-kv-copy-right: 20px;
		--lower-kv-copy-width: 64px;
		--lower-kv-heading-title-size: 26px;
		--lower-kv-heading-label-size: 13px;
		--lower-kv-heading-line-width: 38px;
	}

	.c-lower-kv__image img {
		position: absolute;
		top: 0;
		left: 50%;
		width: auto;
		max-width: none;
		height: 100%;
		transform: translateX(-50%);
	}
}

/* ==========================================================================
   Common: Simple Lower KV
   ========================================================================== */

.c-simple-kv {
	--simple-kv-height: min(17.5vw, 210px);
	--simple-kv-offset-top: 20px;
	--simple-kv-panel-top: min(4.1667vw, 50px);
	--simple-kv-panel-height: min(13.3333vw, 160px);
	--simple-kv-panel-padding-left: min(5.8333vw, 70px);
	--simple-kv-panel-padding-right: min(5vw, 60px);
	--simple-kv-panel-radius: 10px;
	--simple-kv-heading-title-size: min(5vw, 60px);
	--simple-kv-heading-label-size: min(2.5vw, 30px);
	--simple-kv-heading-line-width: min(7.1667vw, 86px);
	--simple-kv-illust-top: min(5.8333vw, 70px);
	--simple-kv-illust-right: min(10.0833vw, 121px);
	--simple-kv-illust-width: min(11.4167vw, 137px);

	position: relative;
	height: var(--simple-kv-height);
	margin-top: var(--simple-kv-offset-top);
	background: #f7f7f7;
}

.c-simple-kv__heading-panel {
	position: absolute;
	top: var(--simple-kv-panel-top);
	left: 0;
	display: flex;
	align-items: center;
	width: fit-content;
	height: var(--simple-kv-panel-height);
	padding-left: var(--simple-kv-panel-padding-left);
	padding-right: var(--simple-kv-panel-padding-right);
	border-radius: 0 var(--simple-kv-panel-radius) 0 0;
	background: #fff;
}

.c-simple-kv__heading {
	--c-section-heading-title-size: var(--simple-kv-heading-title-size);
	--c-section-heading-label-size: var(--simple-kv-heading-label-size);
	--c-section-heading-line-width: var(--simple-kv-heading-line-width);
}

.c-simple-kv__illust {
	position: absolute;
	top: var(--simple-kv-illust-top);
	right: var(--simple-kv-illust-right);
	display: block;
	width: var(--simple-kv-illust-width);
	height: auto;
}

@media (max-width: 1000px) {
	.c-simple-kv {
		--simple-kv-offset-top: 0px;
	}
}

@media (max-width: 600px) {
	.c-simple-kv {
		--simple-kv-height: 80px;
		--simple-kv-panel-top: 20px;
		--simple-kv-panel-height: 60px;
		--simple-kv-panel-padding-left: 20px;
		--simple-kv-panel-padding-right: 20px;
		--simple-kv-heading-title-size: 26px;
		--simple-kv-heading-label-size: 13px;
		--simple-kv-heading-line-width: 38px;
		--simple-kv-illust-top: 14px;
		--simple-kv-illust-right: 25px;
		--simple-kv-illust-width: 67px;
	}
}

/* ==========================================================================
   Common: Lower Intro
   ========================================================================== */

.c-lower-intro {
	--lower-intro-top: min(10.8333vw, 130px);
	--lower-intro-content-width: 400px;
	--lower-intro-gap: clamp(40px, calc((100vw - 1410px) * 0.4294 + 40px), 259px);
	--lower-intro-right-space: clamp(25px, calc((100vw - 1410px) * 0.5706 + 25px), 316px);
	--lower-intro-image-width: min(930px, calc(100vw - var(--lower-intro-content-width) - var(--lower-intro-gap) - var(--lower-intro-right-space)));
	--lower-intro-image-height: 580px;
	--lower-intro-title-size: clamp(18px, calc(12px + 1vw), 24px);
	--lower-intro-title-line-height: clamp(25.2px, calc(12px + 2.2vw), 38.4px);
	--lower-intro-text-size: clamp(14px, calc(12px + 0.3333vw), 16px);
	--lower-intro-text-line-height: clamp(22.4px, calc(16px + 1.0667vw), 28.8px);

	display: flex;
	align-items: center;
	gap: var(--lower-intro-gap);
	min-height: var(--lower-intro-image-height);
	margin-top: var(--lower-intro-top);
	padding-right: var(--lower-intro-right-space);
}

.c-lower-intro__image {
	width: var(--lower-intro-image-width);
	height: var(--lower-intro-image-height);
	overflow: hidden;
}

.c-lower-intro__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.c-lower-intro__content {
	flex: 0 0 var(--lower-intro-content-width);
	width: var(--lower-intro-content-width);
	min-width: 0;
}

.c-lower-intro__title {
	margin: 0;
	color: #1d1d1d;
	font-size: var(--lower-intro-title-size);
	font-weight: 700;
	line-height: var(--lower-intro-title-line-height);
	letter-spacing: 0;
}

.c-lower-intro__text {
	margin: 18px 0 0;
	color: #1d1d1d;
	font-size: var(--lower-intro-text-size);
	font-weight: 500;
	line-height: var(--lower-intro-text-line-height);
	letter-spacing: 0;
}

@media (max-width: 1200px) {
	.c-lower-intro {
		--lower-intro-image-height: min(48.3333vw, 580px);
		--lower-intro-content-width: min(33.3333vw, 400px);
	}
}

@media (max-width: 600px) {
	.c-lower-intro {
		--lower-intro-top: min(1.1733vw, 14px);
		--lower-intro-image-width: min(77.3333vw, 634px);
		--lower-intro-image-height: min(48.2667vw, 396px);
		--lower-intro-title-size: 19px;
		--lower-intro-title-line-height: 1.4;
		--lower-intro-text-size: 14px;
		--lower-intro-text-line-height: 1.8;

		display: block;
		min-height: 0;
		padding-right: 0;
	}

	.c-lower-intro__content {
		flex: none;
		width: calc(100% - 40px);
		max-width: 500px;
		margin: min(10.6667vw, 40px) auto 0;
	}

	.c-lower-intro__text {
		margin-top: 16px;
	}
}

/* ==========================================================================
   Common: Lower Problems
   ========================================================================== */

.c-lower-problems {
	--lower-problems-top: min(18.8333vw, 226px);
	--lower-problems-inner-width: 1200px;
	--lower-problems-title-offset: min(1.0667vw, 4px);
	--lower-problems-title-size: min(3.3333vw, 40px);
	--lower-problems-list-width: 1067px;
	--lower-problems-column-gap: 27px;
	--lower-problems-row-gap: 21.6px;
	--lower-problems-check-size: 28px;
	--lower-problems-check-gap: 16px;
	--lower-problems-item-size: min(1.6667vw, 20px);
	--lower-problems-illust-width: 158px;
	--lower-problems-illust-height: 229px;
	--lower-problems-illust-top: 12px;

	margin-top: var(--lower-problems-top);
}

.c-lower-problems__inner {
	position: relative;
	width: var(--lower-problems-inner-width);
	min-height: calc(var(--lower-problems-illust-height) + var(--lower-problems-illust-top));
	margin-inline: auto;
}

.c-lower-problems__title {
	margin: 0 0 0 var(--lower-problems-title-offset);
	color: #1d1d1d;
	font-size: var(--lower-problems-title-size);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

.c-lower-problems__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--lower-problems-column-gap);
	row-gap: var(--lower-problems-row-gap);
	width: min(100%, var(--lower-problems-list-width));
	margin: min(4.1667vw, 50px) 0 0;
	padding: 0;
	list-style: none;
}

.c-lower-problems__item {
	display: grid;
	grid-template-columns: var(--lower-problems-check-size) minmax(0, 1fr);
	align-items: start;
	column-gap: var(--lower-problems-check-gap);
	min-width: 0;
	color: var(--color-link-blue);
	font-size: var(--lower-problems-item-size);
	font-weight: 500;
	line-height: 1.62;
	letter-spacing: 0;
}

.c-lower-problems__check {
	display: block;
	width: var(--lower-problems-check-size);
	height: var(--lower-problems-check-size);
}

.c-lower-problems__item span {
	min-width: 0;
}

.c-lower-problems__illust {
	position: absolute;
	top: var(--lower-problems-illust-top);
	right: 0;
	display: block;
	width: var(--lower-problems-illust-width);
	height: auto;
	pointer-events: none;
}

@media (max-width: 1200px) {
	.c-lower-problems {
		--lower-problems-side-gutter: min(4.1667vw, 50px);
		--lower-problems-list-width: calc(100% - var(--lower-problems-illust-width) - 30px);
		--lower-problems-column-gap: min(2.25vw, 27px);
		--lower-problems-row-gap: min(1.8vw, 21.6px);
		--lower-problems-check-size: clamp(24px, 2.3333vw, 28px);
		--lower-problems-check-gap: min(1.3333vw, 16px);
		--lower-problems-item-size: clamp(16px, 1.6667vw, 20px);
		--lower-problems-illust-width: clamp(84px, 13.1667vw, 158px);
		--lower-problems-illust-height: clamp(122px, 19.0833vw, 229px);
	}

	.c-lower-problems__inner {
		width: min(calc(100% - (var(--lower-problems-side-gutter) * 2)), var(--lower-problems-inner-width));
	}
}

@media (max-width: 600px) {
		.c-lower-problems {
			--lower-problems-top: 70px;
			--lower-problems-title-offset: min(0.8vw, 3px);
			--lower-problems-title-size: 23px;
			--lower-problems-row-gap: 15px;
			--lower-problems-check-size: 24px;
		--lower-problems-check-gap: 13px;
		--lower-problems-item-size: 16px;
		--lower-problems-illust-width: 84px;
		--lower-problems-illust-height: 122px;
		--lower-problems-illust-overlap: 55px;
	}

	.c-lower-problems__inner {
		width: calc(100% - 40px);
		max-width: 500px;
		min-height: 0;
		padding-bottom: calc(var(--lower-problems-illust-height) - var(--lower-problems-illust-overlap));
	}

	.c-lower-problems__list {
		grid-template-columns: 1fr;
		width: 100%;
		margin-top: 24px;
	}

	.c-lower-problems__item {
		line-height: 1.4;
	}

	.c-lower-problems__item:nth-child(1) {
		order: 1;
	}

	.c-lower-problems__item:nth-child(2) {
		order: 5;
	}

	.c-lower-problems__item:nth-child(3) {
		order: 2;
	}

	.c-lower-problems__item:nth-child(4) {
		order: 6;
	}

	.c-lower-problems__item:nth-child(5) {
		order: 3;
	}

	.c-lower-problems__item:nth-child(6) {
		order: 7;
	}

	.c-lower-problems__item:nth-child(7) {
		order: 4;
	}

	.c-lower-problems__item:nth-child(8) {
		order: 8;
	}

	.c-lower-problems__item:nth-child(6) span {
		max-width: calc(100% - var(--lower-problems-illust-width) - 10px);
	}

	.c-lower-problems__item:nth-child(8) span {
		max-width: calc(100% - var(--lower-problems-illust-width) - 10px);
	}

	.c-lower-problems__illust {
		top: auto;
		bottom: 0;
	}
}

/* ==========================================================================
   Common: Lower Service
   ========================================================================== */

.c-lower-service {
	--lower-service-top: min(11.0833vw, 133px);
	--lower-service-inner-width: 1200px;
	--lower-service-side-gutter: 0px;
	--lower-service-padding-top: min(12.5vw, 150px);
	--lower-service-padding-bottom: min(12.5vw, 150px);
	--lower-service-title-size: min(3.3333vw, 40px);
	--lower-service-label-size: min(1.3333vw, 16px);
	--c-lower-section-heading-title-size: var(--lower-service-title-size);
	--c-lower-section-heading-label-size: var(--lower-service-label-size);
	--c-lower-section-heading-title-color: #fff;
	--c-lower-section-heading-label-color: #ecf5f8;
	--lower-service-card-top: min(4.1667vw, 50px);
	--lower-service-card-gap: min(5vw, 60px);
	--lower-service-card-width: 360px;
	--lower-service-card-image-height: 240px;
	--lower-service-card-body-height: 230px;
	--lower-service-card-body-padding: min(2.5vw, 30px);
	--lower-service-card-title-gap: min(1.6667vw, 20px);
	--lower-service-card-title-size: min(1.8333vw, 22px);
	--lower-service-card-number-size: min(1.3333vw, 16px);
	--lower-service-card-number-offset-top: min(0.5833vw, 7px);
	--lower-service-card-text-size: clamp(14px, calc(12px + 0.3333vw), 16px);
	--lower-service-card-heading-line-gap: min(1vw, 12px);
	--lower-service-card-line-text-gap: min(1.25vw, 15px);
	--lower-service-link-top: min(5vw, 60px);
	--lower-service-link-gap-x: min(2vw, 24px);
	--lower-service-link-gap-y: min(1.6667vw, 20px);
	--lower-service-link-height: min(5.6667vw, 68px);
	--lower-service-link-padding-left: min(1.3333vw, 16px);
	--lower-service-link-padding-right: min(0.8333vw, 10px);
	--lower-service-link-font-size: clamp(13px, 1.25vw, 15px);
	--lower-service-link-icon-size: min(3.3333vw, 40px);
	--lower-service-color-cyan: #79d3ef;
	--lower-service-color-orange: #ffa700;
	--lower-service-color-purple: #af79ef;

	margin-top: var(--lower-service-top);
	padding: var(--lower-service-padding-top) 0 var(--lower-service-padding-bottom);
	background: var(--color-link-blue);
}

.c-lower-service__inner {
	width: min(calc(100% - (var(--lower-service-side-gutter) * 2)), var(--lower-service-inner-width));
	margin-inline: auto;
}

.c-lower-service__cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, var(--lower-service-card-width)));
	gap: var(--lower-service-card-gap);
	margin-top: var(--lower-service-card-top);
}

.c-lower-service-card {
	min-width: 0;
	background: #fff;
}

.c-lower-service-card__image {
	width: 100%;
	height: var(--lower-service-card-image-height);
	overflow: hidden;
}

.c-lower-service-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.c-lower-service-card__body {
	min-height: var(--lower-service-card-body-height);
	padding: var(--lower-service-card-body-padding);
}

.c-lower-service-card__heading {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: var(--lower-service-card-title-gap);
	align-items: start;
	padding-bottom: var(--lower-service-card-heading-line-gap);
	border-bottom: 1px solid currentColor;
}

.c-lower-service-card--cyan {
	color: var(--lower-service-color-cyan);
}

.c-lower-service-card--orange {
	color: var(--lower-service-color-orange);
}

.c-lower-service-card--purple {
	color: var(--lower-service-color-purple);
}

.c-lower-service-card__number {
	align-self: start;
	flex: 0 0 auto;
	font-family: "Inter", var(--font-en);
	font-size: var(--lower-service-card-number-size);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	transform: translateY(var(--lower-service-card-number-offset-top));
}

.c-lower-service-card__title {
	min-width: 0;
	margin: 0;
	color: #1d1d1d;
	font-size: var(--lower-service-card-title-size);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0;
}

.c-lower-service-card:nth-child(2) .c-lower-service-card__title {
	line-height: 1.3;
}

.c-lower-service-card__text {
	margin: var(--lower-service-card-line-text-gap) 0 0;
	color: #1d1d1d;
	font-size: var(--lower-service-card-text-size);
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0;
}

.c-lower-service__links {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: var(--lower-service-link-gap-x);
	row-gap: var(--lower-service-link-gap-y);
	margin-top: var(--lower-service-link-top);
}

.c-lower-service-link {
	--lower-service-link-color: var(--lower-service-color-cyan);

	display: flex;
	align-items: center;
	justify-content: space-between;
	min-width: 0;
	min-height: var(--lower-service-link-height);
	padding: 12px var(--lower-service-link-padding-right) 12px var(--lower-service-link-padding-left);
	border: 1px solid var(--lower-service-link-color);
	background: #fff;
	color: var(--lower-service-link-color);
	font-size: var(--lower-service-link-font-size);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0;
	transition:
		border-color 0.45s ease,
		background-color 0.45s ease;
}

.c-lower-service-link--orange {
	--lower-service-link-color: var(--lower-service-color-orange);
}

.c-lower-service-link--purple {
	--lower-service-link-color: var(--lower-service-color-purple);
}

.c-lower-service-link__text {
	min-width: 0;
	color: #1d1d1d;
	transition: color 0.45s ease;
}

.c-lower-service-link__icon {
	display: grid;
	flex: 0 0 var(--lower-service-link-icon-size);
	place-items: center;
	width: var(--lower-service-link-icon-size);
	height: var(--lower-service-link-icon-size);
	margin-left: 10px;
	border-radius: 50%;
	background: var(--lower-service-link-color);
	color: #fff;
	font-family: var(--font-en);
	font-size: var(--lower-service-link-font-size);
	font-weight: 700;
	line-height: 1;
	padding-bottom: 2px;
	transition:
		color 0.45s ease,
		background-color 0.45s ease;
}

.c-lower-service-link:hover,
.c-lower-service-link:focus-visible {
	border-color: #1d1d1d;
	background-color: #1d1d1d;
}

.c-lower-service-link:hover .c-lower-service-link__text,
.c-lower-service-link:focus-visible .c-lower-service-link__text {
	color: #fff;
}

.c-lower-service-link:hover .c-lower-service-link__icon,
.c-lower-service-link:focus-visible .c-lower-service-link__icon {
	color: #1d1d1d;
	background-color: #fff;
}

@media (max-width: 1200px) {
	.c-lower-service {
		--lower-service-side-gutter: min(4.1667vw, 50px);
		--lower-service-card-width: calc((100% - (var(--lower-service-card-gap) * 2)) / 3);
		--lower-service-card-image-height: auto;
		--lower-service-card-body-height: min(19.1667vw, 230px);
	}

	.c-lower-service-card__image {
		aspect-ratio: 3 / 2;
	}

	.c-lower-service-card__body {
		height: auto;
		min-height: var(--lower-service-card-body-height);
	}
}

@media (max-width: 600px) {
	.c-lower-service {
		--lower-service-top: 0px;
		--lower-service-side-gutter: 20px;
		--lower-service-padding-top: 70px;
		--lower-service-padding-bottom: 70px;
		--lower-service-card-top: 24px;
		--lower-service-card-gap: 30px;
		--lower-service-card-width: 100%;
		--lower-service-card-image-height: auto;
		--lower-service-card-body-height: 0px;
		--lower-service-card-body-padding: 20px;
		--lower-service-card-title-gap: 16px;
		--lower-service-card-title-size: 20px;
		--lower-service-card-number-size: 15px;
		--lower-service-card-number-offset-top: 6px;
		--lower-service-card-text-size: 14px;
		--lower-service-card-heading-line-gap: 8px;
		--lower-service-card-line-text-gap: 12px;
		--lower-service-link-top: 30px;
		--lower-service-link-gap-x: 15px;
		--lower-service-link-gap-y: 16px;
		--lower-service-link-height: 60px;
		--lower-service-link-padding-left: 10px;
		--lower-service-link-padding-right: 4px;
		--lower-service-link-font-size: 13px;
		--lower-service-link-icon-size: 28px;
	}

	.c-lower-service__cards {
		grid-template-columns: 1fr;
	}

	.c-lower-service-card__image {
		aspect-ratio: 335 / 223;
	}

	.c-lower-service-card__body {
		min-height: 0;
	}

	.c-lower-service-card__text {
		line-height: 1.6;
	}

	.c-lower-service__links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.c-lower-service-link {
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.c-lower-service-link__icon {
		margin-left: 2px;
	}
}

/* ==========================================================================
   Common: Lower Reason
   ========================================================================== */

.c-lower-reason {
	--lower-reason-inner-width: 1200px;
	--lower-reason-side-gutter: 0px;
	--lower-reason-padding-top: min(12.5vw, 150px);
	--lower-reason-padding-bottom: min(11.6667vw, 140px);
	--lower-reason-title-size: min(3.3333vw, 40px);
	--lower-reason-label-size: min(1.3333vw, 16px);
	--c-lower-section-heading-title-size: var(--lower-reason-title-size);
	--c-lower-section-heading-label-size: var(--lower-reason-label-size);
	--lower-reason-list-top: min(2.5vw, 30px);
	--lower-reason-column-gap: min(5vw, 60px);
	--lower-reason-row-gap: min(2.5vw, 30px);
	--lower-reason-item-width: 360px;
	--lower-reason-image-width: 360px;
	--lower-reason-image-height: 210px;
	--lower-reason-item-title-size: min(1.8333vw, 22px);
	--lower-reason-item-title-line-height: 1.4;
	--lower-reason-item-text-top: min(0.6667vw, 8px);
	--lower-reason-item-text-size: clamp(14px, calc(12px + 0.3333vw), 16px);
	--lower-reason-item-text-line-height: 1.8;

	padding: var(--lower-reason-padding-top) 0 var(--lower-reason-padding-bottom);
	background: #fff;
}

.c-lower-reason__inner {
	width: min(calc(100% - (var(--lower-reason-side-gutter) * 2)), var(--lower-reason-inner-width));
	margin-inline: auto;
}

.c-lower-reason__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, var(--lower-reason-item-width)));
	column-gap: var(--lower-reason-column-gap);
	row-gap: var(--lower-reason-row-gap);
	margin-top: var(--lower-reason-list-top);
}

.c-lower-reason-item {
	min-width: 0;
	min-height: var(--lower-reason-item-min-height, 0);
	text-align: center;
}

.c-lower-reason-item__image {
	display: block;
	width: var(--lower-reason-image-width);
	height: var(--lower-reason-image-height);
	object-fit: contain;
}

.c-lower-reason-item__title {
	margin: 0;
	color: #1d1d1d;
	font-size: var(--lower-reason-item-title-size);
	font-feature-settings: "palt";
	font-weight: 700;
	line-height: var(--lower-reason-item-title-line-height);
	letter-spacing: 0;
}

.c-lower-reason-item__text {
	margin: var(--lower-reason-item-text-top) 0 0;
	color: #1d1d1d;
	font-size: var(--lower-reason-item-text-size);
	font-weight: 400;
	line-height: var(--lower-reason-item-text-line-height);
	letter-spacing: 0;
	text-align: left;
}

@media (max-width: 1200px) {
	.c-lower-reason {
		--lower-reason-side-gutter: min(4.1667vw, 50px);
		--lower-reason-item-width: calc((100% - (var(--lower-reason-column-gap) * 2)) / 3);
		--lower-reason-image-width: 100%;
		--lower-reason-image-height: auto;
	}
}

@media (max-width: 600px) {
	.c-lower-reason {
		--lower-reason-side-gutter: 20px;
		--lower-reason-padding-top: 70px;
		--lower-reason-padding-bottom: 70px;
		--lower-reason-list-top: 8px;
		--lower-reason-row-gap: 6px;
		--lower-reason-item-min-height: 260px;
		--lower-reason-image-width: min(76vw, 285px);
		--lower-reason-item-title-size: 18px;
		--lower-reason-item-title-line-height: 1.4;
		--lower-reason-item-text-top: 8px;
		--lower-reason-item-text-size: 14px;
		--lower-reason-item-text-line-height: 1.6;
	}

	.c-lower-reason__inner {
		width: calc(100% - 40px);
		max-width: 500px;
	}

	.c-lower-reason__list {
		grid-template-columns: 1fr;
	}

.c-lower-reason-item__image {
		margin-inline: auto;
		aspect-ratio: 720 / 420;
	}
}

/* ==========================================================================
   Common: Lower Works
   ========================================================================== */

.c-lower-works {
	--lower-works-inner-width: 1200px;
	--lower-works-side-gutter: 0px;
	--lower-works-padding-top: min(12.5vw, 150px);
	--lower-works-padding-bottom: min(12.5vw, 150px);
	--lower-works-grid-top: min(4.1667vw, 50px);
	--lower-works-column-gap: min(5vw, 60px);
	--lower-works-row-gap: clamp(24px, calc(-12px + 6vw), 60px);
	--lower-works-card-body-min-height: 66px;
	--lower-works-card-body-padding-inline: 20px;
	--lower-works-title-size: 18px;
	--lower-works-category-size: 14px;
	--lower-works-category-width: 66px;
	--lower-works-category-height: 26px;
	--c-lower-section-heading-title-size: min(3.3333vw, 40px);
	--c-lower-section-heading-label-size: min(1.3333vw, 16px);

	padding: var(--lower-works-padding-top) 0 var(--lower-works-padding-bottom);
	background: #dfeef8;
}

.c-lower-works__inner {
	width: min(calc(100% - (var(--lower-works-side-gutter) * 2)), var(--lower-works-inner-width));
	margin-inline: auto;
}

.c-lower-works__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: var(--lower-works-column-gap);
	row-gap: var(--lower-works-row-gap);
	margin-top: var(--lower-works-grid-top);
}

.c-lower-works__heading-title {
	scroll-margin-top: calc(var(--site-header-height) + min(3.3333vw, 40px));
}

.c-lower-work-card {
	position: relative;
	min-width: 0;
	background: #fff;
}

.c-lower-work-card__image {
	overflow: hidden;
	aspect-ratio: 20 / 13;
}

.c-lower-work-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.c-lower-work-card__body {
	display: flex;
	align-items: center;
	min-height: var(--lower-works-card-body-min-height);
	padding: 0 var(--lower-works-card-body-padding-inline);
}

.c-lower-work-card__title {
	margin: 0;
	color: #1d1d1d;
	font-size: var(--lower-works-title-size);
	font-feature-settings: "palt";
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0;
}

.c-lower-work-card__category {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--lower-works-category-width);
	height: var(--lower-works-category-height);
	margin: 0;
	border: 1px solid var(--color-link-blue);
	background: var(--color-link-blue);
	color: #fff;
	font-size: var(--lower-works-category-size);
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
}

@media (max-width: 1200px) {
	.c-lower-works {
		--lower-works-side-gutter: min(4.1667vw, 50px);
	}
}

@media (max-width: 600px) {
	.c-lower-works {
		--lower-works-side-gutter: 20px;
		--lower-works-padding-top: 70px;
		--lower-works-padding-bottom: 70px;
		--lower-works-grid-top: 24px;
		--lower-works-column-gap: 0px;
		--lower-works-row-gap: 24px;
		--lower-works-card-body-min-height: 49px;
		--lower-works-card-body-padding-inline: 15px;
		--lower-works-title-size: 14px;
		--lower-works-category-size: 12px;
		--lower-works-category-width: 49px;
		--lower-works-category-height: 20px;
	}

	.c-lower-works__inner {
		width: calc(100% - 40px);
		max-width: 500px;
	}

	.c-lower-works__grid {
		grid-template-columns: 1fr;
	}

	.c-lower-works__heading-title {
		scroll-margin-top: var(--lower-works-padding-top);
	}
}

/* ==========================================================================
   Common: Lower FAQ
   ========================================================================== */

.c-lower-faq {
	--lower-faq-inner-width: 1200px;
	--lower-faq-side-gutter: 0px;
	--lower-faq-padding-top: min(12.5vw, 150px);
	--lower-faq-padding-bottom: 0px;
	--lower-faq-title-size: min(3.3333vw, 40px);
	--lower-faq-label-size: min(1.3333vw, 16px);
	--c-lower-section-heading-title-size: var(--lower-faq-title-size);
	--c-lower-section-heading-label-size: var(--lower-faq-label-size);
	--lower-faq-list-top: min(4.1667vw, 50px);
	--lower-faq-question-height: 94px;
	--lower-faq-question-open-height: 90px;
	--lower-faq-question-padding-left: min(3.3333vw, 40px);
	--lower-faq-question-padding-right: min(2.5vw, 30px);
	--lower-faq-mark-size: min(3.3333vw, 40px);
	--lower-faq-mark-font-size: min(1.6667vw, 20px);
	--lower-faq-mark-text-shift-y: 1px;
	--lower-faq-mark-text-gap: min(2.5vw, 30px);
	--lower-faq-mark-text-shift-x: 0.08em;
	--lower-faq-question-size: min(1.8333vw, 22px);
	--lower-faq-icon-size: min(3vw, 36px);
	--lower-faq-answer-padding-top: min(2.4167vw, 29px);
	--lower-faq-answer-padding-right: min(10vw, 120px);
	--lower-faq-answer-padding-bottom: min(2vw, 24px);
	--lower-faq-answer-text-top: 0px;
	--lower-faq-answer-size: clamp(14px, calc(12px + 0.3333vw), 16px);
	--lower-faq-border-color: var(--color-link-blue);
	--lower-faq-answer-mark-bg: #56c9bc;
	--lower-faq-open-bg: #edf4fa;

	padding: var(--lower-faq-padding-top) 0 var(--lower-faq-padding-bottom);
	background: #fff;
}

.c-lower-faq__inner {
	width: min(calc(100% - (var(--lower-faq-side-gutter) * 2)), var(--lower-faq-inner-width));
	margin-inline: auto;
}

.c-lower-faq__list {
	margin-top: var(--lower-faq-list-top);
	border-bottom: 1px solid var(--lower-faq-border-color);
}

.c-lower-faq__item {
	border-top: 1px solid var(--lower-faq-border-color);
}

.c-lower-faq__question-heading {
	margin: 0;
}

.c-lower-faq__question {
	display: grid;
	grid-template-columns: var(--lower-faq-mark-size) minmax(0, 1fr) var(--lower-faq-icon-size);
	align-items: center;
	column-gap: var(--lower-faq-mark-text-gap);
	width: 100%;
	min-height: var(--lower-faq-question-height);
	padding: 0 var(--lower-faq-question-padding-right) 0 var(--lower-faq-question-padding-left);
	border: 0;
	background: #fff;
	color: inherit;
	text-align: left;
	cursor: pointer;
	transition: background-color 0.45s ease;
}

.c-lower-faq__question:hover,
.c-lower-faq__question:focus-visible {
	background-color: #edf4fa;
}

	.c-lower-faq__item.is-open .c-lower-faq__question {
		min-height: var(--lower-faq-question-open-height);
		background: var(--lower-faq-open-bg);
	}

.c-lower-faq__mark {
	display: grid;
	place-items: center;
	width: var(--lower-faq-mark-size);
	height: var(--lower-faq-mark-size);
	border-radius: 50%;
	padding-left: var(--lower-faq-mark-text-shift-x);
	color: #fff;
	background: var(--color-link-blue);
	font-family: "Inter", var(--font-en);
	font-size: var(--lower-faq-mark-font-size);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	transform: translateY(var(--lower-faq-mark-text-shift-y));
}

.c-lower-faq__question-text {
	min-width: 0;
	color: #1d1d1d;
	font-size: var(--lower-faq-question-size);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0;
}

.c-lower-faq__icon {
	position: relative;
	display: block;
	width: var(--lower-faq-icon-size);
	height: var(--lower-faq-icon-size);
}

.c-lower-faq__icon::before,
.c-lower-faq__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 1px;
	background: var(--lower-faq-border-color);
	transform: translateY(-50%);
}

.c-lower-faq__icon::after {
	transform: translateY(-50%) rotate(90deg);
	transition: opacity 0.2s ease;
}

.c-lower-faq__item.is-open .c-lower-faq__icon::after {
	opacity: 0;
}

.c-lower-faq__answer[hidden] {
	display: none;
}

.c-lower-faq__answer {
	background: #fff;
	overflow: hidden;
	transition: height 0.36s ease;
}

.c-lower-faq__answer-inner {
	display: grid;
	grid-template-columns: var(--lower-faq-mark-size) minmax(0, 1fr);
	align-items: center;
	column-gap: var(--lower-faq-mark-text-gap);
	padding:
		var(--lower-faq-answer-padding-top)
		var(--lower-faq-answer-padding-right)
		var(--lower-faq-answer-padding-bottom)
		var(--lower-faq-question-padding-left);
}

.c-lower-faq__mark--answer {
	background: var(--lower-faq-answer-mark-bg);
}

.c-lower-faq__answer-text {
	margin: var(--lower-faq-answer-text-top) 0 0;
	color: #1d1d1d;
	font-size: var(--lower-faq-answer-size);
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0;
}

@media (max-width: 1200px) {
	.c-lower-faq {
		--lower-faq-side-gutter: min(4.1667vw, 50px);
	}
}

@media (max-width: 600px) {
	.c-lower-faq {
		--lower-faq-side-gutter: 20px;
		--lower-faq-padding-top: 70px;
		--lower-faq-padding-bottom: 0px;
		--lower-faq-list-top: 24px;
		--lower-faq-question-height: 91px;
		--lower-faq-question-open-height: 91px;
		--lower-faq-question-padding-left: 16px;
		--lower-faq-question-padding-right: 18px;
		--lower-faq-mark-size: 32px;
		--lower-faq-mark-font-size: 16px;
		--lower-faq-mark-text-gap: 10px;
		--lower-faq-mark-text-shift-x: 0;
		--lower-faq-question-size: 18px;
		--lower-faq-icon-size: 28px;
		--lower-faq-answer-padding-top: 16px;
		--lower-faq-answer-padding-right: 61px;
		--lower-faq-answer-padding-bottom: 18px;
		--lower-faq-answer-text-top: 4px;
		--lower-faq-answer-size: 14px;
	}

	.c-lower-faq__inner {
		width: calc(100% - 40px);
		max-width: 500px;
	}

	.c-lower-faq__question {
		grid-template-columns: var(--lower-faq-mark-size) minmax(0, 1fr) var(--lower-faq-icon-size);
	}

	.c-lower-faq__answer-inner {
		grid-template-columns: var(--lower-faq-mark-size) minmax(0, 1fr);
	}

	.c-lower-faq__answer-text {
		line-height: 1.6;
	}
}

/* ==========================================================================
   Common: CTA
   ========================================================================== */

.c-cta {
	--cta-padding-top: 20px;
	--cta-padding-bottom: 150px;
	--cta-inner-width: 1820px;
	--cta-side-gutter: 50px;
	--cta-card-width: 880px;
	--cta-card-height: 240px;
	--cta-card-gap: 60px;
	--cta-card-padding-left: 37px;
	--cta-card-padding-right: 30px;
	--cta-card-image-gap: 38px;
	--cta-title-size: 60px;
	--cta-text-size: 16px;
	--cta-icon-size: 40px;
	--cta-partner-illust-width: 175px;
	--cta-contact-illust-width: 61px;

	padding: var(--cta-padding-top) 0 var(--cta-padding-bottom);
	background: #fff;
}

.c-cta__inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, min(var(--cta-card-width), calc((100% - var(--cta-card-gap)) / 2))));
	gap: var(--cta-card-gap);
	width: min(calc(100% - (var(--cta-side-gutter) * 2)), var(--cta-inner-width));
	margin-inline: auto;
}

.c-cta-card {
	--cta-card-current-padding-left: var(--cta-card-padding-left);
	--cta-card-current-image-gap: var(--cta-card-image-gap);

	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 0;
	width: 100%;
	min-width: 0;
	min-height: var(--cta-card-height);
	padding: 0 var(--cta-card-padding-right) 0 var(--cta-card-current-padding-left);
	color: #fff;
}

.c-cta-card--partner {
	background: var(--color-link-blue);
}

.c-cta-card--contact {
	--cta-card-current-padding-left: 41px;

	background: #56c9bc;
}

.c-cta-card__illust {
	display: block;
	height: auto;
	margin-right: var(--cta-card-current-image-gap);
}

.c-cta-card__illust--partner {
	width: var(--cta-partner-illust-width);
}

.c-cta-card__illust--contact {
	width: var(--cta-contact-illust-width);
}

.c-cta-card__body,
.c-cta-card__title,
.c-cta-card__text {
	display: block;
	min-width: 0;
}

.c-cta-card__title {
	font-size: var(--cta-title-size);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

.c-cta-card__text {
	margin-top: 14px;
	font-size: var(--cta-text-size);
	font-weight: 400;
	line-height: 1.75;
	letter-spacing: 0;
	overflow-wrap: anywhere;
}

.c-cta-card__icon {
	display: grid;
	place-items: center;
	width: var(--cta-icon-size);
	height: var(--cta-icon-size);
	border-radius: 50%;
	margin-left: auto;
	font-family: var(--font-en);
	font-size: var(--cta-text-size);
	font-weight: 700;
	line-height: 1;
	padding-bottom: 2px;
	background: #fff;
	transition:
		color 0.45s ease,
		background-color 0.45s ease;
}

.c-cta-card--partner .c-cta-card__icon {
	color: var(--color-link-blue);
}

.c-cta-card--contact .c-cta-card__icon {
	color: #56c9bc;
}

.c-cta-card:hover .c-cta-card__icon,
.c-cta-card:focus-visible .c-cta-card__icon {
	color: #fff;
	background-color: #1d1d1d;
}

@media (max-width: 1600px) {
	.c-cta {
		--cta-side-gutter: min(3.125vw, 50px);
		--cta-card-width: clamp(335px, 55vw, 880px);
		--cta-card-height: clamp(160px, 15vw, 240px);
		--cta-card-gap: clamp(20px, 3.75vw, 60px);
		--cta-card-padding-left: clamp(11px, 2.3125vw, 37px);
		--cta-card-padding-right: clamp(14px, 1.875vw, 30px);
		--cta-card-image-gap: clamp(13px, 2.375vw, 38px);
		--cta-title-size: clamp(28px, 3.75vw, 60px);
		--cta-icon-size: clamp(24px, 2.5vw, 40px);
		--cta-partner-illust-width: clamp(86px, 10.9375vw, 175px);
		--cta-contact-illust-width: clamp(31px, 3.8125vw, 61px);
	}

	.c-cta-card--contact {
		--cta-card-current-padding-left: clamp(39px, 2.5625vw, 41px);
	}
}

@media (max-width: 1200px) {
	.c-cta {
		--cta-padding-bottom: clamp(70px, 12.5vw, 150px);
		--cta-text-size: 14px;
	}

	.c-cta-card__break--partner {
		display: none;
	}
}

@media (max-width: 600px) {
	.c-more-link {
		gap: var(--c-more-link-gap, 4px);
	}

	.c-cta {
		--cta-padding-top: 10px;
		--cta-padding-bottom: 70px;
		--cta-card-height: 160px;
		--cta-card-gap: 20px;
		--cta-card-padding-left: 11px;
		--cta-card-padding-right: 14px;
		--cta-card-image-gap: 13px;
		--cta-title-size: 28px;
		--cta-text-size: 14px;
		--cta-icon-size: 24px;
		--cta-partner-illust-width: 86px;
		--cta-contact-illust-width: 31px;
	}

	.l-main {
		--cta-before-space: 70px;
	}

	.c-cta__inner {
		grid-template-columns: 1fr;
		width: min(calc(100vw - 40px), 480px);
	}

	.c-cta-card--contact {
		--cta-card-current-padding-left: 39px;
		--cta-card-current-image-gap: 40px;
	}

	.c-cta-card__text {
		margin-top: 8px;
		line-height: 1.5;
	}

}

/* ==========================================================================
   Common: Header
   ========================================================================== */

.c-site-header {
	position: fixed;
	z-index: 100;
	top: 0;
	left: 0;
	width: 100%;
	background: #fff;
}

body.admin-bar .c-site-header {
	top: 32px;
}

body.admin-bar .c-site-header__menu-button {
	top: calc(32px + ((var(--site-header-height) - 47px) / 2));
}

.c-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 100px;
	padding-inline: min(2.6042vw, 50px);
	gap: min(2.0833vw, 40px);
}

.c-site-header__brand {
	flex: 0 0 auto;
	line-height: 0;
}

.c-site-header__logo,
.c-drawer__logo {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.c-site-header__logo img {
	display: block;
	width: 200px;
	height: auto;
}

.c-site-header__nav {
	display: flex;
	align-items: center;
	margin-left: auto;
}

.c-site-header__menu,
.c-site-footer__menu {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}

.c-site-header__menu {
	align-items: center;
	gap: min(2.5vw, 48px);
}

.c-site-header__nav-item {
	position: relative;
}

.c-site-header__nav-link {
	display: inline-flex;
	align-items: center;
	min-height: 100px;
	color: #1d1d1d;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
}

.c-site-header__dropdown {
	position: absolute;
	z-index: 20;
	top: 72px;
	left: 50%;
	width: 128px;
	margin: 0;
	padding: 10px 16px;
	border-radius: 6px;
	color: #1d1d1d;
	background: var(--color-sky);
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateX(-50%);
	pointer-events: none;
}

.c-site-header__dropdown--company {
	padding-top: 10px;
	padding-bottom: 10px;
}

.c-site-header__dropdown a {
	display: flex;
	align-items: center;
	min-height: 36px;
	margin-inline: -16px;
	padding-inline: 16px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
	white-space: nowrap;
}

.c-site-header__dropdown a:hover,
.c-site-header__dropdown a:focus-visible {
	background: var(--color-sky-dark);
}

.c-site-header__nav-item--has-dropdown:hover .c-site-header__dropdown,
.c-site-header__nav-item--has-dropdown:focus-within .c-site-header__dropdown {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.c-site-header__contact {
	flex: 0 0 auto;
}

.c-site-header__menu-button {
	display: none;
	flex: 0 0 47px;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 47px;
	height: 47px;
	margin: 0 0 0 auto;
	padding: 0;
	border: 0;
	background: transparent;
}

.c-site-header__menu-line {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 47px;
	height: 1px;
	background: #1d1d1d;
	transform-origin: center;
}

.c-site-header__menu-line:first-child {
	transform: translate(-50%, -50%) translateY(-7px);
}

.c-site-header__menu-line:last-child {
	transform: translate(-50%, -50%) translateY(7px);
}

/* ==========================================================================
   Common: Hamburger Menu
   ========================================================================== */

.c-drawer {
	position: fixed;
	z-index: 200;
	inset: 0 0 0 auto;
	width: min(414px, 100vw);
	overflow-y: auto;
	color: #fff;
	background: var(--color-blue);
	opacity: 0;
	visibility: hidden;
	transform: translateX(100%);
	transition:
		transform 0.65s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.65s ease,
		visibility 0s linear 0.65s;
	pointer-events: none;
}

.is-menu-open .c-drawer {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
	transition:
		transform 0.65s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.65s ease,
		visibility 0s;
	pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
	.c-drawer,
	.is-menu-open .c-drawer {
		transition: none;
	}
}

body.is-menu-open {
	overflow: hidden;
	padding-right: var(--menu-scrollbar-width, 0px);
}

.js-scroll-fade {
	opacity: 0;
	transform: translateY(28px);
	transition:
		opacity 0.9s ease,
		transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

.js-scroll-fade.is-inview {
	opacity: 1;
	transform: translateY(0);
}

.c-copy-reveal {
	line-height: 0;
}

.c-copy-reveal svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.c-copy-reveal.is-copy-reveal-ready svg > rect {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.78s cubic-bezier(0.77, 0, 0.175, 1);
  will-change: clip-path;
}

.c-copy-reveal--vertical.is-copy-reveal-ready svg > rect {
	clip-path: inset(0 0 100% 0);
}

.c-copy-reveal.is-copy-reveal-ready svg > g {
	opacity: 0;
	transition: opacity 0.48s ease 0.38s;
}

.c-copy-reveal.is-copy-reveal-ready.is-copy-reveal-inview svg > rect {
	clip-path: inset(0);
}

.c-copy-reveal.is-copy-reveal-ready.is-copy-reveal-inview svg > g {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.js-scroll-fade {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.c-copy-reveal.is-copy-reveal-ready svg > rect,
	.c-copy-reveal--vertical.is-copy-reveal-ready svg > rect {
		clip-path: inset(0);
		transition: none;
	}

	.c-copy-reveal.is-copy-reveal-ready svg > g {
		opacity: 1;
		transition: none;
	}
}

.c-drawer__inner {
	position: relative;
	min-height: 100%;
	padding: 25px 20px 80px;
}

.c-drawer__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	min-height: 47px;
}

.c-drawer__logo img {
	display: block;
	width: 180px;
	height: auto;
	filter: brightness(0) invert(1);
}

.c-drawer__logo {
	margin-left: 0;
}

.c-drawer__close {
	position: fixed;
	top: 25px;
	right: 20px;
	width: 47px;
	height: 47px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.is-menu-open .c-drawer__close {
	right: calc(20px + var(--menu-scrollbar-width, 0px));
}

.c-drawer__close:focus {
	outline: none;
}

.c-drawer__close:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 4px;
}

.c-drawer__close-line {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 47px;
	height: 1px;
	background: #fff;
	transform-origin: center;
}

.c-drawer__close-line:first-child {
	transform: translate(-50%, -50%) rotate(45deg);
}

.c-drawer__close-line:last-child {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.c-drawer__nav {
	width: min(100%, 294px);
	margin: 30px auto 0;
}

.c-drawer__section + .c-drawer__section {
	margin-top: 19px;
}

.c-drawer__heading {
	margin: 0;
	padding-left: 20px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
}

.c-drawer__links {
	margin: 8px 0 0 64px;
	padding: 0;
	list-style: none;
}

.c-drawer__links--two {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 28px;
}

.c-drawer__links a {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.55;
	white-space: nowrap;
}

.c-drawer__contact {
	width: min(calc(100vw - 70px), 300px);
	min-height: 40px;
	margin: 23px auto 0;
	font-size: 16px;
}

/* ==========================================================================
   Common: Footer
   ========================================================================== */

.c-site-footer {
	--footer-padding-top: 120px;
	--footer-padding-bottom: 115px;
	--footer-inner-width: 1200px;
	--footer-side-gutter: 0px;
	--footer-logo-width: 200px;
	--footer-top-logo-width: 200px;
	--footer-top-gap: 139px;
	--footer-office-padding-inline: 20.5px;
	--footer-office-title-size: 16px;
	--footer-office-text-size: 14px;
	--footer-office-text-line-height: 1.4;
	--footer-office-text-top: 12px;
	--footer-bottom-top: 86px;
	--footer-bottom-left-width: 420px;
	--footer-bottom-gap: 80px;
	--footer-nav-gap: 70px;
	--footer-nav-title-size: 16px;
	--footer-nav-link-size: 14px;
	--footer-copyright-size: 14px;
	--footer-nav-list-top: 24px;
	--footer-nav-link-gap: 20px;

	margin-top: auto;
	padding: var(--footer-padding-top) 0 var(--footer-padding-bottom);
	color: var(--color-navy);
	background: #f7f7f7;
}

.c-site-footer__inner {
	width: min(calc(100vw - (var(--footer-side-gutter) * 2)), var(--footer-inner-width));
	margin-inline: auto;
}

.c-site-footer__top {
	display: grid;
	grid-template-columns: var(--footer-top-logo-width) minmax(0, 1fr);
	column-gap: var(--footer-top-gap);
	align-items: start;
}

.c-site-footer__logo {
	display: inline-flex;
	width: var(--footer-logo-width);
	line-height: 0;
}

.c-site-footer__logo img {
	display: block;
	width: 100%;
	height: auto;
}

.c-site-footer__offices {
	display: grid;
	grid-template-columns: minmax(0, 254fr) minmax(0, 287fr) minmax(0, 320fr);
}

.c-site-footer__office {
	min-width: 0;
	margin: 0;
	padding-inline: var(--footer-office-padding-inline);
	border-left: 1px solid #989898;
}

.c-site-footer__office:last-child {
	border-right: 1px solid #989898;
}

.c-site-footer__office-name {
	margin: 0;
	font-size: var(--footer-office-title-size);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

.c-site-footer__office-address {
	margin: var(--footer-office-text-top) 0 0;
	font-size: var(--footer-office-text-size);
	font-weight: 400;
	line-height: var(--footer-office-text-line-height);
	letter-spacing: 0;
}

@media (min-width: 1201px) {
	.c-site-footer__office-address {
		white-space: nowrap;
	}
}

.c-site-footer__bottom {
	display: grid;
	grid-template-columns: var(--footer-bottom-left-width) minmax(0, 1fr);
	column-gap: var(--footer-bottom-gap);
	align-items: end;
	margin-top: var(--footer-bottom-top);
}

.c-site-footer__copyright {
	margin: 0;
	color: #1d1d1d;
	font-size: var(--footer-copyright-size);
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0;
}

.c-site-footer__nav {
	display: grid;
	grid-template-columns: repeat(4, max-content);
	column-gap: var(--footer-nav-gap);
	align-items: start;
	justify-content: start;
}

.c-site-footer__nav-group,
.c-site-footer__nav-list {
	min-width: 0;
}

.c-site-footer__nav-title {
	display: inline-flex;
	color: #1d1d1d;
	font-size: var(--footer-nav-title-size);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}

.c-site-footer__nav-list {
	display: grid;
	row-gap: var(--footer-nav-link-gap);
	margin: var(--footer-nav-list-top) 0 0;
	padding: 0;
	list-style: none;
}

.c-site-footer__nav-list--primary {
	row-gap: var(--footer-nav-link-gap);
	margin-top: 0;
}

.c-site-footer__nav-link {
	display: inline-flex;
	color: #1d1d1d;
	font-size: var(--footer-nav-link-size);
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}

@media (max-width: 1200px) {
	.c-site-footer {
		--footer-padding-top: clamp(72px, 10vw, 120px);
		--footer-padding-bottom: clamp(72px, 9.5833vw, 115px);
		--footer-side-gutter: clamp(20px, 4.1667vw, 50px);
		--footer-logo-width: clamp(180px, 16.6667vw, 200px);
		--footer-top-logo-width: clamp(180px, 16.6667vw, 200px);
		--footer-top-gap: clamp(32px, 11.5833vw, 139px);
		--footer-office-padding-inline: clamp(16px, 1.7083vw, 20.5px);
		--footer-bottom-top: clamp(64px, 7.1667vw, 86px);
		--footer-bottom-left-width: clamp(260px, calc(70vw - 420px), 420px);
		--footer-bottom-gap: clamp(24px, 3.3333vw, 40px);
		--footer-nav-gap: clamp(24px, 3.3333vw, 40px);
		--footer-nav-list-top: clamp(20px, 2vw, 24px);
		--footer-nav-link-gap: clamp(18px, 1.6667vw, 20px);
	}

}

@media (max-width: 900px) {
	.c-site-footer__top,
	.c-site-footer__bottom {
		display: block;
	}

	.c-site-footer__offices {
		margin-top: clamp(48px, 6.6667vw, 60px);
	}

	.c-site-footer__nav {
		margin-top: clamp(48px, 6.6667vw, 60px);
	}
}

@media (max-width: 600px) {
	.c-site-footer {
		--footer-padding-top: 70px;
		--footer-padding-bottom: 58px;
		--footer-side-gutter: 20px;
		--footer-logo-width: 180px;
		--footer-office-padding-inline: 0px;
		--footer-office-text-top: 8px;
		--footer-bottom-top: 42px;
		--footer-nav-list-top: 20px;
		--footer-nav-link-gap: 18px;
	}

	.c-site-footer__offices {
		grid-template-columns: 1fr;
		row-gap: 20px;
		margin-top: 48px;
	}

	.c-site-footer__office,
	.c-site-footer__office:last-child {
		padding: 0;
		border: 0;
	}

	.c-site-footer__office-address {
		line-height: var(--footer-office-text-line-height);
	}

	.c-site-footer__copyright {
		font-size: var(--footer-copyright-size);
	}

	.c-site-footer__nav {
		width: 100%;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: 0;
		row-gap: 54px;
		justify-content: stretch;
		margin-top: 58px;
	}

	.c-site-footer__nav-group:nth-child(1) {
		justify-self: start;
	}

	.c-site-footer__nav-group:nth-child(2) {
		justify-self: center;
	}

	.c-site-footer__nav-group:nth-child(3) {
		justify-self: end;
	}

	.c-site-footer__nav-group--other {
		grid-column: 1 / -1;
		justify-self: start;
	}

	.c-site-footer__nav-list--primary {
		row-gap: var(--footer-nav-link-gap);
	}
}

/* ==========================================================================
   Common: Entry
   ========================================================================== */

.c-entry + .c-entry {
	margin-top: 48px;
}

.c-entry__title {
	margin: 0;
	font-size: clamp(24px, 3vw, 40px);
	line-height: 1.4;
}

.c-entry__content,
.c-entry__excerpt,
.c-entry__text {
	margin-top: 24px;
}

.c-entry__content > :first-child,
.c-entry__excerpt > :first-child {
	margin-top: 0;
}

.c-entry__content > :last-child,
.c-entry__excerpt > :last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Responsive: 600px and below
   ========================================================================== */

@media (max-width: 600px) {
	.c-site-header__logo img {
		width: 180px;
		filter: none;
	}

	.c-site-footer__menu {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* ==========================================================================
   Responsive: 1000px and below
   ========================================================================== */

@media (max-width: 1000px) {
	.c-site-header__inner {
		position: relative;
		min-height: 100px;
		padding-inline: min(5vw, 50px);
	}

	.c-site-header__nav,
	.c-site-header__contact {
		display: none;
	}

	.c-site-header__menu-button {
		display: inline-flex;
		position: fixed;
		top: calc((var(--site-header-height) - 47px) / 2);
		right: min(5vw, 50px);
	}

	.c-drawer__inner {
		padding-top: 26.5px;
		padding-right: min(5vw, 50px);
	}

	.c-drawer__close {
		top: 26.5px;
		right: min(5vw, 50px);
	}

	.is-menu-open .c-drawer__close {
		right: calc(min(5vw, 50px) + var(--menu-scrollbar-width, 0px));
	}
}

/* ==========================================================================
   Responsive: 414px and below
   ========================================================================== */

@media (max-width: 414px) {
	:root {
		--site-header-height: 80px;
	}

	.c-site-header__inner {
		align-items: center;
		min-height: 80px;
		padding: 0 20px;
	}

	.c-site-header__menu-button {
		right: 20px;
	}

	.c-drawer {
		inset: 0;
		width: 100%;
	}

	.c-drawer__inner {
		padding-top: 25.14px;
		padding-right: 20px;
	}

	.c-drawer__close {
		top: 16.5px;
		right: 20px;
	}

	.is-menu-open .c-drawer__close {
		right: calc(20px + var(--menu-scrollbar-width, 0px));
	}

	.c-drawer__contact {
		width: min(calc(100vw - 74px), 300px);
	}
}

@media (max-width: 782px) {
	body.admin-bar .c-site-header {
		top: 46px;
	}

	body.admin-bar .c-site-header__menu-button {
		top: calc(46px + ((var(--site-header-height) - 47px) / 2));
	}
}
