:root {
	--lp-navy: #0f3460;
	--lp-title-top: #2f6693;
	--lp-title-bottom: #0f3f6a;
	--lp-text: #293f52;
	--lp-font: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", YuGothic, Meiryo, sans-serif;
}

*,

*::before,

*::after {
	box-sizing: border-box;
}

html {
	font-size: 62.5%;
}

html,

body {
	width: 100%;
	max-width: 100%;
	overflow-x: hidden;
}

body {
	margin: 0;
}

/* --------------------------------------------------------------------------
 * Animation
 * -------------------------------------------------------------------------- */
.slide-in-up_wrapper {
	overflow: hidden;
}
.slide-in-up {
	display: block;
	transform: translateY(100%);
	transition: 800ms;
}

.fade-in {
	opacity: 0;
	transition: 1500ms;
}

.slide-in-left {
	transform: translateX(-100vw);
	transition: 800ms;
}
.slide-in-left-2 {
	transition-delay: 150ms;
}
.slide-in-left-3 {
	transition-delay: 300ms;
}
.slide-in-left-4 {
	transition-delay: 450ms;
}
.slide-in-left-5 {
	transition-delay: 600ms;
}
.slide-in-left-6 {
	transition-delay: 750ms;
}


.lp-page {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 320px;
	overflow-x: hidden;
	font-family: var(--lp-font);
	font-optical-sizing: auto;
	font-kerning: normal;
	font-synthesis: weight;
	color: var(--lp-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/*
 * テーマ側の見出し・リンク用フォント指定よりもLP用Webフォントを優先する。
 */
.lp-page :where(h1,
	h2,
	h3,
	p,
	a,
	span,
	li,
	dt,
	dd,
	button,
	input,
	select,
	textarea) {
	font-family: var(--lp-font);
}

.lp-page img {
	display: block;
	max-width: 100%;
	height: 100%;
}

.lp-page a {
	color: inherit;
	text-decoration: none;
}

.lp-page .lp-mv__header-button {
	color: #fff;
}

.lp-page .lp-mv__cta-button {
	color: var(--lp-navy);
}

.lp-main {
	position: relative;
	isolation: isolate;
	container-type: inline-size;
	width: min(1200px, 100%);
	max-width: 1200px;
	margin-inline: auto;
	overflow: visible;
}

.lp-mv {
	position: relative;
	isolation: isolate;
	width: 100%;
	overflow: hidden;
}

.lp-mv__canvas {
	position: relative;
	display: grid;
	width: 100%;
	height: auto;
	margin-inline: auto;
	padding: 0px 30px 0;
}


.lp-mv__header {
	position: relative;
	z-index: 5;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	pointer-events: none;
	padding: 30px 30px 0;
	width: 100vw;
	margin: auto;
	left: 50%;
	transform: translateX(-50%);
}

.lp-mv__logo-link,

.lp-mv__header-button {
	flex: 0 0 auto;
	pointer-events: auto;
}

.lp-mv__logo-link {
	width: 70px;
	height: 51px;
}

.lp-mv__logo {
	width: 70px;
	height: 51px;
}

.lp-mv__header-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 199px;
	height: 51px;
	border-radius: 999px;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	color: #ffffff;
	background: var(--lp-navy);
}

.lp-mv__stage {
	position: relative;
	z-index: 1;
	min-width: 0;
	max-width: 1200px;
	margin: auto;
	width: 100%;
}

.lp-mv__content {
	position: relative;
	z-index: 3;
	width: 610px;
	margin-top: 43px;
	margin-left: 70px;
}

.lp-mv__title {
	margin: 0;
	font-family: var(--lp-font);
	font-weight: 900;
	font-synthesis: weight;
	letter-spacing: -0.065em;
}

.lp-mv__title-intro,
.lp-mv__title-main,
.lp-mv__title-sub {
	display: block;
	width: max-content;
	max-width: none;
	white-space: nowrap;
}

.lp-mv__title-intro .slide-in-up,
.lp-mv__title-main .slide-in-up,
.lp-mv__title-sub .slide-in-up {
	font-family: var(--lp-font);
	font-weight: 900;
	font-synthesis: weight;
	color: #1e527e;
	background: linear-gradient(180deg, var(--lp-title-top) 0%, var(--lp-title-bottom) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}


.lp-mv__title-intro {
	font-size: 4.3rem;
	line-height: 1.18;
	transform: translate(1px, -2px);
}

.lp-mv__title-main {
	margin-top: 5px;
	font-size: 7.2rem;
	line-height: 1.11;
	letter-spacing: inherit;
	transform: translate(-39px, 2px);
	transform-origin: left top;
}

.lp-mv__title-sub {
	margin-top: 15px;
	font-size: 5rem;
	line-height: 1.25;
	letter-spacing: inherit;
}

/*
 * 元デザインでは助詞だけを小さく組み、前後の語を強調している。
 * 行全体のグラデーションと太さを継承しながら、ベースラインを揃える。
 */
.lp-mv__title-particle {
	display: inline-block;
	font-weight: inherit;
	line-height: 1;
	letter-spacing: -0.04em;
	vertical-align: 0.04em;
}

.lp-mv__title-particle--de {
	font-size: 5.2rem;
	top: 5px;
}

.lp-mv__title-particle--no {
	font-size: 0.58em;
}

.lp-mv__title-particle--position {
	position: relative;
	left: -39px;
}

.lp-mv__lead {
	margin: 24px 0 0;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.72;
	letter-spacing: 0;
	color: #293f52;
	transform: translate(1px, 4px) scaleX(1.04);
	transform-origin: left top;
}

.lp-mv__lead-line {
	display: block;
	white-space: nowrap;
}

.lp-mv__badges {
	display: flex;
	align-items: flex-start;
	gap: 0;
	margin-top: 19px;
	margin-left: -14px;
	transform: translateY(1px);
}

.lp-mv__badge {
	display: grid;
	flex: 0 0 174px;
	place-items: center;
	width: 100%;
	height: 174px;
	max-width: 174px;
	max-height: 174px;
	margin-right: -20px;
	background: url("../images/lp/mv-badge.png") center / contain no-repeat;
}

.lp-mv__badge-text {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 16px 20px 10px;
	font-size: 1.65rem;
	font-weight: 700;
	line-height: 1.48;
	letter-spacing: 0;
	text-align: center;
	color: #ffffff;
}

.lp-mv__badge-text span {
	display: block;
	white-space: nowrap;
}

.lp-mv__visual-wrap {
	position: absolute;
	top: -93px;
	left: 447px;
	z-index: 1;
	width: 946px;
	height: 834px;
	pointer-events: none;
	background-image: url("../images/lp/mv-visual.png");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100% 100%;
}

.lp-mv__cta {
	position: relative;
	z-index: 6;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 840px;
	height: 166px;
	margin-inline: auto;
	padding: 28px 40px 25px;
	box-shadow: 3px 3px 3px #ffffffad, -3px -3px 3px #ffffffad, -3px 3px 3px #ffffffad, 3px -3px 3px #ffffffad;
	text-align: center;
	background: var(--lp-navy);
	margin-top: 20px;
}

.lp-mv__cta-title {
	margin: 0 0 21px;
	font-size: 2.2rem;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0;
	color: #ffffff;
}

.lp-mv__cta-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 381px;
	height: 60px;
	border-radius: 999px;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	color: var(--lp-navy);
	background: #ffffff;
}

.lp-mv__header-button:focus-visible,

.lp-mv__cta-button:focus-visible {
	outline: 3px solid #7dc9e2;
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
 * Field solution section
 * -------------------------------------------------------------------------- */
.lp-solution {
	position: relative;
	isolation: isolate;
	width: 100%;
	padding-top: 60px;
	overflow: hidden;
	padding-bottom: 67px;
}


.lp-solution__inner {
	display: grid;
	grid-template-columns: 480px minmax(0, 1fr);
	column-gap: 80px;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.lp-solution__gallery {
	position: relative;
	height: 805px;
}

.lp-solution__figure {
	position: absolute;
	margin: 0;
	overflow: hidden;
}

.lp-solution__figure--site {
	width: 480px;
	height: 414px;
}

.lp-solution__figure--soil {
	top: 453px;
	width: 210px;
	height: 202px;
}

.lp-solution__figure--chemical {
	top: 453px;
	left: 250px;
	width: 230px;
	height: 302px;
}

.lp-solution__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lp-solution__image--site {
	object-position: 50% 50%;
}

.lp-solution__image--soil {
	object-position: 50% 50%;
	filter: grayscale(100%);
}

.lp-solution__image--chemical {
	object-position: 50% 50%;
	filter: grayscale(100%);
}


.lp-solution__title {
	margin: 0;
	font-weight: 900;
	letter-spacing: -0.035em;
	color: #073b68;
}

.lp-solution__title-lead,
.lp-solution__title-main {
	display: block;
	width: max-content;
	max-width: 100%;
	white-space: nowrap;
}

.lp-solution__title-lead {
	font-size: 4rem;
	line-height: 1.28;
}

.lp-solution__title-main {
	margin-top: 15px;
	font-size: 5.4rem;
	line-height: 1.16;
}

.lp-solution__title-main+.lp-solution__title-main {
	margin-top: 12px;
}

.lp-solution__description {
	margin-top: 50px;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 2.55;
	letter-spacing: 0.005em;
	color: #3F4A55;
}

.lp-solution__paragraph {
	margin: 0;
}

.lp-solution__paragraph+.lp-solution__paragraph {
	margin-top: 39px;
}

.lp-solution__paragraph span {
	display: block;
	white-space: nowrap;
}

.lp-solution__features {
	margin: 47px 0 0;
}

.lp-solution__feature {
	display: grid;
	grid-template-columns: 28px 58px minmax(0, 1fr);
	align-items: center;
	column-gap: 13px;
	min-height: 46px;
	margin: 0;
}

.lp-solution__feature::before {
	width: 27px;
	height: 1px;
	content: "";
	background: #073b68;
}

.lp-solution__feature-term,

.lp-solution__feature-description {
	margin: 0;
}

.lp-solution__feature-term {
	font-size: 2.4rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.02em;
	color: #073b68;
}

.lp-solution__feature-description {
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.01em;
	color: #46525e;
}

.lp-solution__closing {
	width: 100%;
	margin: 60px auto 0;
	font-size: 2.2rem;
	font-weight: 800;
	line-height: 1.55;
	letter-spacing: 0.025em;
	text-align: center;
	color: #3e4b58;
}

.lp-solution__closing span {
	/* display: block; */
}

/* --------------------------------------------------------------------------
 * Technology section
 * -------------------------------------------------------------------------- */
.lp-technology {
	position: relative;
	isolation: isolate;
	width: 100%;
	/* overflow: hidden; */
	margin-inline: auto;
	padding: 35px 0 0;

}

.lp-technology__wrap {
	position: relative;
	/* overflow: hidden; */
	padding-bottom: 10px;
}

.lp-technology__wrap {
	position: relative;
	isolation: isolate;
}

.lp-technology__background-text {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 0;

	width: 100vw;

	transform: translate(-50%, -50%);
	pointer-events: none;
	height: auto;
}

.lp-technology__background-track {
	display: flex;
	width: max-content;

	animation: lp-technology-text-loop 30s linear infinite;
	will-change: transform;
}

.lp-technology__background-group {
	display: flex;
	flex: 0 0 auto;
	gap: 1em;
	padding-right: 1em;
}

.lp-technology__background-item {
	flex: 0 0 auto;
	margin: 0;

	color: #e5e6e8;
	font-family: "Jost", sans-serif;
	font-size: 12rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	white-space: nowrap;
}

.lp-technology__methods {
	position: relative;
	z-index: 1;
}

.lp-technology__lead {
	position: relative;
	z-index: 1;
}

.lp-technology__button {
	position: relative;
	z-index: 1;
}

@keyframes lp-technology-text-loop {
	from {
		transform: translate3d(0, 0, 0);
	}

	to {
		transform: translate3d(-50%, 0, 0);
	}
}

.lp-technology__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.lp-technology__title {
	width: 100%;
	margin: 0;
	font-size: 6.0rem;
	font-weight: 900;
	line-height: 1.15;
	letter-spacing: -0.055em;
	text-align: center;
	color: #102f49;
}

.lp-technology__title-line--first {
	display: block;
	transform: translateX(-83px);
}

.lp-technology__title-line--second {
	display: block;
	margin-top: -1px;
	padding-left: 223px;
}

.lp-technology__title-line {
	display: block;
	color: #0a1d2d;
	background: linear-gradient(180deg, #0a1d2d 0%, #1f4d72 100%);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.lp-technology__methods {
	display: grid;
	grid-template-columns: repeat(6, 151px);
	justify-content: center;
	gap: 9px;
	margin: 56px 0 0;
	padding: 0;
	list-style: none;
}

.lp-technology__method {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	place-items: center;
	gap: 15px;
	width: 150px;
	height: 150px;
	padding: 15px 8px;
	border: 1px solid #FFF;
	border-radius: 3px;
	box-shadow: 0 2px 10px #00000033;
	background: rgba(255, 255, 255, 0.94);
}

.lp-technology__icon {
	position: static;
	align-self: center;
	justify-self: center;
	height: auto;
	object-fit: contain;
}

/*.lp-technology__icon--push {
	width: 88px;
}

.lp-technology__icon--shield {
	width: 72px;
}

.lp-technology__icon--caisson {
	width: 88px;
}

.lp-technology__icon--hdd {
	width: 99px;
}

.lp-technology__icon--boring {
	width: 68px;
}

.lp-technology__icon--pile {
	width: 98px;
}*/

.lp-technology__method-name {
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0;
	white-space: nowrap;
	color: #0f3b68;
}

.lp-technology__lead {
	width: 100%;
	margin: 80px 0 0;
	font-size: 2.2rem;
	font-weight: 800;
	line-height: 1.55;
	letter-spacing: 0.01em;
	text-align: center;
	color: #3F4A55;
}

.lp-technology__lead span {
	display: block;
}

.lp-page a.lp-technology__button,

.lp-page a.lp-technology__button:visited {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 380px;
	height: 60px;
	margin: 30px auto 0;
	border-radius: 999px;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1;
	color: #ffffff;
	background: #123b69;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.lp-page a.lp-technology__button:hover,

.lp-page a.lp-technology__button:focus-visible {
	color: #ffffff;
	opacity: 0.9;
	transform: translateY(-2px);
}

.lp-page a.lp-technology__button:focus-visible {
	outline: 3px solid #7dc9e2;
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
 * Challenges section
 * -------------------------------------------------------------------------- */
.lp-challenges {
	position: relative;
	isolation: isolate;
	width: calc(100% - 40px);
	max-width: 1160px;
	min-height: 703px;
	overflow: hidden;
	padding: 130px 0 0;
	margin: 78px auto 0;
	border-radius: 20px 20px 0 0;
	color: #ffffff;
	background: #061221;
}

.lp-challenges__background {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background-image: url("../images/lp/challenges-background.png");
	background-repeat: no-repeat;
	background-position: top center;
	background-size: 100% 100%;
}

.lp-challenges__body {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
}

.lp-challenges__heading {
	width: 100%;
	text-align: center;
}

.lp-challenges__eyebrow {
	margin: 0;
	font-size: 2.8rem;
	font-weight: 800;
	line-height: 1.45;
	letter-spacing: 0.01em;
}

.lp-challenges__title {
	margin: 2px 0 0;
	font-size: 5.0rem;
	font-weight: 900;
	line-height: 1.32;
	letter-spacing: -0.035em;
}

.lp-challenges__panel {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 800px;
	height: 226px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 6px;
	box-shadow:
		0 0 10px rgba(255, 255, 255, 0.36),
		inset 0 0 22px rgba(255, 255, 255, 0.035);
	margin-top: 50px;
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}

.lp-challenges__list {
	display: flex;
	flex-direction: column;
	gap: 19px;
	width: 452px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lp-challenges__item {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr);
	align-items: center;
	column-gap: 12px;
	margin: 0;
	padding: 0;
}

.lp-challenges__item::before {
	display: block;
	width: 23px;
	aspect-ratio: 44 / 55;
	content: "";
	background: url("../images/lp/challenges-icon.png") center / contain no-repeat;
}

.lp-challenges__item-text {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: 0.015em;
	white-space: nowrap;
	color: #ffffff;
}

.lp-challenges__emphasis {
	color: #59b5c4;
	text-decoration-line: underline;
	text-decoration-thickness: 3px;
	text-underline-offset: 0px;
	text-decoration-color: #59b5c452;
}

.lp-challenges__closing {
	width: 100%;
	margin: 50px 0 0;
	font-size: 2.2rem;
	font-weight: 800;
	line-height: 1.48;
	letter-spacing: 0.005em;
	text-align: center;
	color: #ffffff;
}

.lp-challenges__closing span {
	/* display: block; */
}

/* --------------------------------------------------------------------------
 * Reasons section
 * -------------------------------------------------------------------------- */
.lp-reasons {
	position: relative;
	isolation: isolate;
	width: calc(100% - 40px);
	max-width: 1160px;
	overflow: hidden;
	margin: 0 auto;
	padding: 134px 80px 0;
	color: #ffffff;
	background: #061221;
	z-index: 1;
}

.lp-reasons__background {
	position: relative;
	width: calc(100% - 40px);
	max-width: 1000px;
	margin: 0 auto;
	/* overflow-x: clip; */
}

.lp-reasons__background::before,
.lp-reasons__inner::before {
	content: "";
	background-image: url(../images/lp/lp-reasons_bg.png);
	background-repeat: no-repeat;
	width: 1268px;
	display: block;
	height: 1207px;
	position: absolute;
	top: -342px;
	right: -35%;
	z-index: -1;
	background-position: center center;
	background-size: 100%;
}

.lp-reasons__inner::before {
	top: -476px;
}

.lp-reasons__background::before {
	z-index: 1;
}

.lp-reasons__heading {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 530px minmax(0, 1fr);
	align-items: center;
	gap: 30px;
	pointer-events: none;
	margin: 0;
}

.lp-reasons__eyebrow,

.lp-reasons__count {
	margin: 0;
	font-weight: 800;
	color: #ffffff;
}

.lp-reasons__eyebrow {
	justify-self: start;
	font-size: 2rem;
	line-height: 1.45;
	letter-spacing: 0.015em;
}

.lp-reasons__title {
	width: 530px;
	aspect-ratio: 1060 / 203;
	margin: 0;
	/* background: url("../images/lp/reason-word.png") center / contain no-repeat; */
}

.lp-reasons__count {
	display: flex;
	align-items: center;
	justify-self: center;
	font-size: 2.0rem;
	line-height: 1.4;
	letter-spacing: 0.015em;
}

.lp-reasons__count--num {
	font-size: 4.0rem;
	margin-top: -3px;
}

.lp-reasons__list {
	display: grid;
	gap: 41px;
	width: 100%;
	margin: 95px 0 0;
	padding: 0;
	list-style: none;
}

.lp-reasons__item {
	display: grid;
	grid-template-columns: 460px 460px;
	grid-template-rows: 340px;
	gap: 80px;
	width: 100%;
	min-height: 340px;
	margin: 0;
}

.lp-reasons__index {
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	width: 40px;
	margin: 0;
	padding-top: 11px;
	border-top: 1px solid #325775;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.4;
	color: #ffffff;
}


.lp-reasons__copy {
	grid-column: 1;
	grid-row: 1;
	align-self: end;
	padding-bottom: 30px;
}

.lp-reasons__item-title {
	margin: 0;
	font-size: 3.4rem;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.01em;
	color: #ffffff;
}

.lp-reasons__description {
	margin: 30px 0 0;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.65;
	letter-spacing: 0.005em;
	white-space: nowrap;
	color: #ffffff;
}

.lp-reasons__figure {
	grid-column: 2;
	grid-row: 1;
	width: 460px;
	height: 340px;
	margin: 0;
	overflow: hidden;
}

.lp-reasons__image {
	width: 460px;
	height: 340px;
	max-width: none;
	object-fit: cover;
}

/* --------------------------------------------------------------------------
 * Web font typography calibration
 * -------------------------------------------------------------------------- */
.lp-mv__title,

.lp-solution__title,

.lp-technology__title,

.lp-challenges__title,

.lp-reasons__item-title {
	font-family: var(--lp-font);
	font-style: normal;
}

.lp-mv__header-button,

.lp-mv__cta-button,

.lp-technology__button,

.lp-technology__method-name,

.lp-challenges__eyebrow,

.lp-challenges__closing,

.lp-reasons__eyebrow,

.lp-reasons__count {
	font-family: var(--lp-font);
	font-style: normal;
}


/* --------------------------------------------------------------------------
 * Method-specific solutions section
 * -------------------------------------------------------------------------- */
.lp-methods {
	position: relative;
	isolation: isolate;
	width: calc(100% - 40px);
	max-width: 1160px;

	margin-inline: auto;
	padding: 62px 78px 78px;
	font-family: var(--lp-font);
	color: #ffffff;
	background: #061221;
	overflow: hidden;
	border-radius: 0 0 20px 20px;
	z-index: 1;
}

.lp-methods__backgroud {
	position: relative;
	width: calc(100% - 40px);
	max-width: 1160px;
	height: 0;
	margin-inline: auto;
}

.lp-methods__backgroud::before,
.lp-methods__inner::before {
	content: "";
	background-image: url(../images/lp/lp-methods_bg1.png);
	background-repeat: no-repeat;
	width: 100%;
	display: block;
	height: 1210px;
	position: absolute;
	top: -258px;
	left: -50%;
	z-index: 1;
	background-position: center center;
	background-size: 100%;
}

.lp-methods::after {
	content: "";
	background-image: url(../images/lp/lp-methods_bg2.png);
	background-repeat: no-repeat;
	width: 1585px;
	display: block;
	height: 1508px;
	position: absolute;
	bottom: 768px;
	right: 0;
	z-index: 1;
	background-position: center center;
	background-size: 100%;
}


.lp-methods__intro {
	position: relative;
	z-index: 3;
	text-align: center;
}

.lp-methods__title {
	margin: 0;
	font-size: 5rem;
	font-weight: 900;
	line-height: 1.42;
	letter-spacing: 0.012em;
	color: #ffffff;
}

.lp-methods__title span,

.lp-methods__lead span {
	display: block;
}

.lp-methods__lead {
	margin: 31px 0 0;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.9;
	letter-spacing: 0.015em;
	color: #ffffff;
}

.lp-methods__cards {
	position: relative;
	z-index: 3;
	display: grid;
	gap: 36px;
	margin-top: 78px;
}

.lp-methods__card {
	position: relative;
	width: 100%;
	padding: 50px;
	border: 1px solid rgba(172, 195, 213, 0.56);
	background: rgba(25, 45, 65, 0.92);
}

.lp-methods__card--push {
	min-height: 936px;
}

.lp-methods__card--pile {
	min-height: 728px;
}


.lp-methods__card-header {
	display: grid;
	grid-template-columns: 124px minmax(0, 1fr);
	align-items: center;
	gap: 22px;
	min-height: 124px;
}

.lp-methods__method-mark {
	display: grid;
	place-items: center;
	width: 110px;
	height: 123px;
	padding: 0;
	background: url("../images/lp/method-label-frame.png") top left / 111px auto no-repeat;
}

.lp-methods__method-name {
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.5;
	white-space: nowrap;
	color: #00bdd5;
}

.lp-methods__card-heading {
	min-width: 0;
}

.lp-methods__card-title {
	margin: 0;
	font-size: 3.2rem;
	font-weight: 800;
	line-height: 1.45;
	letter-spacing: 0.008em;
	color: #ffffff;
}

.lp-methods__card-subtitle {
	margin: 10px 0 0;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.8;
	letter-spacing: 0.005em;
	color: #ffffff;
}

.lp-methods__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 240px;
	align-items: start;
	gap: 20px;
	margin-top: 38px;
}

.lp-methods__main-copy {
	min-width: 0;
}

.lp-methods__problem-title,

.lp-methods__solution-title {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.65;
	letter-spacing: 0.012em;
	color: #ffffff;
}

.lp-methods__problem-list {
	display: grid;
	gap: 6px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.lp-methods__problem-list li {
	display: grid;
	grid-template-columns: 9px minmax(0, 1fr);
	align-items: start;
	column-gap: 10px;
	font-size: 1.4rem;
	font-weight: 300;
	line-height: 1.72;
	letter-spacing: 0.003em;
	color: #ffffff;
}

.lp-methods__problem-list li::before {
	display: block;
	width: 9px;
	height: 9px;
	margin-top: 0.62em;
	content: "";
	background: #ffffff;
}

.lp-methods__solution-title {
	display: flex;
	align-items: center;
	gap: 11px;
	margin-top: 26px;
}

.lp-methods__solution-title::before {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	content: "";
	background: url("../images/lp/checkbox-circle-fill.svg") center / contain no-repeat;
}

.lp-methods__solution-text {
	margin: 16px 0 0;
	font-size: 1.4rem;
	font-weight: 300;
	line-height: 1.95;
	letter-spacing: 0.006em;
	color: #ffffff;
}

.lp-methods__figure {
	width: 240px;
	height: 280px;
	margin: 0;
	overflow: hidden;
}

.lp-methods__image {
	width: 240px;
	height: 280px;
	max-width: none;
	object-fit: cover;
}

.lp-methods__products {
	display: grid;
	grid-template-columns: 136px minmax(0, 1fr);
	align-items: stretch;
	gap: 28px;
	margin-top: 48px;
	padding: 34px 40px 32px;
	background: #103f70;
}

.lp-methods__products-label {
	align-self: center;
	margin: 0;
	font-size: 1.8rem;
	font-weight: 800;
	line-height: 1.55;
	letter-spacing: 0.01em;
	white-space: nowrap;
	color: #ffffff;
}

.lp-methods__products-list {
	min-width: 0;
}

.lp-methods__product+.lp-methods__product {
	margin-top: 27px;
	padding-top: 27px;
	border-top: 1px solid rgba(116, 162, 198, 0.32);
}

.lp-methods__product-name {
	display: grid;
	grid-template-columns: 8px minmax(0, 1fr);
	align-items: start;
	column-gap: 6px;
	margin: 0;
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1.65;
	letter-spacing: 0.006em;
	color: #ffffff;
}

.lp-methods__product-name::before {
	display: block;
	width: 10px;
	height: 10px;
	margin-top: 0.64em;
	content: "";
	background: #ffffff;
}

.lp-methods__product-text {
	margin: 8px 0 0;
	font-size: 1.4rem;
	font-weight: 300;
	line-height: 1.9;
	letter-spacing: 0.004em;
	color: #ffffff;
}

.lp-methods-cta {
	width: calc(100% + (80px * 2));
	background: #061221;
	position: relative;
	margin-inline: -80px;
}

.lp-methods-cta::before {
	content: "";
	display: block;
	width: 100vw;
	height: 659px;
	background-image: url("../images/lp/methods-site.png");
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}

.lp-methods-cta__inner {
	position: relative;
	height: 385px;

}


.lp-methods-cta__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	height: 100%;
	padding-top: 132px;
	text-align: center;
}

.lp-methods-cta__title {
	margin: 0;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.01em;
	color: #ffffff;
}

.lp-page .lp-methods-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 380px;
	min-height: 60px;
	margin-top: 30px;
	padding: 12px 30px 14px;
	border-radius: 999px;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: #0f3460;
	background: #ffffff;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.lp-page .lp-methods-cta__button:hover,

.lp-page .lp-methods-cta__button:focus-visible {
	opacity: 0.9;
	transform: translateY(-2px);
}

.lp-challenges,
.lp-reasons,
.lp-methods__backgroud,
.lp-methods {
	width: calc(100vw - (20px * 2));
	max-width: none;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}

.lp-reasons__inner,
.lp-methods__inner {
	width: 100%;
	max-width: 1000px;
	margin: auto;
	position: relative;
}


/* Solutions -------------------------------------------------------------- */
.lp-solutions {
	width: 100%;
	padding: 120px 20px 0;
	background: #ffffff;
}

.lp-solutions__inner {
	width: min(100%, 1000px);
	margin-inline: auto;
}

.lp-solutions__header {
	display: grid;
	grid-template-columns: 480px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}

.lp-solutions__heading {
	min-width: 0;
}

.lp-solutions__eyebrow {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 800;
	line-height: 1.5;
	letter-spacing: 0.015em;
	color: #073f6b;
}

.lp-solutions__title {
	margin: 7px 0 0;
	font-size: 5.0rem;
	font-weight: 900;
	line-height: 1.18;
	letter-spacing: -0.045em;
	color: #063f6d;
}

.lp-solutions__intro {
	margin: 7px 0 0;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.95;
	letter-spacing: 0.015em;
	color: #4d5964;
}

.lp-solutions__intro span {
	display: block;
}

.lp-solutions__grid {
	display: grid;
	grid-template-columns: repeat(100, minmax(0, 1fr));
	column-gap: 0;
	row-gap: 20px;
	margin-top: 52px;
}

.lp-solutions__card {
	grid-column: 1 / 45;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #dedede;
	border-radius: 6px;
	background: #f8f8f8;
}

.lp-solutions__card--push {
	grid-column: 47 / 101;
}

.lp-solutions__card--pile {
	grid-column: 1 / 33;
}

.lp-solutions__card--caisson {
	grid-column: 35 / 67;
}

.lp-solutions__card--shield {
	grid-column: 69 / 101;
}

.lp-solutions__card-title {
	display: flex;
	align-items: center;
	height: 60px;
	margin: 0;
	padding: 0 19px;
	font-size: 1.8rem;
	font-weight: 800;
	line-height: 1.4;
	letter-spacing: 0.01em;
	color: #ffffff;
	background: #0e4772;
}

.lp-solutions__card-body {
	display: flex;
	flex-direction: column;
	min-height: 183px;
	padding: 20px;
	position: relative;
}

.lp-solutions__card--pile .lp-solutions__card-body,

.lp-solutions__card--caisson .lp-solutions__card-body,

.lp-solutions__card--shield .lp-solutions__card-body {
	min-height: 120px;
	padding-top: 17px;
	padding-bottom: 17px;
}

.lp-solutions__columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
}

.lp-solutions__card--pile .lp-solutions__columns,

.lp-solutions__card--caisson .lp-solutions__columns,

.lp-solutions__card--shield .lp-solutions__columns {
	grid-template-columns: minmax(0, 1fr);
}

.lp-solutions__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.lp-solutions__item {
	display: grid;
	grid-template-columns: 10px minmax(0, 1fr);
	align-items: start;
	column-gap: 11px;
	margin: 0;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.96;
	letter-spacing: 0.006em;
	color: #46515c;
}

.lp-solutions__item::before {
	display: block;
	width: 10px;
	height: 2px;
	margin-top: 0.93em;
	content: "";
	background: #06467a;
}

.lp-solutions__note {
	align-self: flex-end;
	margin: auto 0 0;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.5;
	color: #3F4A55;
	position: absolute;
	bottom: 20px;
	right: 20px;
}

.lp-solutions__closing {
	margin: 30px 0 0;
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.015em;
	text-align: center;
	color: #3F4A55;
}

.lp-solutions__closing span {
	display: block;
}

.lp-cases {
	padding: 120px 0;
	background: #f7f7f7;
}

.lp-cases__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 100px;
}

.lp-cases__title {
	margin: 0;
	font-size: 6.2rem;
	font-weight: 800;
	line-height: 1.18;
	letter-spacing: 0.01em;
	color: #0f4b80;
}

.lp-cases__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px;
	margin-top: 55px;
}

.lp-cases__card {
	min-width: 0;
}

.lp-cases__number {
	margin: 0 0 33px;
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.01em;
	color: #0f4b80;
}

.lp-cases__number::before {
	display: block;
	width: 80px;
	height: 1px;
	margin-bottom: 13px;
	content: "";
	background: #F2F2F2;
}

.lp-cases__figure {
	margin: 0;
}

.lp-cases__image {
	width: 100%;
	aspect-ratio: 480 / 330;
	object-fit: contain;
}

.lp-cases__card-title {
	margin: 28px 0 0;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.42;
	letter-spacing: 0.01em;
	color: #0f4b80;
}

.lp-cases__meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 23px;
}

.lp-cases__type {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 126px;
	height: 39px;
	padding: 0 22px;
	border: 1px solid #c0c6cc;
	border-radius: 999px;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.02em;
	color: #9ba5af;
	background: #eceff2;
}

.lp-cases__location {
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: #65707d;
}

.lp-cases__details {
	margin: 29px 0 0;
	border-top: 1px solid #F5F5F5;
}

.lp-cases__row {
	display: grid;
	grid-template-columns: 160px minmax(0, 1fr);
	border-bottom: 1px solid #F5F5F5;
}

.lp-cases__term,

.lp-cases__description {
	margin: 0;
	padding: 16px 0 16px;
	font-size: 1.6rem;
	line-height: 1.7;
	letter-spacing: 0.02em;
}

.lp-cases__row:nth-of-type(1) .lp-cases__term {
	border-top: 1px solid #0f4b80;
}

.lp-cases__term {
	margin-bottom: -1px;
	padding-right: 20px;
	border-bottom: 1px solid #0f4b80;
	font-weight: 700;
	color: #3F4A55;
}


.lp-cases__description {
	padding-left: 20px;
	font-weight: 400;
	color: #3F4A55;
}

.lp-cases__row--multiline .lp-cases__term,

.lp-cases__row--multiline .lp-cases__description {
	padding-top: 20px;
	padding-bottom: 25px;
}

.lp-cases__description--multiline span {
	display: block;
}

.lp-download {
	background: #e7ecf1;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.lp-download__inner {
	display: grid;
	grid-template-columns: 300px 630px;
	align-items: start;
	column-gap: 70px;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 120px 100px 0;
}

.lp-download__title {
	margin: 40px 0 0;
	font-size: 5rem;
	font-weight: 800;
	line-height: 1.18;
	letter-spacing: 0;
	color: #0f3f6d;
}

.lp-download__title span {
	display: block;
}

.lp-download__form-wrap {
	width: 630px;
	min-height: 1485px;
	margin: 0;
	padding: 41px 40px 68px;
	background: #ffffff;
	box-shadow: 0 1px 12px rgba(15, 52, 96, 0.18);
}

.lp-download__form {
	width: 100%;
	margin: 0;
	padding: 0;
}

.lp-download__field,

.lp-download__fieldset {
	margin: 0 0 31px;
}

.lp-download__fieldset {
	min-width: 0;
	padding: 0;
	border: 0;
}

.lp-download__label {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	margin: 0 0 10px;
	padding: 0;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.01em;
	color: #34414e;
}

.lp-download__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 20px;
	padding: 0 6px;
	border-radius: 2px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
	color: #ffffff;
}

