@charset 'UTF-8';
@-webkit-keyframes uyon-glow {
	0% {
		box-shadow: 0 0 0.6rem 0.2rem rgba(87, 191, 255, 0.7);
	}

	100% {
		box-shadow: 0 0 1.2rem 1.6rem rgba(87, 191, 255, 0);
	}
}

@keyframes uyon-glow {
	0% {
		box-shadow: 0 0 0.6rem 0.2rem rgba(87, 191, 255, 0.7);
	}

	100% {
		box-shadow: 0 0 1.2rem 1.6rem rgba(87, 191, 255, 0);
	}
}

@-webkit-keyframes uyon-glow-accent {
	0% {
		box-shadow: 0 0 0.6rem 0.2rem rgba(255, 255, 0, 0.7);
	}

	100% {
		box-shadow: 0 0 1.2rem 1.6rem rgba(255, 255, 0, 0);
	}
}

@keyframes uyon-glow-accent {
	0% {
		box-shadow: 0 0 0.6rem 0.2rem rgba(255, 255, 0, 0.7);
	}

	100% {
		box-shadow: 0 0 1.2rem 1.6rem rgba(255, 255, 0, 0);
	}
}

@-webkit-keyframes uyon-glow-gray {
	0% {
		box-shadow: 0 0 0.6rem 0.2rem rgba(92, 92, 102, 0.7);
	}

	100% {
		box-shadow: 0 0 1.2rem 1.6rem rgba(92, 92, 102, 0);
	}
}

@keyframes uyon-glow-gray {
	0% {
		box-shadow: 0 0 0.6rem 0.2rem rgba(92, 92, 102, 0.7);
	}

	100% {
		box-shadow: 0 0 1.2rem 1.6rem rgba(92, 92, 102, 0);
	}
}

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

/*! normalize.css v3.0.0 | MIT License | git.io/normalize */

html {
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	font-family: sans-serif;
}

body {
	margin: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
	display: block;
}

audio,
canvas,
progress,
video {
	display: inline-block;
	vertical-align: baseline;
}

audio:not([controls]) {
	display: none;
	height: 0;
}

[hidden],
template {
	display: none;
}

a {
	background-color: transparent;
}

a:active,
a:hover {
	outline: 0;
}

abbr[title] {
	border-bottom: 1px dotted;
}

b,
strong {
	font-weight: bold;
}

dfn {
	font-style: italic;
}

h1 {
	margin: 0.67em 0;
	font-size: 2em;
}

mark {
	background: #ff0;
	color: #000;
}

small {
	font-size: 80%;
}

sub,
sup {
	position: relative;
	font-size: 75%;
	line-height: 0;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

img {
	border: 0;
}

svg:not(:root) {
	overflow: hidden;
}

figure {
	margin: 1em 40px;
}

hr {
	height: 0;
}

pre {
	overflow: auto;
}

code,
kbd,
pre,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
	margin: 0;
	color: inherit;
	font: inherit;
}

button {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

button,
html input[type=button],
input[type=reset],
input[type=submit] {
	cursor: pointer;
	-webkit-appearance: button;
}

button[disabled],
html input[disabled] {
	cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	padding: 0;
	border: 0;
}

input {
	line-height: normal;
}

input[type=checkbox],
input[type=radio] {
	box-sizing: border-box;
	padding: 0;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
	height: auto;
}

input[type=search] {
	-webkit-appearance: textfield;
}

input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
	-webkit-appearance: none;
}

fieldset {
	margin: 0 2px;
	padding: 0.35em 0.625em 0.75em;
	border: 1px solid #c0c0c0;
}

legend {
	padding: 0;
	border: 0;
}

textarea {
	overflow: auto;
}

optgroup {
	font-weight: bold;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

td,
th {
	padding: 0;
}

/* -----------------------------------------------------
 * font
 * -------------------------------------------------- */

/* -----------------------------------------------------
 * Init
 * -------------------------------------------------- */

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

/* normalize overwrite */

html {
	position: relative;
	min-height: 100%;
	background-color: #1a1a17;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 62.5%;
}

body {
	height: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	color: #1a1a1a;
	font-size: 1.6rem;
	line-height: 1.5;
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: unset;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
}

ul,
ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

figure {
	margin: 0;
}

picture {
	display: block;
}

h1 img,
figure img,
picture img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

a {
	color: #1a1a1a;
	text-decoration: none;
}

input,
select,
textarea,
button {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none transparent;
	background-clip: padding-box;
	color: inherit;
	font-size: inherit;
	vertical-align: middle;
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
}

input::-ms-clear,
select::-ms-clear,
textarea::-ms-clear,
button::-ms-clear {
	display: none;
}

input::-ms-reveal,
select::-ms-reveal,
textarea::-ms-reveal,
button::-ms-reveal {
	display: none;
}

input::-ms-expand,
select::-ms-expand,
textarea::-ms-expand,
button::-ms-expand {
	display: none;
}

em {
	font-weight: 700;
	font-style: normal;
}

.skip-link {
	position: absolute;
	z-index: 100;
	top: -40px;
	left: 0;
	padding: 8px;
	background: #000;
	color: #fff;
	text-decoration: none;
}

.skip-link:focus {
	top: 0;
}

.sr-only {
	position: absolute;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	white-space: nowrap;
}

/* =====================================================
* Modules
* ================================================== */

/* -----------------------------------------------------
 * vendor: Lenis（慣性スクロール）
 * node_modules/lenis@1.3.26 の dist/lenis.css をそのまま取り込む。
 * 更新時は貼り直すこと。手を入れない（このLPでの上書きは js/_js-lp-scroll.scss 側）。
 * -------------------------------------------------- */

html.lenis,
html.lenis body {
	height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
	overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
	-ms-scroll-chaining: none;
	overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
	pointer-events: none;
}

.lenis.lenis-autoToggle {
	transition-duration: 1ms;
	transition-property: overflow;
	transition-behavior: allow-discrete;
}

/* -----------------------------------------------------
 * vendor: Swiper（core + effect-fade）
 * node_modules/swiper@12.0.2 の swiper.css / modules/effect-fade.css をそのまま取り込む。
 * 本体サイトは libs.css で全部入りを読むが、LPは1枚完結なので使う分だけコピーする。
 * pagination のCSSは取り込まない（インジケータは c-lp-indicator で自前に組むため）。
 * 更新時は上記2ファイルを貼り直すこと。手を入れない。
 * -------------------------------------------------- */

/**
 * Swiper 12.0.2
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2025 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: September 18, 2025
 */

:root {
	--swiper-theme-color: #007aff;
  /*
  --swiper-preloader-color: var(--swiper-theme-color);
  --swiper-wrapper-transition-timing-function: initial;
  */;
}

:host {
	display: block;
	position: relative;
	z-index: 1;
	margin-right: auto;
	margin-left: auto;
}

.swiper {
	display: block;
	position: relative;
  /* Fix of Webkit flickering */
	z-index: 1;
	overflow: hidden;
	list-style: none;
	margin-right: auto;
	margin-left: auto;
	padding: 0;
}

.swiper-vertical > .swiper-wrapper {
	flex-direction: column;
}

.swiper-wrapper {
	display: flex;
	position: relative;
	z-index: 1;
	box-sizing: content-box;
	width: 100%;
	height: 100%;
	transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
	transition-property: -webkit-transform;
	transition-property: transform;
	transition-property: transform, -webkit-transform;
}

.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
	-webkit-transform: translate3d(0px, 0, 0);
	transform: translate3d(0px, 0, 0);
}

.swiper-horizontal {
	touch-action: pan-y;
}

.swiper-vertical {
	touch-action: pan-x;
}

.swiper-slide {
	display: block;
	position: relative;
	flex-shrink: 0;
	width: 100%;
	height: 100%;
	transition-property: -webkit-transform;
	transition-property: transform;
	transition-property: transform, -webkit-transform;
}

.swiper-slide-invisible-blank {
	visibility: hidden;
}

/* Auto Height */

.swiper-autoheight,
.swiper-autoheight .swiper-slide {
	height: auto;
}

.swiper-autoheight .swiper-wrapper {
	align-items: flex-start;
	transition-property: height, -webkit-transform;
	transition-property: transform, height;
	transition-property: transform, height, -webkit-transform;
}

.swiper-backface-hidden .swiper-slide {
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

/* 3D Effects */

.swiper-3d.swiper-css-mode .swiper-wrapper {
	-webkit-perspective: 1200px;
	perspective: 1200px;
}

.swiper-3d .swiper-wrapper {
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
}

.swiper-3d {
	-webkit-perspective: 1200px;
	perspective: 1200px;
}

.swiper-3d .swiper-slide,
.swiper-3d .swiper-cube-shadow {
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
}

/* CSS Mode */

.swiper-css-mode > .swiper-wrapper {
	overflow: auto;
	scrollbar-width: none;
  /* For Firefox */
	-ms-overflow-style: none;
  /* For Internet Explorer and Edge */;
}

.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
	display: none;
}

.swiper-css-mode > .swiper-wrapper > .swiper-slide {
	scroll-snap-align: start start;
}

.swiper-css-mode.swiper-horizontal > .swiper-wrapper {
	-webkit-scroll-snap-type: x mandatory;
	-ms-scroll-snap-type: x mandatory;
	scroll-snap-type: x mandatory;
}

.swiper-css-mode.swiper-vertical > .swiper-wrapper {
	-webkit-scroll-snap-type: y mandatory;
	-ms-scroll-snap-type: y mandatory;
	scroll-snap-type: y mandatory;
}

.swiper-css-mode.swiper-free-mode > .swiper-wrapper {
	-webkit-scroll-snap-type: none;
	-ms-scroll-snap-type: none;
	scroll-snap-type: none;
}

.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {
	scroll-snap-align: none;
}

.swiper-css-mode.swiper-centered > .swiper-wrapper::before {
	content: '';
	flex-shrink: 0;
	order: 9999;
}

.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {
	scroll-snap-align: center center;
	scroll-snap-stop: always;
}

.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {
	-webkit-margin-start: var(--swiper-centered-offset-before);
	margin-inline-start: var(--swiper-centered-offset-before);
}

.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
	width: var(--swiper-centered-offset-after);
	height: 100%;
	min-height: 1px;
}

.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
	-webkit-margin-before: var(--swiper-centered-offset-before);
	margin-block-start: var(--swiper-centered-offset-before);
}

.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before {
	width: 100%;
	min-width: 1px;
	height: var(--swiper-centered-offset-after);
}

/* Slide styles start */

/* 3D Shadows */

.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom {
	position: absolute;
	z-index: 10;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.swiper-3d .swiper-slide-shadow {
	background: rgba(0, 0, 0, 0.15);
}

.swiper-3d .swiper-slide-shadow-left {
	background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-right {
	background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-top {
	background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-bottom {
	background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-lazy-preloader {
	position: absolute;
	z-index: 10;
	top: 50%;
	left: 50%;
	box-sizing: border-box;
	width: 42px;
	height: 42px;
	margin-top: -21px;
	margin-left: -21px;
	border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
	border-top-color: transparent;
	border-radius: 50%;
	-webkit-transform-origin: 50%;
	transform-origin: 50%;
}

.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,
.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {
	-webkit-animation: swiper-preloader-spin 1s infinite linear;
	animation: swiper-preloader-spin 1s infinite linear;
}

.swiper-lazy-preloader-white {
	--swiper-preloader-color: #fff;
}

.swiper-lazy-preloader-black {
	--swiper-preloader-color: #000;
}

@-webkit-keyframes swiper-preloader-spin {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}

	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

@keyframes swiper-preloader-spin {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}

	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

/* Slide styles end */

.swiper-fade.swiper-free-mode .swiper-slide {
	transition-timing-function: ease-out;
}

.swiper-fade .swiper-slide {
	transition-property: opacity;
	pointer-events: none;
}

.swiper-fade .swiper-slide .swiper-slide {
	pointer-events: none;
}

.swiper-fade .swiper-slide-active {
	pointer-events: auto;
}

.swiper-fade .swiper-slide-active .swiper-slide-active {
	pointer-events: auto;
}

/* -----------------------------------------------------
 * layout: LPの土台
 * ダーク地＋白文字。背景の光（canvas）はこの上に敷き、コンテンツはさらに上へ重ねる。
 * -------------------------------------------------- */

.is-lp {
	background-color: #1a1a17;
	color: #fff;
}

.l-lp {
	position: relative;
	overflow-x: clip;
	--lp-header-h: 7.2rem;
	--lp-footer-h: 19.9rem;
}

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

.l-lp-band {
	position: relative;
}

.l-lp-band.is-top {
	padding-bottom: 4rem;
}

.l-lp-band.is-bottom {
	position: relative;
}

/* -----------------------------------------------------
 * layout: LPヘッダー（ロゴ＋CTAボタン）
 * 本体サイトのグロナビは持たない。背景は敷かず、KVの背景をそのまま見せる。
 * PCのボタンは矢印アイコン付き、SPは文字のみ（デザイン準拠）。
 * -------------------------------------------------- */

.l-lp-header {
	position: relative;
	z-index: 2;
}

.l-lp-header-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.6rem;
	gap: 1.6rem;
}

.l-lp-header-inner .logo {
	margin: 0;
}

.l-lp-header-inner .logo img {
	display: block;
	width: 12.1rem;
	height: 2.8rem;
}

/* -----------------------------------------------------
 * layout: LPフッター（ロゴ＋住所＋コピーライト）
 * 本体サイトのナビ・SNS・バナー類は持たない。
 * 背景は黒の半透明＝下に敷いた背景の光をうっすら透かす（Figma 3105-10257）。
 * -------------------------------------------------- */

.l-lp-footer {
	display: flex;
	position: relative;
	z-index: 1;
	flex-direction: column;
	align-items: center;
	padding-top: 3.2rem;
	padding-bottom: 2rem;
	background-color: rgba(0, 0, 0, 0.6);
	gap: 2rem;
}

.l-lp-footer-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	padding-right: 2rem;
	padding-bottom: 2.4rem;
	padding-left: 2rem;
	box-shadow: inset 0 -1px 0 #5c5c66;
	text-align: center;
	gap: 1.2rem;
}

.l-lp-footer-inner .logo {
	margin: 0;
}

.l-lp-footer-inner .logo img {
	display: block;
	width: 21.7rem;
	height: 5.1rem;
}

.l-lp-footer-inner .address {
	margin: 0;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.5714285714;
}

.l-lp-footer .copyright {
	margin: 0;
	padding-right: 1.6rem;
	padding-left: 1.6rem;
	color: #fff;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
}

/* -----------------------------------------------------
 * component: LPのボタン（CTA・リンク共通）
 * 色＝.cl-primary（黄）/ .cl-line（枠線）、サイズ＝.sz-sm（ヘッダー用の小）で切り替える。
 * 矢印アイコンは .ico を子に持たせた時だけ出す（SPヘッダーのように文字だけの箇所もあるため）。
 * -------------------------------------------------- */

.c-lp-btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	min-height: 5.6rem;
	padding: 1.2rem 2.4rem;
	border-radius: 0.4rem;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	transition: border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
	gap: 1.2rem;
}

.c-lp-btn .ico {
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	align-items: center;
	padding: 0.6rem;
	border-radius: 999px;
	background-color: #1a1a17;
}

.c-lp-btn .ico::before {
	content: '';
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	background: no-repeat 50% 50%/contain;
	background-image: url(../img/ico_arrow_right.png);
	-webkit-filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(73deg) brightness(150%) contrast(100%);
	filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(73deg) brightness(150%) contrast(100%);
}

.c-lp-btn.cl-primary {
	border: 1px solid #1a1a17;
	background-color: #ff0;
	color: #1a1a17;
}

.c-lp-btn.cl-line {
	border: 1px solid rgba(255, 255, 255, 0.3);
	background-color: transparent;
	color: #fff;
}

.c-lp-btn.cl-line .ico {
	background-color: #fff;
}

.c-lp-btn.cl-line .ico::before {
	-webkit-filter: brightness(0);
	filter: brightness(0);
}

.c-lp-btn.sz-sm {
	min-height: 4.2rem;
	padding: 1.1rem 2.3rem;
	font-size: 1.6rem;
	line-height: 1.125;
	gap: 1.6rem;
}

.c-lp-btn.sz-sm .ico {
	display: none;
}

/* -----------------------------------------------------
 * component: 「残り○件を見る」ボタン（LpToggleMore の開閉ボタン）
 * 17（出稿前の準備）と22（FAQ）で使う。**デザインの値が両者で完全に同一**なので
 * 節ごとに持たず共通部品にしている（値が違う21のタグは逆に別々に持っている）。
 * 開いているあいだはアイコンが180度回る。文言の差し替えは LpToggleMore.js が行う。
 * -------------------------------------------------- */

.c-lp-btn-more {
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 20rem;
	min-height: 4.8rem;
	padding: 0.6rem 1rem 0.6rem 1.4rem;
	border: 2px solid #9ca3af;
	border-radius: 999px;
	background-color: transparent;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1.2857142857;
	gap: 0.8rem;
}

.c-lp-btn-more .ico {
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	align-items: center;
	padding: 0.4rem;
	border-radius: 999px;
	background-color: #fff;
	transition: -webkit-transform 0.3s ease;
	transition: transform 0.3s ease;
	transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.c-lp-btn-more .ico::before {
	content: '';
	flex-shrink: 0;
	width: 1.8rem;
	height: 1.8rem;
	background-color: #1a1a17;
	-webkit-mask: url(../img/ico_chevron_down.png) no-repeat 50% 50%/contain;
	mask: url(../img/ico_chevron_down.png) no-repeat 50% 50%/contain;
}

.c-lp-btn-more[aria-expanded=true] .ico {
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg);
}

/* -----------------------------------------------------
 * component: LPの節見出し（小ラベル＋大見出し＋リード）
 * 全セクションで同じ構造。中央寄せの節は .is-center を足す。
 * 見出しの一部を黄色にするのは .accent（Figmaのheading2と同じ）。
 * 字送りはデザインの絶対値（1px/2px）。ルートのfont-sizeがvw連動なのでremで置くと比率が保たれる。
 * -------------------------------------------------- */

.c-lp-heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	color: #fff;
	gap: 0.8rem;
}

.c-lp-heading .label {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.5555555556;
	letter-spacing: 0.1rem;
}

.c-lp-heading .title {
	margin: 0;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.2rem;
}

.c-lp-heading .title .accent {
	color: #ff0;
}

.c-lp-heading .lead {
	margin: 0;
	margin-top: 0.8rem;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
}

.c-lp-heading.is-center {
	align-items: center;
	text-align: center;
}

/* -----------------------------------------------------
 * component: LPの小見出し（c-lp-heading の1段下）
 * 節の中をさらに分けるときに使う（例：「手抜き代理店」に要注意／まずはオンラインで話す）。
 * c-lp-heading と同じく左寄せが既定で、中央寄せは .is-center を足す。
 * 見出しの前にアイコンが入る節があるため、.ico は任意（無い節は img ごと省く）。
 *
 * .title はアイコンと文字の横並び。40のアイコンは48の行に収まらず、inline-block だと
 * 行が49.31に膨らむため flex で組む。使っているのは24と25だけで、どちらも
 * 見出しが1つのspanなので、flexで半角スペースがgapに化ける心配はない。
 * -------------------------------------------------- */

.c-lp-heading3 {
	display: flex;
	flex-direction: column;
	color: #fff;
	gap: 0.8rem;
}

.c-lp-heading3 .label {
	margin: 0;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
}

.c-lp-heading3 .title {
	display: flex;
	align-items: center;
	margin: 0;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.5;
	gap: 0.4rem;
}

.c-lp-heading3 .title .ico {
	flex-shrink: 0;
	width: 2.8rem;
	height: 2.8rem;
}

.c-lp-heading3 .title .accent {
	color: #ff0;
}

.c-lp-heading3.is-center {
	align-items: center;
	text-align: center;
}

.c-lp-heading3.is-center .title {
	justify-content: center;
}

/* -----------------------------------------------------
 * component: スライダーのインジケータ（横バー）
 * 本体サイトでは、選択中のバーだけ高さが 2px⇄3px と変わるうえに transition が掛かっていたため、
 * 切替のたびに親の高さが一瞬縮んでページ全体が約1px揺れた（c72eb08 で修正）。
 * ここでは同じことが起きないよう、①親の高さを 3px に固定 ②高さに transition を掛けない、
 * の2点を最初から入れている。色だけ変化させる。
 * -------------------------------------------------- */

.c-lp-indicator {
	display: flex;
	align-items: flex-end;
	height: 3px;
	gap: 0.8rem;
}

.c-lp-indicator .bullet {
	cursor: pointer;
	width: 4rem;
	height: 2px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background-color: #d1d5db;
	transition: background-color 0.3s;
}

.c-lp-indicator .bullet.is-active {
	height: 3px;
	background-color: #74daff;
}

/* -----------------------------------------------------
 * parts: 背景の下敷き（canvasが描き上がるまでの絵）
 * canvasはLPのJSが動いてから描くので、実測で1.1秒ほど何も出ない時間ができる。
 * そこを埋めるため、**同じcanvasから書き出した画像**をあらかじめ敷いておき、
 * canvasが描けたら上に重ねて入れ替える。
 *
 * 出る順番は「①下敷きがフェードイン → ②それが終わり、かつcanvasが描けたら
 * ③canvasへクロスフェード」。②の待ち合わせは LpBg.js が行う。
 *
 * 濃さ（15% / 20%）はこの箱が持ち、下敷きとcanvasはその中で 0→1 する。
 * 両方を50%ずつクロスさせると合成後が薄くなって中だるみするので、
 * 「下敷きは出しっぱなし／上に不透明なcanvasが被さる」形にしてある。
 *
 * 下敷きのフェードは**CSSアニメーションで自走**させる。JSが動かなくても
 * 下敷きだけは出したいため（canvasはJSが無ければ描かれない）。
 *
 * **画像はcanvasの絵を画面幅で拡大しない**ので、当て方が幅で変わる。
 *   PC（768以上）… 書き出したときのCSS寸法をpxで明示。**幅が広がっても絵は拡大せず、
 *     両脇が見えるだけ**なので（実測：2560描画の中央1920が1920描画と0.44で一致。
 *     拡大していれば20以上ずれる）、**2560で書き出しておけば2560のディスプレイまで
 *     等倍で敷ける**。`cover` にすると絵まで拡大されて 6.54/255 までずれる。
 *   SP（768未満）… `cover`。幅で絵が組み直されるのでどの幅でも一致しないが、
 *     `auto` と精度が変わらず（1.92 対 1.88）、`auto` だけが左右の欠けを出す。
 *
 * 画像が届かない範囲（PCで2560超）には**canvasが自分で敷くのと同じ地色**を置く。
 * -------------------------------------------------- */

@-webkit-keyframes lp-bg-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes lp-bg-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.p-lp-bg {
	position: absolute;
	z-index: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0.2;
	pointer-events: none;
}

.p-lp-bg::before {
	content: '';
	position: absolute;
	background-color: rgb(15, 0, 40);
	background-image: url(../img/lp/bg2_poster_sp.webp);
	background-repeat: no-repeat;
	background-position: 50% 0;
	background-size: cover;
	-webkit-animation: lp-bg-in 1.2s ease-out both;
	animation: lp-bg-in 1.2s ease-out both;
	inset: 0;
}

.p-lp-bg[data-lp-bg=bg1] {
	opacity: 0.15;
}

.p-lp-bg[data-lp-bg=bg1]::before {
	background-color: rgb(7, 0, 33);
	background-image: url(../img/lp/bg1_poster_sp.webp);
}

.p-lp-bg[data-rotate]::before {
	background-image: url(../img/lp/bg2_rot_poster_sp.webp);
}

.p-lp-bg[data-turn]::before {
	background-image: url(../img/lp/bg1_turn_poster_sp.webp);
}

.l-lp-band.is-bottom .p-lp-bg {
	bottom: calc(-1 * var(--lp-footer-h));
	height: auto;
}

.l-lp-band.is-top .p-lp-bg {
	top: calc(-1 * var(--lp-header-h));
	height: calc(100% + var(--lp-header-h));
}

/* -----------------------------------------------------
 * parts: キャンペーン枠（KV下・無料診断の中の2か所）
 * 2026-09-02のデザインから枠ごと1枚の画像。中身は _campaign.njk 参照。
 * 画像には発光のはみ出しが入っている（枠線の外縁から 左右20・上42・下20）。
 * 負のマージンで打ち消し、周りとの余白が枠の外周から測れるようにしている。
 * -------------------------------------------------- */

.p-lp-campaign {
	display: block;
	width: 111.9402985075%;
	max-width: none;
	margin-top: -2rem;
	margin-right: -5.9701492537%;
	margin-bottom: -2rem;
	margin-left: -5.9701492537%;
}

.p-lp-campaign img {
	display: block;
	width: 100%;
	height: auto;
}

/* -----------------------------------------------------
 * キャンペーン枠の下の注記
 * 枠の右端に寄せる。画像の負のマージンで枠の外周が親と一致する置き場所（SP全般と
 * 無料診断の中）は寄せ幅が要らない。KV下のPCだけ画像が親より狭いので、
 * その節の側（_p-lp-kv.scss）で右へ寄せている。
 * 上の間隔は、画像の下の発光20を打ち消す負のマージンと相殺されて枠下4になる。
 * -------------------------------------------------- */

.p-lp-campaign-note {
	margin: 0;
	margin-top: 0.4rem;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	text-align: right;
}

/* -----------------------------------------------------
 * parts: CTA群（黄色の大ボタン＋サブ2本＋保証タグ）
 * SP＝すべて縦積み・幅300／PC＝大ボタンは全幅、サブ2本とタグが横並び。
 * -------------------------------------------------- */

.p-lp-cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.6rem;
}

.p-lp-cta-main {
	display: flex;
	position: relative;
	justify-content: space-between;
	align-items: center;
	width: 30rem;
	min-height: 7.2rem;
	padding: 0.8rem 1.2rem 0.8rem 1.6rem;
	border: 1px solid #1a1a17;
	border-radius: 0.4rem;
	background-color: #ff0;
	color: #1a1a17;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.2222222222;
	text-decoration: none;
	gap: 0.4rem;
}

.p-lp-cta-main .ico {
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	align-items: center;
	padding: 0.6rem;
	border-radius: 999px;
	background-color: #1a1a17;
}

.p-lp-cta-main .ico::before {
	content: '';
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	background: no-repeat 50% 50%/contain;
	background-image: url(../img/ico_arrow_right.png);
	-webkit-filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(73deg) brightness(150%) contrast(100%);
	filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(73deg) brightness(150%) contrast(100%);
}

.p-lp-cta-row {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	gap: 2.4rem;
}

.p-lp-cta-subs {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.6rem;
}

.p-lp-cta-sub {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 30rem;
	min-height: 5.6rem;
	padding: 0.8rem 1.2rem;
	border: 2px solid #fff;
	border-radius: 0.4rem;
	background-color: #1a1a17;
	color: #fff;
	text-decoration: none;
	gap: 0.4rem;
}

.p-lp-cta-sub .body {
	display: flex;
	flex: 1 1 0;
	justify-content: center;
	align-items: center;
	min-width: 0;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	gap: 0.4rem;
	-webkit-font-feature-settings: 'palt' 1;
	font-feature-settings: 'palt' 1;
}

.p-lp-cta-sub .ico {
	flex-shrink: 0;
	width: 2.4rem;
	height: 2.4rem;
	background: no-repeat 50% 50%/contain;
}

.p-lp-cta-sub .ico.cl-calendar {
	background-image: url(../img/lp/ico_calendar.svg);
}

.p-lp-cta-sub .ico.cl-call {
	background-image: url(../img/lp/ico_call.svg);
}

.p-lp-cta-sub .arrow {
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	align-items: center;
	padding: 0.6rem;
	border-radius: 999px;
	background-color: #fff;
}

.p-lp-cta-sub .arrow::before {
	content: '';
	width: 2rem;
	height: 2rem;
	background: no-repeat 50% 50%/contain;
	background-image: url(../img/ico_arrow_right.png);
	-webkit-filter: brightness(0);
	filter: brightness(0);
}

.p-lp-cta-sub.is-consult .body {
	font-weight: 600;
}

.p-lp-cta-sub.is-tel .body {
	line-height: 1.125;
}

.p-lp-cta-tags {
	display: flex;
	list-style: none;
	flex-wrap: wrap;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 0;
	gap: 1.3rem;
}

.p-lp-cta-tags li {
	display: flex;
	align-items: center;
	padding: 0.6rem 1.6rem 0.8rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 999px;
	background-color: rgba(255, 255, 255, 0.05);
	color: #fff;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	white-space: nowrap;
	gap: 0.4rem;
}

.p-lp-cta-tags li::before {
	content: '';
	flex-shrink: 0;
	width: 2.4rem;
	height: 2.4rem;
	background: no-repeat 50% 50%/contain;
	background-image: url(../img/lp/ico_check.svg);
}

/* -----------------------------------------------------
 * parts: 期間限定キャンペーン実施中!（無料診断の説明）
 * 黄色の帯の中に濃い箱を置く。帯の下端は中央へ向かって尖り、次のセクションへ落ちる。
 * デザイン上の上余白40は .l-lp-band 側が持つ（背景の絵がここまで続くため）。
 * キャンペーン枠はKV下と同じ部分テンプレートだが、枠幅が違うので画像は別（.sz-diagnosis）。
 * CTA群だけKV内と同じパーツの小サイズ（.sz-sm）。
 * SPデザインが無いため、SPは近隣セクションの級数・余白に合わせている。
 * -------------------------------------------------- */

.p-lp-diagnosis {
	position: relative;
	z-index: 1;
	padding-bottom: 4rem;
}

.p-lp-diagnosis-band {
	padding: 4rem 1rem;
	background-color: #ff0;
}

.p-lp-diagnosis-box {
	overflow: hidden;
	padding: 3.2rem 2rem;
	border-radius: 0.8rem;
	background-color: #1a1a17;
}

.p-lp-diagnosis-notch {
	height: calc(6rem + 1px);
	margin-top: -1px;
	background-color: #ff0;
	-webkit-clip-path: polygon(0 0, 100% 0, 100% 1px, 49.6% 100%, 0 1px);
	clip-path: polygon(0 0, 100% 0, 100% 1px, 49.6% 100%, 0 1px);
}

.p-lp-diagnosis-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.2rem;
}

.p-lp-diagnosis-head .pill {
	margin: 0;
	padding: 0.6rem 2rem 0.8rem;
	border-radius: 999px;
	background-color: #3fa1c6;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.5555555556;
	text-align: center;
	-webkit-filter: drop-shadow(0 0 10px #57bfff);
	filter: drop-shadow(0 0 10px #57bfff);
}

.p-lp-diagnosis-head .title {
	margin: 0;
	color: #fff;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.2rem;
	-webkit-font-feature-settings: 'palt' 1;
	font-feature-settings: 'palt' 1;
}

.p-lp-diagnosis-head .title .accent {
	color: #ff0;
}

.p-lp-diagnosis-head .title .thin {
	font-weight: 500;
}

.p-lp-diagnosis-list {
	display: flex;
	list-style: none;
	flex-direction: column;
	margin: 1.6rem 0 0;
	padding: 0;
	gap: 1.6rem;
}

.p-lp-diagnosis-list > li {
	position: relative;
	padding: 1.5rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.4rem;
	background-color: rgba(255, 255, 255, 0.05);
}

.p-lp-diagnosis-list .label {
	display: block;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	max-width: calc(100% + 1.5rem + 1px);
	margin: 0 0 1.2rem calc(-1.5rem - 1px);
	padding: 0.4rem 1.2rem 0.4rem 1.6rem;
	background-color: #ff0;
	color: #1a1a17;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-lp-diagnosis-list .body {
	margin: 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: justify;
}

.p-lp-diagnosis-report {
	margin-top: 3.2rem;
}

.p-lp-diagnosis-report .label {
	display: flex;
	align-items: center;
	margin-bottom: 0.8rem;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1.5714285714;
	gap: 0.6rem;
}

.p-lp-diagnosis-report .ico {
	flex-shrink: 0;
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 999px;
	background: no-repeat 50% 50%/contain;
	background-color: #ff0;
	background-image: url(../img/lp/ico_expand_more.svg);
}

.p-lp-diagnosis-report img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0.8rem;
}

.p-lp-diagnosis .p-lp-campaign {
	margin-top: 2.8rem;
}

.p-lp-diagnosis .p-lp-cta {
	margin-top: 3.2rem;
}

/* -----------------------------------------------------
 * parts: SP追従CTA（画面下に固定）
 * 本体サイトの .p-fixed-cta と同じ作り。SPのみ、2ボタンを全幅2分割。
 * iOS Safari のホームバーに潜らないよう safe-area 分の下余白を持つ。
 * 本文がバーに隠れないよう .l-lp 側で下余白を確保（同ファイル末尾）。
 * padding は Figma の値から枠線1pxを引いている。
 *
 * **既定は隠す。**KV内のCTAを過ぎたら LpFixedCta.js が is-visible を付けて下からせり上げる。
 * 本体の .c-totop と同じ組み方。JSが動かなければ出ないが、LPは本文側にもCTAが
 * いくつもあるので帯が出ないだけで済む。逆に「JSが付けるまで表示」にすると
 * 読み込みのたびに一瞬出てしまう（実際に出た）。
 * 画面外へ出すだけではキーボードで辿れてしまうので visibility も落とす。
 * -------------------------------------------------- */

.p-lp-fixed-cta {
	display: flex;
	visibility: hidden;
	position: fixed;
	z-index: 2;
	right: 0;
	bottom: 0;
	left: 0;
	padding-bottom: env(safe-area-inset-bottom);
	background-color: #1a1a17;
	transition: visibility 0.4s, -webkit-transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.4s;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.4s, -webkit-transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	-webkit-transform: translateY(100%);
	transform: translateY(100%);
}

.p-lp-fixed-cta.is-visible {
	visibility: visible;
	-webkit-transform: none;
	transform: none;
}

.p-lp-fixed-cta-btn {
	display: flex;
	flex: 1 1 50%;
	justify-content: space-between;
	align-items: center;
	min-width: 0;
	height: 5.6rem;
	padding: 0.7rem 1.1rem 0.7rem 2.3rem;
	border: 1px solid #fff;
	background-color: #1a1a17;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.125;
	text-decoration: none;
	gap: 0.4rem;
}

.p-lp-fixed-cta-btn .ico {
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	align-items: center;
	padding: 0.6rem;
	border-radius: 999px;
	background-color: #fff;
}

.p-lp-fixed-cta-btn .ico::before {
	content: '';
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	background: no-repeat 50% 50%/contain;
	background-image: url(../img/ico_arrow_right.png);
	-webkit-filter: brightness(0);
	filter: brightness(0);
}

.p-lp-fixed-cta-btn.cl-accent {
	padding-left: 1.5rem;
	border-color: #ff0;
	background-color: #ff0;
	color: #1a1a17;
}

.p-lp-fixed-cta-btn.cl-accent .ico {
	background-color: #1a1a17;
}

.p-lp-fixed-cta-btn.cl-accent .ico::before {
	-webkit-filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(73deg) brightness(150%) contrast(100%);
	filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(73deg) brightness(150%) contrast(100%);
}

/* 固定バーぶんの下余白（SPのみ）。フッター最下部が隠れないように */

/* -----------------------------------------------------
 * parts: HubSpotフォームの置き場
 * 中身はクロスオリジンiframeでこちらのCSSは効かないため、幅を渡すだけにとどめる。
 * カードの地色・余白は設置するセクション側（KV／申込フォーム節）が持つ。
 * -------------------------------------------------- */

.p-lp-form {
	width: 100%;
}

/* -----------------------------------------------------
 * parts: KV
 * コピーはフェードスライダー（LpSlideFade）。高さの固定はJS側が担当する
 * （文字量がパターンごとに違うため、いちばん高いスライドに合わせて整数pxで固定）。
 * -------------------------------------------------- */

.p-lp-kv {
	position: relative;
	padding-top: 1.6rem;
}

.p-lp-kv-inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
}