.lp-download__badge--required {
	background: #d71920;
}

.lp-download__badge--optional {
	color: #a4adb6;
	background: #e7ebef;
}

.lp-download__input {
	width: 100%;
	height: 46px;
	padding: 9px 12px;
	border: 0;
	border-radius: 0;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.4;
	color: #33414e;
	background: #f8f8f8;
	outline: none;
}

.lp-download__input:focus {
	box-shadow: 0 0 0 2px rgba(15, 63, 109, 0.18);
}

.lp-download__fieldset--name {
	margin-top: 0;
}

.lp-download__name-row {
	display: grid;
	grid-template-columns: 19px 240px 14px 240px;
	align-items: center;
	gap: 10px;
}

.lp-download__inline-label,

.lp-download__address-label,

.lp-download__postal-mark,

.lp-download__postal-separator {
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.4;
	color: #55616d;
}

.lp-download__fieldset--address {
	margin-bottom: 31px;
}

.lp-download__postal-row {
	display: grid;
	grid-template-columns: 14px 100px 10px 100px 80px;
	align-items: center;
	gap: 10px;
	margin-bottom: 9px;
}

.lp-download__input--postal {
	width: 100px;
}

.lp-download__postal-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 37px;
	margin-left: 9px;
	padding: 0;
	border: 1px solid #e8e8e8;
	border-radius: 999px;
	font-size: 1.1rem;
	font-weight: 400;
	line-height: 1;
	color: #a7a7a7;
	background: #fafafa;
	cursor: pointer;
}

.lp-download__address-row {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr);
	align-items: center;
	margin-top: 9px;
}

.lp-download__address-row:nth-of-type(3) {
	margin-top: 10px;
}

.lp-download__address-label {
	padding-right: 10px;
}

.lp-download__fieldset--products {
	margin-top: 0;
	margin-bottom: 52px;
}

.lp-download__fieldset--products .lp-download__label {
	margin-bottom: 23px;
}

.lp-download__products {
	display: grid;
	row-gap: 13px;
}

.lp-download__product-row {
	display: flex;
	align-items: center;
	column-gap: 24px;
}

.lp-download__check,

.lp-download__privacy-check {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 1.2rem;
	font-weight: 400;
	line-height: 1.4;
	color: #56616c;
	cursor: pointer;
}

.lp-download__checkbox {
	flex: 0 0 auto;
	width: 15px;
	height: 15px;
	margin: 0;
	accent-color: #0f3f6d;
}

.lp-download__privacy {
	text-align: center;
}

.lp-download__privacy-check {
	font-size: 1.25rem;
	font-weight: 700;
}

.lp-download__privacy-check a {
	color: #0e4d85;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.lp-download__privacy-note {
	margin: 22px 0 0;
	font-size: 1.1rem;
	font-weight: 400;
	line-height: 1.6;
	color: #737d86;
}