.p-lp-kv-head {
	display: flex;
	flex-direction: column;
	gap: 3.2rem;
}

.p-lp-kv-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.p-lp-kv-copy .badge {
	margin: 0;
	padding: 0.6rem 2rem;
	border-radius: 999px;
	background-color: #3fa1c6;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1.5714285714;
	-webkit-filter: drop-shadow(0 0 10px #57bfff);
	filter: drop-shadow(0 0 10px #57bfff);
}

.p-lp-kv-copy .swiper {
	overflow: visible;
	width: 100%;
	margin-top: 1.6rem;
}

.p-lp-kv-copy .c-lp-indicator {
	margin-top: 3.2rem;
}

.p-lp-kv-copy .swiper-slide {
	color: #fff;
}

.p-lp-kv-copy .main {
	margin: 0 -0.7rem;
	font-size: 5.6rem;
	font-weight: 700;
	line-height: 1.2881355932;
	letter-spacing: 0.2rem;
	-webkit-font-feature-settings: 'palt' 1;
	font-feature-settings: 'palt' 1;
}

.p-lp-kv-copy .main .accent {
	color: #ff0;
}

.p-lp-kv-copy .main .thin {
	font-weight: 400;
}

.p-lp-kv-copy .sub {
	margin: 0;
	margin-top: 0.4rem;
	margin-right: -0.2rem;
	font-size: 3.5rem;
	font-weight: 700;
	line-height: normal;
	letter-spacing: 0.2rem;
}

.p-lp-kv-copy .note {
	margin: 1.6rem 0 0;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-lp-kv-inner > .p-lp-cta {
	display: none;
}

.p-lp-kv .p-lp-campaign {
	margin-top: 0.5rem;
}

.p-lp-kv .p-lp-stats {
	margin-top: 2.4rem;
}

.p-lp-kv-lead {
	color: #fff;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.75;
	text-align: justify;
}

.p-lp-kv-lead p {
	margin: 0;
}

.p-lp-kv-lead .accent {
	color: #ff0;
}

/* -----------------------------------------------------
 * parts: 対応広告媒体のロゴ帯
 * 白いピル型のチップが横に流れる。左右の端は地色のグラデで溶かす。
 * 流す仕組みと停止制御は js/_js-lp-marquee.scss ＋ LpMarquee.js。
 * -------------------------------------------------- */

.p-lp-media {
	position: relative;
	z-index: 1;
	margin-top: 2.4rem;
	padding-top: 1.6rem;
	padding-bottom: 1.6rem;
	--lp-marquee-duration: 60s;
}

.p-lp-media-label {
	display: block;
	margin: 0;
	color: #ff0;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

.p-lp-media-scroll {
	position: relative;
	margin-top: 2rem;
}

.p-lp-media-scroll::before,
.p-lp-media-scroll::after {
	content: '';
	position: absolute;
	z-index: 2;
	top: 0;
	bottom: 0;
	width: 10rem;
}

.p-lp-media-scroll::before {
	left: 0;
	background: linear-gradient(to right, #1a1a17, rgba(26, 26, 23, 0));
}

.p-lp-media-scroll::after {
	right: 0;
	background: linear-gradient(to left, #1a1a17, rgba(26, 26, 23, 0));
}

.p-lp-media ul {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 4rem;
}

.p-lp-media ul + ul {
	margin-left: 4rem;
}

.p-lp-media li {
	padding: 0.8rem 2.2rem;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px;
	background-color: rgba(255, 255, 255, 0.88);
	color: #1a1a17;
	font-family: 'Montserrat', sans-serif;
	font-size: 1.312rem;
	font-weight: 700;
	line-height: 1.6768292683;
	white-space: nowrap;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

/* -----------------------------------------------------
 * parts: KV内の実績エリア（認定パートナーカード＋数値バッジ）
 * SP＝カードの下にバッジが1つの流れで折り返す／PC＝カードの右に3行の組みで並ぶ。
 * PCの行組みを保ちつつSPでは1つの流れにしたいので、行の div はSPで display: contents にする。
 * -------------------------------------------------- */

.p-lp-stats {
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
}

.p-lp-stats-card {
	display: flex;
	flex-direction: column;
	padding: 1.9rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 255, 0.05);
	gap: 1.2rem;
}

.p-lp-stats-card .logos {
	display: flex;
	justify-content: center;
	margin: 0;
	gap: 1.6rem;
}

.p-lp-stats-card .logos img {
	display: block;
	width: 13.6rem;
	height: 13.6rem;
	border: 1px solid #fff;
	border-radius: 0.4rem;
}

.p-lp-stats-card .caption {
	margin: 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

.p-lp-stats-values {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem;
}

.p-lp-stats-values .row {
	display: contents;
	list-style: none;
	margin: 0;
	padding: 0;
}

.p-lp-stats-values .item {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0.7rem 1.1rem;
	border: 1px solid #5c5c66;
	border-radius: 0.4rem;
	background-color: rgba(255, 255, 255, 0.05);
	gap: 0.6rem;
}

.p-lp-stats-values .value {
	display: flex;
	flex-shrink: 0;
	align-items: flex-end;
	color: #ff0;
	gap: 0.2rem;
}

.p-lp-stats-values .num {
	font-family: 'Oswald', sans-serif;
	font-size: 2rem;
	font-weight: 700;
	line-height: normal;
}

.p-lp-stats-values .num.ja {
	font-family: 'Noto Sans JP', sans-serif;
}

.p-lp-stats-values .unit {
	position: relative;
	bottom: 0.3rem;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: normal;
	letter-spacing: 0.1rem;
}

.p-lp-stats-values .label {
	color: #fff;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1.5714285714;
	white-space: nowrap;
}

.p-lp-stats-values .label .sub {
	font-size: 1.4rem;
	line-height: 1.5714285714;
}

/* -----------------------------------------------------
 * parts: 流れるテキスト帯
 * 全幅の帯。上下に細い罫線が入り、項目の区切りに ◆ が入る。
 * 流す仕組みと停止制御は js/_js-lp-marquee.scss ＋ LpMarquee.js。
 * -------------------------------------------------- */

.p-lp-ticker {
	position: relative;
	z-index: 1;
	margin-top: 2.4rem;
	border-top: 1px solid rgba(255, 255, 255, 0.3);
	border-bottom: 1px solid rgba(255, 255, 255, 0.3);
	background-color: rgba(255, 255, 255, 0.15);
	--lp-marquee-duration: 40s;
}

.p-lp-ticker ul {
	display: flex;
	list-style: none;
	align-items: center;
	margin: 0;
	padding: 1.6rem 0;
}

.p-lp-ticker li {
	display: flex;
	align-items: center;
	margin-right: 2.4rem;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	white-space: nowrap;
	gap: 2.4rem;
}

.p-lp-ticker li::after {
	content: '◆';
	opacity: 0.4;
	font-size: 0.8rem;
	line-height: 1.7;
	letter-spacing: 0.156em;
}

/* -----------------------------------------------------
 * parts: WEB広告、うまくいってないと感じたら（お悩み6項目）
 * カードの並び。SP＝1列・隙間16／PC＝3×2・隙間32。
 * 中の組み方はPC/SP共通で、級数だけ変わる（2026-08-28にSPデザインが追加され、
 * それまでの「罫線だけのリスト」からPCと同じカードに変わった）。
 * 2026-08-31、顧客要望で説明文を削除し、注意書きを短い一文に差し替えた
 * （デザインには説明文が残っている）。
 * -------------------------------------------------- */

.p-lp-worry {
	position: relative;
	z-index: 1;
	padding-top: 5.6rem;
	padding-bottom: 5.6rem;
}

.p-lp-worry-inner {
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
}

.p-lp-worry-list {
	display: flex;
	list-style: none;
	flex-direction: column;
	margin: 3.2rem 0 0;
	padding: 0;
	gap: 1.6rem;
}

.p-lp-worry-list > li {
	display: grid;
	align-content: start;
	align-items: center;
	padding: 2.3rem 2.3rem 3.1rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 255, 0.05);
	grid-template-columns: auto auto minmax(0, 1fr);
	grid-template-areas: 'num   cat   art' 'title title title' 'alert alert alert';
	justify-items: start;
	-webkit-column-gap: 1.2rem;
	-moz-column-gap: 1.2rem;
	column-gap: 1.2rem;
	row-gap: 1.6rem;
}

.p-lp-worry-list .cat {
	margin: 0;
	padding: 0.4rem 1.2rem;
	border-radius: 0.4rem;
	background-color: rgba(255, 255, 255, 0.15);
	color: #ff0;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	grid-area: cat;
	justify-self: start;
}

.p-lp-worry-list .num {
	margin: -0.4rem 0;
	padding-top: 0.4rem;
	padding-bottom: 0.4rem;
	background-image: linear-gradient(107.46deg, rgba(255, 255, 0, 0) 2.87%, rgba(255, 255, 0, 0.5) 47.19%, rgba(255, 255, 0, 0.9) 91.54%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-family: 'Oswald', sans-serif;
	font-size: 4.8rem;
	font-weight: 600;
	line-height: 1;
	grid-area: num;
	text-box: trim-both cap alphabetic;
}

.p-lp-worry-list .title {
	margin: 0;
	color: #fff;
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.5;
	grid-area: title;
	justify-self: stretch;
}

.p-lp-worry-list .fig {
	display: block;
	width: auto;
	height: 4.8rem;
	grid-area: art;
	justify-self: end;
}

.p-lp-worry-list .alert {
	padding: 1.2rem 1.6rem 1.2rem 1.3rem;
	border-left: 3px solid #ff0;
	background-color: rgba(255, 255, 0, 0.1);
	grid-area: alert;
	justify-self: stretch;
}

.p-lp-worry-list .alert-head {
	display: flex;
	align-items: center;
	margin: 0;
	color: #ff0;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.5555555556;
	gap: 0.4rem;
}

.p-lp-worry-list .alert-head::before {
	content: '';
	flex-shrink: 0;
	width: 2.2rem;
	height: 2.2rem;
	background: no-repeat 50% 50%/contain;
	background-image: url(../img/lp/ico_alert.svg);
}

.p-lp-worry-list .alert-body {
	margin: 0.8rem 0 0;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.5714285714;
	text-align: justify;
}

.p-lp-worry-list .alert-body .accent {
	color: #ff0;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
}

/* -----------------------------------------------------
 * parts: 配信後も止まらないPDCA
 * SP＝縦積み／PC＝4カード横並び（等幅・等高）。
 * 見出しは共通の c-lp-heading。
 * -------------------------------------------------- */

.p-lp-pdca {
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.p-lp-pdca-inner {
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
}

.p-lp-pdca-list {
	display: flex;
	flex-direction: column;
	margin-top: 3.2rem;
	gap: 1.6rem;
}

.p-lp-pdca-list > li {
	display: flex;
	flex-direction: column;
	padding: 2.4rem 2rem;
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 255, 0.05);
	gap: 1.6rem;
}

.p-lp-pdca-list .head {
	display: flex;
	align-items: center;
	gap: 1.6rem;
}

.p-lp-pdca-list .mark {
	flex-shrink: 0;
	margin: 0;
	color: #ff0;
	font-family: 'Oswald', sans-serif;
	font-size: 5.6rem;
	font-weight: 600;
	line-height: 1;
	text-box: trim-both cap alphabetic;
}

.p-lp-pdca-list .names {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	justify-content: center;
	align-self: stretch;
	min-width: 0;
	padding-left: 1.4rem;
	border-left: 2px solid #9ca3af;
	gap: 0.2rem;
}

.p-lp-pdca-list .en {
	margin: 0;
	font-family: 'Oswald', sans-serif;
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-lp-pdca-list .ja {
	margin: 0;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
}

.p-lp-pdca-list .desc {
	margin: 0;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	text-align: justify;
}

/* -----------------------------------------------------
 * parts: なぜ、ここまで詳細な診断を「無料」で行うのか？
 * 見出し＋枠付きの答え＋補足本文の3ブロックを中央に積むだけのつなぎセクション。
 * 上の余白は持たない（前セクションの下パディング40がそのまま間隔になる）。
 * SPデザインが無いため、級数・余白は近隣セクションのSPに合わせている。
 * -------------------------------------------------- */

.p-lp-reason {
	position: relative;
	z-index: 1;
	padding-bottom: 4rem;
}

.p-lp-reason-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 1.6rem;
}

.p-lp-reason-title {
	margin: 0;
	color: #fff;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}

.p-lp-reason-title .accent {
	color: #ff0;
}

.p-lp-reason-answer {
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	max-width: 100%;
	padding: 1.5rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 255, 0.05);
}

.p-lp-reason-answer p {
	margin: 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.75;
	text-align: center;
}

.p-lp-reason-answer .accent {
	color: #ff0;
}

.p-lp-reason-note {
	margin: 0;
	color: #d1d5db;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	text-align: justify;
}

/* -----------------------------------------------------
 * parts: 数字が証明する結果（実績データ8項目）
 * PC＝4×2／SP＝2×4。どちらも枠付きカードで、見出しが上・アイコンと数値が横並び。
 * 組み方は共通で、カードの寸法と級数だけが変わる（2026-08-28にSPデザインが追加され、
 * それまでの「罫線だけの2列」からカードに変わった）。
 * SPのカードは170角の正方形で、内容ではなく寸法が先に決まっている。
 * アイコンの実寸はひとつずつ違い、PCとSPでも違うのでカスタムプロパティで受け取る。
 * -------------------------------------------------- */

.p-lp-figures {
	position: relative;
	z-index: 1;
	padding-top: 8rem;
	padding-bottom: 8rem;
}

.p-lp-figures-inner {
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
}

.p-lp-figures-list {
	display: grid;
	list-style: none;
	justify-content: center;
	margin: 3.2rem -2rem 0;
	padding: 0;
	grid-template-columns: repeat(2, 17rem);
	gap: 0.8rem;
}

.p-lp-figures-list > li {
	display: grid;
	justify-content: center;
	align-content: center;
	align-items: center;
	height: 17rem;
	padding: 2.3rem 0 1.5rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 255, 0.05);
	grid-template-columns: auto auto;
	grid-template-rows: 5.6rem auto;
	grid-template-areas: 'head head' 'ico  value';
	-webkit-column-gap: 0.8rem;
	-moz-column-gap: 0.8rem;
	column-gap: 0.8rem;
}

.p-lp-figures-list .ico {
	display: flex;
	grid-area: ico;
}

.p-lp-figures-list .ico img {
	width: var(--ico-w);
	height: var(--ico-h);
}

.p-lp-figures-list .value {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	margin: 0;
	padding-bottom: 0.4rem;
	color: #ff0;
	grid-area: value;
	gap: 0.2rem;
}

.p-lp-figures-list .num {
	font-family: 'Oswald', sans-serif;
	font-size: 5.6rem;
	font-weight: 700;
	line-height: normal;
	letter-spacing: 0.1rem;
}

.p-lp-figures-list .unit {
	padding-bottom: 1.2rem;
	font-size: 2rem;
	font-weight: 700;
	line-height: normal;
	letter-spacing: 0.1rem;
}

.p-lp-figures-list .word {
	font-size: 4rem;
	font-weight: 700;
	line-height: normal;
	letter-spacing: 0.1rem;
}

.p-lp-figures-list .en {
	font-family: 'Oswald', sans-serif;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: normal;
	letter-spacing: 0.1rem;
}

.p-lp-figures-list .head {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-self: stretch;
	width: 100%;
	text-align: center;
	grid-area: head;
}

.p-lp-figures-list .title {
	display: block;
	margin: 0;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.5555555556;
}

.p-lp-figures-list .note {
	display: block;
	margin: 0.2rem 0 0;
	color: #d1d5db;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.5;
}

/* -----------------------------------------------------
 * parts: あらゆる業種の広告運用に対応
 * 太い枠で囲んだ箱。中身はEC / BtoB の2列（PC）／縦積み（SP）。
 * 枠は左右のガターより外側にあるため、他セクションの l-lp-inner とは幅が違う。
 * タグの形は .p-lp-cta-tags と同じだが、SPの級数・余白が違うため別に持つ。
 * -------------------------------------------------- */

.p-lp-industry {
	position: relative;
	z-index: 1;
	padding-right: 2rem;
	padding-left: 2rem;
}

.p-lp-industry-box {
	display: flex;
	flex-direction: column;
	padding: 2rem 1.6rem;
	border: 4px solid rgba(255, 255, 255, 0.3);
	border-radius: 1.6rem;
	gap: 3.2rem;
}

.p-lp-industry-cols {
	display: flex;
	flex-direction: column;
	gap: 3.2rem;
}

.p-lp-industry-col {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.p-lp-industry-col .head {
	display: flex;
	align-items: center;
	height: 5.6rem;
	margin: 0;
	color: #fff;
	gap: 1.6rem;
}

.p-lp-industry-col .en {
	font-family: 'Oswald', sans-serif;
	font-size: 5.6rem;
	font-weight: 600;
	line-height: 0.8035714286;
}

.p-lp-industry-col .rule {
	flex-shrink: 0;
	align-self: stretch;
	width: 2px;
	margin-right: -1px;
	margin-left: -1px;
	background-color: #9ca3af;
}

.p-lp-industry-col .txt {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-lp-industry-col .tags {
	display: flex;
	list-style: none;
	flex-wrap: wrap;
	align-content: center;
	align-items: center;
	margin: 0;
	padding: 0;
	gap: 0.8rem;
}

.p-lp-industry-col .tags li {
	padding: 0.4rem 1.2rem 0.6rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 999px;
	background-color: rgba(255, 255, 255, 0.05);
	color: #fff;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.5714285714;
	white-space: nowrap;
}

.p-lp-industry-col .tags .cl-accent {
	color: #ff0;
}

/* -----------------------------------------------------
 * parts: FORCLEが選ばれる9つの理由
 * PC＝3×3、SP＝縦1列。区切りは枠ではなく罫線で、横罫は画面端まで引く。
 * 横罫は「行の左端の項目」から引くので、右へは項目1つぶんしか進んでいない状態から
 * 画面の右端まで伸ばす必要がある。項目幅は狭いため 50vw では届かず、100vw で取る
 * （はみ出しは .l-lp の overflow-x: clip が吸収する）。
 * 番号はPCが黄色のグラデーション、SPは黄べた。
 * -------------------------------------------------- */

.p-lp-features {
	position: relative;
	z-index: 1;
	padding-top: 8rem;
	padding-bottom: 8rem;
}

.p-lp-features-inner {
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
}

.p-lp-features-list {
	display: grid;
	position: relative;
	list-style: none;
	margin: 3.2rem 0 0;
	padding: 0;
}

.p-lp-features-list::after {
	content: '';
	position: absolute;
	right: -100vw;
	bottom: 0;
	left: -100vw;
	height: 1px;
	background-color: rgba(255, 255, 255, 0.3);
}

.p-lp-features-list > li {
	display: flex;
	position: relative;
	flex-direction: column;
	align-items: center;
	padding: 3.2rem 0;
	gap: 1.6rem;
}

.p-lp-features-list > li::before {
	content: '';
	position: absolute;
	top: 0;
	right: -100vw;
	left: -100vw;
	height: 1px;
	background-color: rgba(255, 255, 255, 0.3);
}

.p-lp-features-list .head {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: 0;
	gap: 1.6rem;
}

.p-lp-features-list .num {
	flex-shrink: 0;
	margin-bottom: -0.4rem;
	padding-bottom: 0.4rem;
	background-image: linear-gradient(95.82deg, rgba(255, 255, 0, 0) 0%, rgba(255, 255, 0, 0.5) 50%, rgba(255, 255, 0, 0.9) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-family: 'Oswald', sans-serif;
	font-size: 5.6rem;
	font-weight: 600;
	line-height: 0.8035714286;
}

.p-lp-features-list .rule {
	flex-shrink: 0;
	align-self: stretch;
	width: 2px;
	margin-right: -1px;
	margin-left: -1px;
	background-color: #9ca3af;
}

.p-lp-features-list .title {
	flex: 1 1 0;
	min-width: 0;
	color: #fff;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
}

/* -----------------------------------------------------
 * parts: 私たちはここまで見ています（管理画面のモック＋吹き出し4枚）
 * PCはモックの左右に吹き出しを重ねるため、デザイン座標で絶対配置する。
 * 舞台（-stage）の幅は 144rem ＝ ルートのfont-sizeがvw連動なので 768〜1439 では
 * ちょうど画面幅になり、中の rem 指定がデザインの比率のまま追従する。
 * SPはデザインが無いため、モック→吹き出しの縦積みにしている。
 * -------------------------------------------------- */

.p-lp-insight {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.p-lp-insight-inner {
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
}

.p-lp-insight-stage {
	display: flex;
	flex-direction: column;
	margin-top: 3.2rem;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 1.6rem;
}

.p-lp-insight-stage .shot {
	display: block;
	width: 100%;
	height: auto;
}

.p-lp-insight-stage .note {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 1.5rem 2.3rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
	background-color: #2f2f2f;
	text-align: center;
	gap: 0.8rem;
}

.p-lp-insight-stage .note .title {
	display: block;
	width: 100%;
	color: #ff0;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.5555555556;
}

.p-lp-insight-stage .note .body {
	margin: 0;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.5714285714;
}

/* -----------------------------------------------------
 * parts: FORCLE vs 他社代理店
 * このセクションだけ地が白いカードなので、見出し・本文・罫線の色が全部反転する。
 * 箱の幅は 09（対応業種）と同じ 1376。前後のセクションの余白に接するため
 * PCでは縦paddingを持たない（SPは前後と合わせて隙間80になるよう40ずつ）。
 *
 * FORCLE列は「左右6px＋最終行の下6px」で囲みを作る。罫線を潰すと隣のセルと
 * 合成されて太さが変わるため border-collapse: separate で組んでいる。
 * 行の区切り線はデータ3列ぶんを通しで引き、FORCLE列の6px線がその上に重なる
 * （separate なら辺どうしが留め継ぎされるので、デザインと同じ見え方になる）。
 *
 * 列の間隔8pxは、他社2列の padding-left に足して吸収している（区切り線を
 * 間隔ぶんも通すため）。見出し行だけは地色が間隔まで伸びてしまうので、
 * セル内に .inner を置いて色と角丸をそちらに持たせている。
 *
 * SPデザインは無いが、表を崩さず横スクロールで見せる（本体サイトの導入フロー表と同じ）。
 * -------------------------------------------------- */

.p-lp-compare {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-right: 2rem;
	padding-bottom: 4rem;
	padding-left: 2rem;
}

.p-lp-compare-box {
	display: flex;
	flex-direction: column;
	padding: 4rem 1.6rem;
	border-radius: 1.6rem;
	background-color: #fff;
	gap: 3.2rem;
}

.p-lp-compare-box .c-lp-heading {
	color: #1a1a17;
}

.p-lp-compare-box .c-lp-heading .title {
	letter-spacing: 0;
}

.p-lp-compare-box .c-lp-heading .accent {
	display: inline-block;
	background-image: linear-gradient(#ff0, #ff0);
	background-repeat: no-repeat;
	background-position: left calc(100% - 0.7rem);
	background-size: 100% 0.8rem;
	color: #3fa1c6;
}

.p-lp-compare-table {
	position: relative;
}

.p-lp-compare-scroll {
	overflow-x: auto;
	margin: -1.7rem -1.6rem 0;
	padding: 1.7rem 1.6rem 0;
	-webkit-overflow-scrolling: touch;
}

.p-lp-compare-hint {
	display: block;
	position: absolute;
	top: min(50%, 50vh);
	left: 50%;
	width: 16rem;
	transition: opacity 0.4s ease;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.p-lp-compare-hint img {
	display: block;
	width: 100%;
	height: auto;
}

.p-lp-compare-table.is-scrolled .p-lp-compare-hint {
	opacity: 0;
}

.p-lp-compare table {
	table-layout: fixed;
	border-collapse: separate;
	border-spacing: 0;
	width: 65.6rem;
}

.p-lp-compare thead td {
	width: 11rem;
}

.p-lp-compare thead th {
	width: 16.8rem;
	padding-left: 0.8rem;
	vertical-align: bottom;
}

.p-lp-compare thead th.is-forcle {
	width: 21rem;
	padding-left: 0;
}

.p-lp-compare thead th .inner {
	display: block;
	position: relative;
	padding: 2.2rem 1.2rem 1.2rem;
	border-radius: 0.8rem 0.8rem 0 0;
	background-color: #9ca3af;
	color: #fff;
	text-align: center;
}

.p-lp-compare thead th.is-forcle .inner {
	background-color: #3fa1c6;
}

.p-lp-compare thead th .badge {
	display: flex;
	position: absolute;
	top: -1.6rem;
	left: 50%;
	justify-content: center;
	align-items: center;
	padding: 0.6rem 1.2rem;
	border-radius: 999px;
	background-color: #ff0;
	color: #1a1a17;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.5384615385;
	white-space: nowrap;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.p-lp-compare thead th .name {
	display: block;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.4444444444;
}

.p-lp-compare thead th .desc {
	display: block;
	margin-top: 0.4rem;
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.5;
}

.p-lp-compare tbody th {
	width: 11rem;
	height: 1px;
	padding-top: 0.8rem;
	padding-right: 0.8rem;
	padding-bottom: 0.8rem;
}

.p-lp-compare tbody th .inner {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	padding: 1.2rem;
	border-radius: 0.8rem;
	background-color: #f5f5f7;
	color: #1a1a17;
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 1.5384615385;
	text-align: center;
}

.p-lp-compare tbody td {
	width: 16.8rem;
	padding: 1.2rem 1.2rem 1.1rem 2rem;
	border-bottom: 1px solid #d1d5db;
	color: #5c5c66;
	text-align: center;
	vertical-align: top;
}

.p-lp-compare tbody td.is-forcle {
	width: 21rem;
	padding: 1.2rem 1rem 1.1rem;
	border-right: 0.6rem solid #3fa1c6;
	border-left: 0.6rem solid #3fa1c6;
	color: #1a1a17;
	vertical-align: middle;
}

.p-lp-compare tbody td .mark {
	display: block;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.3;
}

.p-lp-compare tbody td.is-forcle .mark {
	color: #74daff;
	font-size: 2.2rem;
	line-height: 1.1818181818;
}

.p-lp-compare tbody td .text {
	display: block;
	margin-top: 0.4rem;
	font-size: 1.3rem;
	font-weight: 500;
	line-height: 1.5384615385;
}

.p-lp-compare tbody td.is-forcle .text {
	font-weight: 600;
}

.p-lp-compare tbody td .note {
	display: block;
	margin-top: 0.4rem;
	color: #3fa1c6;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.5;
	text-spacing-trim: space-all;
}

.p-lp-compare tbody tr:last-child td.is-forcle {
	padding-bottom: 0.6rem;
	border-bottom: 0.6rem solid #3fa1c6;
	border-bottom-right-radius: 0.8rem;
	border-bottom-left-radius: 0.8rem;
}

/* -----------------------------------------------------
 * parts: 数字で見る改善実績
 * 大きい事例カード1枚＋小カード3枚（PC＝横1列／SP＝縦1列）。
 * 棒はトラック（枠）＋バー（塗り）の2枚重ね。バーの長さはデザインの実測値を
 * 割合に直してHTML側の style で持たせている（値に完全比例はしていないため、
 * 計算で出さずデザインの数値をそのまま使う）。
 * 大カードは左に写真＋ロゴ＋会社名、右に見出し・本文・棒（SPは縦積み）。
 * SPデザインは無いので、大カードは縦積み・小カードは1列にしている。
 * -------------------------------------------------- */

.p-lp-results {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-bottom: 4rem;
  /* 大きい事例カード */
  /* 小カード6枚 */
  /* 業種などのタグ行（小カードのみ） */
  /* 導入前・導入後の棒（大カード・小カード共通） */
  /* 大カードの棒だけの違い。共通の .bars と詳細度が並ぶので、後勝ちになるここに置く */;
}

.p-lp-results-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 3.2rem;
}

.p-lp-results-feature {
	display: flex;
	flex-direction: column;
	padding: 2rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 255, 0.05);
	gap: 1.6rem;
}

.p-lp-results-feature .who {
	display: flex;
	flex-direction: column;
	gap: 1.6rem;
}

.p-lp-results-feature .photo {
	position: relative;
	overflow: hidden;
	margin: 0;
	border-radius: 0.8rem;
	aspect-ratio: 450/280;
}

.p-lp-results-feature .photo img {
	position: absolute;
	top: -0.79%;
	left: -6.7%;
	width: 117.66%;
	max-width: none;
	height: auto;
	max-height: none;
}

.p-lp-results-feature .who-body {
	display: flex;
	align-items: center;
	gap: 1.2rem;
}

.p-lp-results-feature .logo {
	flex-shrink: 0;
	width: 10.3rem;
	height: 4.6rem;
	border-radius: 0.4rem;
	-o-object-fit: cover;
	object-fit: cover;
}

.p-lp-results-feature .name {
	display: flex;
	flex-direction: column;
	min-width: 0;
	gap: 0.4rem;
}

.p-lp-results-feature .industry {
	margin: 0;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.5714285714;
}

.p-lp-results-feature .company {
	margin: 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: justify;
}

.p-lp-results-feature .detail {
	display: flex;
	flex-direction: column;
	gap: 1.6rem;
}

.p-lp-results-feature .head {
	margin: 0;
	padding: 0.8rem 1.2rem;
	border: 1px solid rgba(255, 255, 0, 0.4);
	border-radius: 0.4rem;
	background-color: rgba(255, 255, 0, 0.1);
	color: #ff0;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-lp-results-feature .body {
	margin: 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	text-align: justify;
}

.p-lp-results-list {
	display: grid;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 1.6rem;
}

.p-lp-results-list > li {
	display: flex;
	flex-direction: column;
	padding: 1.6rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 255, 0.05);
	gap: 0.8rem;
}

.p-lp-results-list > li > * {
	margin: 0;
}

.p-lp-results-list > li > .tags,
.p-lp-results-list > li > .metric {
	margin-top: 0.4rem;
}

.p-lp-results-list .head {
	padding: 0.8rem 1.2rem;
	border: 1px solid rgba(255, 255, 0, 0.4);
	border-radius: 0.4rem;
	background-color: rgba(255, 255, 0, 0.1);
	color: #ff0;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
}

.p-lp-results-list .metric {
	color: #fff;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.5555555556;
}

.p-lp-results .tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1.5714285714;
	gap: 0.8rem;
}

.p-lp-results .tags > span {
	white-space: nowrap;
}

.p-lp-results .tags .rule {
	height: 1.4rem;
	background-color: #fff;
}

.p-lp-results .rule {
	flex-shrink: 0;
	width: 1px;
	margin-right: -0.05rem;
	margin-left: -0.05rem;
}

.p-lp-results .bars {
	display: flex;
	list-style: none;
	flex-direction: column;
	margin: 0;
	padding: 0;
	gap: 0.8rem;
}

.p-lp-results .bars > li {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.p-lp-results .bars .label {
	flex-shrink: 0;
	min-width: 3.6rem;
	color: #d1d5db;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.5714285714;
}

.p-lp-results .bars .track {
	display: flex;
	position: relative;
	overflow: clip;
	flex: 1 1 0;
	align-items: center;
	min-width: 0;
	height: 4.8rem;
	border-radius: 0.4rem;
	background-color: rgba(255, 255, 255, 0.05);
}

.p-lp-results .bars .bar {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	width: 100%;
	min-width: -webkit-fit-content;
	min-width: -moz-fit-content;
	min-width: fit-content;
	height: 100%;
	padding-right: 0.8rem;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.4rem;
	background-color: rgba(255, 255, 255, 0.15);
	color: #fff;
	font-family: 'Oswald', sans-serif;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.p-lp-results .bars .cl-accent {
	border-color: rgba(255, 255, 0, 0.4);
	background-color: transparent;
	background-image: linear-gradient(to right, rgba(255, 255, 0, 0.6), rgba(255, 255, 0, 0.3));
}

.p-lp-results .bars .value {
	position: absolute;
	top: 50%;
	right: 1rem;
	color: #ff0;
	font-family: 'Oswald', sans-serif;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

.p-lp-results .bars .num {
	font-size: 2.2rem;
}

.p-lp-results-feature .bars > li {
	gap: 1.2rem;
}

.p-lp-results-feature .bars > li:last-child .label {
	color: #fff;
}

.p-lp-results-feature .bars .label {
	font-weight: 600;
}

.p-lp-results-feature .bars .sz-before {
	flex: 0 0 9.2rem;
}

.p-lp-results-feature .bars .bar {
	padding-right: 1.1rem;
}

.p-lp-results-feature .bars .num {
	font-size: 2.8rem;
}

.p-lp-results-feature .bars .cl-accent {
	background-image: linear-gradient(to right, rgba(255, 255, 0, 0.6) 0%, rgba(255, 255, 0, 0.3) 50.188%, rgba(255, 255, 0, 0.2) 100%);
	color: #ff0;
}

/* -----------------------------------------------------
 * parts: 年間プランの重要性
 * 「他社」と「FORCLE」のカードを黄色い三角で対比させる。
 * カード内の折れ線グラフはFigmaのパスをそのまま持ち込んだインラインSVG。
 * 枠は幅だけ可変（高さ120固定）なのでSVGは preserveAspectRatio: none で横に伸ばし、
 * 線が細くならないよう vector-effect: non-scaling-stroke で太さを固定する。
 * グラフ内の注記はHTML側の絶対配置。SVGに入れると幅の変化で文字まで伸びるため。
 * SPデザインは無いので、2枚を縦積みにして三角を下向きにしている。
 * -------------------------------------------------- */

.p-lp-annual {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-bottom: 4rem;
  /* グラフ */;
}

.p-lp-annual-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 3.2rem;
}

.p-lp-annual-cols {
	display: flex;
	position: relative;
	flex-direction: column;
	gap: 4rem;
}

.p-lp-annual-arrow {
	align-self: center;
	width: 4.77rem;
	height: 2.86rem;
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg);
}

.p-lp-annual-arrow svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: #ff0;
}

.p-lp-annual-card {
	display: flex;
	flex-direction: column;
	padding: 2.4rem 1.2rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
}

.p-lp-annual-card.is-forcle {
	border-width: 2px;
	border-color: rgba(255, 255, 0, 0.4);
	background-color: rgba(255, 255, 255, 0.05);
}

.p-lp-annual-card .head {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
}

.p-lp-annual-card .eyebrow {
	display: block;
	color: #9ca3af;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.125;
}

.p-lp-annual-card.is-forcle .eyebrow {
	color: #ff0;
	font-weight: 600;
	line-height: 1.5;
}

.p-lp-annual-card .name {
	display: block;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.5555555556;
}

.p-lp-annual-card .caption {
	margin: 0;
	margin-top: 0.6rem;
	padding-left: 2.4rem;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.6;
}

.p-lp-annual-card .list {
	display: flex;
	list-style: none;
	flex-direction: column;
	margin: 0;
	margin-top: 1.6rem;
	padding: 0;
	gap: 0.8rem;
}

.p-lp-annual-card .list > li {
	position: relative;
	padding-left: 1.8rem;
	color: #d1d5db;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
}

.p-lp-annual-card:not(.is-forcle) .list > li::before {
	content: '';
	position: absolute;
	top: 1.15rem;
	left: 0;
	width: 0.8rem;
	height: 1rem;
	background: no-repeat 50% 50%/contain;
	background-image: url(../img/lp/ico_close.svg);
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

.p-lp-annual-card.is-forcle .list > li {
	display: flex;
	align-items: flex-start;
	padding-left: 0;
	color: #fff;
	font-weight: 600;
	gap: 0.8rem;
}

.p-lp-annual-card.is-forcle .list > li::before {
	content: '';
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	background: no-repeat 50% 50%;
	background-image: url(../img/lp/ico_check_accent.svg);
	background-size: 1.76rem 1.34rem;
}

.p-lp-annual .chart {
	display: flex;
	align-items: stretch;
	margin-top: 2.68rem;
	gap: 0.8rem;
}

.p-lp-annual .axis {
	display: flex;
	flex-shrink: 0;
	flex-direction: column;
	justify-content: space-between;
	min-width: 1.6rem;
	padding-top: 0.4rem;
	padding-bottom: 2rem;
	color: #9ca3af;
	font-size: 0.96rem;
	line-height: 1.7;
	text-align: right;
}

.p-lp-annual .plot {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	min-width: 0;
	gap: 0.4rem;
}

.p-lp-annual .frame {
	position: relative;
	overflow: clip;
	height: 12rem;
}

.p-lp-annual .graph {
	display: block;
	width: 100%;
	height: 100%;
}

.p-lp-annual .grid {
	stroke: rgba(255, 255, 255, 0.06);
	stroke-width: 1.07;
	vector-effect: non-scaling-stroke;
}

.p-lp-annual .budget {
	fill: none;
	stroke: #b4b4c8;
	stroke-opacity: 0.35;
	stroke-width: 1.61;
	stroke-dasharray: 6.45 4.3;
	vector-effect: non-scaling-stroke;
}

.p-lp-annual .line {
	fill: none;
	stroke: #9696aa;
	stroke-opacity: 0.6;
	stroke-width: 2.69;
	vector-effect: non-scaling-stroke;
}

.p-lp-annual .area {
	fill: #9696aa;
	fill-opacity: 0.08;
}

.p-lp-annual .is-forcle .budget {
	stroke: #fff000;
	stroke-opacity: 0.5;
	stroke-width: 1.61;
	stroke-dasharray: 6.43 4.29;
}

.p-lp-annual .is-forcle .line {
	stroke: #ff0;
	stroke-opacity: 1;
	stroke-width: 2.68;
}

.p-lp-annual .is-forcle .area {
	fill: #fff941;
	fill-opacity: 0.1;
}

.p-lp-annual .peak {
	fill: rgba(255, 255, 255, 0.05);
}

.p-lp-annual .note {
	position: absolute;
	left: 2.22%;
	color: #d1d5db;
	font-size: 0.97rem;
	line-height: 1;
	white-space: nowrap;
}

.p-lp-annual .note.cl-budget {
	top: 38.33%;
}

.p-lp-annual .note.cl-result {
	top: 82.5%;
}

.p-lp-annual .is-forcle .note {
	color: #fff;
}

.p-lp-annual .is-forcle .note.cl-budget {
	top: 52.5%;
}

.p-lp-annual .is-forcle .note.cl-peak {
	top: 3.33%;
	font-size: 0.86rem;
}

.p-lp-annual .is-forcle .note.is-first {
	left: 24.44%;
}

.p-lp-annual .is-forcle .note.is-second {
	left: 74.44%;
}

.p-lp-annual .months {
	display: flex;
	list-style: none;
	justify-content: space-between;
	margin: 0;
	padding: 0 0.2rem;
	color: #9ca3af;
	font-size: 0.88rem;
	line-height: 1.7;
}

/* -----------------------------------------------------
 * parts: 出稿前に徹底的に準備します（運用開始までの準備）
 * 番号・縦線・見出しを横に並べたカードを、PCは3列・SPは縦積みで置く。
 * 4枚目以降は既定で隠し、「残り4項目を見る」で開閉する（LpToggleMore.js）。
 *
 * 番号はPCだけ黄色のグラデーション。05（悩み）と同じ作りだが、角度と位置が違うので
 * 値はこの節のものを使う。Figmaは text-box-trim を持っているが、行の高さが級数と
 * 同値なので `line-height: 1` で等価になる（05も同じ）。
 *
 * 縦線はFigmaでは幅0のフレームに外側1pxずつストロークが引かれていて、実質2px。
 * 幅0の箱は場所を取らないので、そのまま2pxを置くと番号と見出しの間隔が32→34になる。
 * 左右に負のマージンを入れて打ち消す。
 * -------------------------------------------------- */

.p-lp-prepare {
	position: relative;
	z-index: 1;
	padding-top: 10.4rem;
	padding-bottom: 5.6rem;
}

.p-lp-prepare-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 3.2rem;
}

.p-lp-prepare-body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2rem;
}

.p-lp-prepare-list {
	display: flex;
	list-style: none;
	flex-direction: column;
	width: 100%;
	margin: 0;
	padding: 0;
	gap: 1.6rem;
}

.p-lp-prepare-card {
	overflow: hidden;
	padding: 2rem;
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 255, 0.05);
}

.p-lp-prepare-card .head {
	display: flex;
	align-items: center;
	margin: 0;
	gap: 1.6rem;
}

.p-lp-prepare-card .num {
	flex-shrink: 0;
	margin: -0.4rem 0;
	padding-top: 0.4rem;
	padding-bottom: 0.4rem;
	background-image: linear-gradient(95.82deg, rgba(255, 255, 0, 0) 0%, rgba(255, 255, 0, 0.5) 50%, rgba(255, 255, 0, 0.9) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-family: 'Oswald', sans-serif;
	font-size: 5.6rem;
	font-weight: 600;
	line-height: 1;
	text-box: trim-both cap alphabetic;
}

.p-lp-prepare-card .line {
	flex-shrink: 0;
	align-self: stretch;
	width: 2px;
	margin-right: -1px;
	margin-left: -1px;
	background-color: #9ca3af;
}

.p-lp-prepare-card .title {
	flex: 1 1 0;
	min-width: 0;
	color: #fff;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
	word-break: auto-phrase;
}

.p-lp-prepare-card .body {
	margin: 1.6rem 0 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	text-align: justify;
}

/* -----------------------------------------------------
 * parts: 見えないリスク
 * この節だけ地が黒40%で、前後より一段沈む。LPの地 #1A1A17 に重ねると
 * デザイン実測の #10100E になる。解決後の値をベタで書かないのは、
 * 背景canvasの上に来ても同じ重ね方になるようにするため。
 *
 * 2026-08-31、顧客要望で「手抜き代理店 / FORCLEの運用」の比較2カラムを削除した。
 * そのぶんのスタイル（-block / -cols / -arrow / -card）も一緒に落としている。
 * 戻すときは同日のコミットから拾う（2026-09-04のデザインからも消えた）。
 * -------------------------------------------------- */

.p-lp-risk {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-bottom: 4rem;
	background-color: rgba(0, 0, 0, 0.4);
	word-break: auto-phrase;
	text-spacing-trim: space-all;
}

.p-lp-risk-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 3.2rem;
}

.p-lp-risk-body {
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

/* -----------------------------------------------------
 * parts: 中間CTAバナー
 * デザイン上は「見えないリスク」のフレームの中にあるため、地色と上下の余白は
 * .p-lp-risk が持つ。ここはバナーの箱から内側だけを見る。
 *
 * 背景は「地色／レポートの絵／黒のグラデ」の3枚重ね。グラデは右から左へ進んで
 * 右を黒く沈める。文字を読ませるための当て方なので、向きを変えない。
 *
 * PCの絵は枠の左に置いた固定サイズの箱で、1652×952の絵を660×329に当てるため
 * 横に約16%伸びる。デザインがそう置いているので object-fit: fill で合わせる。
 *
 * 見出しは1行の中で級数が40/54/40と変わる。行の高さは全部56で揃うので、
 * 級数の違う .accent だけ比を振り直して56を保っている（remで置かない）。
 *
 * SPデザインは無い。背景は敷き詰め（cover）のまま、高さの固定も外す。
 * 級数は幅375で溢れないところまで落としてある。
 * -------------------------------------------------- */

.p-lp-cta-banner {
	display: flex;
	position: relative;
	overflow: hidden;
	flex-direction: column;
	align-items: center;
	padding: 2.4rem 1.6rem 3.2rem;
	border: 4px solid #74daff;
	border-radius: 0.8rem;
	box-shadow: 0 0 20px #57bfff;
	color: #fff;
	font-weight: 700;
	text-align: center;
	-webkit-font-feature-settings: 'palt' 1;
	font-feature-settings: 'palt' 1;
}

.p-lp-cta-banner-bg {
	position: absolute;
	z-index: 0;
	overflow: hidden;
	border-radius: 0.8rem;
	background-color: #1a1a17;
	inset: -0.4rem;
}

.p-lp-cta-banner-bg img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0.8;
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: 0 0;
	object-position: 0 0;
}

.p-lp-cta-banner-bg::after {
	content: '';
	position: absolute;
	background-color: rgba(0, 0, 0, 0.55);
	inset: 0;
}

.p-lp-cta-banner-copy {
	position: relative;
	z-index: 1;
	width: 100%;
}

.p-lp-cta-banner-copy .lead {
	margin: 0;
	font-size: 1.6rem;
	line-height: 1.5;
}

.p-lp-cta-banner-copy .main {
	margin: 0.8rem 0 0;
	font-size: 2rem;
	line-height: 1.5;
	letter-spacing: 0.1rem;
}

.p-lp-cta-banner-copy .main .quote {
	font-weight: 500;
}

.p-lp-cta-banner-copy .main .accent {
	color: #ff0;
	font-size: 2.6rem;
	line-height: 0;
}

.p-lp-cta-banner-copy .sub {
	margin: 1.2rem 0 0;
	font-size: 2rem;
	line-height: 1.5;
}

.p-lp-cta-banner-btn {
	display: flex;
	position: relative;
	z-index: 1;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	min-height: 5.6rem;
	margin-top: 4rem;
	padding: 0.8rem 1.2rem 0.8rem 2rem;
	border-radius: 999px;
	background-color: #ff0;
	box-shadow: 0 0 20px #ff0;
	color: #1a1a17;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
	-webkit-font-feature-settings: normal;
	font-feature-settings: normal;
	gap: 0.8rem;
}

.p-lp-cta-banner-btn .ico {
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	align-items: center;
	padding: 0.8rem;
	border-radius: 999px;
	background-color: #1a1a17;
}

.p-lp-cta-banner-btn .ico::before {
	content: '';
	flex-shrink: 0;
	width: 3.2rem;
	height: 3.2rem;
	background: no-repeat 50% 50%/contain;
	background-image: url(../img/ico_arrow_right.png);
	-webkit-filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(73deg) brightness(150%) contrast(100%);
	filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(73deg) brightness(150%) contrast(100%);
}

.p-lp-cta-banner-btn .body {
	flex: 1 1 0;
	min-width: 0;
	text-align: center;
}

/* -----------------------------------------------------
 * parts: ご契約の流れ（STEP 01〜06）
 * 丸つきのステップを縦に並べ、左に縦線を通す。線は進捗バーで、
 * 通過したステップまで黄が伸びる（LpFlowProgress.js）。
 *
 * 線の位置はデザインの丸の中心（PC 176 ＝ バッジ120 ＋ gap24 ＋ 丸の半分32）。
 * Figmaは幅0のベクトルに外側ストロークで2pxを出しているので、CSSは中心から1px戻す。
 * 上端は丸01の中心、下端は最後の罫線の7px上（デザインの実測値。丸06の中心ではない）。
 * CSSの基準はリストの下端＝罫線の下辺なので、7ではなく罫線1pxを足した8を空ける。
 *
 * バッジのpaddingは枠線ぶんを引く。Figmaのp16は padding15 ＋ border1 で、
 * ストロークが内側に描かれるため（12の表・17のボタンと同じ）。
 *
 * SPデザインは無い。バッジは縦書きが成立しない幅（本文335に対しPCは208を横に使う）
 * なので、全幅の帯に変えて横書きに戻す。
 * -------------------------------------------------- */

.p-lp-flow {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-bottom: 4rem;
	--flow-badge: 6.4rem;
	--flow-gap: 1.6rem;
	--flow-num: 4.8rem;
}

.p-lp-flow-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 3.2rem;
}

.p-lp-flow-list {
	display: flex;
	position: relative;
	flex-direction: column;
	gap: 1.2rem;
}

.p-lp-flow-list::before,
.p-lp-flow-list::after {
	content: '';
	position: absolute;
	top: calc(var(--flow-num) / 2);
	bottom: 0.8rem;
	left: calc(var(--flow-badge) + var(--flow-gap) + var(--flow-num) / 2 - 1px);
	width: 2px;
}

.p-lp-flow-list::before {
	background-color: #d1d5db;
}

.p-lp-flow-list::after {
	background-color: #ff0;
}

.p-lp-flow-group {
	display: flex;
	gap: var(--flow-gap);
}

.p-lp-flow-group.is-nobadge {
	padding-left: calc(var(--flow-badge) + var(--flow-gap));
}

.p-lp-flow-steps {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	min-width: 0;
	gap: 1.2rem;
}

.p-lp-flow-badge {
	display: flex;
	position: relative;
	z-index: 1;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	align-self: stretch;
	width: var(--flow-badge);
	padding: 1rem 0.5rem;
	border: 1px solid rgba(255, 255, 0, 0.4);
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 0, 0.1);
	color: #fff;
	gap: 0.6rem;
}

.p-lp-flow-badge .head {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0;
	font-family: 'Oswald', sans-serif;
	font-weight: 600;
	white-space: nowrap;
}

.p-lp-flow-badge .label {
	font-size: 1.8rem;
	line-height: 1.5555555556;
}

.p-lp-flow-badge .range {
	font-size: 1.6rem;
	line-height: 1.5;
}

.p-lp-flow-badge .note {
	margin: 0;
	padding-top: 0.1rem;
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 3rem;
	letter-spacing: 0.2rem;
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}

.p-lp-flow-badge .note br {
	display: none;
}

.p-lp-flow-badge .note .tcy {
	margin-bottom: 0.2rem;
	text-combine-upright: all;
}

.p-lp-flow-step {
	display: flex;
	gap: 1.2rem;
}

.p-lp-flow-step .num {
	display: flex;
	position: relative;
	z-index: 1;
	flex-shrink: 0;
	justify-content: center;
	align-items: center;
	width: var(--flow-num);
	height: var(--flow-num);
	border: 1px solid transparent;
	border-radius: 999px;
	background-color: #ff0;
	color: #1a1a17;
	font-family: 'Oswald', sans-serif;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1;
	transition: background-color 0.4s ease, border-color 0.4s ease;
	text-box: trim-both cap alphabetic;
}

.p-lp-flow-step .body {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	min-width: 0;
	padding-bottom: calc(2.4rem - 1px);
	border-bottom: 1px solid #5c5c66;
	gap: 0.8rem;
}

.p-lp-flow-step .title {
	display: flex;
	align-items: center;
	min-height: var(--flow-num);
	margin: 0;
	color: #fff;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-lp-flow-step .desc {
	margin: 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
}

.has-lp-flow .p-lp-flow-list::after {
	bottom: auto;
	height: var(--flow-progress, 0px);
}

.has-lp-flow .p-lp-flow-step .num {
	background-color: #d1d5db;
}

.has-lp-flow .p-lp-flow-step.is-active .num {
	border-color: #ff0;
	background-color: #ff0;
}

/* -----------------------------------------------------
 * parts: 安心して任せられる資格・認定（信頼性・認定資格）
 * 白いカードにロゴだけを入れ、名前はカードの外・下に白文字で置く。
 * PC＝横3列（一覧の幅は960でインナーより狭い）／SP＝1列（デザイン無しのためPC準拠）。
 *
 * カードは高さ152固定（padding16 ＋ ロゴ枠120 ＋ padding16）。
 * ロゴ枠は「デザインで見えている大きさ」に合わせるため1枚ずつ違い、
 * 既存素材（白余白込みの正方形）では枠が内側120より縦に大きくなる。
 * その余白をカードで切るために overflow: hidden を置いている（詳細は _certs.njk）。
 * -------------------------------------------------- */

.p-lp-certs {
	position: relative;
	z-index: 1;
	padding-top: 8rem;
	padding-bottom: 4rem;
}

.p-lp-certs-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 3.2rem;
}

.p-lp-certs-list {
	display: grid;
	list-style: none;
	width: 100%;
	margin: 0;
	padding: 0;
	gap: 1.2rem;
}

.p-lp-certs-list > li {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.6rem;
}

.p-lp-certs-list .logo {
	display: flex;
	overflow: hidden;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 15.2rem;
	margin: 0;
	padding: 1.6rem;
	border-radius: 0.8rem;
	background-color: #fff;
}

.p-lp-certs-list .logo img {
	width: var(--logo-box);
	max-width: none;
	height: var(--logo-box);
	max-height: none;
	-o-object-fit: contain;
	object-fit: contain;
}

.p-lp-certs-list .name {
	color: #fff;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.5555555556;
	text-align: center;
	letter-spacing: 0.1rem;
}

/* -----------------------------------------------------
 * parts: 広告運用の成果は「人」で決まる（チーム紹介）
 * メンバーカードを PC＝横2列 / SP＝縦積み で並べる。
 *
 * カードの中はPCとSPで組み方が違う。PCは「写真｜（肩書・氏名・紹介文・タグ）」の
 * 2カラム、SPは上段に「写真＋（肩書・氏名）」・下段に紹介文とタグを全幅。
 * 同じDOMで両方を作るため、grid のエリア指定を切り替えている。
 *
 * PCの写真は高さが決まっていない。Figmaは写真枠が h-full ＋ 親が pb50 で、
 * **カードの高さは右側の中身で決まり、写真はそこから50引いた高さに伸びる**。
 * gridでは写真を2行にまたがらせて stretch し、下に50のマージンで同じ形にする。
 *
 * 写真は書き出しから枠線（＠2xで2px）を落とし、枠線と角丸はCSSで持つ。
 * 焼き込んだままだと、SPの枠がPCと縦横比が違うぶん上下が切り落とされて
 * 枠線が3辺になる。CSSで引けばどちらの切り取りでも4辺そろう。
 *
 * Figmaのpaddingはトークン値で枠線を含む（ストロークは内側描画）。
 * カードもタグも枠線1pxぶんを引いた値で書く。
 * -------------------------------------------------- */

.p-lp-team {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.p-lp-team-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 3.2rem;
}

.p-lp-team-list {
	display: flex;
	list-style: none;
	flex-direction: column;
	margin: 0;
	padding: 0;
	gap: 2rem;
}

.p-lp-team-card {
	display: grid;
	padding: 1.9rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
	background-color: rgba(255, 255, 255, 0.05);
	color: #fff;
	grid-template-areas: 'photo head' 'body body';
	grid-template-columns: 13rem 1fr;
	-webkit-column-gap: 1.6rem;
	-moz-column-gap: 1.6rem;
	column-gap: 1.6rem;
	row-gap: 1.6rem;
}

.p-lp-team-card .photo {
	position: relative;
	overflow: hidden;
	width: 13rem;
	height: 16rem;
	margin: 0;
	border: 1px solid #d1d5db;
	border-radius: 0.4rem;
	grid-area: photo;
}

.p-lp-team-card .photo img {
	width: 100%;
	height: 100%;
	max-height: none;
	-o-object-fit: cover;
	object-fit: cover;
}

.p-lp-team-card .head {
	display: flex;
	flex-direction: column;
	align-self: end;
	grid-area: head;
	gap: 0.4rem;
}

.p-lp-team-card .role {
	margin: 0;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1.5714285714;
}

.p-lp-team-card .name {
	margin: 0;
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-lp-team-card .body {
	display: flex;
	flex-direction: column;
	grid-area: body;
	gap: 1.6rem;
}

.p-lp-team-card .bio {
	margin: 0;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.5714285714;
	text-align: justify;
}

.p-lp-team-tags {
	display: flex;
	list-style: none;
	flex-wrap: wrap;
	align-content: center;
	align-items: center;
	margin: 0;
	padding: 0;
	gap: 0.8rem;
}

.p-lp-team-tags li {
	padding: 0.6rem 0.8rem 0.8rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.4rem;
	background-color: rgba(255, 255, 255, 0.15);
	color: #ff0;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.2857142857;
	white-space: nowrap;
}

/* -----------------------------------------------------
 * parts: FAQ
 * 枠で囲った中に質問を積む。開いている項目だけ質問が黄になり、答えの左に黄の線が付く。
 *
 * **本体の幅はPCで960**（他の節は1200）。デザインの実値。
 *
 * 罫線は項目の下に引くが、**開いている項目と、いちばん下に見えている項目には引かない**
 * （デザインの実測：箱の中の線は2〜5件目の下だけ。6件目の下は箱の枠線）。
 * 「残り13件」を隠しているあいだは6件目が最後なので、`:has()` で隠し項目の直前を狙う。
 *
 * 閉じた項目の高さはアイコン（PC40/SP28）が決めている。質問の文字は28しかないので、
 * アイコンを小さくすると行が縮む。
 * -------------------------------------------------- */

.p-lp-faq {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-bottom: 8rem;
}

.p-lp-faq-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 3.2rem;
}

.p-lp-faq-body {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	gap: 2rem;
}

.p-lp-faq-list {
	overflow: hidden;
	list-style: none;
	width: 100%;
	margin: 0;
	padding: 0;
	border-radius: 0.8rem;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3);
}

.p-lp-faq-item {
	position: relative;
}

.p-lp-faq-item::after {
	content: '';
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background-color: rgba(255, 255, 255, 0.3);
	transition: opacity 0.3s ease;
}

.p-lp-faq-item:last-child::after,
.p-lp-faq-item.is-open::after {
	opacity: 0;
}

.p-lp-faq-item .q {
	cursor: pointer;
	display: flex;
	align-items: center;
	width: 100%;
	padding: 2rem;
	border: 0;
	background-color: rgba(255, 255, 255, 0.05);
	color: #fff;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: justify;
	transition: padding-bottom 0.3s ease, color 0.3s ease;
	gap: 2rem;
}

.p-lp-faq-item .text {
	flex: 1 1 0;
	min-width: 0;
}

.p-lp-faq-item .ico {
	position: relative;
	flex-shrink: 0;
	width: 2.8rem;
	height: 2.8rem;
}

.p-lp-faq-item .ico::before,
.p-lp-faq-item .ico::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 58.2%;
	height: 8.2%;
	background-color: #fff;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

.p-lp-faq-item .ico::after {
	transition: -webkit-transform 0.3s ease;
	transition: transform 0.3s ease;
	transition: transform 0.3s ease, -webkit-transform 0.3s ease;
	-webkit-transform: translate(-50%, -50%) rotate(90deg);
	transform: translate(-50%, -50%) rotate(90deg);
}

.p-lp-faq-item .a p {
	margin: 0;
	padding: 1.2rem 2rem 2rem;
	border-left: 3px solid #ff0;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	text-align: justify;
}

.p-lp-faq-item.is-open .q {
	padding-bottom: 1.2rem;
	color: #ff0;
}

.p-lp-faq-item.is-open .ico::after {
	-webkit-transform: translate(-50%, -50%) rotate(0deg);
	transform: translate(-50%, -50%) rotate(0deg);
}

.has-lp-more .js-lp-more:not(.is-open) .p-lp-faq-item:has(+ [data-more-hidden])::after {
	opacity: 0;
}

/* -----------------------------------------------------
 * parts: 無料診断で現状を知る（最終CTA・黄グラデ）
 * 上下に2pxの枠線を引いた、黄のグラデーションの帯。中身は文字だけ。
 *
 * グラデーションは角度指定なので、箱の縦横比が変わっても四隅の色が変わらない。
 * PC（3.35:1）とSP（1.06:1）で四隅が同値なのを確認済みで、1つ書けば両方再現できる。
 *
 * label→title は間隔なしで接する（デザインの実測：label箱 34..76 と title箱の頭76）。
 * 間隔が付くのは title→lead だけ。
 *
 * titleはトークン外の直値（PC 96/110・SP 56/68）。`white-space: nowrap` もデザインどおり。
 * 「無料診断で」は5文字なので、PCの指定が効く768px以上では 96×5＝480 で必ず収まる。
 * -------------------------------------------------- */

.p-lp-lastcta {
	position: relative;
	z-index: 1;
	padding: 2.4rem 2rem;
	border-top: 2px solid rgba(255, 255, 0, 0.4);
	border-bottom: 2px solid rgba(255, 255, 0, 0.4);
	background-color: #1a1a17;
	background-image: linear-gradient(95.36deg, rgba(255, 255, 0, 0) 0%, rgba(255, 255, 0, 0.5) 50%, rgba(255, 255, 0, 0.9) 100%);
	color: #fff;
	text-align: center;
}

.p-lp-lastcta-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.p-lp-lastcta .label {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-lp-lastcta .title {
	margin: 0;
	font-size: 5.6rem;
	font-weight: 700;
	line-height: 1.2142857143;
	white-space: nowrap;
}

.p-lp-lastcta .lead {
	margin: 1.2rem 0 0;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
}

/* -----------------------------------------------------
 * parts: まずはオンラインで話す（オンライン無料相談）
 * 中身は受領したHubSpotフォーム。ここは見出しと枠だけを作る。
 *
 * 枠の高さはフォーム側が決める（HubSpotが .hs-form-frame に高さを入れる）ので、
 * こちらでは持たない。デザインのカード比（PC 800×426 / SP 800:484）は
 * カレンダーの見本が入る前提の仮値だったため、実物の受領にあわせて外した。
 *
 * 見出しの箱は高さ84。PCは中身（28＋8＋48）がちょうど84で効かないが、
 * SPは68しかないので**上に16空く**（下寄せ）。c-lp-heading3 は高さを持たないのでここで足す。
 * -------------------------------------------------- */

.p-lp-meeting {
	position: relative;
	z-index: 1;
	padding-top: 8rem;
	padding-bottom: 4rem;
}

.p-lp-meeting-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 3.2rem;
}

.p-lp-meeting-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	gap: 1.6rem;
}

.p-lp-meeting-head .c-lp-heading3 {
	justify-content: flex-end;
	min-height: 8.4rem;
}

.p-lp-meeting-head .lead {
	margin: 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

.p-lp-meeting-frame {
	width: 100%;
}

.p-lp-meeting-frame iframe {
	display: block;
	width: 100%;
	border: 0;
	border-radius: 0.8rem;
	pointer-events: auto;
}

/* -----------------------------------------------------
 * parts: 広告運用無料診断に申し込む（お問い合わせ）
 * 中身はHubSpotのiframe。ここは見出しとカードの外枠だけを作る。
 *
 * カードの配色がPCとSPで逆（PC＝白地／SP＝半透明ダーク）。KVのフォーム枠と同じ作りだが、
 * KVのSPは5%でこちらは15%と面の濃さが違うので、KVのスタイルは共有しない。
 * 枠を .p-lp-form 側に持たせないのも同じ理由（KVと共用しているため）。
 *
 * 見出し→カードの間隔はPC32・SP24なので、innerのgapで渡す。
 * -------------------------------------------------- */

.p-lp-contact {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-bottom: 8rem;
}

.p-lp-contact-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	gap: 2.4rem;
}

.p-lp-contact-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	gap: 1.6rem;
}

.p-lp-contact-head .lead {
	margin: 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

.p-lp-contact-card {
	width: 100%;
	padding: 2.3rem 1.9rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0.8rem;
	background-color: #fff;
}

/* -----------------------------------------------------
 * parts: FORCLE 会社概要（会社情報）
 *
 * 表の行の高さは内容の行数で決まる（PC＝24＋28×行数＋24／SP＝20＋24×行数＋20）。
 * デザインの76は 24＋28＋24 ちょうどで、罫線ぶんの余りが無い。border-bottom で引くと
 * 1行ごとに1px増えて9行で9pxずれるので、レイアウトに効かない box-shadow で引く。
 * （22で箱の+2pxを同じ手で消している。あちらは絶対配置の::afterも併用したが、
 * ここは行ごとに1本ずつなので影1つで足りる）
 *
 * 左右のpaddingは「列のあいだの谷」を作るためのもので、谷の幅はPC48・SP24。
 * 表の左右端はPCだけ16／24の余白を持ち、SPは0（画面のガターに直付け）。
 * -------------------------------------------------- */

.p-lp-company {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.p-lp-company-inner {
	width: 100%;
	max-width: 128rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
}

.p-lp-company .c-lp-heading {
	margin-bottom: 3.2rem;
}

.p-lp-company-body {
	display: flex;
	flex-direction: column;
	gap: 3.8rem;
}

.p-lp-company-table {
	display: grid;
	overflow: clip;
	margin: 0;
	border-radius: 0.8rem;
	grid-template-columns: 12rem 1fr;
}

.p-lp-company-table dt,
.p-lp-company-table dd {
	display: flex;
	align-items: center;
	margin: 0;
	padding-top: 2rem;
	padding-bottom: 2rem;
	font-size: 1.6rem;
	line-height: 1.5;
}

.p-lp-company-table dt {
	padding-right: 1.2rem;
	box-shadow: inset 0 -1px 0 #d1d5db;
	color: #d1d5db;
	font-weight: 600;
}

.p-lp-company-table dd {
	padding-left: 1.2rem;
	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.3);
	color: #fff;
	font-weight: 500;
}

.p-lp-company-table dd > span {
	flex: 1;
	min-width: 0;
}

.p-lp-company-table dd a {
	color: #ff0;
	text-decoration: underline;
}

.p-lp-company-map {
	overflow: hidden;
	width: 100%;
	height: 20rem;
	border-radius: 0.4rem;
}

.p-lp-company-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	pointer-events: auto;
}

/* -----------------------------------------------------
 * js: 開閉の高さ（LpAccordion.js）
 * grid の 0fr→1fr で伸縮させる。高さを測らないので、`display: none` で
 * 始まる項目（22の残り13件）でも正しく開く。
 *
 * **直下の子に padding/margin を付けないこと。**ここは overflow: hidden を持つ
 * だけの箱で、余白を持たせると展開時にガクッと動く。余白は孫に持たせる。
 *
 * 閉じるのは has-lp-accordion が付いてから＝**JSが動かなければ開いたまま**出る。
 * -------------------------------------------------- */

.js-lp-ac-content {
	display: grid;
	transition: grid-template-rows 0.4s ease;
	transition: grid-template-rows 0.4s ease, -ms-grid-rows 0.4s ease;
	grid-template-rows: 1fr;
}

.js-lp-ac-content > * {
	overflow: hidden;
}

.has-lp-accordion .js-lp-ac-content {
	grid-template-rows: 0fr;
}

.has-lp-accordion .is-open > .js-lp-ac-content {
	grid-template-rows: 1fr;
}

/* -----------------------------------------------------
 * js: 背景のcanvas（LpBg.js → bg1.js / bg2.js）
 * 表示サイズはCSSが決め、実ピクセル（DPR込み）はモジュール側が合わせる。
 * 置き場所・濃さ・ヘッダー分の上伸ばしは、包んでいる .p-lp-bg が持つ。
 * ここは**下敷きの画像の上に重なって入れ替わる**ぶんだけを見る。
 *
 * 1コマ目が描けるまでは隠しておき、描けてからゆっくり出す。そのままだと
 * パッと切り替わってしまうため。JSが動かなければ下敷きの画像が出たままになる。
 * -------------------------------------------------- */

.js-lp-bg {
	position: absolute;
	z-index: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 2.4s ease-out;
	pointer-events: none;
}

.js-lp-bg.is-ready {
	opacity: 1;
}

/* -----------------------------------------------------
 * js: 「残り○件を見る」で隠している項目の出し入れ（LpToggleMore.js）
 * 隠すのは has-lp-more が付いてからなので、**JSが動かなければ全件出たまま**になる。
 * 節を問わず `[data-more-hidden]` を隠すので、新しい節で使うときはCSSを足さなくてよい。
 * -------------------------------------------------- */

.has-lp-more .js-lp-more:not(.is-open) [data-more-hidden] {
	display: none;
}

/* -----------------------------------------------------
 * js: 横に流れ続ける帯（LpMarquee.js）
 * 同じ並びを2つ置いて -50% までずらすことで、継ぎ目なくループさせる。
 * 速さは使用側で --lp-marquee-duration を指定する。
 * -------------------------------------------------- */

@-webkit-keyframes lp-marquee {
	from {
		-webkit-transform: translateX(0);
		transform: translateX(0);
	}

	to {
		-webkit-transform: translateX(-50%);
		transform: translateX(-50%);
	}
}

@keyframes lp-marquee {
	from {
		-webkit-transform: translateX(0);
		transform: translateX(0);
	}

	to {
		-webkit-transform: translateX(-50%);
		transform: translateX(-50%);
	}
}

.js-lp-marquee {
	overflow: hidden;
}

.js-lp-marquee > * {
	display: flex;
	width: -webkit-max-content;
	width: max-content;
	-webkit-animation: lp-marquee var(--lp-marquee-duration, 40s) linear infinite;
	animation: lp-marquee var(--lp-marquee-duration, 40s) linear infinite;
}

.js-lp-marquee.is-paused > * {
	-webkit-animation-play-state: paused;
	animation-play-state: paused;
}

/* -----------------------------------------------------
 * js: スクロールで下から上へふわっと表示（LpReveal.js）
 * 隠すのは has-lp-reveal 配下だけ＝JSが動かなかった時は常時表示になる。
 * data-reveal="stagger" のブロックは子が個別に出るため、is-inview も子に付く。
 * 画面から外れると is-inview が外れて隠れた状態に戻る。ずらしの待ち時間は
 * 出るときだけに掛ける（戻るときも遅れると、順にすっと消えていくのが不自然なため）。
 * -------------------------------------------------- */

.has-lp-reveal .js-lp-reveal:not([data-reveal=stagger]),
.has-lp-reveal .js-lp-reveal[data-reveal=stagger] > * {
	opacity: 0;
	transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	-webkit-transform: translateY(2.4rem);
	transform: translateY(2.4rem);
}

.has-lp-reveal .js-lp-reveal.is-inview:not([data-reveal=stagger]),
.has-lp-reveal .js-lp-reveal[data-reveal=stagger] > .is-inview {
	opacity: 1;
	transition-delay: calc(var(--reveal-index, 0) * 0.08s);
	-webkit-transform: none;
	transform: none;
}

/* -----------------------------------------------------
 * js: 慣性スクロール（LpSmoothScroll.js / Lenis）の当て込み
 * 素のCSSは vendor/_lenis.scss。ここはこのLPでの打ち消しだけを持つ。
 * -------------------------------------------------- */

/* Lenisは iframe 上のホイールを拾えるよう iframe の操作を殺すが、
   このLPは HubSpotフォーム・オンライン相談・地図がすべて iframe で、
   触れないと用をなさないため戻す。iframe内のスクロールはブラウザ側に任せる。 */

.lenis.lenis-smooth iframe {
	pointer-events: auto;
}

/* -----------------------------------------------------
 * Display
 * 見出しの改行位置がPC/SPで違う節があるため、<br> の出し分けに使う。
 * 必要になったものだけ置く（本体サイトの全ユーティリティは持ち込まない）。
 * -------------------------------------------------- */

@media screen and (min-width: 768px) {
	.l-lp {
		--lp-header-h: 8.8rem;
	}

	.l-lp {
		--lp-footer-h: 23.4rem;
	}

	.l-lp-header-inner {
		padding: 1.6rem 4rem;
	}

	.l-lp-header-inner .logo img {
		width: 16.1rem;
		height: 3.8rem;
	}

	.l-lp-footer {
		padding-top: 4rem;
		padding-bottom: 2.4rem;
		gap: 2.4rem;
	}

	.l-lp-footer-inner {
		padding-right: 4rem;
		padding-left: 4rem;
		gap: 2.4rem;
	}

	.l-lp-footer-inner .logo img {
		width: 24.6rem;
		height: 5.8rem;
	}

	.c-lp-btn {
		min-height: 6.4rem;
		padding: 1.6rem 3.2rem;
		font-size: 1.8rem;
	}

	.c-lp-btn.sz-sm {
		justify-content: space-between;
		width: 24rem;
		min-height: 5.6rem;
		padding: 0.8rem 1.2rem 0.8rem 2.4rem;
		font-size: 1.6rem;
		line-height: 1.125;
		letter-spacing: 0;
		gap: 0.8rem;
	}

	.c-lp-btn.sz-sm .ico {
		display: flex;
	}

	.c-lp-btn-more {
		width: 24rem;
		min-height: 5.6rem;
		padding: 0.6rem 1.4rem;
		font-size: 1.8rem;
		font-weight: 700;
		line-height: 1.2222222222;
	}

	.c-lp-btn-more .ico {
		padding: 0.6rem;
	}

	.c-lp-btn-more .ico::before {
		width: 2rem;
		height: 2rem;
	}

	.c-lp-heading .label {
		font-size: 2rem;
		line-height: 1.5;
	}

	.c-lp-heading .title {
		font-size: 4rem;
		line-height: 1.5;
		letter-spacing: 0.1rem;
	}

	.c-lp-heading .lead {
		font-size: 1.8rem;
		line-height: 1.5555555556;
	}

	.c-lp-heading3 .label {
		font-size: 1.8rem;
		line-height: 1.5555555556;
	}

	.c-lp-heading3 .title {
		font-size: 3.2rem;
		line-height: 1.5;
		gap: 0.8rem;
	}

	.c-lp-heading3 .title .ico {
		width: 4rem;
		height: 4rem;
	}

	.p-lp-bg::before {
		background-image: url(../img/lp/bg2_poster.webp);
		background-size: 2560px 2494px;
	}

	.p-lp-bg[data-lp-bg=bg1]::before {
		background-image: url(../img/lp/bg1_poster.webp);
		background-size: 2560px 3459px;
	}

	.p-lp-bg[data-rotate]::before {
		background-image: url(../img/lp/bg2_rot_poster.webp);
		background-size: 2560px 2060px;
	}

	.p-lp-bg[data-turn]::before {
		background-image: url(../img/lp/bg1_turn_poster.webp);
		background-size: 2560px 2594px;
	}

	.p-lp-campaign {
		width: 117.3rem;
		margin-top: -4.2rem;
		margin-right: auto;
		margin-bottom: -2rem;
		margin-left: auto;
	}

	.p-lp-campaign.sz-diagnosis {
		width: 108rem;
		margin-right: -2rem;
		margin-left: -2rem;
	}

	.p-lp-cta {
		gap: 2.4rem;
	}

	.p-lp-cta-main {
		justify-content: center;
		width: 100%;
		min-height: 10.4rem;
		padding: 0.8rem 1.6rem 0.8rem 2.4rem;
		font-size: 2.8rem;
		line-height: 1.5;
		text-align: center;
		letter-spacing: 0.2rem;
	}

	.p-lp-cta-main .ico {
		position: absolute;
		top: 50%;
		right: 1.9rem;
		width: 4.8rem;
		height: 4.8rem;
		padding: 1.2rem;
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
	}

	.p-lp-cta-main .ico::before {
		width: 2.4rem;
		height: 2.4rem;
	}

	.p-lp-cta.sz-narrow .p-lp-cta-main {
		justify-content: flex-start;
		font-size: 2.4rem;
		line-height: 1.5;
		text-align: left;
		letter-spacing: 0;
	}

	.p-lp-cta.sz-narrow .p-lp-cta-row {
		flex-direction: column;
	}

	.p-lp-cta.sz-narrow .p-lp-cta-subs {
		flex-direction: column;
		width: 100%;
		gap: 1.6rem;
	}

	.p-lp-cta.sz-narrow .p-lp-cta-sub {
		width: 100%;
	}

	.p-lp-cta.sz-narrow .p-lp-cta-tags {
		gap: 1.2rem;
	}

	.p-lp-cta.sz-narrow .p-lp-cta-tags li {
		padding-right: 2rem;
		font-size: 1.8rem;
		font-weight: 600;
		line-height: 1.5555555556;
		gap: 0.6rem;
	}

	.p-lp-cta.sz-sm .p-lp-cta-sub {
		width: 33rem;
		padding: 0.8rem 1.6rem 0.8rem 1.2rem;
	}

	.p-lp-cta.sz-sm .p-lp-cta-sub .body {
		font-size: 1.8rem;
		line-height: 1.2222222222;
		letter-spacing: 0;
	}

	.p-lp-cta-row {
		flex-direction: row;
	}

	.p-lp-cta-subs {
		flex-shrink: 0;
		flex-direction: row;
		gap: 2.4rem;
	}

	.p-lp-cta-sub {
		width: 41.5rem;
		min-height: 9rem;
		padding: 0.8rem 2rem 0.8rem 1.2rem;
	}

	.p-lp-cta-sub .body {
		font-size: 2rem;
		line-height: 1.5;
		letter-spacing: 0.1rem;
	}

	.p-lp-cta-sub .ico {
		width: 2.8rem;
		height: 2.8rem;
	}

	.p-lp-cta-sub.is-consult .body {
		font-weight: 700;
	}

	.p-lp-cta-sub.is-tel .body {
		line-height: 1.5;
	}

	.p-lp-cta-tags {
		flex: 1 1 0;
		min-width: 0;
		gap: 1rem;
	}

	.p-lp-diagnosis-band {
		display: flex;
		justify-content: center;
		padding-top: 5.6rem;
		padding-bottom: 5.6rem;
	}

	.p-lp-diagnosis-box {
		width: 120rem;
		padding: 4.8rem 8rem;
	}

	.p-lp-diagnosis-notch {
		height: calc(10.4rem + 1px);
	}

	.p-lp-diagnosis-head .pill {
		padding: 0.6rem 3.2rem 0.8rem;
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-diagnosis-head .title {
		font-size: 5.5rem;
		line-height: normal;
	}

	.p-lp-diagnosis-list {
		margin-top: 1.6rem;
	}

	.p-lp-diagnosis-list > li {
		padding: 8.3rem 2.3rem 2.3rem;
	}

	.p-lp-diagnosis-list .label {
		position: absolute;
		top: 2.2rem;
		left: -1px;
		max-width: none;
		margin: 0;
		padding: 0.4rem 1.2rem 0.4rem 2.4rem;
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-diagnosis-list .body {
		font-size: 1.8rem;
		line-height: 1.5555555556;
	}

	.p-lp-diagnosis .p-lp-campaign {
		margin-top: 0.6rem;
	}

	.p-lp-diagnosis .p-lp-cta {
		margin-top: 2.4rem;
	}

	.p-lp-fixed-cta {
		display: none;
	}

	.p-lp-kv {
		padding-top: 1.4rem;
		padding-bottom: 10.1rem;
	}

	.p-lp-kv-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-kv-copy {
		grid-area: copy;
	}

	.p-lp-kv-copy .badge {
		padding: 0.6rem 3.2rem 0.8rem;
		font-size: 2.4rem;
		font-weight: 700;
		line-height: 1.5;
	}

	.p-lp-kv-copy .swiper {
		overflow: hidden;
		margin-top: 0.7rem;
	}

	.p-lp-kv-copy .c-lp-indicator {
		margin-top: 4rem;
	}

	.p-lp-kv-copy .main {
		margin-right: -0.2rem;
		margin-left: 0;
		font-size: 12rem;
		line-height: 1.3333333333;
	}

	.p-lp-kv-copy .sub {
		margin-top: 0.6rem;
		font-size: 7.2rem;
	}

	.p-lp-kv-copy .note {
		margin-top: 2.4rem;
		font-size: 3.2rem;
		line-height: 1.5;
	}

	.p-lp-kv-inner > .p-lp-campaign-note {
		margin-right: 3.7rem;
	}

	.p-lp-kv .p-lp-campaign {
		margin-top: 1.2rem;
	}

	.p-lp-kv .p-lp-stats {
		margin-top: 5.6rem;
	}

	.p-lp-kv-lead {
		font-size: 2rem;
		font-weight: 700;
		line-height: 1.8;
		text-align: center;
		letter-spacing: 0.1rem;
		grid-area: lead;
	}

	.p-lp-media {
		margin-top: 0;
		padding-top: 5.6rem;
		padding-right: 4rem;
		padding-bottom: 5.6rem;
		padding-left: 4rem;
	}

	.p-lp-media-label {
		font-size: 1.8rem;
		line-height: 1.5555555556;
	}

	.p-lp-media-scroll {
		margin-top: 2.4rem;
	}

	.p-lp-stats {
		flex-direction: row;
		max-width: 113.3rem;
		margin-right: auto;
		margin-left: auto;
		gap: 1.6rem;
	}

	.p-lp-stats-card {
		flex-shrink: 0;
		padding: 2.3rem;
		gap: 0.8rem;
	}

	.p-lp-stats-card .logos img {
		width: 14.4rem;
		height: 14.4rem;
	}

	.p-lp-stats-values {
		flex: 1 1 0;
		flex-direction: column;
		flex-wrap: nowrap;
		justify-content: space-between;
		min-width: 0;
		gap: 1.6rem;
	}

	.p-lp-stats-values .row {
		display: flex;
		gap: 1.6rem;
	}

	.p-lp-stats-values .row:nth-child(n+2) > .item {
		flex: 1 1 0;
		justify-content: center;
		min-width: 0;
	}

	.p-lp-stats-values .item {
		padding: 1.1rem 2.3rem;
		gap: 0.8rem;
	}

	.p-lp-stats-values .num {
		font-size: 3.2rem;
	}

	.p-lp-stats-values .unit {
		bottom: 0.6rem;
		font-size: 2rem;
	}

	.p-lp-stats-values .label {
		font-size: 1.6rem;
		font-weight: 500;
		line-height: 1.5;
	}

	.p-lp-ticker {
		margin-top: 0;
	}

	.p-lp-worry-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-worry-list {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 3.2rem;
	}

	.p-lp-worry-list .title {
		font-size: 2.8rem;
		line-height: 1.5;
	}

	.p-lp-pdca {
		padding-top: 5.6rem;
		padding-bottom: 5.6rem;
	}

	.p-lp-pdca-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-pdca-list {
		flex-direction: row;
	}

	.p-lp-pdca-list > li {
		flex: 1 1 0;
		min-width: 0;
		padding: 3.2rem 2.4rem;
	}

	.p-lp-pdca-list .mark {
		font-size: 6.4rem;
	}

	.p-lp-pdca-list .en {
		font-size: 2.8rem;
		line-height: 1.2857142857;
	}

	.p-lp-pdca-list .ja {
		font-size: 1.8rem;
		line-height: 1.5555555556;
	}

	.p-lp-reason {
		padding-bottom: 5.6rem;
	}

	.p-lp-reason-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-reason-title {
		font-size: 3.2rem;
		line-height: 1.5;
	}

	.p-lp-reason-answer {
		padding: 1.5rem 2.3rem;
	}

	.p-lp-reason-answer p {
		font-size: 2rem;
		line-height: 1.7;
		letter-spacing: 0.1rem;
	}

	.p-lp-reason-note {
		max-width: 72rem;
	}

	.p-lp-figures {
		padding-bottom: 10.4rem;
	}

	.p-lp-figures-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-figures-list {
		margin-top: 4rem;
		margin-right: 0;
		margin-left: 0;
		grid-template-columns: repeat(4, 24rem);
		gap: 1.6rem;
	}

	.p-lp-figures-list > li {
		height: auto;
		grid-template-rows: 7.2rem 9.9rem;
		-webkit-column-gap: 1.2rem;
		-moz-column-gap: 1.2rem;
		column-gap: 1.2rem;
	}

	.p-lp-figures-list .ico img {
		width: var(--ico-w-pc);
		height: var(--ico-h-pc);
	}

	.p-lp-figures-list .value:has(.en) {
		padding-bottom: 0.8rem;
	}

	.p-lp-figures-list .num {
		font-size: 6.4rem;
	}

	.p-lp-figures-list .unit {
		font-size: 2.4rem;
	}

	.p-lp-figures-list .word {
		font-size: 4.8rem;
	}

	.p-lp-figures-list .en {
		font-size: 4rem;
	}

	.p-lp-figures-list .head:has(.note) {
		justify-content: flex-start;
	}

	.p-lp-figures-list .title {
		font-size: 2.4rem;
		font-weight: 700;
		line-height: 1.5;
	}

	.p-lp-figures-list .note {
		margin-top: 0.4rem;
	}

	.p-lp-industry {
		max-width: 144rem;
		margin-right: auto;
		margin-left: auto;
		padding-right: 3.2rem;
		padding-left: 3.2rem;
	}

	.p-lp-industry-box {
		align-items: center;
		padding: 4rem 0;
		border-width: 8px;
		gap: 4rem;
	}

	.p-lp-industry-box .c-lp-heading {
		width: 120rem;
	}

	.p-lp-industry-cols {
		flex-direction: row;
		width: 120rem;
		gap: 4.8rem;
	}

	.p-lp-industry-col {
		flex: 1 1 0;
		min-width: 0;
		gap: 3.2rem;
	}

	.p-lp-industry-col .en {
		font-size: 6.4rem;
		line-height: 0.8125;
	}

	.p-lp-industry-col .txt {
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-industry-col .tags {
		gap: 1.2rem;
	}

	.p-lp-industry-col .tags li {
		padding: 0.6rem 1.6rem 0.8rem;
		font-size: 1.6rem;
		line-height: 1.5;
	}

	.p-lp-features {
		padding-top: 10.4rem;
		padding-bottom: 10.4rem;
	}

	.p-lp-features-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-features-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		-webkit-column-gap: 8rem;
		-moz-column-gap: 8rem;
		column-gap: 8rem;
	}

	.p-lp-features-list > li {
		padding: 4rem 0;
	}

	.p-lp-features-list > li:not(:nth-child(3n+1))::before {
		content: none;
	}

	.p-lp-features-list > li:not(:nth-child(3n))::after {
		content: '';
		position: absolute;
		top: 0;
		right: calc(-4rem - 0.5px);
		width: 1px;
		height: 100%;
		background-color: rgba(255, 255, 255, 0.3);
	}

	.p-lp-features-list .num {
		font-size: 6.4rem;
		line-height: 0.8125;
	}

	.p-lp-features-list .rule {
		align-self: center;
		height: 5.6rem;
	}

	.p-lp-features-list .title {
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-insight {
		padding-top: 10.4rem;
		padding-bottom: 10.4rem;
	}

	.p-lp-insight-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-insight-stage {
		display: block;
		position: relative;
		width: 144rem;
		max-width: 100%;
		height: 42.3rem;
		margin-top: 0;
		margin-right: auto;
		margin-left: auto;
		padding-right: 0;
		padding-left: 0;
	}

	.p-lp-insight-stage .shot {
		position: absolute;
		top: 4rem;
		left: 25rem;
		width: 94rem;
	}

	.p-lp-insight-stage .note {
		position: absolute;
		width: 28rem;
		height: 13.4rem;
	}

	.p-lp-insight-stage .note:nth-child(2) {
		top: 4.8rem;
		left: 16rem;
	}

	.p-lp-insight-stage .note:nth-child(3) {
		top: 4.8rem;
		left: 100rem;
	}

	.p-lp-insight-stage .note:nth-child(4) {
		top: 24.6rem;
		left: 16rem;
	}

	.p-lp-insight-stage .note:nth-child(5) {
		top: 24.6rem;
		left: 100rem;
	}

	.p-lp-compare {
		max-width: 144rem;
		margin-right: auto;
		margin-left: auto;
		padding-top: 0;
		padding-right: 3.2rem;
		padding-bottom: 0;
		padding-left: 3.2rem;
	}

	.p-lp-compare-box {
		align-items: center;
		padding: 5.6rem 1rem;
	}

	.p-lp-compare-box .c-lp-heading {
		width: 120rem;
	}

	.p-lp-compare-box .c-lp-heading .title {
		letter-spacing: 0.1rem;
	}

	.p-lp-compare-box .c-lp-heading .accent {
		background-position: left calc(100% - 1rem);
		background-size: 100% 1.2rem;
	}

	.p-lp-compare-table {
		width: 120rem;
		padding: 4rem;
	}

	.p-lp-compare-scroll {
		overflow-x: visible;
		margin: 0;
		padding: 0;
	}

	.p-lp-compare-hint {
		display: none;
	}

	.p-lp-compare table {
		width: 112rem;
	}

	.p-lp-compare thead td {
		width: 20rem;
	}

	.p-lp-compare thead th {
		width: 28.8rem;
	}

	.p-lp-compare thead th.is-forcle {
		width: 34.4rem;
	}

	.p-lp-compare thead th .inner {
		padding: 3.2rem 2rem 1.6rem;
	}

	.p-lp-compare thead th .badge {
		top: -2.3rem;
		padding: 1.2rem 2.4rem;
		font-size: 1.8rem;
		line-height: 1.2222222222;
	}

	.p-lp-compare thead th .name {
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-compare thead th .desc {
		margin-top: 0.8rem;
		font-size: 1.6rem;
		line-height: 1.5;
	}

	.p-lp-compare tbody th {
		width: 20rem;
		padding-right: 1.2rem;
	}

	.p-lp-compare tbody th .inner {
		justify-content: flex-start;
		padding: 1.6rem;
		font-size: 1.6rem;
		line-height: 1.5;
		text-align: left;
	}

	.p-lp-compare tbody td {
		width: 28.8rem;
		padding: 1.6rem 1.6rem 1.5rem 2.4rem;
	}

	.p-lp-compare tbody td.is-forcle {
		width: 34.4rem;
		padding: 1.6rem 1.4rem 1.5rem;
	}

	.p-lp-compare tbody td .mark {
		font-size: 2.4rem;
		line-height: 1.3333333333;
	}

	.p-lp-compare tbody td.is-forcle .mark {
		font-size: 2.8rem;
		line-height: 1.1428571429;
	}

	.p-lp-compare tbody td .text {
		margin-top: 0.8rem;
		font-size: 1.6rem;
		line-height: 1.5;
	}

	.p-lp-compare tbody td .note {
		margin-top: 0.8rem;
		font-size: 1.4rem;
		line-height: 1.5714285714;
	}

	.p-lp-compare tbody tr:last-child td.is-forcle {
		padding-bottom: 1rem;
	}

	.p-lp-results {
		padding-top: 10.4rem;
		padding-bottom: 5.6rem;
	}

	.p-lp-results-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-results-feature {
		flex-direction: row;
		padding: 4rem;
		gap: 2.4rem;
	}

	.p-lp-results-feature .who {
		flex-shrink: 0;
		gap: 2.4rem;
	}

	.p-lp-results-feature .photo {
		width: 45rem;
	}

	.p-lp-results-feature .who-body {
		align-items: flex-start;
		gap: 1.6rem;
	}

	.p-lp-results-feature .logo {
		width: 14.4rem;
		height: 6.4rem;
	}

	.p-lp-results-feature .name {
		min-width: 24rem;
		max-width: 32rem;
		gap: 0.8rem;
	}

	.p-lp-results-feature .industry {
		font-size: 1.6rem;
		line-height: 1.5;
	}

	.p-lp-results-feature .company {
		font-size: 2rem;
		font-weight: 700;
		line-height: 1.5;
		letter-spacing: 0.1rem;
	}

	.p-lp-results-feature .detail {
		flex: 1 1 0;
		min-width: 0;
		gap: 2.4rem;
	}

	.p-lp-results-feature .head {
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-results-feature .body {
		font-size: 1.8rem;
		line-height: 1.6666666667;
	}

	.p-lp-results-list {
		grid-template-columns: repeat(3, 1fr);
		gap: 3.2rem;
	}

	.p-lp-results-list > li {
		padding: 2.4rem;
	}

	.p-lp-results-list .metric {
		font-size: 2rem;
		font-weight: 700;
		line-height: 1.5;
		letter-spacing: 0.1rem;
	}

	.p-lp-results .tags {
		font-size: 1.8rem;
		line-height: 1.5555555556;
		gap: 1.2rem;
	}

	.p-lp-results .tags .rule {
		height: 1.8rem;
	}

	.p-lp-results-feature .bars .label {
		font-size: 1.8rem;
		line-height: 1.5555555556;
	}

	.p-lp-results-feature .bars .sz-before {
		flex: 0 0 23.1rem;
	}

	.p-lp-results-feature .bars .bar {
		padding-right: 1.6rem;
		font-size: 2rem;
	}

	.p-lp-annual {
		padding-top: 5.6rem;
		padding-bottom: 10.4rem;
	}

	.p-lp-annual-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-annual-cols {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		width: 110rem;
		max-width: 100%;
		height: 46rem;
		margin-right: auto;
		margin-left: auto;
		gap: 0;
	}

	.p-lp-annual-arrow {
		position: absolute;
		top: 50%;
		left: 50%;
		-webkit-transform: translate(-50%, -50%) rotate(90deg);
		transform: translate(-50%, -50%) rotate(90deg);
	}

	.p-lp-annual-card {
		width: 50.6rem;
		padding: 3.6rem 3.2rem;
	}

	.p-lp-annual-card.is-forcle .list > li {
		align-items: center;
	}

	.p-lp-annual-card.is-forcle .list > li::before {
		width: 2.4rem;
		height: 2.4rem;
	}

	.p-lp-prepare-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-prepare-body {
		gap: 2.4rem;
	}

	.p-lp-prepare-list {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 3.2rem;
	}

	.p-lp-prepare-card {
		flex: 0 0 calc((100% - 6.4rem) / 3);
		min-width: 0;
		padding: 3.2rem 2.4rem;
	}

	.p-lp-prepare-card .num {
		font-size: 6.4rem;
	}

	.p-lp-prepare-card .line {
		align-self: center;
		height: 5.6rem;
	}

	.p-lp-prepare-card .title {
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-risk {
		padding-top: 10.4rem;
		padding-bottom: 10.4rem;
		word-break: normal;
	}

	.p-lp-risk-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-risk-inner {
		gap: 4rem;
	}

	.p-lp-risk-body {
		gap: 5.6rem;
	}

	.p-lp-cta-banner {
		justify-content: center;
		align-items: flex-end;
		height: 37rem;
		padding: 2.8rem 3.6rem 3.6rem;
		text-align: right;
	}

	.p-lp-cta-banner-bg img {
		top: 5.63%;
		left: 1.39%;
		width: 55.04%;
		height: 88.92%;
		opacity: 1;
		-o-object-fit: fill;
		object-fit: fill;
	}

	.p-lp-cta-banner-bg::after {
		background-color: transparent;
		background-image: linear-gradient(-90deg, #000 10.294%, rgba(0, 0, 0, 0) 68.082%);
	}

	.p-lp-cta-banner-copy .lead {
		width: 100.9rem;
		font-size: 2.8rem;
		line-height: 1.7142857143;
		text-shadow: 0 0 20px #57bfff;
	}

	.p-lp-cta-banner-copy .main {
		margin-top: 1.1rem;
		font-size: 4rem;
		line-height: 1.4;
		text-shadow: 0 0 30px rgba(50, 135, 193, 0.2);
	}

	.p-lp-cta-banner-copy .main .accent {
		font-size: 5.4rem;
	}

	.p-lp-cta-banner-copy .sub {
		margin-top: 0.7rem;
		font-size: 3.6rem;
		line-height: 1.3333333333;
		text-shadow: 0 0 20px #57bfff;
	}

	.p-lp-cta-banner-btn {
		width: 51rem;
		min-height: 8.8rem;
		margin-top: 2.4rem;
		padding: 0.8rem 1.6rem 0.8rem 2.4rem;
		font-size: 3.2rem;
		line-height: 1.5;
		-webkit-column-gap: 0;
		-moz-column-gap: 0;
		column-gap: 0;
	}

	.p-lp-cta-banner-btn .body {
		padding-bottom: 0.2rem;
	}

	.p-lp-flow {
		padding-top: 5.6rem;
		padding-bottom: 10.4rem;
		--flow-badge: 12rem;
		--flow-gap: 2.4rem;
		--flow-num: 6.4rem;
	}

	.p-lp-flow-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-flow-inner {
		gap: 5rem;
	}

	.p-lp-flow-badge {
		padding: 1.5rem;
		gap: 1.2rem;
	}

	.p-lp-flow-badge .label {
		font-size: 2rem;
		line-height: 1.8;
	}

	.p-lp-flow-badge .range {
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-flow-badge .note {
		font-size: 2.4rem;
		line-height: 3.2rem;
	}

	.p-lp-flow-badge .note br {
		display: inline;
	}

	.p-lp-flow-step {
		gap: 1.6rem;
	}

	.p-lp-flow-step .num {
		width: 6.4rem;
		height: 6.4rem;
		font-size: 2.4rem;
	}

	.p-lp-flow-step .body {
		padding-bottom: calc(3.2rem - 1px);
	}

	.p-lp-flow-step .title {
		height: var(--flow-num);
		min-height: 0;
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-flow-step .desc {
		font-size: 1.8rem;
		line-height: 1.5555555556;
	}

	.p-lp-certs {
		padding-top: 10.4rem;
		padding-bottom: 5.6rem;
	}

	.p-lp-certs-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-certs-list {
		max-width: 96rem;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2.4rem;
	}

	.p-lp-certs-list .name {
		font-size: 2rem;
		line-height: 1.5;
	}

	.p-lp-team {
		padding-top: 5.6rem;
		padding-bottom: 5.6rem;
	}

	.p-lp-team-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-team-list {
		flex-direction: row;
		align-items: center;
		gap: 3.2rem;
	}

	.p-lp-team-card {
		flex: 1 1 0;
		min-width: 0;
		padding: 3.1rem;
		grid-template-areas: 'photo head' 'photo body';
		grid-template-columns: 17rem 1fr;
		-webkit-column-gap: 2.4rem;
		-moz-column-gap: 2.4rem;
		column-gap: 2.4rem;
		row-gap: 1.2rem;
	}

	.p-lp-team-card .photo {
		align-self: stretch;
		width: 17rem;
		height: auto;
		margin-bottom: 5rem;
	}

	.p-lp-team-card .head {
		align-self: start;
	}

	.p-lp-team-card .role {
		font-size: 1.6rem;
		line-height: 1.5;
	}

	.p-lp-team-card .name {
		font-size: 2.4rem;
		line-height: 1.5;
	}

	.p-lp-team-tags li {
		padding: 0.6rem 1.2rem 0.8rem;
		font-size: 1.6rem;
		line-height: 1.125;
	}

	.p-lp-faq {
		padding-top: 5.6rem;
		padding-bottom: 10.4rem;
	}

	.p-lp-faq-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-faq-inner {
		max-width: 96rem;
		padding-right: 0;
		padding-left: 0;
	}

	.p-lp-faq-body {
		gap: 2.4rem;
	}

	.p-lp-faq-item .q {
		padding: 2.4rem;
		font-size: 1.8rem;
		line-height: 1.5555555556;
		text-align: left;
		gap: 3.2rem;
	}

	.p-lp-faq-item .ico {
		width: 4rem;
		height: 4rem;
	}

	.p-lp-faq-item .a p {
		padding: 1.6rem 2.4rem 2.4rem;
	}

	.p-lp-faq-item.is-open .q {
		padding-bottom: 1.6rem;
	}

	.p-lp-lastcta {
		padding: 3.2rem 0;
		background-image: linear-gradient(106deg, rgba(255, 255, 0, 0) 0%, rgba(255, 255, 0, 0.5) 50%, rgba(255, 255, 0, 0.9) 100%);
	}

	.p-lp-lastcta .label {
		font-size: 2.8rem;
		line-height: 1.5;
	}

	.p-lp-lastcta .title {
		font-size: 9.6rem;
		line-height: 1.1458333333;
	}

	.p-lp-lastcta .lead {
		margin-top: 1.6rem;
		font-size: 1.8rem;
		line-height: 1.5555555556;
	}

	.p-lp-meeting-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-meeting-frame {
		width: 80rem;
	}

	.p-lp-contact {
		padding-top: 5.6rem;
		padding-bottom: 5.6rem;
	}

	.p-lp-contact-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-contact-inner {
		gap: 3.2rem;
	}

	.p-lp-contact-card {
		width: 80rem;
		padding: 4rem;
		border: 0;
	}

	.p-lp-company {
		padding-top: 5.6rem;
		padding-bottom: 10.4rem;
	}

	.p-lp-company-inner {
		padding-right: 4rem;
		padding-left: 4rem;
	}

	.p-lp-company-body {
		flex-direction: row;
		align-items: flex-start;
		gap: 3.2rem;
	}

	.p-lp-company-table {
		flex-shrink: 0;
		width: 64rem;
		grid-template-columns: 16rem 1fr;
	}

	.p-lp-company-table dt,
  .p-lp-company-table dd {
		padding-top: 2.4rem;
		padding-bottom: 2.4rem;
		font-size: 1.8rem;
		line-height: 1.5555555556;
	}

	.p-lp-company-table dt {
		padding-right: 2.4rem;
		padding-left: 1.6rem;
	}

	.p-lp-company-table dd {
		padding-right: 2.4rem;
		padding-left: 2.4rem;
	}

	.p-lp-company-map {
		flex: 1;
		min-width: 0;
		height: 25.7rem;
	}

	.u-hide-pc {
		display: none !important;
	}
}

@media screen and (min-width: 1024px) {
	.p-lp-kv-head {
		display: grid;
		align-items: start;
		grid-template-columns: 69.7rem 42rem;
		grid-template-areas: 'copy cta' 'lead lead';
		gap: 5rem 8.3rem;
	}

	.p-lp-kv-head .p-lp-cta {
		margin-top: 10.6rem;
		grid-area: cta;
	}

	.p-lp-kv-inner > .p-lp-cta {
		display: flex;
		margin-top: 0.4rem;
	}
}

@media screen and (max-width: 767px) {
	html {
		font-size: 2.6666666667vw;
	}

	.l-lp {
		padding-bottom: calc(5.6rem + env(safe-area-inset-bottom));
	}

	.u-hide-sp {
		display: none !important;
	}
}

@media screen and (min-width: 768px) and (max-width: 1439px) {
	html {
		font-size: 0.6944444444vw;
	}
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
	body {
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
}

@media (hover: hover) {
	.c-lp-btn.cl-primary:hover {
		-webkit-animation: uyon-glow-accent 1.6s ease-out infinite;
		animation: uyon-glow-accent 1.6s ease-out infinite;
	}

	.c-lp-btn.cl-line:hover {
		-webkit-animation: uyon-glow 1.6s ease-out infinite;
		animation: uyon-glow 1.6s ease-out infinite;
	}

	.c-lp-btn.cl-line:hover {
		border-color: #fff;
	}

	.p-lp-cta-main:hover {
		-webkit-animation: uyon-glow-accent 1.6s ease-out infinite;
		animation: uyon-glow-accent 1.6s ease-out infinite;
	}

	.p-lp-cta-sub:hover {
		-webkit-animation: uyon-glow 1.6s ease-out infinite;
		animation: uyon-glow 1.6s ease-out infinite;
	}

	.p-lp-cta-banner-btn:hover {
		-webkit-animation: uyon-glow 1.6s ease-out infinite;
		animation: uyon-glow 1.6s ease-out infinite;
	}
}

@media (prefers-reduced-motion: reduce) {
	.c-lp-btn.cl-primary:hover {
		-webkit-animation: none;
		animation: none;
	}

	.c-lp-btn.cl-line:hover {
		-webkit-animation: none;
		animation: none;
	}

	.p-lp-bg::before {
		-webkit-animation: none;
		animation: none;
	}

	.p-lp-cta-main:hover {
		-webkit-animation: none;
		animation: none;
	}

	.p-lp-cta-sub:hover {
		-webkit-animation: none;
		animation: none;
	}

	.p-lp-fixed-cta {
		transition: none;
	}

	.p-lp-cta-banner-btn:hover {
		-webkit-animation: none;
		animation: none;
	}

	.p-lp-faq-item::after {
		transition: none;
	}

	.p-lp-faq-item .q {
		transition: none;
	}

	.p-lp-faq-item .ico::after {
		transition: none;
	}

	.js-lp-ac-content {
		transition: none;
	}

	.js-lp-bg {
		transition: none;
	}
}