.lp-download__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 90px;
	margin-top: 43px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	color: #ffffff;
	background: #123f70;
	cursor: pointer;
}

.lp-download__submit:hover,

.lp-download__submit:focus-visible {
	opacity: 0.88;
}

.lp-download__footer {
	padding: 120px 100px 50px;
	background-color: #e7ecf1;
}

.lp-download__footer--container {
	width: 100%;
	max-width: 1200px;
	margin: auto;
	grid-column: 1 / -1;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
}

.lp-download__footer-logo-link {
	display: block;
	width: 70px;
}

.lp-download__footer-logo {
	width: 70px;
	height: auto;
}

.lp-download__copyright {
	margin: 0 0 3px;
	font-size: 1.05rem;
	font-weight: 400;
	line-height: 1.4;
	color: #939ca5;
}

/* --------------------------------------------------------------------------
 * 1200px design refinement
 * -------------------------------------------------------------------------- */
:root {
	--lp-color-navy: #0f3460;


	--lp-color-dark-card: #19293b;


	--lp-color-white: #ffffff;




	--lp-color-required: #d50f0f;

}

/* --------------------------------------------------------------------------
 * Main background artwork
 * -------------------------------------------------------------------------- */
.lp-main::before {
	content: "";
	position: absolute;
	z-index: -1;

	/*
	 * 1200px時は-317px。
	 * 1200px未満では.lp-mainの幅に比例して縮小する。
	 */
	top: max(-317px, -26.416667cqw);
	left: 50%;

	/*
	 * 1200px時は3000px。
	 * 1200px未満では.lp-mainの2.5倍を維持して縮小する。
	 */
	width: min(3000px, 250cqw);
	aspect-ratio: 6000 / 5874;

	background-image: url("../images/lp/bg_main.png");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 100% auto;

	/*
	 * 元画像5073px地点をフェード終了位置にし、
	 * 1200px時はその手前約200pxから透過を開始する。
	 */
	-webkit-mask-image: linear-gradient(to bottom,
			#000 0%,
			#000 79.553966%,
			transparent 86.363636%,
			transparent 100%);
	mask-image: linear-gradient(to bottom,
			#000 0%,
			#000 79.553966%,
			transparent 86.363636%,
			transparent 100%);

	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center top;
	mask-position: center top;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;

	transform: translateX(-50%);
	pointer-events: none;
}

@media (min-width: 1100px) {
	.lp-mv__canvas {
		margin-inline: auto;
	}

	.lp-challenges {
		height: 704px;
	}

	.lp-methods {
		padding: 122px 80px 0;
	}

	.lp-methods__cards {
		row-gap: 40px;
		margin-top: 80px;
	}

	.lp-methods__card {
		padding-top: 20px;
		background: var(--lp-color-dark-card);
	}

	.lp-methods__card--push {
		height: 958px;
		min-height: 0;
	}

	.lp-methods__card--pile {
		height: 828px;
		min-height: 0;
		margin-top: 10px;
	}


	.lp-methods__body {
		margin-top: 27px;
	}

	.lp-methods__products {
		margin-top: 50px;
		padding-top: 30px;
		padding-bottom: 30px;
		background: var(--lp-color-navy);
	}

	.lp-methods__product+.lp-methods__product {
		margin-top: 30px;
		padding-top: 30px;
	}

	.lp-methods__product-text {
		margin-top: 11px;
		line-height: 1.68;
	}


	.lp-cases {
		background: var(--lp-color-white);
	}

	.lp-cases__title {
		font-size: 5rem;
		line-height: 1.2;
	}

	.lp-cases__grid {
		margin-top: 52px;
	}

	.lp-cases__number {
		margin-bottom: 32px;
		font-size: 1.2rem;
		line-height: 1;
	}

	.lp-cases__card-title {
		margin-top: 30px;
		font-size: 2.6rem;
		line-height: 1.42;
	}

	.lp-cases__meta {
		margin-top: 17px;
	}

	.lp-cases__details {
		margin-top: 31px;
	}

	.lp-cases__term,

	.lp-cases__description {
		padding-top: 15px;
		padding-bottom: 15px;
		font-size: 1.4rem;
		line-height: 1.75;
	}

	.lp-cases__row--multiline .lp-cases__term,

	.lp-cases__row--multiline .lp-cases__description {
		padding-top: 14px;
		padding-bottom: 14px;
	}

	.lp-download__badge--required {
		background: var(--lp-color-required);
	}

	.lp-download {
		background: linear-gradient(170deg,
				#f5f7fa 0%,
				#e6ebf0 100%);
	}
}

@media (max-width: 1099px) {
	.lp-mv {
		height: auto;
		padding: 22px 18px 0;
	}

	.lp-mv__canvas {
		display: block;
		width: 100%;
		height: auto;
		padding: 0;
	}


	.lp-mv__header,
	.lp-mv__stage,
	.lp-mv__content,
	.lp-mv__cta {
		position: relative;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
	}

	.lp-mv__header {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		width: 100%;
		transform: unset;
	}

	.lp-mv__logo-link,

	.lp-mv__header-button {
		position: relative;
		top: auto;
		right: auto;
		left: auto;
	}

	.lp-mv__logo-link,

	.lp-mv__logo {
		width: 70px;
		height: 51px;
	}

	.lp-mv__header-button {
		width: auto;
		height: 48px;
		padding: 0 20px;
		font-size: 1.3rem;
	}

	.lp-mv__stage {
		display: flex;
		flex-direction: column;
		min-height: 0;
	}

	.lp-mv__content {
		width: 100%;
		margin-top: 42px;
		margin-left: 0;
	}

	.lp-mv__title-intro,
	.lp-mv__title-main,
	.lp-mv__title-sub {
		width: auto;
		white-space: normal;
		transform: none;
		/*text-shadow: 1px 1px 5px #fff, 1px -1px 5px #fff, -1px 1px 5px #fff, -1px -1px 5px #FFF;
		color: #1e527e;*/
	}

	.lp-mv__title-intro {
		font-size: clamp(2.3rem, 6vw, 4.3rem);
	}

	.lp-mv__title-main {
		font-size: clamp(5.2rem, 8.5vw, 7.2rem);
		transform: translate(-4vw, 6px);
	}

	.lp-mv__title-particle--position {
		left: -4%;
	}

	.lp-mv__title-particle--de {
		font-size: 5vw;
	}

	.lp-mv__title-sub {
		font-size: clamp(3rem, 7vw, 5rem);
		text-shadow: none;
		letter-spacing: 0px;
	}

	.lp-mv__lead {
		font-size: 1.5rem;
		text-shadow: 1px 1px 3px #fff, -1px 1px 3px #fff, 1px -1px 3px #fff, -1px -1px 3px #fff;
	}

	.lp-mv__lead-line {
		white-space: normal;
	}

	/* .lp-mv__badges {
		gap: 0;
		justify-self: center;
		margin: auto;
		width: 100%;
		flex-wrap: wrap;
	}

	.lp-mv__badge {
		flex: none;
		width: calc(100% / 3);
		height: auto;
		aspect-ratio: 1;
		margin: auto;
	} */


	.lp-mv__badge-text {
		font-size: clamp(1rem, 3vw, 1.55rem);
	}

	.lp-mv__visual-wrap {
		position: absolute;
		top: -13%;
		right: -33%;
		left: auto;
		width: 100%;
		height: 100%;
		background-size: contain;
	}

	/* .lp-mv__visual-wrap {
		width: 145%;
		height: auto;
		aspect-ratio: 1891 / 1668;
		margin: -38px -52% -20px auto;
	} */

	.lp-mv__cta {
		width: 100%;
		height: auto;
		padding: 28px 18px 30px;
	}

	.lp-mv__cta-title {
		font-size: 1.8rem;
	}

	.lp-mv__cta-button {
		width: min(100%, 381px);
	}

	.lp-solution {
		min-height: auto;
		padding: 30px 20px 72px;
	}

	.lp-solution__inner {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 48px;
		width: min(100%, 760px);
		display: block;
	}

	.lp-solution__gallery {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 20px;
		height: auto;
		padding-top: 0;
		/* display: none; */
	}

	.lp-solution__figure {
		position: relative;
		top: auto;
		left: auto;
		width: auto;
	}

	.lp-solution__figure--site {
		grid-column: 1 / -1;
		height: auto;
		aspect-ratio: 1078 / 828;
	}

	.lp-solution__figure--soil,

	.lp-solution__figure--chemical {
		height: auto;
		aspect-ratio: 1 / 1;
	}

	.lp-solution__figure--chemical {
		aspect-ratio: 230 / 302;
	}

	.lp-solution__content {
		padding-top: 30px;
	}

	.lp-solution__title-lead,

	.lp-solution__title-main {
		width: auto;
		white-space: normal;
	}

	.lp-solution__title-lead {
		font-size: clamp(6vw, 6.5vw, 4rem);
	}

	.lp-solution__title-main {
		font-size: clamp(3.8rem, 9vw, 5.3rem);
	}

	.lp-solution__description {
		font-size: 1.5rem;
		line-height: 2.15;
	}

	.lp-solution__paragraph span {
		display: inline;
		white-space: normal;
	}

	.lp-solution__paragraph span::after {
		content: " ";
	}

	.lp-solution__closing {
		position: relative;
		left: auto;
		bottom: auto;
		width: min(100%, 760px);
		margin: 58px auto 0;
		transform: none;
		font-size: clamp(1.7rem, 3vw, 2.1rem);
	}

	.lp-technology {
		height: auto;
		padding: 64px 20px 72px;
	}

	.lp-technology__background-text {
		top: 50%;
		width: 100vw;
		/* height: 50%; */
		/* background-repeat: no-repeat; */
	}

	.lp-technology__inner {
		width: min(100%, 920px);
		height: auto;
	}

	.lp-technology__title,

	.lp-technology__methods,

	.lp-technology__lead,

	.lp-page a.lp-technology__button,

	.lp-page a.lp-technology__button:visited {
		position: relative;
		top: auto;
		left: auto;
	}

	.lp-technology__title {
		font-size: clamp(3.2rem, 7vw, 5.2rem);
		line-height: 1.3;
	}

	.lp-technology__title-line--first {
		transform: none;
	}

	.lp-technology__title-line--second {
		margin-top: 0;
		padding-left: 0;
	}

	.lp-technology__methods {
		grid-template-columns: repeat(3, 151px);
		justify-content: center;
		gap: 16px;
		margin-top: 62px;
	}

	.lp-technology__lead {
		margin-top: 68px;
		font-size: clamp(2vw, 3vw, 2rem);
		line-height: 1.7;
	}

	.lp-page a.lp-technology__button,

	.lp-page a.lp-technology__button:visited {
		width: min(100%, 380px);
		margin: 30px auto 0;
	}

	.lp-challenges {
		width: calc(100% - 32px);
		height: auto;
		min-height: 660px;
		padding: 112px 24px 0px;
	}

	.lp-challenges__background {
		width: 100%;
		min-width: 980px;
		left: 50%;
		transform: translateX(-50%);

		height: 60%;
		min-width: unset;
		transform: unset;
		background-size: cover;
		left: 0;
	}

	.lp-challenges__body {
		display: flex;
		flex-direction: column;
		align-items: center;
		height: auto;
	}

	.lp-challenges__heading,

	.lp-challenges__panel,

	.lp-challenges__closing {
		position: relative;
		top: auto;
		left: auto;
	}

	.lp-challenges__title {
		font-size: clamp(3.6rem, 6vw, 5.1rem);
	}

	.lp-challenges__panel {
		width: min(100%, 800px);
		margin-top: 48px;
		transform: none;
	}

	.lp-challenges__closing {
		margin-top: 50px;
		font-size: clamp(1vw, 3.3vw, 2.25rem);
	}

	.lp-reasons {
		width: calc(100% - 32px);
		height: auto;
		padding: 76px 44px 0;
	}

	.lp-reasons__heading {
		position: relative;
		inset: auto;
		display: block;
	}

	.lp-reasons__background::before,
	.lp-reasons__inner::before {
		width: 100%;
	}

	.lp-reasons__eyebrow,

	.lp-reasons__title,

	.lp-reasons__count {
		position: relative;
		top: auto;
		left: auto;
		right: auto;
	}

	.lp-reasons__title {
		width: 100%;
	}


	.lp-reasons__eyebrow {
		justify-self: start;
	}

	.lp-reasons__count {
		justify-self: end;
	}

	.lp-reasons__list {
		display: grid;
		gap: 58px;
		height: auto;
		margin-top: 80px;
	}

	.lp-reasons__item {
		position: relative;
		top: auto;
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(50%, 50%);
		align-items: center;
		gap: 48px;
		height: auto;
		min-height: 340px;
	}

	.lp-reasons__index,

	.lp-reasons__copy,
	.lp-reasons__item-title,
	.lp-reasons__description,
	.lp-reasons__figure {
		position: relative;
		top: auto;
		left: auto;
	}

	.lp-reasons__index {
		position: relative;
		top: auto;
		left: auto;
	}

	.lp-reasons__copy {
		align-self: center;
		padding: 0 0 30px;
	}

	.lp-reasons__item-title {
		font-size: clamp(2.4rem, 3.4vw, 3rem);
	}

	.lp-reasons__description {
		margin-top: 26px;
		white-space: normal;
	}

	.lp-reasons__figure {
		grid-column: 2;
		grid-row: 1;
		width: 100%;
		height: auto;
		aspect-ratio: 23 / 17;
	}

	.lp-reasons__image {
		width: 100%;
		height: 100%;
	}

	.lp-methods {
		width: calc(100% - 32px);
		padding: 70px 48px 0;
	}

	.lp-methods__title {
		font-size: clamp(3.6rem, 5vw, 4.8rem);
	}

	.lp-methods__card {
		min-height: 0;
		padding: 44px 40px;
	}

	.lp-methods__card-title {
		font-size: clamp(2.6rem, 3.4vw, 3.2rem);
	}

	.lp-methods__body {
		grid-template-columns: minmax(0, 1fr) minmax(210px, 240px);
		gap: 34px;
	}

	.lp-methods__products {
		grid-template-columns: 122px minmax(0, 1fr);
		padding-inline: 32px;
	}

	.lp-methods-cta {
		width: 100%;
		padding-bottom: 0;
		margin-inline: unset;
	}

	.lp-methods-cta::before {
		width: 100vw;
		left: 50%;
		transform: translateX(-50%);
		height: 400px;
		background-size: 150%;
		background-position: center bottom;
	}

	.lp-methods-cta__inner {
		height: 330px;
		border-radius: unset;
	}

	.lp-methods-cta__content {
		padding: 86px 0 0;
	}

	.lp-methods-cta__title {
		font-size: 2.2rem;
	}

	.lp-page .lp-methods-cta__button {
		width: min(100%, 360px);
		min-height: 58px;
		font-size: 1.5rem;
	}

	.lp-solutions {
		padding: 68px 32px 64px;
	}

	.lp-solutions__header {
		grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	}

	.lp-solutions__title {
		font-size: clamp(4.2rem, 5vw, 5.2rem);
	}

	.lp-cases {
		padding: 64px 0 88px;
	}

	.lp-cases__inner {
		width: 100%;
		padding: 0 32px;
	}

	.lp-cases__title {
		font-size: clamp(4rem, 6vw, 5.2rem);
	}

	.lp-cases__grid {
		gap: 32px;
	}

	.lp-cases__row {
		grid-template-columns: 145px minmax(0, 1fr);
	}

	.lp-download__inner {
		display: block;
		width: 100%;
		min-height: auto;
		padding: 76px 32px 50px;
	}

	.lp-download__title {
		position: static;
		margin: 0 auto 42px;
		font-size: clamp(4rem, 6vw, 5rem);
		text-align: center;
	}

	.lp-download__form-wrap {
		width: min(100%, 630px);
		min-height: 0;
		margin: 0 auto;
	}

	.lp-download__footer {
		position: static;
	}
}

@media (max-width: 767px) {
	.sp-only {
		display: block!important;
	}

	.lp-mv__visual-wrap {
		right: -61%;
		width: 100%;
	}

	.lp-mv__badges {
		gap: 0;
		justify-self: center;
		margin: auto;
		width: 100%;
		flex-wrap: wrap;
	}

	.lp-mv__badge {
		flex: none;
		width: calc(100% / 3);
		height: auto;
		aspect-ratio: 1;
		margin: auto;
	}

	.lp-mv__title-main {
		font-size: 9vw;
		transform: translate(-5vw, 6px);
	}

	.lp-solution {
		padding: 30px 18px 56px;
	}

	.lp-solution__gallery {
		gap: 12px;
	}

	.lp-solution__description {
		margin-top: 34px;
		/* font-size: 1.4rem; */
		line-height: 2;
	}

	.lp-solution__paragraph+.lp-solution__paragraph {
		margin-top: 28px;
	}

	.lp-solution__features {
		margin-top: 34px;
	}

	.lp-solution__feature {
		grid-template-columns: 22px 50px minmax(0, 1fr);
		column-gap: 9px;
		min-height: 43px;
	}

	.lp-solution__feature::before {
		width: 22px;
	}

	.lp-solution__feature-term {
		font-size: 2rem;
	}

	.lp-solution__feature-description {
		font-size: 1.4rem;
	}

	.lp-solution__closing span {
		display: inline;
	}

	.lp-challenges {
		width: 100%;
		margin: 0;
		border-radius: unset;
	}

	.lp-challenges__background {
		/* min-width: 900px;
		left: 38%; */
	}

	.lp-challenges__eyebrow {
		font-size: 1.8rem;
	}

	.lp-challenges__title {
		margin-top: 7px;
		font-size: clamp(2.8rem, 8vw, 4rem);
		line-height: 1.4;
	}

	.lp-challenges__panel {
		height: auto;
		min-height: 0;
		margin-top: 38px;
		padding: 30px 20px;
	}

	.lp-challenges__list {
		gap: 22px;
		width: 100%;
	}

	.lp-challenges__item {
		grid-template-columns: 22px minmax(0, 1fr);
		align-items: start;
		column-gap: 10px;
	}

	.lp-challenges__item::before {
		width: 20px;
		margin-top: 2px;
	}

	.lp-challenges__item-text {
		font-size: 1.5rem;
		line-height: 1.8;
		white-space: normal;
	}

	.lp-challenges__closing {
		margin-top: 38px;
		line-height: 1.7;
		font-size: 1.7rem;
	}

	.lp-reasons {
		width: 100%;
		padding: 60px 20px 70px;
	}

	.lp-reasons__heading {
		display: block;
	}

	.lp-reasons__eyebrow {
		font-size: 1.5rem;
	}

	.lp-reasons__count {
		font-size: 2rem;
	}

	.lp-reasons__title {
		order: -1;
		flex: 0 0 100%;
		width: min(100%, 530px);
		margin-inline: auto;
	}

	.lp-reasons__list {
		gap: 70px;
		margin-top: 0;
	}

	.lp-reasons__item {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 28px;
		min-height: 0;
		padding-top: 0;
	}

	.lp-reasons__figure {
		order: 1;
		width: 100%;
	}

	.lp-reasons__copy {
		order: 2;
		padding: 0;
	}

	.lp-reasons__item-title {
		font-size: 2.5rem;
	}

	.lp-reasons__description {
		margin-top: 18px;
		font-size: 1.5rem;
		line-height: 1.8;
	}

	.lp-methods {
		width: 100%;
		padding: 56px 18px 0;
		border-radius: unset;
	}

	.lp-methods__title {
		font-size: clamp(6vw, 8vw, 4rem);
		line-height: 1.42;
	}

	.lp-methods__lead {
		/* font-size: 1.4rem; */
		line-height: 1.8;
	}

	.lp-methods__cards {
		gap: 28px;
		margin-top: 54px;
	}

	.lp-methods__card {
		padding: 28px 20px 30px;
	}

	.lp-methods__card-header {
		grid-template-columns: 66px minmax(0, 1fr);
		gap: 12px;
		min-height: 66px;
	}

	.lp-methods__method-mark {
		width: 66px;
		height: 78px;
		background-size: 66px auto;
	}

	.lp-methods__method-name {
		font-size: 1.3rem;
	}

	.lp-methods__card-title {
		font-size: 2.3rem;
		line-height: 1.45;
	}

	.lp-methods__card-subtitle {
		font-size: 1.35rem;
	}

	.lp-methods__body {
		display: flex;
		flex-direction: column;
		gap: 26px;
		margin-top: 30px;
	}

	.lp-methods__figure {
		order: -1;
		width: 100%;
		height: auto;
		aspect-ratio: 6 / 7;
	}

	.lp-methods__image {
		width: 100%;
		height: 100%;
	}

	.lp-methods__problem-title,

	.lp-methods__solution-title {
		font-size: 1.6rem;
	}

	.lp-methods__problem-list li,

	.lp-methods__solution-text,

	.lp-methods__product-text {
		font-size: 1.35rem;
	}

	.lp-methods__products {
		display: block;
		margin-top: 34px;
		padding: 26px 20px;
	}

	.lp-methods__products-label {
		margin-bottom: 22px;
		font-size: 1.7rem;
	}

	.lp-methods__product-name {
		font-size: 1.45rem;
	}

	.lp-solutions {
		padding: 52px 18px 48px;
	}

	.lp-solutions__header {
		display: block;
	}

	.lp-solutions__eyebrow {
		font-size: 1.55rem;
	}

	.lp-solutions__title {
		font-size: clamp(3.5rem, 10vw, 4.6rem);
	}

	.lp-solutions__intro {
		margin-top: 24px;
		/* font-size: 1.35rem; */
		line-height: 1.9;
	}

	.lp-solutions__grid {
		display: block;
		margin-top: 38px;
	}

	.lp-solutions__card+.lp-solutions__card {
		margin-top: 16px;
	}

	.lp-solutions__card-title {
		height: 54px;
		font-size: 1.8rem;
	}

	.lp-solutions__card-body,

	.lp-solutions__card--pile .lp-solutions__card-body,

	.lp-solutions__card--caisson .lp-solutions__card-body,

	.lp-solutions__card--shield .lp-solutions__card-body {
		min-height: 0;
		padding: 18px;
	}

	.lp-solutions__columns {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}

	.lp-solutions__item {
		font-size: 1.45rem;
	}

	.lp-solutions__note {
		position: static;
		margin-top: 8px;
		text-align: right;
	}

	.lp-solutions__closing {
		margin-top: 28px;
		font-size: 1.75rem;
	}

	.lp-cases {
		padding: 52px 0 64px;
	}

	.lp-cases__inner {
		padding: 0 18px;
	}

	.lp-cases__title {
		font-size: clamp(3.2rem, 9.5vw, 4.4rem);
	}

	.lp-cases__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 44px;
		margin-top: 36px;
	}

	.lp-cases__number {
		margin-bottom: 24px;
		font-size: 1.65rem;
	}

	.lp-cases__card-title {
		margin-top: 20px;
		font-size: 2.2rem;
	}

	.lp-cases__meta {
		flex-wrap: wrap;
		gap: 14px 18px;
		margin-top: 18px;
	}

	.lp-cases__type {
		min-width: 118px;
		height: 36px;
		font-size: 1.4rem;
	}

	.lp-cases__location,

	.lp-cases__term,

	.lp-cases__description {
		font-size: 1.45rem;
	}

	.lp-cases__row {
		grid-template-columns: 126px minmax(0, 1fr);
	}

	.lp-cases__term {
		padding-right: 12px;
	}


	.lp-cases__description {
		padding-left: 14px;
	}

	.lp-download__inner {
		padding: 52px 18px 36px;
	}

	.lp-download__title {
		margin-bottom: 30px;
		font-size: clamp(3.4rem, 10vw, 4.4rem);
	}

	.lp-download__form-wrap {
		padding: 30px 20px 38px;
	}

	.lp-download__name-row {
		grid-template-columns: 18px minmax(0, 1fr);
	}

	.lp-download__name-row .lp-download__inline-label:nth-of-type(2) {
		margin-top: 8px;
	}

	.lp-download__postal-row {
		grid-template-columns: 18px minmax(0, 1fr) 12px minmax(0, 1fr);
	}

	.lp-download__input--postal {
		width: 100%;
	}

	.lp-download__postal-button {
		grid-column: 2 / -1;
		margin: 4px 0 0;
	}

	.lp-download__address-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 5px;
	}

	.lp-download__products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 14px;
	}

	.lp-download__product-row {
		display: contents;
	}

	.lp-download__check {
		align-items: flex-start;
	}

	.lp-download__submit {
		height: 62px;
	}

	.lp-download__footer {
		padding: 50px;
	}
}

@media (max-width: 560px) {
	.lp-technology {
		padding: 48px 16px 56px;
	}

	.lp-technology__title {
		font-size: clamp(2.8rem, 9vw, 4rem);
		line-height: 1.35;
	}

	.lp-technology__methods {
		grid-template-columns: repeat(2, minmax(0, 151px));
		gap: 12px;
		margin-top: 42px;
	}

	.lp-technology__method {
		width: 100%;
	}

	.lp-technology__lead {
		margin-top: 48px;
		font-size: 1.6rem;
		line-height: 1.8;
	}

	.lp-technology__lead span {
		/* display: inline; */
	}
}

@media (min-width: 768px) {
	.sp-only {
		display: none !important;
	}
}