/* =========================================================
   BASE / RESET
========================================================= */

:root {
	--color-orange: #ff4b00;
	--color-orange-dark: #e94300;
	--color-orange-light: #ff7a00;
	--color-yellow: #ffcf32;

	--color-navy: #17242f;

	--color-text: #2b3136;
	--color-text-light: #62686d;

	--color-border: #dedede;
	--color-bg-peach: #fff5e9;

	--max-width: 1600px;

	--font-base: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
}

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

html {
	font-size: 62.5%;
	scroll-behavior: smooth;
}

body {
	font-family: var(--font-base);

	color: var(--color-text);
	background: #fff;

	font-size: 1.6rem;
	line-height: 1.7;

	-webkit-font-smoothing: antialiased;
}

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

ul {
	list-style: none;
}

img {
	display: block;
	max-width: 100%;
}

/* =========================================================
   HEADER
   Shared header, brand, navigation and CTA styles
========================================================= */

.header {
	position: relative;
	z-index: 100;
	background: linear-gradient(90deg, #fff8ef 0%, #fff 30%, #fff 72%, #fff6eb 100%);
	border-bottom: 1px solid #edd9c8;
	box-shadow: 0 0.4rem 1.4rem rgba(43, 36, 30, 0.055);
}

.header__inner {
	width: min(var(--max-width), calc(100% - 64px));
	min-height: 92px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 4rem;
}

.header__brand {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: 0;
	padding: 0.8rem 1.8rem 0.8rem 0;
}

.header__logo {
	width: 6.4rem;
	height: 5.8rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--color-navy);
	color: var(--color-navy);
	font-size: 1.4rem;
	font-weight: 900;
	letter-spacing: 0.04em;
}

.header__brand-text {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.header__service-name {
	color: var(--color-navy);
	font-size: 2rem;
	font-weight: 900;
	line-height: 1.35;
	letter-spacing: 0.01em;
	white-space: nowrap;
}

.header__service-name span {
	color: var(--color-orange);
}

.header__service-en {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	color: #6f777d;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.2em;
	white-space: nowrap;
}

.header__service-en::after {
	content: '';
	width: 3.2rem;
	height: 1px;
	background: var(--color-orange);
}

.header__company-name {
	color: var(--color-text-light);
	font-size: 1.15rem;
	font-weight: 500;
}

.header__nav {
	flex: 1;
	display: flex;
	justify-content: flex-end;
}

.header__nav-list {
	display: flex;
	align-items: center;
	gap: 3.8rem;
}

.header__nav-item a {
	position: relative;
	display: block;
	padding: 0.9rem 0.3rem;
	color: var(--color-navy);
	font-size: 1.45rem;
	font-weight: 800;
	white-space: nowrap;
	transition: color 0.2s ease;
}

.header__nav-item a::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -0.7rem;
	width: 0;
	height: 2px;
	background: var(--color-orange);
	transform: translateX(-50%);
	transition: width 0.2s ease;
}

.header__nav-item a:hover { color: var(--color-orange); }
.header__nav-item a:hover::after { width: 100%; }

.header__cta {
	flex-shrink: 0;
	width: 16.5rem;
	min-width: 16.5rem;
	min-height: 5.6rem;
	margin-left: 0;
	padding: 0 1.2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-orange);
	background: linear-gradient(135deg, #fffaf5 0%, #fff3e8 100%);
	border: 2px solid var(--color-orange);
	border-radius: 0.4rem;
	font-size: 1.5rem;
	font-weight: 900;
	white-space: nowrap;
	box-shadow: none;
	transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.header__cta::before,
.header__cta::after {
	flex-shrink: 0;
}

.header__cta::before {
	transition: transform 0.2s ease, border-color 0.2s ease;
}

.header__cta::after {
	content: '→';
	margin-left: 0.5rem;
	font-size: 1.7rem;
	font-weight: 700;
	line-height: 1;
	transition: transform 0.2s ease;
}

.header__cta--form::before {
	content: '';
	width: 3.6rem;
	height: 2.8rem;
	margin-right: 0.6rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 28' fill='none' stroke='%23ff4b00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 1h10l6 6v20H4z'/%3E%3Cpath d='M14 1v7h6M8 14h8M8 19h8'/%3E%3C/svg%3E") left center / 2.3rem 2.7rem no-repeat;
	border-right: 1px solid rgba(255, 75, 0, 0.42);
}

.header__actions {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: 1rem;
}

.header__cta--line {
	min-width: 16.5rem;
	color: #06c755;
	background: transparent;
	border-color: #06c755;
}

.header__cta--line::before {
	content: '';
	width: 3.6rem;
	height: 2.8rem;
	margin-right: 0.6rem;
	background: url('../../images/line-app-icon.png') left center / 2.5rem 2.5rem no-repeat;
	border-right: 1px solid rgba(6, 199, 85, 0.48);
}

a.header__cta--line:hover {
	color: #fff;
	background: linear-gradient(135deg, #62d56d 0%, #4dc25d 52%, #349f47 100%);
}

.header__cta:hover {
	transform: translateY(-2px);
	color: #fff;
	background: var(--color-orange);
}

.header__cta:hover::before {
	transform: translateY(-1px) scale(1.05);
}

a.header__cta--form:hover::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 28' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 1h10l6 6v20H4z'/%3E%3Cpath d='M14 1v7h6M8 14h8M8 19h8'/%3E%3C/svg%3E");
	border-right-color: rgba(255, 255, 255, 0.68);
}

a.header__cta:hover::after {
	transform: translateX(0.3rem);
}

.header__cta.header__cta--line:hover {
	color: #fff;
	background: linear-gradient(135deg, #20d86b 0%, #06c755 55%, #00a943 100%);
}

.header__cta.header__cta--line:hover::before {
	border-right-color: rgba(255, 255, 255, 0.68);
}

.header__cta--line[data-line-url-pending]:hover {
	transform: none;
	background: linear-gradient(135deg, #20d86b 0%, #06c755 55%, #00a943 100%);
}

@media (max-width: 1300px) {
	.header__inner { width: calc(100% - 40px); }
	.header__nav-list { gap: 2.3rem; }
	.header__nav-item a { font-size: 1.3rem; }
}

@media (max-width: 1024px) {
	.header__inner { min-height: 76px; }
	.header__nav { display: none; }
	.header__actions { margin-left: auto; }
}

@media (max-width: 767px) {
	.header {
		background: linear-gradient(105deg, #fff8ef 0%, #fff 58%, #fff4e7 100%);
	}
	.header__inner { min-height: 80px; }
	.header__brand { padding: 0.6rem 0; }
	.header__service-name {
		max-width: 230px;
		font-size: 17px;
		line-height: 1.35;
		letter-spacing: 0;
		white-space: nowrap;
	}
	.header__service-en { font-size: 0.68rem; letter-spacing: 0.15em; }
	.header__service-en::after { width: 2.4rem; }
	.site-footer__service { font-size: 2rem; }
}

@media (max-width: 767px) {
	.header__inner { width: calc(100% - 24px); gap: 10px; }
	.header__brand { min-width: 0; }
	.header__brand-text { min-width: 0; }
	.header__logo { width: 52px; height: 52px; flex-shrink: 0; font-size: 11px; }
	.header__cta {
		width: auto;
		min-width: 72px;
		min-height: 44px;
		padding: 0 8px;
		border-radius: 5px;
		font-size: 11.5px;
	}
	.header__cta::before,
	.header__cta::after { display: none; }
	.header__cta--line { min-width: 72px; }
}

@media (max-width: 390px) {
	.header__service-name { max-width: 180px; font-size: 13.5px; }
	.header__service-en { display: flex; font-size: 0.55rem; letter-spacing: 0.08em; gap: 0.4rem; }
	.header__service-en::after { width: 1.4rem; }
	.header__company-name { display: none; }
	.header__actions { gap: 4px; }
	.header__cta { min-width: 62px; min-height: 40px; padding: 0 4px; font-size: 10.5px; }
	.header__cta--line { min-width: 62px; }
}

/* =========================================================
   FIRST VIEW
========================================================= */

.fv {
	position: relative;

	overflow: hidden;

	background: url('../../images/hero-warehouse.png') 46% top / cover no-repeat;
}

/* =========================================================
   LEFT DECORATION
========================================================= */

.fv::before {
	content: '';

	position: absolute;
	inset: 0;

	z-index: 0;

	pointer-events: none;

	background: url('../../images/hero-left-bg.png') top center / 100% 52% no-repeat;
}

/* =========================================================
   WHITE GRADIENT
========================================================= */

.fv::after {
	content: '';

	position: absolute;
	inset: 0;

	z-index: 0;

	pointer-events: none;

	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0.96) 0%,
		rgba(255, 255, 255, 0.92) 17%,
		rgba(255, 255, 255, 0.82) 27%,
		rgba(255, 255, 255, 0.6) 36%,
		rgba(255, 255, 255, 0.28) 44%,
		rgba(255, 255, 255, 0.08) 51%,
		rgba(255, 255, 255, 0) 59%
	);
}

/* =========================================================
   FV INNER
========================================================= */

.fv__inner {
	position: relative;
	z-index: 2;

	width: min(var(--max-width), 100%);

	min-height: 660px;

	margin: 0 auto;

	display: flex;
	align-items: stretch;
}

/* Softly fade the product image into the stats section. */
.fv__inner::after {
	content: '';
	position: absolute;
	z-index: 2;
	left: 0;
	right: 0;
	bottom: 0;
	height: clamp(9rem, 11vw, 16rem);
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0.56) 58%,
		rgba(255, 250, 244, 0.96) 100%
	);
	pointer-events: none;
}

/* =========================================================
   FV LEFT CONTENT
========================================================= */

.fv__content {
	position: relative;
	z-index: 5;

	width: 47%;

	padding: 6.3rem 1rem 2.2rem 8.5rem;

	background: transparent;
}

/* =========================================================
   FV BADGE
========================================================= */

.fv__badge {
	display: inline-block;

	margin-bottom: 1.25rem;

	padding: 0.9rem 1.8rem;

	color: var(--color-orange);

	background: rgba(255, 255, 255, 0.84);

	border: 2px solid var(--color-orange);

	font-size: 1.65rem;
	font-weight: 900;

	line-height: 1.4;
}

/* =========================================================
   FV CATCH
   黒帯
========================================================= */

.fv__catch {
	position: relative;
	z-index: 6;

	display: inline-flex;
	align-items: center;

	width: fit-content;

	margin: 0 0 1.45rem;

	padding: 1.05rem 2.2rem 1.15rem;

	background: #111;

	color: var(--color-yellow);

	font-size: 1.8rem;
	font-weight: 900;

	line-height: 1.4;

	letter-spacing: 0.035em;

	white-space: nowrap;

	transform: rotate(-1deg);

	transform-origin: left center;

	clip-path: polygon(1% 4%, 100% 0, 99% 96%, 0 100%);

	box-shadow: 0 0.5rem 1.2rem rgba(0, 0, 0, 0.07);
}

/* 旧白丸は非表示 */
.fv__catch-dot {
	display: none;
}

.fv__catch-text {
	display: block;
}

/* =========================================================
   FV HEADING
========================================================= */

.fv__heading {
	margin-bottom: 2.1rem;

	color: var(--color-navy);

	font-weight: 900;

	line-height: 0.98;

	letter-spacing: -0.055em;

	overflow: visible;
	text-shadow:
		0 1.5px 0 rgba(255, 255, 255, 0.45),
		0 0 20px rgba(255, 255, 255, 0.15);
}

.fv__heading-line {
	display: block;

	width: fit-content;

	font-size: clamp(6.2rem, 5.55vw, 9.2rem);

	white-space: nowrap;
	overflow: visible;

	padding: 0.055em 0;

	transform: none;
}

/*
  2行間
  0より少しだけ開ける
*/
.fv__heading-line + .fv__heading-line {
	margin-top: 0.02em;
}

/* =========================================================
   NORMAL ACCENT
========================================================= */

.fv__heading-accent {
	color: var(--color-orange);
}

/* =========================================================
   IMPACT ACCENT
   「在庫」「売り場」
========================================================= */

.fv__heading-accent--impact {
	display: inline-block;
	position: relative;

	font-size: 1.18em;

	margin: -0.02em 0.05em -0.02em 0.02em;

	padding: 0.1em 0.3em 0.14em 0.16em;

	color: #fff;

	background: linear-gradient(135deg, #ff3500 0%, #ff5000 48%, #ff6800 100%);

	font-style: italic;
	font-weight: 900;

	line-height: 0.92;

	letter-spacing: -0.075em;

	transform: skewX(-3deg);

	transform-origin: center;

	text-shadow: 0 0.02em 0.02em rgba(0, 0, 0, 0.03);

	box-shadow: 0 0.08em 0.17em rgba(255, 72, 0, 0.13);

	overflow: visible;
}

.fv__heading-accent--impact::after {
	content: none;
}

/* =========================================================
   FV LEAD
========================================================= */

.fv__lead {
	margin-bottom: 2rem;

	color: var(--color-navy);

	font-size: 1.85rem;
	font-weight: 600;

	line-height: 1.72;
}

/* =========================================================
   FV TAGS
   特長に合わせてCTAより少し広く取る
========================================================= */

.fv__tags {
	width: min(68rem, 100%);
	max-width: 100%;

	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr));

	gap: 1rem;

	margin-bottom: 3rem;
}

.fv__tag {
	width: 100%;

	min-width: 0;
	min-height: 5.8rem;

	padding: 1.15rem 0.7rem;

	display: flex;
	align-items: center;
	justify-content: center;

	text-align: center;

	color: var(--color-navy);

	background: rgba(255, 255, 255, 0.94);

	border: 1px solid #cdd0d2;

	font-size: 1.55rem;
	font-weight: 900;
	line-height: 1.45;
	overflow-wrap: anywhere;

	white-space: normal;
	text-wrap: balance;
}

/* =========================================================
   FV MAIN CTA
========================================================= */

.fv__cta {
	width: 52rem;
	max-width: 100%;

	min-height: 8.5rem;

	padding: 0 3rem;

	display: flex;
	align-items: center;

	gap: 1.8rem;

	color: #fff;

	background: linear-gradient(135deg, #ff7a00 0%, #ff5c00 32%, #ff4600 63%, #ff2f00 100%);

	border-radius: 0.8rem;

	box-shadow:
		0 1.2rem 2.8rem rgba(255, 69, 0, 0.28),
		inset 0 1px 0 rgba(255, 255, 255, 0.18);

	transition:
		transform 0.22s ease,
		box-shadow 0.22s ease,
		filter 0.22s ease;
}

.fv__cta:hover {
	transform: translateY(-3px) scale(1.01);

	filter: saturate(1.08) brightness(1.03);

	box-shadow:
		0 1.7rem 3.5rem rgba(255, 69, 0, 0.35),
		inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.fv__cta-icon {
	flex-shrink: 0;

	width: 3.4rem;
	height: 3.4rem;
}

.fv__cta-text {
	flex: 1;

	text-align: center;

	font-size: 2.35rem;
	font-weight: 900;

	letter-spacing: 0.015em;
}

.fv__cta-arrow {
	flex-shrink: 0;

	width: 2.8rem;
	height: 2.8rem;

	transition: transform 0.22s ease;
}

.fv__cta:hover .fv__cta-arrow {
	transform: translateX(0.5rem);
}

/* =========================================================
   FV SUB LINK
   CTA幅の中央へ配置
========================================================= */

.fv__sub-link {
	position: relative;

	width: fit-content;

	/*
    CTAが52remなので、
    左マージン26rem地点がCTA中央
  */
	margin: 1.3rem 0 0 26rem;

	display: flex;
	align-items: center;
	justify-content: center;

	gap: 0.55rem;

	color: var(--color-navy);

	font-size: 1.9rem;
	font-weight: 900;

	text-decoration: none;

	padding-bottom: 0.4rem;

	transform: translateX(-50%);
}

.fv__sub-link::after {
	content: '';

	position: absolute;

	left: 0;
	bottom: 0;

	width: 0;
	height: 2px;

	background: var(--color-orange);

	transition: width 0.28s ease;
}

.fv__sub-link:hover::after {
	width: 100%;
}

.fv__sub-link svg {
	width: 1.7rem;
	height: 1.7rem;

	transition: transform 0.22s ease;
}

.fv__sub-link:hover svg {
	transform: translateX(0.45rem);
}

/* =========================================================
   FV RIGHT VISUAL
========================================================= */

.fv__visual {
	position: relative;

	z-index: 3;

	width: 53%;

	min-height: 660px;

	display: flex;
	align-items: flex-end;
	justify-content: flex-end;

	overflow: visible;

	background: transparent;
}

/* =========================================================
   FV PRODUCTS
========================================================= */

.fv__products {
	position: absolute;

	z-index: 4;

	right: 0;
	bottom: 0;

	width: 98%;

	max-width: 82rem;

	height: auto;

	object-fit: contain;

	object-position: right bottom;

	filter: drop-shadow(0 1.5rem 1.8rem rgba(40, 25, 10, 0.12));
}

/* =========================================================
   STATS
========================================================= */

.stats {
	position: relative;

	z-index: 10;

	background: linear-gradient(180deg, #fffaf4 0%, var(--color-bg-peach) 100%);

	border-top: 1px solid #f1d4b7;
}

/* =========================================================
   STATS LIST
========================================================= */

.stats__list {
	width: min(var(--max-width), calc(100% - 70px));

	min-height: 154px;

	margin: 0 auto;

	display: grid;

	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* =========================================================
   STATS ITEM
   各項目を完全センター配置
========================================================= */

.stats__item {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: center;

	gap: 1.9rem;

	padding: 2.5rem 2rem;

	text-align: left;
}

.stats__item:not(:first-child)::before {
	content: '';

	position: absolute;

	top: 2.7rem;
	bottom: 2.7rem;
	left: 0;

	width: 1px;

	background: #e3c8ad;
}

/* =========================================================
   STATS ICON
========================================================= */

.stats__icon {
	flex-shrink: 0;

	width: 6rem;
	height: 6rem;

	color: var(--color-orange);
}

/* =========================================================
   STATS TEXT
========================================================= */

.stats__text {
	min-width: 0;

	display: flex;
	flex-direction: column;

	align-items: flex-start;
}

.stats__label {
	margin-bottom: 0.3rem;

	color: #596167;

	font-size: 1.8rem;
	font-weight: 700;
}

.stats__value {
	margin-bottom: 0.3rem;

	color: var(--color-navy);

	font-size: 3.8rem;
	font-weight: 900;

	line-height: 1.25;

	white-space: nowrap;
}

.stats__sub {
	color: #62686d;

	font-size: 1.7rem;
	font-weight: 500;

	white-space: nowrap;
}
/* =========================================================
   DESKTOP SMALL
   1300px以下
========================================================= */

@media (max-width: 1300px) {
	.fv__content {
		padding-left: 3.5rem;
	}

	.fv__heading-line {
		font-size: 6rem;
	}

	.fv__catch {
		font-size: 1.55rem;

		padding: 0.95rem 1.8rem 1rem;
	}

	.fv__tags {
		width: min(64rem, 100%);
	}

	.fv__cta {
		width: 48rem;
	}

	.fv__sub-link {
		margin-left: 24rem;
	}

	.fv__tag {
		font-size: 1.45rem;
	}

	.stats__item {
		gap: 1.3rem;

		padding: 2rem 1.4rem;
	}

	.stats__icon {
		width: 5rem;
		height: 5rem;
	}

	.stats__value {
		font-size: 2.4rem;
	}

	.stats__label {
		font-size: 1.2rem;
	}

	.stats__sub {
		font-size: 1.1rem;
	}
}

/* =========================================================
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	/* -------------------------
     FV background
  ------------------------- */

	.fv {
		background: url('../../images/hero-warehouse.png') center top / cover no-repeat;
	}

	.fv::before {
		background: url('../../images/hero-left-bg.png') top center / 100% 50% no-repeat;
	}

	.fv::after {
		background: linear-gradient(
			180deg,
			rgba(255, 255, 255, 0.98) 0%,
			rgba(255, 255, 255, 0.94) 36%,
			rgba(255, 255, 255, 0.7) 50%,
			rgba(255, 255, 255, 0.15) 66%,
			rgba(255, 255, 255, 0) 78%
		);
	}

	/* -------------------------
     FV layout
  ------------------------- */

	.fv__inner {
		display: block;

		min-height: auto;
	}

	.fv__content {
		width: 100%;

		padding: 4.5rem 4rem 3rem;

		display: flex;
		flex-direction: column;
		align-items: center;

		text-align: center;
	}

	.fv__badge {
		margin-bottom: 1.2rem;
	}

	.fv__catch {
		margin-bottom: 1.8rem;
	}

	/* -------------------------
     FV Heading
  ------------------------- */

	.fv__heading {
		margin-bottom: 2.2rem;
	}

	.fv__heading-line {
		margin-left: auto;
		margin-right: auto;

		font-size: clamp(5.5rem, 8vw, 7.6rem);
	}

	/* -------------------------
     Tags
  ------------------------- */

	.fv__tags {
		width: min(58rem, 100%);
	}

	.fv__tag {
		font-size: 1.25rem;
	}

	/* -------------------------
     CTA
  ------------------------- */

	.fv__cta {
		width: min(58rem, 100%);
	}

	.fv__sub-link {
		margin: 1.3rem auto 0;

		transform: none;
	}

	/* -------------------------
     Visual
  ------------------------- */

	.fv__visual {
		width: 100%;

		min-height: 54rem;
	}

	.fv__products {
		width: 82%;

		max-width: 72rem;

		right: 0;
		left: 50%;

		transform: translateX(-50%);
	}

	/* -------------------------
     Stats
  ------------------------- */

	.stats__list {
		width: calc(100% - 40px);

		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.stats__item {
		min-height: 12rem;
	}

	.stats__item:nth-child(3)::before {
		display: none;
	}

	.stats__item:nth-child(n + 3) {
		border-top: 1px solid #e3c8ad;
	}

	.stats__icon {
		width: 5.5rem;
		height: 5.5rem;
	}

	.stats__value {
		font-size: 2.6rem;
	}
}

/* =========================================================
   PROBLEMS
========================================================= */

.problems {
	position: relative;

	padding: 8.5rem 3.5rem 8rem;

	overflow: hidden;

	background: linear-gradient(
		135deg,
		rgba(255, 244, 233, 0.92) 0%,
		rgba(255, 255, 255, 0.98) 28%,
		rgba(255, 255, 255, 0.98) 72%,
		rgba(255, 242, 229, 0.92) 100%
	);
}

/* 左上・右下のLPらしいオレンジ装飾 */

.problems::before,
.problems::after {
	content: '';

	position: absolute;

	z-index: 0;

	width: 30rem;
	height: 30rem;

	pointer-events: none;

	opacity: 0.7;
}

.problems::before {
	top: -8rem;
	left: -10rem;

	background: linear-gradient(135deg, rgba(255, 126, 30, 0.4), rgba(255, 193, 121, 0.13), rgba(255, 255, 255, 0));

	transform: rotate(45deg);
}

.problems::after {
	right: -11rem;
	bottom: -8rem;

	background: linear-gradient(315deg, rgba(255, 126, 30, 0.4), rgba(255, 193, 121, 0.13), rgba(255, 255, 255, 0));

	transform: rotate(45deg);
}

/* =========================================================
   PROBLEMS INNER
========================================================= */

.problems__inner {
	position: relative;
	z-index: 2;

	width: min(1180px, 100%);

	margin: 0 auto;
}

/* =========================================================
   SECTION HEADING
========================================================= */

.problems__heading {
	width: min(1500px, 96vw);

	margin-left: 50%;
	transform: translateX(-50%);

	margin-bottom: 3.8rem;

	text-align: center;
}

/* =========================================================
   TITLE
========================================================= */

.problems__title {
	width: 100%;

	color: var(--color-navy);

	font-size: clamp(4.4rem, 4.35vw, 6.3rem);

	font-weight: 900;

	line-height: 1.15;

	letter-spacing: -0.04em;

	white-space: normal;
}

.problems__title em {
	color: var(--color-orange);
	font-style: normal;
}

.problems__title-br {
	display: none;
}

/* =========================================================
   LEAD
========================================================= */

.problems__lead {
	margin-top: 1.3rem;

	color: var(--color-navy);

	font-size: 2rem;
	font-weight: 700;

	line-height: 1.6;
}

/* =========================================================
   PROBLEMS GRID
========================================================= */

.problems__grid {
	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr));

	gap: 2rem;
}

/* =========================================================
   PROBLEM CARD
========================================================= */

.problem-card {
	overflow: hidden;

	background: rgba(255, 255, 255, 0.96);

	border: 1px solid rgba(220, 214, 205, 0.75);

	border-radius: 1.1rem;

	box-shadow: 0 0.7rem 1.8rem rgba(70, 48, 28, 0.08);

	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

/* =========================================================
   CARD VISUAL
========================================================= */

.problem-card__visual {
	position: relative;

	height: 23rem;

	overflow: hidden;

	background: #f4f1ec;
}

.problem-card__visual img {
	width: 100%;
	height: 100%;

	object-fit: cover;
}

/*
  左側文字を読ませるための白グラデーション
*/

.problem-card__visual::after {
	content: '';

	position: absolute;
	inset: 0;

	z-index: 1;

	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0.98) 0%,
		rgba(255, 255, 255, 0.94) 22%,
		rgba(255, 255, 255, 0.73) 43%,
		rgba(255, 255, 255, 0.17) 66%,
		rgba(255, 255, 255, 0) 82%
	);

	pointer-events: none;
}

/* =========================================================
   CARD COPY
========================================================= */

.problem-card__copy {
	position: absolute;

	z-index: 3;

	top: 1.7rem;
	left: 2.2rem;

	width: 62%;
}

/* =========================================================
   NUMBER
========================================================= */

.problem-card__number {
	position: relative;

	width: fit-content;

	margin-bottom: 2rem;

	color: var(--color-orange);

	font-size: 3.5rem;
	font-weight: 900;

	line-height: 1;
}

.problem-card__number::after {
	content: '';

	position: absolute;

	left: 0;
	bottom: -1rem;

	width: 4.5rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   CARD TITLE
========================================================= */

.problem-card__title {
	color: var(--color-navy);

	font-size: 2.25rem;
	font-weight: 900;

	line-height: 1.45;

	letter-spacing: -0.02em;
}

/* =========================================================
   CARD DESCRIPTION
========================================================= */

.problem-card__description {
	min-height: 9rem;

	padding: 1.8rem 2.2rem 2rem;

	color: #40484f;

	font-size: 1.85rem;
	font-weight: 500;

	line-height: 1.7;
}

/* =========================================================
   PROBLEMS CTA AREA
========================================================= */

.problems__cta-area {
	margin-top: 3.4rem;

	text-align: center;
}

/* =========================================================
   PROBLEMS CTA
========================================================= */

.problems__cta {
	width: min(104rem, 100%);

	min-height: 10.5rem;

	margin: 0 auto;

	padding: 0 5rem;

	display: flex;
	align-items: center;

	gap: 2.4rem;

	color: #fff;

	background: linear-gradient(135deg, #ff7800 0%, #ff5700 32%, #ff4200 67%, #ff2e00 100%);

	border-radius: 1rem;

	box-shadow: 0 1.4rem 2.8rem rgba(255, 73, 0, 0.28);

	transition:
		transform 0.22s ease,
		box-shadow 0.22s ease;
}

.problems__cta:hover {
	transform: translateY(-4px);

	box-shadow: 0 1.8rem 3.5rem rgba(255, 73, 0, 0.35);
}

.problems__cta-icon {
	flex-shrink: 0;

	width: 4.8rem;
	height: 4.8rem;
}

.problems__cta span {
	flex: 1;

	text-align: center;

	font-size: 2.8rem;
	font-weight: 900;

	letter-spacing: 0.02em;
}

.problems__cta-arrow {
	flex-shrink: 0;

	width: 3.5rem;
	height: 3.5rem;

	transition: transform 0.22s ease;
}

.problems__cta:hover .problems__cta-arrow {
	transform: translateX(0.7rem);
}

/* =========================================================
   CTA NOTE
========================================================= */

.problems__cta-note {
	margin-top: 1.9rem;

	color: var(--color-navy);

	font-size: 2.2rem;
	font-weight: 700;
}

/* =========================================================
   MOBILE
   600px以下
   ※生成したスマホFVデザインに合わせた最終版
========================================================= */

@media (max-width: 600px) {
	/* =====================================================
     FIRST VIEW
     倉庫背景をFV全体に表示
  ===================================================== */

	.fv {
		position: relative;

		overflow: hidden;

		/*
      PCと同じ倉庫画像を
      スマホではFV全面に表示
    */
		background: url('../../images/hero-warehouse.png') center top / cover no-repeat;
	}

	/* 左側オレンジ装飾はかなり薄く */
	.fv::before {
		content: '';

		position: absolute;
		inset: 0;

		z-index: 0;

		background: url('../../images/hero-left-bg.png') top center / 150% auto no-repeat;

		opacity: 0.35;

		pointer-events: none;
	}

	/*
    全面を真っ白にしない。
    文字エリアだけ読みやすくする程度。
  */
	.fv::after {
		content: '';

		position: absolute;
		inset: 0;

		z-index: 0;

		background: linear-gradient(
			180deg,
			rgba(255, 255, 255, 0.88) 0%,
			rgba(255, 255, 255, 0.82) 18%,
			rgba(255, 255, 255, 0.66) 42%,
			rgba(255, 255, 255, 0.25) 66%,
			rgba(255, 255, 255, 0.05) 100%
		);

		pointer-events: none;
	}

	/* =====================================================
     FV INNER
  ===================================================== */

	.fv__inner {
		position: relative;
		z-index: 2;

		width: 100%;

		min-height: auto;

		margin: 0;

		display: flex;
		flex-direction: column;
	}

	/* =====================================================
     FV CONTENT
  ===================================================== */

	.fv__content {
		position: relative;
		z-index: 5;

		width: 100%;

		padding: 42px 20px 18px;

		display: flex;
		flex-direction: column;
		align-items: center;

		text-align: center;

		background: transparent;
	}

	/* =====================================================
     TARGET BADGE
  ===================================================== */

	.fv__badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;

		width: auto;

		margin: 0 0 18px;

		padding: 9px 16px;

		background: rgba(255, 255, 255, 0.92);

		border: 2px solid var(--color-orange);

		color: var(--color-orange);

		font-size: 14px;
		font-weight: 900;

		line-height: 1.4;

		white-space: nowrap;
	}

	/* =====================================================
     BLACK CATCH BAR
  ===================================================== */

	.fv__catch {
		display: inline-flex;
		align-items: center;
		justify-content: center;

		width: min(100%, 560px);

		margin: 0 auto 26px;

		padding: 13px 15px;

		background: #111;

		color: #ffd228;

		font-size: clamp(14px, 4vw, 18px);

		font-weight: 900;

		line-height: 1.45;

		letter-spacing: 0.02em;

		white-space: nowrap;

		transform: rotate(-1deg);

		transform-origin: center;

		clip-path: polygon(1% 3%, 100% 0, 99% 97%, 0 100%);
	}

	.fv__catch-dot {
		display: none;
	}

	/* =====================================================
     MAIN HEADING
  ===================================================== */

	.fv__heading {
		width: 100%;

		margin: 0 auto 28px;

		color: var(--color-navy);

		text-align: center;

		line-height: 0.98;

		letter-spacing: -0.055em;

		overflow: visible;
	}

	.fv__heading-line {
		display: block;

		width: max-content;

		max-width: 100%;

		margin: 0 auto;

		padding: 0.045em 0;

		font-size: clamp(48px, 13vw, 68px);

		font-weight: 900;

		white-space: nowrap;

		overflow: visible;
	}

	/*
    2行目を少しだけ離す
  */
	.fv__heading-line + .fv__heading-line {
		margin-top: 0.04em;
	}

	/* =====================================================
     「在庫」「売り場」
  ===================================================== */

	.fv__heading-accent--impact {
		display: inline-block;

		position: relative;

		margin: -0.01em 0.03em -0.01em 0.015em;

		padding: 0.1em 0.22em 0.14em 0.14em;

		color: #fff;

		background: linear-gradient(135deg, #ff3500 0%, #ff4f00 48%, #ff6800 100%);

		font-size: 1.12em;

		font-style: italic;
		font-weight: 900;

		line-height: 0.92;

		letter-spacing: -0.07em;

		transform: skewX(-3deg);

		box-shadow: 0 8px 16px rgba(255, 72, 0, 0.12);
	}

	/* =====================================================
     LEAD
     ※現在HTMLに無ければ影響なし
  ===================================================== */

	.fv__lead {
		width: 100%;

		margin-bottom: 20px;

		font-size: 14px;

		line-height: 1.75;

		text-align: center;
	}

	/* =====================================================
     3 TAGS
  ===================================================== */

	.fv__tags {
		width: 100%;

		display: grid;

		grid-template-columns: repeat(3, minmax(0, 1fr));

		gap: 8px;

		margin: 0 0 14px;
	}

	.fv__tag {
		width: 100%;
		min-width: 0;

		min-height: 48px;

		padding: 8px 4px;

		display: flex;
		align-items: center;
		justify-content: center;

		color: var(--color-navy);

		background: rgba(255, 255, 255, 0.95);

		border: 1px solid #cfd3d6;

		font-size: clamp(10px, 2.8vw, 13px);

		font-weight: 800;

		line-height: 1.35;

		white-space: normal;

		text-align: center;
	}

	/* =====================================================
     MAIN CTA
  ===================================================== */

	.fv__cta {
		width: 100%;

		max-width: none;

		min-height: 78px;

		padding: 0 20px;

		display: flex;
		align-items: center;

		gap: 12px;

		color: #fff;

		background: linear-gradient(135deg, #ff7900 0%, #ff5a00 30%, #ff4200 65%, #ff2e00 100%);

		border-radius: 10px;

		box-shadow: 0 14px 28px rgba(255, 69, 0, 0.28);

		transform: none;
	}

	.fv__cta-icon {
		width: 30px;
		height: 30px;

		flex-shrink: 0;
	}

	.fv__cta-text {
		flex: 1;

		font-size: clamp(17px, 4.5vw, 22px);

		font-weight: 900;

		line-height: 1.4;

		text-align: center;
	}

	.fv__cta-arrow {
		width: 26px;
		height: 26px;

		flex-shrink: 0;
	}

	/* =====================================================
     SUB LINK
  ===================================================== */

	.fv__sub-link {
		width: fit-content;

		margin: 17px auto 0;

		display: inline-flex;
		align-items: center;
		justify-content: center;

		gap: 5px;

		color: var(--color-navy);

		font-size: 14px;
		font-weight: 800;

		transform: none;

		padding-bottom: 4px;
	}

	.fv__sub-link svg {
		width: 16px;
		height: 16px;
	}

	/* =====================================================
     PRODUCT VISUAL
  ===================================================== */

	.fv__visual {
		position: relative;
		z-index: 4;

		width: 100%;

		/*
      ここを固定しすぎないのが重要
    */
		min-height: 390px;

		margin-top: 10px;

		display: flex;
		align-items: flex-end;
		justify-content: center;

		overflow: hidden;
	}

	.fv__products {
		position: absolute;

		left: 50%;
		right: auto;

		bottom: -5px;

		width: 108%;

		max-width: none;

		height: auto;

		object-fit: contain;

		object-position: center bottom;

		transform: translateX(-50%);

		filter: drop-shadow(0 12px 18px rgba(30, 20, 10, 0.12));
	}

	/* =====================================================
     STATS
     スマホでも4項目を横に並べる
  ===================================================== */

	.stats {
		border-top: 1px solid #f1d4b7;
	}

	.stats__list {
		width: 100%;

		min-height: auto;

		margin: 0;

		display: grid;

		grid-template-columns: repeat(4, minmax(0, 1fr));

		background: linear-gradient(180deg, #fffaf5 0%, #fff4e8 100%);
	}

	.stats__item {
		position: relative;

		min-width: 0;
		min-height: 128px;

		padding: 15px 4px 13px;

		display: flex;
		flex-direction: column;

		align-items: center;
		justify-content: flex-start;

		gap: 5px;

		text-align: center;
	}

	.stats__item:not(:first-child)::before {
		content: '';

		position: absolute;

		top: 18px;
		bottom: 18px;
		left: 0;

		width: 1px;

		display: block;

		background: #e5cbb0;
	}

	/* 旧2列用のborderを無効化 */
	.stats__item:nth-child(n + 3) {
		border-top: 0;
	}

	.stats__icon {
		width: 38px;
		height: 38px;

		margin-bottom: 3px;

		color: var(--color-orange);
	}

	.stats__text {
		width: 100%;

		display: flex;
		flex-direction: column;

		align-items: center;

		text-align: center;
	}

	.stats__label {
		margin-bottom: 1px;

		color: #62676b;

		font-size: clamp(8px, 2.2vw, 10px);

		font-weight: 700;

		line-height: 1.3;

		white-space: normal;
	}

	.stats__value {
		margin-bottom: 2px;

		color: var(--color-navy);

		font-size: clamp(14px, 3.7vw, 19px);

		font-weight: 900;

		line-height: 1.25;

		white-space: nowrap;
	}

	.stats__sub {
		color: #64696d;

		font-size: clamp(7px, 1.9vw, 9px);

		font-weight: 500;

		line-height: 1.35;

		white-space: normal;
	}
}

/* =========================================================
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	.fv__content {
		padding-left: 14px;
		padding-right: 14px;
	}

	.fv__badge {
		font-size: 12px;
	}

	.fv__catch {
		font-size: 12px;
	}

	.fv__heading-line {
		font-size: clamp(39px, 12vw, 48px);
	}

	.fv__tag {
		min-height: 44px;

		font-size: 9px;
	}

	.fv__cta {
		min-height: 72px;

		padding: 0 14px;
	}

	.fv__cta-text {
		font-size: 16px;
	}

	.fv__visual {
		min-height: 350px;
	}

	.fv__products {
		width: 112%;
	}

	.stats__item {
		min-height: 118px;

		padding-left: 2px;
		padding-right: 2px;
	}

	.stats__icon {
		width: 32px;
		height: 32px;
	}

	.stats__value {
		font-size: 14px;
	}
}

/* 画像4枚目　PC */
/* =========================================================
   TARGET
========================================================= */

.target {
	position: relative;

	padding: 7.5rem 3.5rem 6.5rem;

	overflow: hidden;

	background: linear-gradient(135deg, #fff7ef 0%, #ffffff 24%, #ffffff 75%, #fff3e7 100%);
}

/* =========================================================
   BACKGROUND DECORATION
========================================================= */

.target::before,
.target::after {
	content: '';

	position: absolute;

	z-index: 0;

	pointer-events: none;
}

.target::before {
	top: -12rem;
	left: -15rem;

	width: 40rem;
	height: 40rem;

	background: linear-gradient(135deg, rgba(255, 126, 30, 0.3), rgba(255, 185, 105, 0.1), rgba(255, 255, 255, 0));

	transform: rotate(45deg);
}

.target::after {
	right: -18rem;
	bottom: -16rem;

	width: 48rem;
	height: 48rem;

	background: linear-gradient(315deg, rgba(255, 119, 0, 0.35), rgba(255, 194, 116, 0.12), rgba(255, 255, 255, 0));

	transform: rotate(45deg);
}

/* =========================================================
   INNER
========================================================= */

.target__inner {
	position: relative;
	z-index: 2;

	width: min(1500px, 100%);

	margin: 0 auto;
}

/* =========================================================
   HEADING
========================================================= */

.target__heading {
	width: min(1500px, 96vw);

	margin: 0 auto 4.2rem;

	text-align: center;
}

/* =========================================================
   ENGLISH TITLE
========================================================= */

.target__en {
	margin-bottom: 1.6rem;

	display: flex;
	align-items: center;
	justify-content: center;

	gap: 2.8rem;

	color: var(--color-orange);

	font-size: 1.7rem;
	font-weight: 900;

	letter-spacing: 0.22em;
}

.target__en span {
	width: 8rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   MAIN TITLE
========================================================= */

.target__title {
	color: var(--color-navy);

	font-size: clamp(4.6rem, 4.25vw, 6.5rem);

	font-weight: 900;

	line-height: 1.2;

	letter-spacing: -0.035em;

	white-space: nowrap;
}

.target__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   LEAD
========================================================= */

.target__lead {
	margin-top: 1.4rem;

	color: var(--color-navy);

	font-size: 2.15rem;
	font-weight: 700;

	line-height: 1.65;
}

/* =========================================================
   GRID
========================================================= */

.target__grid {
	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr));

	gap: 2rem 2.2rem;
}

/* =========================================================
   CARD
========================================================= */

.target-card {
	position: relative;

	min-height: 24rem;

	overflow: hidden;

	background: #fff;

	border: 1px solid rgba(255, 137, 37, 0.34);

	border-radius: 1rem;

	box-shadow: 0 0.8rem 2rem rgba(70, 45, 25, 0.08);

	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

/* =========================================================
   CARD VISUAL
========================================================= */

.target-card__visual {
	position: relative;

	width: 100%;
	height: 24rem;

	overflow: hidden;
}

.target-card__visual img {
	width: 100%;
	height: 100%;

	object-fit: cover;
}

/* =========================================================
   WHITE GRADIENT
========================================================= */

.target-card__visual::after {
	content: '';

	position: absolute;
	inset: 0;

	z-index: 1;

	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0.99) 0%,
		rgba(255, 255, 255, 0.96) 22%,
		rgba(255, 255, 255, 0.76) 43%,
		rgba(255, 255, 255, 0.25) 64%,
		rgba(255, 255, 255, 0) 82%
	);

	pointer-events: none;
}

/* =========================================================
   CARD COPY
========================================================= */

.target-card__copy {
	position: absolute;

	z-index: 3;

	top: 2rem;
	left: 2.8rem;

	width: 61%;
}

/* =========================================================
   NUMBER
========================================================= */

.target-card__number {
	position: relative;

	width: fit-content;

	margin-bottom: 2.2rem;

	color: var(--color-orange);

	font-size: 4rem;
	font-weight: 900;

	line-height: 1;
}

.target-card__number::after {
	content: '';

	position: absolute;

	left: 0;
	bottom: -1rem;

	width: 5rem;
	height: 3px;

	background: var(--color-orange);
}

/* =========================================================
   CARD TITLE
========================================================= */

.target-card__title {
	margin-bottom: 2rem;

	color: var(--color-navy);

	font-size: 2.75rem;
	font-weight: 900;

	line-height: 1.3;

	letter-spacing: -0.025em;
}

/* =========================================================
   CARD DESCRIPTION
========================================================= */

.target-card__description {
	color: #424a50;

	font-size: 1.55rem;
	font-weight: 500;

	line-height: 1.65;
}

/* =========================================================
   CTA WRAP
========================================================= */

.target__cta-wrap {
	width: min(1280px, 96%);

	min-height: 10.5rem;

	margin: 3.2rem auto 0;

	padding: 1rem 2rem;

	display: grid;

	grid-template-columns:
		1fr
		2.4fr
		1fr;

	align-items: center;

	gap: 2rem;

	background: rgba(255, 250, 244, 0.95);

	border-radius: 5rem;

	box-shadow: 0 0.8rem 2rem rgba(70, 40, 20, 0.06);
}

/* =========================================================
   CTA LEFT COPY
========================================================= */

.target__cta-message {
	text-align: center;

	color: var(--color-orange);

	font-weight: 900;

	line-height: 1.45;
}

.target__cta-message strong,
.target__cta-message span {
	display: block;
}

.target__cta-message strong {
	font-size: 2.7rem;
}

.target__cta-message span {
	font-size: 1.8rem;
}

/* CTA icon used by the shared assessment button */
.target__cta-icon {
	flex-shrink: 0;

	width: 4rem;
	height: 4rem;
}

/* =========================================================
   CTA NOTE
========================================================= */

.target__cta-note {
	text-align: center;

	color: var(--color-navy);

	line-height: 1.45;
}

.target__cta-note strong,
.target__cta-note span {
	display: block;
}

.target__cta-note strong {
	font-size: 2.7rem;
	font-weight: 900;
}

.target__cta-note span {
	font-size: 1.8rem;
	font-weight: 700;
}

/* 画像5枚目　PCここから */
/* =========================================================
   CATEGORIES
========================================================= */

.categories {
	position: relative;

	padding: 7.5rem 3.5rem 7rem;

	overflow: hidden;

	background: linear-gradient(135deg, #fff7ef 0%, #ffffff 27%, #ffffff 73%, #fff2e5 100%);
}

/* =========================================================
   BACKGROUND DECORATION
========================================================= */

.categories::before,
.categories::after {
	content: '';

	position: absolute;

	z-index: 0;

	pointer-events: none;
}

.categories::before {
	top: -14rem;
	left: -18rem;

	width: 42rem;
	height: 42rem;

	background: linear-gradient(135deg, rgba(255, 120, 0, 0.38), rgba(255, 193, 117, 0.15), rgba(255, 255, 255, 0));

	transform: rotate(45deg);
}

.categories::after {
	right: -18rem;
	bottom: -16rem;

	width: 48rem;
	height: 48rem;

	background: linear-gradient(315deg, rgba(255, 126, 20, 0.32), rgba(255, 194, 116, 0.12), rgba(255, 255, 255, 0));

	transform: rotate(45deg);
}

/* =========================================================
   INNER
========================================================= */

.categories__inner {
	position: relative;
	z-index: 2;

	width: min(1520px, 100%);

	margin: 0 auto;
}

/* =========================================================
   HEADING
========================================================= */

.categories__heading {
	width: min(1500px, 96vw);

	margin: 0 auto 4.2rem;

	text-align: center;
}

/* =========================================================
   EN TITLE
========================================================= */

.categories__en {
	margin-bottom: 1.6rem;

	display: flex;
	align-items: center;
	justify-content: center;

	gap: 2.8rem;

	color: var(--color-orange);

	font-size: 1.7rem;
	font-weight: 900;

	letter-spacing: 0.22em;
}

.categories__en span {
	width: 8rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   MAIN TITLE
========================================================= */

.categories__title {
	color: var(--color-navy);

	font-size: clamp(4.8rem, 4.5vw, 6.8rem);

	font-weight: 900;

	line-height: 1.2;

	letter-spacing: -0.04em;

	white-space: nowrap;
}

.categories__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   LEAD
========================================================= */

.categories__lead {
	margin-top: 1.5rem;

	color: var(--color-navy);

	font-size: 2.2rem;
	font-weight: 700;

	line-height: 1.65;
}

/* =========================================================
   CATEGORY LIST
========================================================= */

.categories-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.4rem;
}

.category-list-card {
	position: relative;
	min-height: 9.2rem;
	padding: 1.5rem 1.8rem;
	display: flex;
	align-items: center;
	gap: 1.4rem;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.98);
	border: 1px solid rgba(232, 207, 187, 0.9);
	border-radius: 1rem;
	box-shadow: 0 0.7rem 1.8rem rgba(82, 46, 22, 0.07);
	transition:
		transform 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

.category-list-card::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 3.6rem;
	height: 3.6rem;
	background: linear-gradient(225deg, rgba(255, 126, 30, 0.17) 0 49%, transparent 50%);
}

.category-list-card__number {
	width: 4.6rem;
	height: 4.6rem;
	flex: 0 0 4.6rem;
	display: grid;
	place-items: center;
	color: #fff;
	background: var(--color-orange-light);
	border: 1px solid rgba(255, 126, 30, 0.18);
	border-radius: 50%;
	font-size: 1.35rem;
	font-weight: 900;
	line-height: 1;
}

.category-list-card__title {
	margin: 0;
	color: var(--color-navy);
	font-size: 1.75rem;
	font-weight: 900;
	line-height: 1.45;
	letter-spacing: -0.02em;
}

/* =========================================================
   CONSULT BOX
========================================================= */

.categories__consult {
	width: min(1380px, 96%);

	min-height: 14rem;

	margin: 3.4rem auto 0;

	padding: 2rem 3.5rem;

	display: grid;

	grid-template-columns:
		10rem
		1.3fr
		1.2fr
		10rem;

	align-items: center;

	gap: 3rem;

	background: rgba(255, 252, 249, 0.96);

	border: 2px solid var(--color-orange);

	border-radius: 1rem;

	box-shadow: 0 1rem 2.5rem rgba(80, 45, 20, 0.1);
}

/* =========================================================
   CONSULT ICON
========================================================= */

.categories__consult-icon {
	width: 8.5rem;
	height: 8.5rem;

	display: flex;
	align-items: center;
	justify-content: center;

	color: #fff;

	background: linear-gradient(135deg, #ff7c00 0%, #ff4c00 100%);

	border-radius: 50%;

	box-shadow: 0 0.8rem 1.8rem rgba(255, 77, 0, 0.2);
}

.categories__consult-icon svg {
	width: 4.8rem;
	height: 4.8rem;
}

/* =========================================================
   CONSULT MAIN
========================================================= */

.categories__consult-main {
	position: relative;

	padding-right: 3rem;

	border-right: 1px solid rgba(254, 79, 1, 0.45);
}

.categories__consult-small {
	margin-bottom: 0.4rem;

	color: var(--color-navy);

	font-size: 2.2rem;
	font-weight: 900;

	line-height: 1.35;
}

.categories__consult-large {
	color: var(--color-orange);

	font-size: 3.8rem;
	font-weight: 900;

	line-height: 1.25;

	letter-spacing: -0.03em;
}

/* =========================================================
   CONSULT DESCRIPTION
========================================================= */

.categories__consult-description {
	color: #434b52;

	font-size: 1.6rem;
	font-weight: 500;

	line-height: 1.75;
}

/* =========================================================
   RIGHT BOX ICON
========================================================= */

.categories__consult-box-icon {
	display: flex;
	align-items: center;
	justify-content: center;

	color: rgba(255, 127, 32, 0.35);
}

.categories__consult-box-icon svg {
	width: 8.5rem;
	height: 8.5rem;
}

/* =========================================================
   POPULAR ITEMS
========================================================= */

.popular-items {
	margin-top: 7.5rem;
	padding-top: 6.5rem;
	border-top: 1px solid rgba(224, 192, 166, 0.72);
}

.popular-items__heading {
	text-align: center;
}

.popular-items__en {
	margin-bottom: 1.4rem;
	color: var(--color-orange);
	font-size: 1.55rem;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.2em;
}

.popular-items__title {
	margin: 0;
	color: var(--color-navy);
	font-size: clamp(3.6rem, 3.4vw, 5.4rem);
	font-weight: 900;
	line-height: 1.3;
	letter-spacing: -0.035em;
}

.popular-items__title-mobile-break {
	display: none;
}

.popular-items__lead {
	margin-top: 1.5rem;
	color: #49535b;
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1.75;
}

.popular-items__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2rem;
	margin-top: 3.8rem;
}

.popular-item-card {
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(226, 205, 187, 0.9);
	border-radius: 1rem;
	box-shadow: 0 0.8rem 2rem rgba(79, 46, 23, 0.07);
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.popular-item-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 1.4rem 3rem rgba(79, 46, 23, 0.12);
}

.popular-item-card__image {
	aspect-ratio: 1.45 / 1;
	overflow: hidden;
	background: #fff4e9;
}

.popular-item-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.popular-item-card:hover .popular-item-card__image img {
	transform: scale(1.035);
}

.popular-item-card__body {
	padding: 1.8rem 1.8rem 2rem;
}

.popular-item-card__category {
	display: inline-block;
	padding: 0.5rem 1rem;
	color: #fff;
	background: var(--color-orange-light);
	border-radius: 999px;
	font-size: 1.15rem;
	font-weight: 900;
	line-height: 1.35;
}

.popular-item-card__title {
	margin-top: 1rem;
	color: var(--color-navy);
	font-size: 2rem;
	font-weight: 900;
	line-height: 1.45;
}

/* 画像5枚目　PCここまで */

/* 画像6枚目　PCここから */
/* =========================================================
   QUICK ASSESSMENT
========================================================= */

.quick-assessment {
	position: relative;

	overflow: hidden;

	padding: 2.5rem 4rem;

	background: url('../../images/whyus-cta-bg.png') center center / cover no-repeat;
}

/* 写真の上に白フェード */
.quick-assessment::before {
	content: '';

	position: absolute;
	inset: 0;

	z-index: 0;

	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0.98) 0%,
		rgba(255, 255, 255, 0.95) 35%,
		rgba(255, 255, 255, 0.68) 60%,
		rgba(255, 255, 255, 0.1) 100%
	);
}

.quick-assessment__inner {
	position: relative;
	z-index: 2;

	width: min(1500px, 100%);

	min-height: 24rem;

	margin: 0 auto;

	display: grid;

	grid-template-columns: 58% 42%;

	align-items: center;

	gap: 3rem;
}

/* =========================================================
   COPY
========================================================= */

.quick-assessment__eyebrow {
	margin-bottom: 1rem;

	color: var(--color-orange);

	font-size: 2.1rem;
	font-weight: 900;
}

.quick-assessment__title {
	margin-bottom: 2rem;

	color: var(--color-navy);

	font-size: clamp(3.8rem, 3.3vw, 5.2rem);

	font-weight: 900;

	line-height: 1.27;

	letter-spacing: -0.035em;
}

.quick-assessment__title em {
	color: var(--color-orange);

	font-size: 1.35em;

	font-style: normal;
}

/* =========================================================
   BENEFITS
========================================================= */

.quick-assessment__benefits {
	display: flex;

	align-items: center;

	gap: 0;
}

.quick-assessment__benefit {
	min-height: 4rem;

	padding: 0 2.4rem;

	display: flex;

	align-items: center;

	gap: 1rem;

	color: var(--color-navy);

	font-size: 1.7rem;
	font-weight: 900;

	border-left: 1px solid rgba(40, 50, 60, 0.15);
}

.quick-assessment__benefit:first-child {
	padding-left: 0;

	border-left: none;
}

.quick-assessment__benefit svg,
.quick-assessment__benefit-icon {
	width: 3.3rem;
	height: 3.3rem;

	flex-shrink: 0;

	color: var(--color-orange);
}

.quick-assessment__benefit-icon {
	display: flex;

	align-items: center;
	justify-content: center;

	border: 2px solid var(--color-orange);

	border-radius: 50%;

	font-size: 1.7rem;
}

/* =========================================================
   CTA
========================================================= */

.quick-assessment__action {
	display: flex;

	justify-content: flex-end;
}

/* =========================================================
   WHY US
========================================================= */

.why-us {
	position: relative;

	overflow: hidden;

	padding: 7rem 3.5rem 7.5rem;

	background: linear-gradient(135deg, #ffffff 0%, #fff7ee 55%, #ffecd9 100%);
}

/* =========================================================
   BACKGROUND DECORATION
========================================================= */

.why-us::before,
.why-us::after {
	content: '';

	position: absolute;

	z-index: 0;

	pointer-events: none;
}

.why-us::before {
	top: -15rem;
	right: -18rem;

	width: 45rem;
	height: 45rem;

	background: linear-gradient(135deg, rgba(255, 126, 20, 0.1), rgba(255, 173, 84, 0.34));

	transform: rotate(45deg);
}

.why-us::after {
	left: -18rem;
	bottom: -18rem;

	width: 48rem;
	height: 48rem;

	background: linear-gradient(135deg, rgba(255, 180, 95, 0.17), rgba(255, 255, 255, 0));

	transform: rotate(45deg);
}

/* =========================================================
   INNER
========================================================= */

.why-us__inner {
	position: relative;
	z-index: 2;

	width: min(1420px, 100%);

	margin: 0 auto;
}

/* =========================================================
   HEADING
========================================================= */

.why-us__heading {
	margin-bottom: 4rem;

	text-align: center;
}

.why-us__en {
	margin-bottom: 1.5rem;

	display: flex;

	align-items: center;
	justify-content: center;

	gap: 2.8rem;

	color: var(--color-orange);

	font-size: 1.7rem;
	font-weight: 900;

	letter-spacing: 0.22em;
}

.why-us__en span {
	width: 8rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   TITLE
========================================================= */

.why-us__title {
	color: var(--color-navy);

	font-size: clamp(4.6rem, 4.2vw, 6.4rem);

	font-weight: 900;

	line-height: 1.2;

	letter-spacing: -0.04em;
}

.why-us__title em {
	color: var(--color-orange);

	font-style: normal;

	font-size: 1.15em;
}

/* =========================================================
   LEAD
========================================================= */

.why-us__lead {
	margin-top: 1.3rem;

	color: var(--color-navy);

	font-size: 2.1rem;
	font-weight: 500;

	line-height: 1.65;
}

/* =========================================================
   GRID
========================================================= */

.why-us__grid {
	display: grid;

	grid-template-columns: repeat(2, minmax(0, 1fr));

	gap: 2rem 2.2rem;
}

/* 5枚目を中央へ */
.why-card--last {
	grid-column: 1 / -1;

	width: 60%;

	margin: 0 auto;
}

/* =========================================================
   CARD
========================================================= */

.why-card {
	position: relative;

	min-height: 17rem;

	overflow: hidden;

	background: #fff;

	border: 1px solid rgba(220, 210, 200, 0.55);

	border-radius: 0.8rem;

	box-shadow: 0 0.8rem 2rem rgba(70, 45, 25, 0.08);

	transition:
		transform 0.22s ease,
		box-shadow 0.22s ease;
}

/* =========================================================
   IMAGE
========================================================= */

.why-card__image {
	position: absolute;

	inset: 0;
}

.why-card__image img {
	width: 100%;
	height: 100%;

	object-fit: cover;
}

/* =========================================================
   GRADIENT
========================================================= */

.why-card__overlay {
	position: absolute;

	inset: 0;

	z-index: 1;

	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 1) 0%,
		rgba(255, 255, 255, 0.99) 30%,
		rgba(255, 255, 255, 0.88) 52%,
		rgba(255, 255, 255, 0.28) 77%,
		rgba(255, 255, 255, 0) 100%
	);
}

/* =========================================================
   CONTENT
========================================================= */

.why-card__content {
	position: relative;
	z-index: 2;

	min-height: 17rem;

	padding: 2.2rem 3rem;

	display: flex;

	align-items: center;

	gap: 2.5rem;
}

/* =========================================================
   NUMBER
========================================================= */

.why-card__number {
	width: 8.2rem;
	height: 8.2rem;

	flex-shrink: 0;

	display: flex;

	align-items: center;
	justify-content: center;

	color: #fff;

	background: linear-gradient(135deg, #ff7b00, #ff4300);

	border-radius: 50%;

	font-size: 3.3rem;
	font-weight: 900;

	box-shadow: 0 0.7rem 1.7rem rgba(255, 70, 0, 0.16);
}

/* =========================================================
   TEXT
========================================================= */

.why-card__text {
	flex: 1;
}

.why-card__title {
	margin-bottom: 0.7rem;

	color: var(--color-navy);

	font-size: 2.8rem;
	font-weight: 900;

	line-height: 1.35;

	letter-spacing: -0.025em;
}

.why-card__description {
	color: #485057;

	font-size: 2rem;
	font-weight: 500;

	line-height: 1.6;
}
/* 画像6枚目　PCここまで */
/* 画像7枚目　PCここから */
/* =========================================================
   NEWS & PURCHASES
========================================================= */

.news-purchases {
	position: relative;

	padding: 7.5rem 3.5rem 7rem;

	overflow: hidden;

	background: linear-gradient(135deg, #fff7ef 0%, #ffffff 28%, #ffffff 72%, #fff1e4 100%);
}

/* =========================================================
   BACKGROUND DECORATION
========================================================= */

.news-purchases::before,
.news-purchases::after {
	content: '';

	position: absolute;

	z-index: 0;

	pointer-events: none;
}

.news-purchases::before {
	top: -16rem;
	left: -18rem;

	width: 45rem;
	height: 45rem;

	background: linear-gradient(135deg, rgba(255, 126, 20, 0.34), rgba(255, 194, 116, 0.12), rgba(255, 255, 255, 0));

	transform: rotate(45deg);
}

.news-purchases::after {
	right: -18rem;
	bottom: -18rem;

	width: 50rem;
	height: 50rem;

	background: linear-gradient(315deg, rgba(255, 120, 0, 0.36), rgba(255, 190, 105, 0.1), rgba(255, 255, 255, 0));

	transform: rotate(45deg);
}

/* =========================================================
   INNER
========================================================= */

.news-purchases__inner {
	position: relative;
	z-index: 2;

	width: min(1450px, 100%);

	margin: 0 auto;
}

/* =========================================================
   HEADING
========================================================= */

.news-purchases__heading {
	margin-bottom: 4.2rem;

	text-align: center;
}

/* =========================================================
   ENGLISH TITLE
========================================================= */

.news-purchases__en {
	margin-bottom: 1.5rem;

	display: flex;
	align-items: center;
	justify-content: center;

	gap: 2.8rem;

	color: var(--color-orange);

	font-size: 1.7rem;
	font-weight: 900;

	letter-spacing: 0.22em;
}

.news-purchases__en span {
	width: 8rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   MAIN TITLE
========================================================= */

.news-purchases__title {
	color: var(--color-navy);

	font-size: clamp(4.8rem, 4.5vw, 6.8rem);

	font-weight: 900;

	line-height: 1.2;

	letter-spacing: -0.04em;

	white-space: nowrap;
}

.news-purchases__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   LEAD
========================================================= */

.news-purchases__lead {
	margin-top: 1.5rem;

	color: var(--color-navy);

	font-size: 2.2rem;
	font-weight: 600;

	line-height: 1.65;
}

/* =========================================================
   LIST
========================================================= */

.news-purchases__list {
	display: block;
	width: min(120rem, 100%);
	max-height: 54rem;
	row-gap: 1.6rem;
	margin-right: auto;
	margin-left: auto;
	overflow-y: auto;
	padding-right: 1rem;
	scrollbar-gutter: stable;
	scrollbar-width: thin;
	scrollbar-color: #ff9b6f #fff4eb;
}

.news-purchases__list:focus-visible {
	outline: 2px solid var(--color-orange);
	outline-offset: 5px;
}

.news-purchases__list > .news-card:nth-child(n + 11),
.news-card[hidden] {
	display: none;
}

/* =========================================================
   NEWS CARD
========================================================= */

.news-card {
	position: relative;
	display: grid;
	grid-template-columns: 16rem minmax(0, 1fr);
	gap: 2.8rem;
	min-height: 0;
	padding: 2.8rem 0;
	align-items: center;
	overflow: hidden;
	background: transparent;
	border: 0;
	border-bottom: 1px solid #e6dcd3;
	border-radius: 0;
	box-shadow: none;
	transform: none;
}

.news-card:first-child {
	border-top: 1px solid #e6dcd3;
}

.news-card--new::before {
	display: none;
}

/* =========================================================
   IMAGE
========================================================= */

.news-card__image {
	width: 100%;
	height: 11rem;
	overflow: hidden;
	border-radius: 4px;
}

.news-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news-card__image--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff3e9;
}

.news-card__image-placeholder {
	color: #b48c72;
	font-size: 1.1rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

/* =========================================================
   BODY
========================================================= */

.news-card__body {
	min-width: 0;
	padding: 0;
}

/* =========================================================
   META
========================================================= */

.news-card__meta {
	margin-bottom: 1rem;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
}

.news-card__date {
	margin-right: 0.8rem;

	color: #62686d;
	font-size: 1.4rem;
	font-weight: 500;
}

.news-card__category,
.news-card__status {
	padding: 0.45rem 1.25rem;

	border-radius: 0.35rem;

	font-size: 1.45rem;
	font-weight: 800;

	line-height: 1.35;
}

.news-card__category {
	color: var(--color-orange);
	background: #fff0e3;
}

.news-card__status {
	color: #fff;

	background: var(--color-orange);
}

/* =========================================================
   CARD TITLE
========================================================= */

.news-card__title {
	margin-bottom: 0.8rem;

	color: var(--color-navy);

	font-size: 2.5rem;
	font-weight: 900;
	line-height: 1.6;
	letter-spacing: -0.025em;
	width: fit-content;
}

/* =========================================================
   CARD TEXT
========================================================= */

.news-card__text {
	color: #485057;

	font-size: 2rem;
	font-weight: 500;
	line-height: 1.7;
}

/* 画像7枚目　PCここまで */
/* 画像8枚目　PCここから */
/* =========================================================
   PARTNERSHIP
========================================================= */

.partnership {
	position: relative;

	padding: 7rem 3.5rem 7rem;

	overflow: hidden;

	background: linear-gradient(135deg, #ffeddb 0%, #ffffff 30%, #ffffff 65%, #ffe7d0 100%);
}

/* =========================================================
   BACKGROUND PHOTO
========================================================= */

.partnership__visual {
	position: absolute;

	z-index: 0;

	top: 0;
	right: 0;

	width: 58%;
	height: 47rem;

	background: url('../../images/partnership-bg.png') center right / cover no-repeat;
	-webkit-mask-image: linear-gradient(to bottom, #000, #000 calc(100% - 64px), transparent);
	mask-image: linear-gradient(to bottom, #000, #000 calc(100% - 64px), transparent);
}

/* 写真左側を自然にフェード */
.partnership__visual::before {
	content: '';

	position: absolute;
	inset: 0;

	background: linear-gradient(
		90deg,
		#ffffff 0%,
		rgba(255, 255, 255, 0.97) 18%,
		rgba(255, 255, 255, 0.72) 40%,
		rgba(255, 255, 255, 0.18) 70%,
		rgba(255, 255, 255, 0) 100%
	);
}

/* =========================================================
   DECORATION
========================================================= */

.partnership::before,
.partnership::after {
	content: '';

	position: absolute;

	z-index: 0;

	pointer-events: none;
}

.partnership::before {
	top: -15rem;
	left: -18rem;

	width: 44rem;
	height: 44rem;

	transform: rotate(45deg);

	background: linear-gradient(135deg, rgba(255, 122, 0, 0.34), rgba(255, 190, 110, 0.1), transparent);
}

.partnership::after {
	right: -18rem;
	bottom: -18rem;

	width: 48rem;
	height: 48rem;

	transform: rotate(45deg);

	background: linear-gradient(315deg, rgba(255, 126, 20, 0.28), rgba(255, 190, 100, 0.08), transparent);
}

/* =========================================================
   INNER
========================================================= */

.partnership__inner {
	position: relative;

	z-index: 2;

	width: min(1500px, 100%);

	margin: 0 auto;
}

/* =========================================================
   HEADING
========================================================= */

.partnership__heading {
	width: 67%;

	margin-bottom: 4.5rem;
}

/* =========================================================
   ENGLISH
========================================================= */

.partnership__en {
	margin-bottom: 1.8rem;

	display: flex;
	align-items: center;

	gap: 2rem;

	color: var(--color-orange);

	font-size: 1.7rem;
	font-weight: 900;

	letter-spacing: 0.22em;
}

.partnership__en span {
	width: 13rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   TITLE
========================================================= */

.partnership__title {
	margin-bottom: 2rem;

	color: var(--color-navy);

	font-size: clamp(4.8rem, 4.4vw, 6.8rem);

	font-weight: 900;

	line-height: 1.2;

	letter-spacing: -0.045em;
}

.partnership__title em {
	color: var(--color-orange);

	font-style: normal;

	font-size: 1.08em;
}

/* =========================================================
   LEAD
========================================================= */

.partnership__lead {
	color: var(--color-navy);

	font-size: 2rem;
	font-weight: 600;

	line-height: 1.75;
}

.partnership__lead strong {
	color: var(--color-orange);

	font-weight: 900;
}

/* =========================================================
   STEPS
========================================================= */

.partnership__steps {
	position: relative;

	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		4rem
		minmax(0, 1fr)
		4rem
		minmax(0, 1fr);

	align-items: center;

	gap: 1.5rem;
}

/* =========================================================
   CARD
========================================================= */

.partnership-card {
	position: relative;

	min-height: 35rem;

	padding: 4.6rem 3rem 3rem;

	text-align: center;

	background: rgba(255, 255, 255, 0.95);

	border: 1px solid rgba(235, 220, 205, 0.7);

	border-radius: 1.2rem;

	box-shadow: 0 0.9rem 2.4rem rgba(70, 45, 25, 0.08);

	transition:
		transform 0.24s ease,
		box-shadow 0.24s ease;
}

/* =========================================================
   NUMBER
========================================================= */

.partnership-card__number {
	position: absolute;

	top: -2rem;
	left: 2.2rem;

	width: 7.8rem;
	height: 7.8rem;

	display: flex;
	align-items: center;
	justify-content: center;

	color: #fff;

	background: linear-gradient(135deg, #ff7a00, #ff4300);

	border-radius: 50%;

	font-size: 3.1rem;
	font-weight: 900;

	box-shadow: 0 0.7rem 1.7rem rgba(255, 70, 0, 0.16);
}

/* =========================================================
   ICON
========================================================= */

.partnership-card__icon {
	width: 9rem;
	height: 9rem;

	margin: 0 auto 1.6rem;

	color: var(--color-navy);
}

.partnership-card__icon svg {
	width: 100%;
	height: 100%;
}

/* =========================================================
   CARD TITLE
========================================================= */

.partnership-card__title {
	margin-bottom: 1.5rem;

	color: var(--color-navy);

	font-size: 3rem;
	font-weight: 900;

	line-height: 1.35;

	letter-spacing: -0.03em;
}

.partnership-card__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   CARD TEXT
========================================================= */

.partnership-card__text {
	color: #465058;

	font-size: 1.55rem;
	font-weight: 500;

	line-height: 1.75;
}

/* =========================================================
   BETWEEN ARROWS
========================================================= */

.partnership__arrow {
	color: var(--color-orange);
}

.partnership__arrow svg {
	width: 4rem;
	height: 4rem;
}

/* =========================================================
   BOTTOM MESSAGE
========================================================= */

.partnership__message {
	margin-top: 3rem;

	min-height: 11rem;

	padding: 2.2rem 4rem;

	display: grid;

	grid-template-columns:
		1.1fr
		1fr;

	align-items: center;

	gap: 4rem;

	background: rgba(255, 250, 245, 0.96);

	border-radius: 1.1rem;

	box-shadow: 0 0.8rem 2rem rgba(70, 45, 25, 0.06);
}

/* =========================================================
   MESSAGE TITLE
========================================================= */

.partnership__message-title {
	position: relative;

	padding-left: 2rem;
	padding-right: 4rem;

	color: var(--color-navy);

	font-size: 3.2rem;
	font-weight: 900;

	line-height: 1.35;

	border-right: 1px solid rgba(25, 40, 50, 0.45);
}

.partnership__message-title::before {
	content: '';

	position: absolute;

	top: 0;
	bottom: 0;
	left: 0;

	width: 0.7rem;

	background: var(--color-orange);

	border-radius: 0.4rem;
}

.partnership__message-title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   MESSAGE TEXT
========================================================= */

.partnership__message-text {
	color: var(--color-navy);

	font-size: 1.85rem;
	font-weight: 500;

	line-height: 1.7;
}

/* 画像8枚目　PCここまで */
/* 画像9枚目　PCここから */
/* =========================================================
   FLOW
========================================================= */

.flow {
	position: relative;

	padding: 7rem 3.5rem 7rem;

	overflow: hidden;

	background: linear-gradient(135deg, #fff8f0 0%, #ffffff 25%, #ffffff 75%, #fff3e5 100%);
}

/* =========================================================
   BACKGROUND DECORATION
========================================================= */

.flow::before,
.flow::after {
	content: '';

	position: absolute;

	z-index: 0;

	pointer-events: none;
}

.flow::before {
	top: -16rem;
	left: -19rem;

	width: 45rem;
	height: 45rem;

	transform: rotate(45deg);

	background: linear-gradient(135deg, rgba(255, 126, 20, 0.32), rgba(255, 190, 105, 0.1), transparent);
}

.flow::after {
	right: -19rem;
	bottom: -18rem;

	width: 50rem;
	height: 50rem;

	transform: rotate(45deg);

	background: linear-gradient(315deg, rgba(255, 126, 20, 0.28), rgba(255, 195, 115, 0.09), transparent);
}

/* =========================================================
   INNER
========================================================= */

.flow__inner {
	position: relative;
	z-index: 2;

	width: min(1540px, 100%);

	margin: 0 auto;
}

/* =========================================================
   HEADING
========================================================= */

.flow__heading {
	margin-bottom: 4.5rem;

	text-align: center;
}

.flow__en {
	margin-bottom: 1.5rem;

	display: flex;
	align-items: center;
	justify-content: center;

	gap: 2.8rem;

	color: var(--color-orange);

	font-size: 1.7rem;
	font-weight: 900;

	letter-spacing: 0.22em;
}

.flow__en span {
	width: 8rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   TITLE
========================================================= */

.flow__title {
	color: var(--color-navy);

	font-size: clamp(4.8rem, 4.5vw, 6.8rem);

	font-weight: 900;

	line-height: 1.2;

	letter-spacing: -0.045em;
}

.flow__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   LEAD
========================================================= */

.flow__lead {
	margin-top: 1.4rem;

	color: var(--color-navy);

	font-size: 2.2rem;
	font-weight: 700;

	line-height: 1.6;
}

/* =========================================================
   STEPS WRAP
========================================================= */

.flow__steps {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		2.5rem
		minmax(0, 1fr)
		2.5rem
		minmax(0, 1fr)
		2.5rem
		minmax(0, 1fr)
		2.5rem
		minmax(0, 1fr);

	align-items: center;

	gap: 1rem;
}

/* =========================================================
   ARROW
========================================================= */

.flow__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;

	color: var(--color-orange);
}

.flow__arrow svg {
	width: 2rem;
	height: 2rem;
	display: block;
}

/* =========================================================
   CARD
========================================================= */

.flow-card {
	position: relative;

	min-height: 51rem;

	padding: 2.2rem 1.6rem 1.8rem;

	overflow: hidden;

	background: rgba(255, 255, 255, 0.97);

	border: 1px solid rgba(232, 220, 208, 0.8);

	border-radius: 1rem;

	box-shadow: 0 0.8rem 2.3rem rgba(70, 45, 25, 0.08);

	transition:
		transform 0.22s ease,
		box-shadow 0.22s ease;
}

/* =========================================================
   STEP BADGE
========================================================= */

.flow-card__step {
	position: absolute;

	z-index: 4;

	top: 0;
	left: 0;

	width: 8rem;
	height: 8rem;

	padding: 1rem 0 0 1.2rem;

	color: #fff;

	background: linear-gradient(135deg, #ff7a00, #ff4300);

	clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
}

.flow-card__step span {
	display: block;

	font-size: 1.1rem;
	font-weight: 800;

	letter-spacing: 0.06em;
}

.flow-card__step strong {
	display: block;

	font-size: 3rem;
	font-weight: 900;

	line-height: 1.05;
}

/* =========================================================
   CARD TITLE
========================================================= */

.flow-card__title {
	min-height: 9rem;

	margin: 0 0 1.5rem;

	padding-left: 7rem;

	color: var(--color-navy);

	font-size: 2.55rem;
	font-weight: 900;

	line-height: 1.32;

	letter-spacing: -0.03em;
}

.flow-card__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   IMAGE
========================================================= */

.flow-card__image {
	width: 100%;
	height: 16.5rem;

	margin-bottom: 1.6rem;

	overflow: hidden;

	border-radius: 0.5rem;
}

.flow-card__image img {
	width: 100%;
	height: 100%;

	object-fit: cover;

	transition: transform 0.35s ease;
}

/* =========================================================
   TEXT
========================================================= */

.flow-card__text {
	min-height: 10rem;

	margin-bottom: 1.6rem;

	color: var(--color-navy);

	font-size: 1.7rem;
	line-height: 1.55;
	font-weight: 500;
}

/* =========================================================
   POINT BOX
========================================================= */

.flow-card__point {
	min-height: 8.5rem;

	padding: 1.4rem 1.2rem;

	display: flex;

	align-items: center;

	gap: 1.2rem;

	background: linear-gradient(135deg, #fff9f4, #fff3e9);

	border-radius: 0.7rem;
}

.flow-card__point svg {
	width: 4.2rem;
	height: 4.2rem;

	flex-shrink: 0;

	color: var(--color-orange);
}

.flow-card__point p {
	color: var(--color-navy);

	font-size: 1.5rem;
	font-weight: 700;

	line-height: 1.55;
}

/* =========================================================
   YEN ICON
========================================================= */

.flow-card__yen {
	width: 4.2rem;
	height: 4.2rem;

	flex-shrink: 0;

	display: flex;
	align-items: center;
	justify-content: center;

	color: var(--color-orange);

	border: 2px solid var(--color-orange);

	border-radius: 50%;

	font-size: 2rem;
	font-weight: 800;
}

/* =========================================================
   BOTTOM CTA
========================================================= */

.flow__cta {
	min-height: 13rem;

	margin-top: 3.5rem;

	display: grid;

	grid-template-columns:
		1.05fr
		1.2fr
		1.4fr;

	align-items: stretch;

	overflow: hidden;

	background: #fff;

	border: 1px solid rgba(255, 92, 0, 0.48);

	border-radius: 1rem;

	box-shadow: 0 0.9rem 2.4rem rgba(70, 45, 25, 0.08);
}

.flow__cta .assessment-cta-pair {
	width: calc(100% - 2.5rem);
	margin: auto 2.5rem auto 0;
	gap: 0.8rem;
}

.flow__cta .assessment-channel-button {
	min-height: 8rem;
	padding-right: 1.2rem;
	padding-left: 1.2rem;
	gap: 0.7rem;
	font-size: clamp(1.2rem, 1.05vw, 1.65rem);
}

.flow__cta .assessment-channel-button__line-icon {
	width: 3.4rem;
	height: 3.4rem;
}

/* =========================================================
   CTA TITLE
========================================================= */

.flow__cta-title {
	position: relative;

	padding: 2.5rem 3.2rem;

	display: flex;
	align-items: center;

	color: #fff;

	background: linear-gradient(135deg, #19344a, #102b40);

	font-size: 2.8rem;
	font-weight: 900;

	line-height: 1.45;
}

.flow__cta-title::after {
	content: '';

	position: absolute;

	top: 0;
	right: -5rem;

	width: 8rem;
	height: 100%;

	background: #fff;

	clip-path: polygon(65% 0, 100% 0, 100% 100%, 0 100%);
}

@media (min-width: 1025px) {
	.flow__cta-title {
		clip-path: polygon(0 0, 100% 0, calc(100% - 5rem) 100%, 0 100%);
	}

	.flow__cta-title::after {
		content: none;
		display: none;
	}
}

/* =========================================================
   CTA COPY
========================================================= */

.flow__cta-copy {
	padding: 2.5rem 3rem;

	display: flex;
	flex-direction: column;

	justify-content: center;

	gap: 0.6rem;
}

.flow__cta-copy strong {
	color: var(--color-navy);

	font-size: 3rem;
	font-weight: 900;
}

.flow__cta-copy span {
	color: var(--color-navy);

	font-size: 1.95rem;
	font-weight: 600;

	line-height: 1.6;
}

/* 画像9枚目　PCここまで */
/* 画像10枚目　PCここから */
/* =========================================================
   MESSAGE
========================================================= */

.message-section {
	position: relative;

	min-height: 59rem;

	padding: 6.8rem 3.5rem;

	overflow: hidden;

	background: #fff;
}

/* =========================================================
   PHOTO
========================================================= */

.message-section__visual {
	position: absolute;

	z-index: 0;

	top: 0;
	right: 0;

	width: 58%;
	height: 100%;

	background: url('../../images/message-staff.png') center right / cover no-repeat;
}

/* 写真を左側へフェード */
.message-section__visual::before {
	content: '';

	position: absolute;
	inset: 0;

	background: linear-gradient(
		90deg,
		#ffffff 0%,
		rgba(255, 255, 255, 0.98) 17%,
		rgba(255, 255, 255, 0.75) 37%,
		rgba(255, 255, 255, 0.18) 67%,
		rgba(255, 255, 255, 0) 100%
	);
}

/* =========================================================
   DECORATION
========================================================= */

.message-section::before {
	content: '';

	position: absolute;

	z-index: 0;

	top: -15rem;
	left: -18rem;

	width: 43rem;
	height: 43rem;

	transform: rotate(45deg);

	background: linear-gradient(135deg, rgba(255, 126, 20, 0.32), rgba(255, 190, 100, 0.1), transparent);
}

/* =========================================================
   INNER
========================================================= */

.message-section__inner {
	position: relative;

	z-index: 2;

	width: min(1500px, 100%);

	margin: 0 auto;
}

/* =========================================================
   CONTENT
========================================================= */

.message-section__content {
	width: 60%;
}

/* =========================================================
   ENGLISH
========================================================= */

.message-section__en {
	margin-bottom: 1.8rem;

	display: flex;

	align-items: center;

	gap: 2rem;

	color: var(--color-orange);

	font-size: 1.7rem;

	font-weight: 900;

	letter-spacing: 0.22em;
}

.message-section__en span {
	width: 12rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   TITLE
========================================================= */

.message-section__title {
	margin-bottom: 2.4rem;

	color: var(--color-navy);

	font-size: clamp(4.8rem, 4.3vw, 6.7rem);

	font-weight: 900;

	line-height: 1.2;

	letter-spacing: -0.045em;
}

.message-section__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   LEAD
========================================================= */

.message-section__lead {
	color: var(--color-navy);

	font-size: 2rem;

	font-weight: 500;

	line-height: 1.85;
}

/* =========================================================
   STAFF
========================================================= */

.message-section__staff {
	width: min(66rem, 100%);

	min-height: 10rem;

	margin-top: 3rem;

	padding: 2rem 2.6rem;

	display: grid;

	grid-template-columns:
		6rem
		auto
		1fr;

	align-items: center;

	gap: 2rem;

	background: rgba(255, 252, 248, 0.95);

	border: 1.5px solid var(--color-orange);

	border-radius: 1rem;
}

/* =========================================================
   STAFF ICON
========================================================= */

.message-section__staff-icon {
	width: 5rem;
	height: 5rem;

	display: flex;

	align-items: center;
	justify-content: center;

	color: var(--color-orange);
}

.message-section__staff-icon svg {
	width: 100%;
	height: 100%;
}

/* =========================================================
   STAFF NAME
========================================================= */

.message-section__staff-name {
	padding-right: 2rem;

	color: var(--color-navy);

	font-size: 2.4rem;

	font-weight: 900;

	border-right: 1px solid rgba(25, 40, 50, 0.25);
}

/* =========================================================
   STAFF TEXT
========================================================= */

.message-section__staff-text {
	color: var(--color-navy);

	font-size: 1.85rem;

	font-weight: 500;

	line-height: 1.6;
}

/* =========================================================
   REUSE & SUSTAINABILITY
========================================================= */

.sustainability {
	position: relative;

	padding: 5.5rem 3.5rem 6rem;

	overflow: hidden;

	background: linear-gradient(135deg, #fff8ef 0%, #ffffff 31%, #ffffff 75%, #fff4e6 100%);
}

/* =========================================================
   LEFT PHOTO
========================================================= */

.sustainability__visual {
	position: absolute;

	z-index: 0;

	top: 0;
	left: 0;

	width: 36%;
	height: 100%;

	background: url('../../images/sustainability-bg.png') center left / cover no-repeat;
}

/* 写真を右へフェード */
.sustainability__visual::before {
	content: '';

	position: absolute;
	inset: 0;

	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0.12) 35%,
		rgba(255, 255, 255, 0.85) 74%,
		#ffffff 100%
	);
}

/* =========================================================
   INNER
========================================================= */

.sustainability__inner {
	position: relative;

	z-index: 2;

	width: min(1450px, 100%);

	margin: 0 auto;
}

/* =========================================================
   HEADING
========================================================= */

.sustainability__heading {
	margin-bottom: 4rem;

	text-align: center;
}

/* =========================================================
   ENGLISH
========================================================= */

.sustainability__en {
	margin-bottom: 1.4rem;

	display: flex;

	align-items: center;
	justify-content: center;

	gap: 2.2rem;

	color: var(--color-orange);

	font-size: 1.65rem;

	font-weight: 900;

	letter-spacing: 0.12em;
}

.sustainability__en span {
	width: 8rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   TITLE
========================================================= */

.sustainability__title {
	color: var(--color-navy);

	font-size: clamp(4rem, 3.9vw, 5.8rem);

	font-weight: 900;

	line-height: 1.25;

	letter-spacing: -0.04em;
}

.sustainability__title em {
	color: var(--color-orange);

	font-style: normal;

	font-size: 1.08em;
}

.sustainability__title-mobile-break {
	display: none;
}

/* =========================================================
   LEAD
========================================================= */

.sustainability__lead {
	margin-top: 1.4rem;

	color: var(--color-navy);

	font-size: 2rem;

	font-weight: 500;

	line-height: 1.7;
}

/* =========================================================
   FEATURES
========================================================= */

.sustainability__features {
	width: 100%;

	margin-left: auto;

	display: grid;

	grid-template-columns: 1fr 1fr 1.22fr;

	gap: 0;
}

/* =========================================================
   FEATURE
========================================================= */

.sustainability-feature {
	min-height: 14rem;

	padding: 1rem 3rem;

	display: grid;

	grid-template-columns:
		8rem
		minmax(0, 1fr);

	align-items: center;

	gap: 1.6rem;
	padding-inline: 2rem;
}

.sustainability-feature + .sustainability-feature {
	border-left: 1px solid rgba(255, 94, 0, 0.38);
}

/* =========================================================
   FEATURE ICON
========================================================= */

.sustainability-feature__icon {
	width: 7.8rem;
	height: 7.8rem;

	display: flex;

	align-items: center;
	justify-content: center;

	color: var(--color-orange);

	background: rgba(255, 235, 215, 0.78);

	border-radius: 50%;
}

.sustainability-feature__icon svg {
	width: 4.4rem;
	height: 4.4rem;
}

/* =========================================================
   FEATURE TITLE
========================================================= */

.sustainability-feature__title {
	margin-bottom: 0.7rem;

	color: var(--color-navy);

	font-size: 2.4rem;

	font-weight: 900;

	line-height: 1.4;
}

/* =========================================================
   FEATURE TEXT
========================================================= */

.sustainability-feature__text {
	color: var(--color-navy);

	font-size: 1.85rem;

	font-weight: 500;

	line-height: 1.65;
}
/* 画像10枚目　PCここまで */
/* 画像11枚目　PCここから */
/* =========================================================
   FAQ
========================================================= */

.faq {
	position: relative;

	padding: 7rem 3.5rem 7.5rem;

	overflow: hidden;

	background: linear-gradient(135deg, #fff8ef 0%, #ffffff 26%, #ffffff 68%, #fff1df 100%);
}

/* =========================================================
   RIGHT PHOTO
========================================================= */

.faq__visual {
	position: absolute;

	z-index: 0;

	top: 18rem;
	right: 0;

	width: 31%;
	height: 58rem;

	background: url('../../images/faq-staff-v2.png') center right / cover no-repeat;
}

/* 写真を左側へフェード */
.faq__visual::before {
	content: '';

	position: absolute;
	inset: 0;

	background: linear-gradient(
		90deg,
		#ffffff 0%,
		rgba(255, 255, 255, 0.92) 16%,
		rgba(255, 255, 255, 0.45) 40%,
		rgba(255, 255, 255, 0.05) 72%,
		rgba(255, 255, 255, 0) 100%
	);
}

/* =========================================================
   BACKGROUND DECORATION
========================================================= */

.faq::before,
.faq::after {
	content: '';

	position: absolute;

	z-index: 0;

	pointer-events: none;
}

.faq::before {
	top: -17rem;
	left: -20rem;

	width: 48rem;
	height: 48rem;

	transform: rotate(45deg);

	background: linear-gradient(135deg, rgba(255, 126, 20, 0.34), rgba(255, 194, 112, 0.1), transparent);
}

.faq::after {
	right: -20rem;
	bottom: -18rem;

	width: 52rem;
	height: 52rem;

	transform: rotate(45deg);

	background: linear-gradient(315deg, rgba(255, 126, 20, 0.3), rgba(255, 194, 112, 0.09), transparent);
}

/* =========================================================
   INNER
========================================================= */

.faq__inner {
	position: relative;

	z-index: 2;

	width: min(1500px, 100%);

	margin: 0 auto;
}

/* =========================================================
   HEADING
========================================================= */

.faq__heading {
	margin-bottom: 4rem;

	text-align: center;
}

/* =========================================================
   ENGLISH
========================================================= */

.faq__en {
	margin-bottom: 1.4rem;

	display: flex;
	align-items: center;
	justify-content: center;

	gap: 2.8rem;

	color: var(--color-orange);

	font-size: 1.7rem;
	font-weight: 900;

	letter-spacing: 0.22em;
}

.faq__en span {
	width: 8rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   TITLE
========================================================= */

.faq__title {
	color: var(--color-navy);

	font-size: clamp(5rem, 4.6vw, 7rem);

	font-weight: 900;

	line-height: 1.2;

	letter-spacing: -0.045em;
}

.faq__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   LEAD
========================================================= */

.faq__lead {
	margin-top: 1.4rem;

	color: var(--color-navy);

	font-size: 2rem;
	font-weight: 500;

	line-height: 1.7;
}

.faq__lead-mobile-break {
	display: none;
}

/* =========================================================
   LAYOUT
========================================================= */

.faq__layout {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		27rem;

	align-items: end;

	gap: 3rem;
}

/* =========================================================
   FAQ LIST
========================================================= */

.faq__list {
	display: grid;

	gap: 1.3rem;
}

/* =========================================================
   FAQ ITEM
========================================================= */

.faq-item {
	overflow: hidden;

	background: rgba(255, 255, 255, 0.96);

	border: 1px solid rgba(232, 220, 208, 0.72);

	border-radius: 1rem;

	box-shadow: 0 0.7rem 2rem rgba(70, 45, 25, 0.06);

	transition:
		box-shadow 0.2s ease,
		transform 0.2s ease;
}

.faq-item:hover {
	transform: translateY(-2px);

	box-shadow: 0 1rem 2.5rem rgba(70, 45, 25, 0.09);
}

/* details標準マーカーを削除 */
.faq-item__question {
	list-style: none;
}

.faq-item__question::-webkit-details-marker {
	display: none;
}

/* =========================================================
   QUESTION
========================================================= */

.faq-item__question {
	position: relative;

	min-height: 10rem;

	padding: 1.8rem 7rem 1.8rem 2rem;

	display: grid;

	grid-template-columns:
		6.5rem
		minmax(0, 1fr);

	align-items: center;

	gap: 2rem;

	cursor: pointer;
}

/* =========================================================
   Q CIRCLE
========================================================= */

.faq-item__q {
	width: 6.2rem;
	height: 6.2rem;

	display: flex;
	align-items: center;
	justify-content: center;

	color: #fff;

	background: linear-gradient(135deg, #ff7b00, #ff3e00);

	border-radius: 50%;

	font-size: 3rem;
	font-weight: 900;

	line-height: 1;

	box-shadow: 0 0.5rem 1.3rem rgba(255, 70, 0, 0.15);
}

.faq-item__q > span {
	display: block;
	transform: translateY(-0.08em);
}

/* =========================================================
   QUESTION TEXT
========================================================= */

.faq-item__question-text {
	color: var(--color-navy);

	font-size: 2.55rem;
	font-weight: 900;

	line-height: 1.45;

	letter-spacing: -0.025em;
}

/* =========================================================
   PLUS / MINUS
========================================================= */

.faq-item__toggle {
	position: absolute;

	top: 50%;
	right: 2rem;

	width: 4.6rem;
	height: 4.6rem;

	transform: translateY(-50%);

	background: #fff4e9;

	border-radius: 50%;
}

.faq-item__toggle::before,
.faq-item__toggle::after {
	content: '';

	position: absolute;

	top: 50%;
	left: 50%;

	width: 1.6rem;
	height: 2px;

	background: var(--color-navy);

	transform: translate(-50%, -50%);

	transition:
		transform 0.2s ease,
		opacity 0.2s ease;
}

.faq-item__toggle::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

/* 開いている時はマイナス */
.faq-item[open] .faq-item__toggle::after {
	opacity: 0;

	transform: translate(-50%, -50%) rotate(0);
}

/* =========================================================
   ANSWER
========================================================= */

.faq-item__answer {
	margin: 0 2rem 1.7rem 10.5rem;

	padding: 1.2rem 1.8rem;

	display: flex;

	align-items: flex-start;

	gap: 1rem;

	background: linear-gradient(135deg, #fff9f4, #fff3e9);

	border-radius: 0.7rem;
}

.faq-item__a {
	flex-shrink: 0;

	color: var(--color-orange);

	font-size: 2.4rem;
	font-weight: 900;

	line-height: 1.55;
}

.faq-item__answer p {
	color: var(--color-navy);

	font-size: 1.8rem;
	font-weight: 500;

	line-height: 1.65;
}

/* 画像11枚目　PCここまで */
/* 画像12枚目　PCここから */
/* =========================================================
   COMPANY
========================================================= */

.company {
	position: relative;

	padding: 7rem 3.5rem 7.5rem;

	overflow: hidden;

	background: linear-gradient(135deg, #fff8ef 0%, #ffffff 25%, #ffffff 72%, #fff3e4 100%);
}

/* =========================================================
   DECORATION
========================================================= */

.company::before,
.company::after {
	content: '';

	position: absolute;

	z-index: 0;

	pointer-events: none;
}

.company::before {
	top: -17rem;
	left: -19rem;

	width: 46rem;
	height: 46rem;

	transform: rotate(45deg);

	background: linear-gradient(135deg, rgba(255, 126, 20, 0.34), rgba(255, 194, 112, 0.1), transparent);
}

.company::after {
	right: -19rem;
	bottom: -17rem;

	width: 50rem;
	height: 50rem;

	transform: rotate(45deg);

	background: linear-gradient(315deg, rgba(255, 126, 20, 0.28), rgba(255, 194, 112, 0.09), transparent);
}

/* =========================================================
   INNER
========================================================= */

.company__inner {
	position: relative;

	z-index: 2;

	width: min(1700px, calc(100% - 7rem));

	margin: 0 auto;

	display: grid;

	grid-template-columns:
		minmax(0, 1.08fr)
		minmax(0, 0.92fr);

	align-items: center;

	gap: 6rem;
}

.company__visual {
	position: relative;

	min-width: 0;
}

/* =========================================================
   CONTENT
========================================================= */

.company__content {
	min-width: 0;
}

/* =========================================================
   ENGLISH
========================================================= */

.company__en {
	margin-bottom: 1.8rem;

	display: flex;

	align-items: center;

	gap: 2rem;

	color: var(--color-orange);

	font-size: 1.7rem;

	font-weight: 900;

	letter-spacing: 0.22em;
}

.company__en span {
	width: 8rem;

	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   TITLE
========================================================= */

.company__title {
	margin-bottom: 2.4rem;

	color: var(--color-navy);

	font-size: clamp(4.8rem, 4.5vw, 6.9rem);

	font-weight: 900;

	line-height: 1.2;

	letter-spacing: -0.045em;
}

.company__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   LEAD
========================================================= */

.company__lead {
	margin-bottom: 3rem;

	color: var(--color-navy);

	font-size: 2.25rem;

	font-weight: 500;

	line-height: 1.75;
}

/* =========================================================
   COMPANY TABLE
========================================================= */

.company__table {
	margin: 0 0 3.2rem;

	border-top: 1px solid rgba(25, 40, 50, 0.25);
}

/* =========================================================
   ROW
========================================================= */

.company__row {
	min-height: 7.5rem;

	display: grid;

	grid-template-columns:
		19rem
		minmax(0, 1fr);

	align-items: stretch;

	border-bottom: 1px solid rgba(25, 40, 50, 0.25);
}

/* =========================================================
   TERM
========================================================= */

.company__row dt {
	padding: 1.8rem 2rem;

	display: flex;

	align-items: center;

	color: var(--color-navy);

	background: linear-gradient(135deg, #fff7ef, #fff1e5);

	font-size: 1.9rem;

	font-weight: 900;
}

/* =========================================================
   DESCRIPTION
========================================================= */

.company__row dd {
	padding: 1.8rem 2.6rem;

	display: flex;

	align-items: center;

	color: var(--color-navy);

	font-size: 1.8rem;

	font-weight: 500;

	line-height: 1.6;
}

/* 画像12枚目　PCここまで */
/* 画像13枚目　PCここから */
/* =========================================================
   FINAL CTA
========================================================= */

.final-cta {
	position: relative;

	min-height: 66rem;

	padding: 6.8rem 3.5rem 6rem;

	overflow: hidden;

	background: linear-gradient(135deg, #ffecd5 0%, #ffffff 35%, #fffaf4 68%, #ffe2bd 100%);
}

/* =========================================================
   BACKGROUND PHOTO
========================================================= */

.final-cta__visual {
	position: absolute;

	z-index: 0;

	top: 0;
	right: 0;

	width: 41%;
	height: 100%;

	background: url('../../images/final-cta-staff-v2.png') 64% center / cover no-repeat;
}

/* 写真を左側へフェード */
.final-cta__visual::before {
	content: '';

	position: absolute;
	inset: 0;

	background: linear-gradient(
		90deg,
		#ffffff 0%,
		rgba(255, 255, 255, 0.96) 17%,
		rgba(255, 255, 255, 0.63) 39%,
		rgba(255, 255, 255, 0.12) 70%,
		rgba(255, 255, 255, 0) 100%
	);
}

/* =========================================================
   DECORATION
========================================================= */

.final-cta::before,
.final-cta::after {
	content: '';

	position: absolute;

	z-index: 0;

	pointer-events: none;
}

.final-cta::before {
	top: -18rem;
	left: -20rem;

	width: 48rem;
	height: 48rem;

	transform: rotate(45deg);

	background: linear-gradient(135deg, rgba(255, 126, 20, 0.36), rgba(255, 190, 100, 0.1), transparent);
}

.final-cta::after {
	right: -17rem;
	bottom: -18rem;

	width: 48rem;
	height: 48rem;

	transform: rotate(45deg);

	background: linear-gradient(315deg, rgba(255, 126, 20, 0.3), rgba(255, 194, 112, 0.09), transparent);
}

/* =========================================================
   INNER
========================================================= */

.final-cta__inner {
	position: relative;

	z-index: 2;

	width: min(1450px, 100%);

	margin: 0 auto;
}

/* =========================================================
   HEADING
========================================================= */

.final-cta__heading {
	width: 80%;

	margin: 0 auto 3.2rem;

	text-align: center;
}

/* =========================================================
   ENGLISH
========================================================= */

.final-cta__en {
	margin-bottom: 1.6rem;

	display: flex;

	align-items: center;
	justify-content: center;

	gap: 2.5rem;

	color: var(--color-orange);

	font-size: 1.7rem;

	font-weight: 900;

	letter-spacing: 0.18em;
}

.final-cta__en span {
	width: 8rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   TITLE
========================================================= */

.final-cta__title {
	color: var(--color-navy);

	font-size: clamp(5rem, 4.5vw, 7rem);

	font-weight: 900;

	line-height: 1.18;

	letter-spacing: -0.045em;
}

.final-cta__title em {
	color: var(--color-orange);

	font-style: normal;
}

/* =========================================================
   LEAD
========================================================= */

.final-cta__lead {
	margin-top: 1.8rem;

	color: var(--color-navy);

	font-size: 2rem;

	font-weight: 500;

	line-height: 1.7;
}

.final-cta__lead-break {
	display: none;
}

/* =========================================================
   BENEFITS
========================================================= */

.final-cta__benefits {
	width: min(96rem, 78%);

	margin: 0 auto 3rem;

	display: grid;

	grid-template-columns: repeat(4, minmax(0, 1fr));

	gap: 1.5rem;
}

/* =========================================================
   BENEFIT
========================================================= */

.final-benefit {
	min-height: 13rem;

	padding: 1.8rem 1.2rem;

	display: flex;

	flex-direction: column;

	align-items: center;
	justify-content: center;

	text-align: center;

	background: rgba(255, 255, 255, 0.93);

	border: 1.5px solid rgba(255, 112, 25, 0.35);

	border-radius: 0.9rem;

	box-shadow: 0 0.6rem 1.8rem rgba(70, 45, 25, 0.05);
}

/* =========================================================
   ICON
========================================================= */

.final-benefit__icon {
	width: 5.8rem;
	height: 5.8rem;

	margin-bottom: 0.8rem;

	display: flex;

	align-items: center;
	justify-content: center;

	color: var(--color-orange);
}

.final-benefit__icon svg {
	width: 100%;
	height: 100%;
}

/* =========================================================
   ¥0
========================================================= */

.final-benefit__icon--yen {
	width: auto;

	gap: 0.3rem;
}

.final-benefit__icon--yen span {
	font-size: 2.2rem;

	font-weight: 900;
}

.final-benefit__icon--yen strong {
	font-size: 4.7rem;

	font-weight: 900;

	line-height: 1;
}

/* =========================================================
   BENEFIT TEXT
========================================================= */

.final-benefit p {
	color: var(--color-navy);

	font-size: 2rem;

	font-weight: 900;

	line-height: 1.4;
}

/* =========================================================
   ACTION
========================================================= */

.final-cta__action {
	width: min(64rem, 100%);

	margin: 0 auto;

	text-align: center;
}

/* =========================================================
   NOTE
========================================================= */

.final-cta__note {
	margin-top: 1.7rem;

	color: var(--color-navy);

	font-size: 1.65rem;

	font-weight: 600;

	line-height: 1.6;
}

/* =========================================================
   FOOTER
========================================================= */

.site-footer {
	position: relative;

	padding: 4.5rem 3.5rem 2.4rem;

	color: #fff;

	background: linear-gradient(135deg, #18364b 0%, #102c40 42%, #0d2638 100%);
}

/* =========================================================
   INNER
========================================================= */

.site-footer__inner {
	width: min(1450px, 100%);

	margin: 0 auto;
}

/* =========================================================
   MAIN
========================================================= */

.site-footer__main {
	display: grid;

	grid-template-columns:
		minmax(0, 1.55fr)
		minmax(15rem, 0.75fr)
		minmax(15rem, 0.75fr)
		6rem;

	align-items: center;

	gap: 4rem;

	padding-bottom: 3rem;
}

.site-footer__brand {
	align-self: start;
	padding-top: 0;
}

/* =========================================================
   BRAND
========================================================= */

.site-footer__brand-head {
	display: flex;

	align-items: center;

	gap: 0;
}

.site-footer__service {
	margin-bottom: 0;

	font-size: 2.4rem;

	font-weight: 900;
}

.site-footer__message {
	margin-top: 1.4rem;

	font-size: 1.5rem;

	font-weight: 500;

	letter-spacing: 0.04em;
}

/* =========================================================
   NAV
========================================================= */

.site-footer__nav {
	position: relative;

	min-height: 15rem;

	padding-left: 4rem;

	display: flex;

	flex-direction: column;

	justify-content: center;

	gap: 1rem;
}

.site-footer__nav::before {
	content: '';

	position: absolute;

	top: 0;
	bottom: 0;
	left: 0;

	width: 1px;

	background: rgba(255, 255, 255, 0.32);
}

/* =========================================================
   NAV LINKS
========================================================= */

.site-footer__nav a {
	color: #fff;

	font-size: 1.45rem;

	font-weight: 500;

	line-height: 1.5;

	transition:
		opacity 0.2s ease,
		transform 0.2s ease;
}

.site-footer__nav a:hover {
	opacity: 0.7;

	transform: translateX(0.3rem);
}

/* =========================================================
   PAGE TOP
========================================================= */

.site-footer__pagetop {
	width: 5.5rem;
	height: 5.5rem;

	display: flex;

	align-items: center;
	justify-content: center;

	color: #fff;

	border: 1px solid rgba(255, 255, 255, 0.48);

	border-radius: 50%;

	transition:
		background 0.2s ease,
		transform 0.2s ease;
}

.site-footer__pagetop:hover {
	background: rgba(255, 255, 255, 0.08);

	transform: translateY(-3px);
}

.site-footer__pagetop span {
	font-size: 2rem;

	font-weight: 700;
}

/* =========================================================
   BOTTOM
========================================================= */

.site-footer__bottom {
	padding-top: 2rem;

	border-top: 1px solid rgba(255, 255, 255, 0.28);
}

.site-footer__bottom p {
	color: rgba(255, 255, 255, 0.72);

	font-size: 1.2rem;
}
/* 画像13枚目　PCここまで */

/* ここからスマホ　レスポンシブ化 */

/* =========================================================
   PROBLEMS RESPONSIVE
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	.problems {
		padding: 7rem 2.4rem 7rem;
	}

	/* -------------------------
     Heading
  ------------------------- */

	.problems__heading {
		width: min(92vw, 920px);

		margin-bottom: 3.2rem;
	}

	.problems__en {
		margin-bottom: 1.4rem;

		gap: 2rem;

		font-size: 1.45rem;

		letter-spacing: 0.2em;
	}

	.problems__en span {
		width: 5rem;
	}

	.problems__title {
		font-size: clamp(3.8rem, 6vw, 5.4rem);

		line-height: 1.22;

		white-space: normal;
	}

	.problems__lead {
		margin-top: 1.2rem;

		font-size: 1.75rem;
	}

	/* -------------------------
     Grid
     3列 → 2列
  ------------------------- */

	.problems__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));

		gap: 1.8rem;
	}

	/* -------------------------
     Card visual
  ------------------------- */

	.problem-card__visual {
		height: 22rem;
	}

	.problem-card__copy {
		top: 1.6rem;
		left: 2rem;
	}

	.problem-card__number {
		margin-bottom: 1.8rem;

		font-size: 3.2rem;
	}

	.problem-card__title {
		font-size: 2.1rem;

		line-height: 1.42;
	}

	.problem-card__description {
		min-height: 8.5rem;

		padding: 1.7rem 2rem 1.9rem;

		font-size: 1.4rem;
	}

	/* -------------------------
     CTA
  ------------------------- */

	.problems__cta-area {
		margin-top: 3rem;
	}

	.problems__cta {
		width: min(92%, 90rem);

		min-height: 9rem;

		padding: 0 3.5rem;

		gap: 2rem;
	}

	.problems__cta-icon {
		width: 4.2rem;
		height: 4.2rem;
	}

	.problems__cta span {
		font-size: 2.3rem;
	}

	.problems__cta-arrow {
		width: 3rem;
		height: 3rem;
	}

	.problems__cta-note {
		margin-top: 1.6rem;

		font-size: 1.45rem;
	}
}

/* 3枚目の画像〜事業者在庫の買取〜 */
/* =========================================================
   ABOUT
========================================================= */

.about {
	position: relative;

	overflow: hidden;

	background: linear-gradient(135deg, #fff 0%, #fffaf6 100%);
}

/* 右側の斜め装飾 */
.about::before {
	content: '';

	position: absolute;

	z-index: 0;

	top: -12rem;
	right: -10rem;

	width: 32rem;
	height: 70rem;

	background: linear-gradient(135deg, rgba(255, 148, 60, 0.06), rgba(255, 104, 0, 0.2));

	transform: rotate(42deg);

	pointer-events: none;
}

/* =========================================================
   INNER
========================================================= */

.about__inner {
	position: relative;
	z-index: 2;

	width: 100%;

	min-height: 76rem;

	display: grid;

	grid-template-columns: 47% 53%;
}

/* =========================================================
   LEFT VISUAL
========================================================= */

.about__visual {
	position: relative;

	min-height: 76rem;

	overflow: visible;
}

.about__image {
	width: 100%;
	height: 100%;

	object-fit: cover;

	object-position: center center;

	-webkit-mask-image: linear-gradient(to bottom, transparent, #000 60px, #000 calc(100% - 60px), transparent);
	mask-image: linear-gradient(to bottom, transparent, #000 60px, #000 calc(100% - 60px), transparent);
}

/* 右端の白フェード */

.about__visual::after {
	content: '';

	position: absolute;

	z-index: 2;

	top: 0;
	right: -1px;
	bottom: 0;

	width: 15rem;

	background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.72), #fff);

	pointer-events: none;
}

/* =========================================================
   LEFT POINTS
========================================================= */

.about__points {
	position: absolute;
	z-index: 5;

	left: 4.2rem;
	right: 1.5rem;
	bottom: 3.5rem;

	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr));

	gap: 1.4rem;
}

.about-point {
	width: 20rem;
	height: 20rem;

	margin: 0 auto;

	display: flex;
	flex-direction: column;

	align-items: center;
	justify-content: center;

	text-align: center;

	background: rgba(255, 255, 255, 0.97);

	border: 2px solid var(--color-orange);

	border-radius: 50%;

	box-shadow: 0 1rem 2.2rem rgba(70, 40, 20, 0.14);
}

.about-point__icon {
	width: 6.5rem;
	height: 6.5rem;

	margin-bottom: 1.1rem;

	color: var(--color-orange);
}

.about-point__icon svg {
	width: 100%;
	height: 100%;
}

.about-point__text {
	color: var(--color-navy);

	font-size: 1.75rem;
	font-weight: 900;

	line-height: 1.45;
}

/* =========================================================
   CONTENT
========================================================= */

.about__content {
	position: relative;
	z-index: 5;

	padding: 6.8rem 7rem 6rem 4rem;
}

/* =========================================================
   EN TITLE
========================================================= */

.about__en {
	margin-bottom: 1.8rem;

	display: flex;
	align-items: center;

	gap: 2rem;

	color: var(--color-orange);

	font-size: 1.6rem;
	font-weight: 900;

	letter-spacing: 0.18em;
}

.about__en span {
	width: 7rem;
	height: 2px;

	background: var(--color-orange);
}

/* =========================================================
   MAIN TITLE
========================================================= */

.about__title {
	margin-bottom: 2.2rem;

	color: var(--color-navy);

	font-size: clamp(2.6rem, 3.1vw, 4rem);

	font-weight: 900;

	line-height: 1.3;

	letter-spacing: -0.035em;
}

.about__title strong {
	display: block;

	margin-top: 0.3rem;

	color: var(--color-orange);

	font-size: 2em;

	line-height: 1.15;
}

/* =========================================================
   LEAD
========================================================= */

.about__lead {
	margin-bottom: 2.8rem;

	color: var(--color-navy);

	font-size: 2rem;
	font-weight: 500;

	line-height: 1.75;
}

/* =========================================================
   FEATURES
========================================================= */

.about-feature {
	position: relative;

	min-height: 12.8rem;

	margin-bottom: 2.8rem;

	padding: 2.2rem 4rem 2.2rem 13.5rem;

	display: flex;
	align-items: center;

	background: linear-gradient(90deg, #ffffff 0%, #fffaf5 100%);

	border-radius: 1.2rem;

	box-shadow: 0 0.6rem 1.8rem rgba(80, 50, 25, 0.06);
}

.about-feature:last-child {
	margin-bottom: 0;
}

.about-feature__icon {
	position: absolute;

	top: 50%;
	left: 1.6rem;

	width: 10.5rem;
	height: 10.5rem;

	transform: translateY(-50%);

	display: flex;
	align-items: center;
	justify-content: center;

	color: #fff;

	background: linear-gradient(135deg, #ff7b00, #ff4b00);

	border-radius: 50%;

	box-shadow: 0 0.9rem 2rem rgba(255, 76, 0, 0.2);
}

.about-feature__icon svg {
	width: 5.2rem;
	height: 5.2rem;
}

/* =========================================================
   FEATURE TEXT
========================================================= */

.about-feature__title {
	margin-bottom: 0.6rem;

	color: var(--color-navy);

	font-size: 3.2rem;
	font-weight: 900;

	line-height: 1.4;
}

.about-feature__title em {
	color: var(--color-orange);

	font-style: normal;
}

.about-feature__text {
	color: #40484f;

	font-size: 1.9rem;

	line-height: 1.65;
}

/* =========================================================
   PROBLEMS RESPONSIVE
   MOBILE　スマホ
   600px以下
========================================================= */

@media (max-width: 600px) {
	.problems {
		padding: 5.5rem 1.6rem 5.8rem;
	}

	/* -------------------------
     Background decoration
  ------------------------- */

	.problems::before,
	.problems::after {
		width: 18rem;
		height: 18rem;

		opacity: 0.42;
	}

	.problems::before {
		top: -5rem;
		left: -7rem;
	}

	.problems::after {
		right: -7rem;
		bottom: -5rem;
	}

	/* -------------------------
     Heading
  ------------------------- */

	.problems__heading {
		width: 100%;

		margin-left: 0;

		transform: none;

		margin-bottom: 2.6rem;
	}

	.problems__en {
		margin-bottom: 1.2rem;

		gap: 1.4rem;

		font-size: 1.25rem;

		letter-spacing: 0.18em;
	}

	.problems__en span {
		width: 3.6rem;

		height: 1px;
	}

	.problems__title {
		font-size: clamp(3rem, 9.4vw, 4.2rem);

		line-height: 1.28;

		letter-spacing: -0.025em;

		white-space: normal;
	}

	.problems__title em {
		display: inline;

		white-space: nowrap;
	}

	.problems__lead {
		margin-top: 1rem;

		font-size: 1.45rem;

		line-height: 1.65;
	}

	/* -------------------------
     CTA
  ------------------------- */

	.problems__cta-area {
		margin-top: 2.4rem;
	}

	.problems__cta {
		width: 100%;

		min-height: 8rem;

		padding: 0 1.8rem;

		gap: 1rem;

		border-radius: 0.8rem;
	}

	.problems__cta-icon {
		width: 3.2rem;
		height: 3.2rem;
	}

	.problems__cta span {
		font-size: clamp(1.7rem, 4.6vw, 2rem);

		line-height: 1.45;
	}

	.problems__cta-arrow {
		width: 2.6rem;
		height: 2.6rem;
	}

	.problems__cta-note {
		width: 92%;

		margin: 1.4rem auto 0;

		font-size: 1.25rem;

		line-height: 1.6;
	}
}

/* =========================================================
   PROBLEMS RESPONSIVE
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	.problems {
		padding-left: 1.2rem;
		padding-right: 1.2rem;
	}

	.problems__title {
		font-size: clamp(2.8rem, 8.4vw, 3.8rem);

		line-height: 1.25;

		letter-spacing: -0.035em;

		white-space: normal;

		text-align: center;
	}

	.problems__lead {
		font-size: 1.3rem;
	}

	.problems__cta {
		min-height: 7.4rem;

		padding: 0 1.3rem;
	}

	.problems__cta-icon {
		width: 2.8rem;
		height: 2.8rem;
	}

	.problems__cta span {
		font-size: 1.55rem;
	}

	.problems__cta-arrow {
		width: 2.2rem;
		height: 2.2rem;
	}

	.problems__cta-note {
		font-size: 1.15rem;
	}
}

/* Small-screen problem cards use compact image-and-copy rows. */
@media (max-width: 767px) {
	.problems__grid {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.problem-card,
	.problem-card:hover {
		display: grid;
		grid-template-columns: 8rem minmax(0, 1fr);
		column-gap: 1.6rem;
		row-gap: 0.6rem;
		padding: 2rem 0;
		border: 0;
		border-bottom: 1px solid #e6dcd3;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		transform: none;
	}

	.problem-card__visual { display: contents; }
	.problem-card__visual::after { display: none; }

	.problem-card__visual img {
		grid-column: 1;
		grid-row: 1 / 3;
		width: 8rem;
		height: 9rem;
		object-fit: cover;
		border-radius: 4px;
	}

	.problem-card__copy {
		position: static;
		width: auto;
		grid-column: 2;
		grid-row: 1;
	}

	.problem-card__number {
		margin: 0 0 0.5rem;
		font-size: 1.4rem;
	}

	.problem-card__number::after { display: none; }
	.problem-card__title {
		font-size: 1.7rem;
		line-height: 1.55;
	}

	.problem-card__title br,
	.problem-card__description br { display: none; }
	.problem-card__description {
		grid-column: 2;
		min-height: 0;
		padding: 0;
		font-size: 1.3rem;
		line-height: 1.7;
	}
}
/* 3枚目の画像　aboutセクションのスマホ */
/* =========================================================
   ABOUT RESPONSIVE
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	.about__inner {
		min-height: auto;

		display: flex;
		flex-direction: column;
	}

	/* =====================================================
     VISUAL
  ===================================================== */

	.about__visual {
		width: 100%;
		min-height: 56rem;

		position: relative;

		overflow: visible;
	}

	.about__image {
		position: absolute;
		inset: 0;

		width: 100%;
		height: 100%;

		object-fit: cover;

		object-position: center 38%;
	}

	/* PCの右フェードを下フェードに変更 */

	.about__visual::after {
		top: auto;
		left: 0;
		right: 0;
		bottom: 0;

		width: 100%;
		height: 16rem;

		background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.55) 48%, #fff 100%);
	}

	/* =====================================================
     3 POINTS
  ===================================================== */

	.about__points {
		left: 50%;
		right: auto;

		bottom: -5rem;

		width: min(74rem, 92%);

		transform: translateX(-50%);

		gap: 1.4rem;
	}

	.about-point {
		width: 17rem;
		height: 17rem;
	}

	.about-point__icon {
		width: 5.3rem;
		height: 5.3rem;

		margin-bottom: 0.8rem;
	}

	.about-point__text {
		font-size: 1.45rem;

		line-height: 1.4;
	}

	/* =====================================================
     CONTENT
  ===================================================== */

	.about__content {
		width: 100%;

		padding: 9rem 5rem 6rem;
	}

	.about__en {
		justify-content: center;

		margin-bottom: 1.5rem;
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.about__title {
		max-width: 90rem;

		margin: 0 auto 2rem;

		text-align: center;

		font-size: clamp(3.6rem, 5vw, 5rem);

		line-height: 1.3;
	}

	.about__title strong {
		font-size: 1.7em;
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.about__lead {
		max-width: 84rem;

		margin: 0 auto 3.2rem;

		font-size: 1.9rem;

		line-height: 1.75;

		text-align: center;
	}

	/* =====================================================
     FEATURES
  ===================================================== */

	.about-feature {
		width: min(86rem, 100%);

		min-height: 12rem;

		margin: 0 auto 2rem;

		padding: 2.2rem 3rem 2.2rem 11.5rem;
	}

	.about-feature__icon {
		left: -1rem;

		width: 9.5rem;
		height: 9.5rem;
	}

	.about-feature__icon svg {
		width: 4.8rem;
		height: 4.8rem;
	}

	.about-feature__title {
		font-size: 2.5rem;

		line-height: 1.4;
	}

	.about-feature__text {
		font-size: 1.45rem;
	}
}

/* =========================================================
   ABOUT RESPONSIVE
   MOBILE
   600px以下
========================================================= */

@media (max-width: 600px) {
	.about {
		overflow: hidden;
	}

	/* =====================================================
     VISUAL
  ===================================================== */

	.about__visual {
		min-height: 42rem;
	}

	.about__image {
		object-position: 48% center;

		-webkit-mask-image: linear-gradient(to bottom, transparent, #000 32px, #000 calc(100% - 32px), transparent);
		mask-image: linear-gradient(to bottom, transparent, #000 32px, #000 calc(100% - 32px), transparent);
	}

	.about__visual::after {
		height: 12rem;

		background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 45%, #fff 100%);
	}

	/* =====================================================
     3 POINTS
  ===================================================== */

	.about__points {
		bottom: -3.8rem;

		width: calc(100% - 2rem);

		gap: 0.5rem;
	}

	.about-point {
		width: 100%;
		height: auto;

		aspect-ratio: 1 / 1;

		max-width: 11rem;

		border-width: 1.5px;

		box-shadow: 0 0.5rem 1.2rem rgba(70, 40, 20, 0.1);
	}

	.about-point__icon {
		width: 3.6rem;
		height: 3.6rem;

		margin-bottom: 0.4rem;
	}

	/* =====================================================
     CONTENT
  ===================================================== */

	.about__content {
		padding: 7rem 1.8rem 4.5rem;
	}

	/* =====================================================
     EN
  ===================================================== */

	.about__en {
		justify-content: center;

		gap: 1.2rem;

		margin-bottom: 1.3rem;

		font-size: 1.2rem;
	}

	.about__en span {
		width: 4rem;
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.about__title {
		width: 100%;

		margin-bottom: 1.8rem;

		text-align: center;

		font-size: calc(clamp(2.7rem, 7.5vw, 3.8rem) - 1px);

		line-height: 1.35;

		letter-spacing: -0.025em;
	}

	.about__title strong {
		font-size: 1.3em;

		line-height: 1.2;
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.about__lead {
		width: 100%;

		margin-bottom: 3rem;

		font-size: 1.35rem;

		line-height: 1.75;

		text-align: left;
	}

	/* =====================================================
     FEATURE
  ===================================================== */

	.about-feature {
		width: calc(100% - 0.5rem);

		min-height: auto;

		margin-bottom: 1.5rem;

		padding: 2rem 1.5rem 2rem 6.8rem;

		border-radius: 0.9rem;
	}

	.about-feature__icon {
		left: -0.7rem;

		width: 6.2rem;
		height: 6.2rem;
	}

	.about-feature__icon svg {
		width: 3.2rem;
		height: 3.2rem;
	}

	.about-feature__title {
		margin-bottom: 0.4rem;

		font-size: 1.55rem;

		line-height: 1.4;
	}

	.about-feature__text {
		font-size: 1.15rem;

		line-height: 1.6;
	}
}

/* =========================================================
   ABOUT RESPONSIVE
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	.about__visual {
		min-height: 38rem;
	}

	.about__points {
		width: calc(100% - 1.2rem);

		gap: 0.35rem;
	}

	.about-point {
		max-width: 10rem;
	}

	.about-point__icon {
		width: 3.1rem;
		height: 3.1rem;
	}

	.about__content {
		padding-left: 1.4rem;
		padding-right: 1.4rem;
	}

	.about__title {
		font-size: calc(clamp(2.5rem, 7vw, 3.2rem) - 1px);
	}

	.about__lead {
		font-size: 1.25rem;
	}

	/* =====================================================
   ABOUT FEATURE / MOBILE
   アイコンをカード内に収める
===================================================== */

	.about-feature {
		width: 100%;

		min-height: 12rem;

		margin-bottom: 1.7rem;

		padding: 2.2rem 1.5rem 2.2rem 8.4rem;

		position: relative;

		display: flex;
		align-items: center;

		border-radius: 0.9rem;
	}

	/* 丸アイコン */
	.about-feature__icon {
		position: absolute;

		top: 50%;
		left: 1.2rem;

		width: 6.6rem;
		height: 6.6rem;

		transform: translateY(-50%);

		display: flex;
		align-items: center;
		justify-content: center;

		flex-shrink: 0;

		border-radius: 50%;
	}

	/* SVGアイコン */
	.about-feature__icon svg {
		display: block;

		margin: 0;
	}

	/* テキスト部分 */
	.about-feature__body {
		width: 100%;
		min-width: 0;
	}

	/* タイトル */
	.about-feature__title {
		margin: 0 0 0.6rem;

		font-size: clamp(1.5rem, 3.6vw, 1.65rem);

		font-weight: 900;

		line-height: 1.35;

		letter-spacing: -0.04em;

		white-space: nowrap;
	}

	/* 説明文 */
	.about-feature__text {
		margin: 0;

		font-size: 1.2rem;

		line-height: 1.65;
	}
}

@media (max-width: 767px) {
	.about__title strong {
		display: inline;
		margin: 0;
	}

	.about__title br {
		display: none;
	}

	.about-point__text {
		font-size: clamp(10px, 2.95vw, 13px);
		line-height: 1.4;
	}
}

/* 4枚目　スマホ　レスポンシブ化 */

/* =========================================================
   TARGET RESPONSIVE
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	.target {
		padding: 6.5rem 2.4rem 6rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.target__heading {
		width: min(94vw, 920px);

		margin-bottom: 3.6rem;
	}

	.target__en {
		margin-bottom: 1.4rem;

		gap: 2rem;

		font-size: 1.45rem;
	}

	.target__en span {
		width: 5rem;
	}

	.target__title {
		font-size: clamp(3.8rem, 5.8vw, 5.3rem);

		line-height: 1.22;

		white-space: normal;
	}

	.target__lead {
		margin-top: 1.2rem;

		font-size: 1.9rem;
	}

	/* =====================================================
     GRID
     3列 → 2列
  ===================================================== */

	.target__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));

		gap: 1.8rem;
	}

	.target-card {
		min-height: 23rem;
	}

	.target-card__visual {
		height: 23rem;
	}

	.target-card__copy {
		top: 1.8rem;
		left: 2.3rem;

		width: 64%;
	}

	.target-card__number {
		margin-bottom: 2rem;

		font-size: 3.5rem;
	}

	.target-card__title {
		margin-bottom: 1.6rem;

		font-size: 2.35rem;
	}

	.target-card__description {
		font-size: 1.4rem;
	}

	/* =====================================================
     CTA
  ===================================================== */

	.target__cta-wrap {
		width: min(94%, 920px);

		grid-template-columns:
			1fr
			2fr
			1fr;

		gap: 1.2rem;

		padding: 1rem 1.4rem;
	}

	.target__cta-message strong,
	.target__cta-note strong {
		font-size: 2rem;
	}

	.target__cta-message span,
	.target__cta-note span {
		font-size: 1.45rem;
	}

	.target__cta-icon {
		width: 3.6rem;
		height: 3.6rem;
	}
}

/* =========================================================
   TARGET RESPONSIVE
   MOBILE
   767px以下
========================================================= */

@media (max-width: 767px) {
	.target {
		padding: 5.5rem 1.6rem 5.5rem;
	}

	/* =====================================================
     BACKGROUND DECORATION
  ===================================================== */

	.target::before,
	.target::after {
		width: 20rem;
		height: 20rem;

		opacity: 0.5;
	}

	.target::before {
		top: -6rem;
		left: -8rem;
	}

	.target::after {
		right: -8rem;
		bottom: -7rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.target__heading {
		width: 100%;

		margin-bottom: 2.8rem;
	}

	.target__en {
		margin-bottom: 1.2rem;

		gap: 1.4rem;

		font-size: 1.2rem;

		letter-spacing: 0.18em;
	}

	.target__en span {
		width: 3.8rem;

		height: 1px;
	}

	.target__title {
		width: 100%;

		font-size: clamp(2.9rem, 8.4vw, 3.8rem);

		line-height: 1.28;

		letter-spacing: -0.03em;

		white-space: normal;
	}

	.target__title em {
		display: inline;
	}

	.target__lead {
		margin-top: 1rem;

		font-size: 1.4rem;

		line-height: 1.65;
	}

	/* =====================================================
     GRID
     2列 → 1列
  ===================================================== */

	.target__grid {
		grid-template-columns: 1fr;

		gap: 1.5rem;
	}

	.target-card {
		min-height: 21rem;

		border-radius: 0.9rem;
	}

	.target-card__visual {
		height: 21rem;
	}

	.target-card__visual::after {
		background: linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.99) 0%,
			rgba(255, 255, 255, 0.96) 24%,
			rgba(255, 255, 255, 0.8) 48%,
			rgba(255, 255, 255, 0.28) 70%,
			rgba(255, 255, 255, 0) 88%
		);
	}

	.target-card__copy {
		top: 1.5rem;
		left: 1.7rem;

		width: 66%;
	}

	.target-card__number {
		margin-bottom: 1.7rem;

		font-size: 3rem;
	}

	.target-card__number::after {
		width: 4rem;

		bottom: -0.8rem;
	}

	.target-card__title {
		margin-bottom: 1.2rem;

		font-size: 2rem;

		line-height: 1.35;
	}

	.target-card__description {
		font-size: 1.25rem;

		line-height: 1.6;
	}

	/* CTA area: copy, paired actions, then supporting note */

	.target__cta-wrap {
		width: 100%;

		min-height: auto;

		margin-top: 2.6rem;

		padding: 1.8rem 1.2rem;

		display: flex;
		flex-direction: column;

		gap: 1.3rem;

		border-radius: 1.4rem;
	}

	/* 左メッセージ */
	.target__cta-message {
		order: 1;

		width: 100%;

		text-align: center;
	}

	.target__cta-message strong {
		font-size: 1.65rem;
	}

	.target__cta-message span {
		font-size: 1.25rem;
	}

	.target__cta-icon {
		width: 3.1rem;
		height: 3.1rem;
	}

	/* 右メッセージ */
	.target__cta-note {
		order: 3;

		width: 100%;

		text-align: center;
	}

	.target__cta-note strong {
		font-size: 1.55rem;
	}

	.target__cta-note span {
		font-size: 1.15rem;
	}

	.target__cta-wrap .assessment-cta-pair {
		order: 2;
		width: 100%;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.7rem;
	}
}

/* =========================================================
   TARGET RESPONSIVE
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	.target {
		padding-left: 1.2rem;
		padding-right: 1.2rem;
	}

	.target__title {
		font-size: clamp(2.6rem, 7.8vw, 3.3rem);
	}

	.target__lead {
		font-size: 1.3rem;
	}

	.target-card__visual {
		height: 19rem;
	}

	.target-card__copy {
		top: 1.3rem;
		left: 1.5rem;

		width: 68%;
	}

	.target-card__number {
		font-size: 2.7rem;
	}

	.target-card__title {
		font-size: 1.8rem;
	}

	.target-card__description {
		font-size: 1.15rem;
	}

	.target__cta-wrap {
		padding: 1.5rem 1rem;
	}

	.target__cta-message strong {
		font-size: 1.95rem;
	}

	.target__cta-message span {
		font-size: 1.5rem;
	}

	.target__cta-note strong {
		font-size: 1.85rem;
	}

	.target__cta-note span {
		font-size: 1.5rem;
	}
}

/* 画像5枚目　スマホ　レスポンシブ化ここから */
/* =========================================================
   CATEGORIES RESPONSIVE
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	.categories {
		padding: 6.5rem 2.4rem 6rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.categories__heading {
		width: min(94vw, 920px);

		margin-bottom: 3.6rem;
	}

	.categories__en {
		margin-bottom: 1.4rem;

		gap: 2rem;

		font-size: 1.45rem;
	}

	.categories__en span {
		width: 5rem;
	}

	.categories__title {
		font-size: clamp(3.8rem, 5.8vw, 5.4rem);

		line-height: 1.22;

		white-space: normal;
	}

	.categories__lead {
		margin-top: 1.2rem;

		font-size: 1.9rem;
	}

	.categories-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.popular-items__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* =====================================================
     CONSULT
  ===================================================== */

	.categories__consult {
		width: min(94%, 920px);

		grid-template-columns:
			8rem
			1.25fr
			1fr;

		gap: 2rem;

		padding: 2rem 2.4rem;
	}

	.categories__consult-icon {
		width: 7rem;
		height: 7rem;
	}

	.categories__consult-icon svg {
		width: 4rem;
		height: 4rem;
	}

	.categories__consult-main {
		padding-right: 2rem;
	}

	.categories__consult-small {
		font-size: 1.8rem;
	}

	.categories__consult-large {
		font-size: 3rem;
	}

	.categories__consult-description {
		font-size: 1.55rem;
	}

	/* 右側の薄い箱アイコンはタブレットでは非表示 */
	.categories__consult-box-icon {
		display: none;
	}
}

/* =========================================================
   CATEGORIES RESPONSIVE
   MOBILE
   600px以下
========================================================= */

@media (max-width: 600px) {
	.categories {
		padding: 5.5rem 1.6rem 5.5rem;
	}

	/* =====================================================
     BACKGROUND DECORATION
  ===================================================== */

	.categories::before,
	.categories::after {
		width: 20rem;
		height: 20rem;

		opacity: 0.48;
	}

	.categories::before {
		top: -6rem;
		left: -8rem;
	}

	.categories::after {
		right: -8rem;
		bottom: -7rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.categories__heading {
		width: 100%;

		margin-bottom: 2.8rem;
	}

	.categories__en {
		margin-bottom: 1.2rem;

		gap: 1.4rem;

		font-size: 1.2rem;

		letter-spacing: 0.18em;
	}

	.categories__en span {
		width: 3.8rem;

		height: 1px;
	}

	.categories__title {
		width: 100%;

		font-size: clamp(2.9rem, 8.2vw, 3.8rem);

		line-height: 1.28;

		letter-spacing: -0.03em;

		white-space: normal;
	}

	.categories__title em {
		display: inline;
	}

	.categories__lead {
		margin-top: 1rem;

		font-size: 1.4rem;

		line-height: 1.65;
	}

	.categories-list {
		gap: 0.9rem;
	}

	.category-list-card {
		min-height: 8rem;
		padding: 1.1rem;
		gap: 0.9rem;
	}

	.category-list-card__number {
		width: 3.7rem;
		height: 3.7rem;
		flex-basis: 3.7rem;
		font-size: 1.15rem;
	}

	.category-list-card__title {
		font-size: 1.35rem;
		line-height: 1.4;
	}

	.popular-items {
		margin-top: 5rem;
		padding-top: 4.5rem;
	}

	.popular-items__title {
		font-size: 3rem;
	}

	.popular-items__lead {
		font-size: 1.4rem;
	}

	.popular-items__grid {
		gap: 1rem;
		margin-top: 2.8rem;
	}

	.popular-item-card__body {
		padding: 1.3rem 1.2rem 1.5rem;
	}

	.popular-item-card__category {
		padding: 0.4rem 0.7rem;
		font-size: 0.95rem;
	}

	.popular-item-card__title {
		margin-top: 0.7rem;
		font-size: 1.5rem;
	}

	.popular-items__title-mobile-break {
		display: block;
	}

	/* =====================================================
     CONSULT
     横4分割 → 縦積み
  ===================================================== */

	.categories__consult {
		width: 100%;

		min-height: auto;

		margin-top: 2.5rem;

		padding: 2.2rem 1.6rem;

		display: flex;
		flex-direction: column;

		gap: 1.3rem;

		text-align: center;

		border-width: 1.5px;

		border-radius: 1rem;
	}

	.categories__consult-icon {
		width: 6.6rem;
		height: 6.6rem;

		margin: 0 auto;
	}

	.categories__consult-icon svg {
		width: 3.6rem;
		height: 3.6rem;
	}

	.categories__consult-main {
		padding-right: 0;

		border-right: none;
	}

	.categories__consult-small {
		margin-bottom: 0.3rem;

		font-size: 1.6rem;
	}

	.categories__consult-large {
		font-size: clamp(2.4rem, 7vw, 3rem);

		line-height: 1.25;
	}

	.categories__consult-description {
		font-size: 1.25rem;

		line-height: 1.65;
	}

	.categories__consult-description br {
		display: none;
	}

	.categories__consult-box-icon {
		display: none;
	}
}

/* =========================================================
   CATEGORIES RESPONSIVE
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	.categories {
		padding-left: 1.2rem;
		padding-right: 1.2rem;
	}

	.categories__title {
		font-size: clamp(2.6rem, 7.6vw, 3.3rem);
	}

	.categories__lead {
		font-size: 1.3rem;
	}

	.categories__consult {
		padding: 1.8rem 1.2rem;
	}

	.categories__consult-icon {
		width: 6rem;
		height: 6rem;
	}

	.categories__consult-icon svg {
		width: 3.2rem;
		height: 3.2rem;
	}

	.categories__consult-small {
		font-size: 1.45rem;
	}

	.categories__consult-large {
		font-size: 2.35rem;
	}

	.categories__consult-description {
		font-size: 1.15rem;
	}
}
/* 画像5枚目　スマホ　レスポンシブ化ここまで */
/* =========================================================
   QUICK ASSESSMENT + WHY US
   RESPONSIVE COMPLETE
========================================================= */

/* =========================================================
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	/* =====================================================
     QUICK ASSESSMENT
  ===================================================== */

	.quick-assessment {
		padding: 4rem 3rem;
	}

	.quick-assessment__inner {
		width: 100%;

		min-height: auto;

		grid-template-columns: 1fr;

		gap: 3rem;
	}

	.quick-assessment__content {
		width: 100%;
	}

	.quick-assessment__eyebrow {
		font-size: 1.9rem;
	}

	.quick-assessment__title {
		font-size: clamp(3.4rem, 5vw, 4.8rem);

		line-height: 1.3;
	}

	.quick-assessment__benefits {
		flex-wrap: wrap;

		row-gap: 1.5rem;
	}

	.quick-assessment__benefit {
		font-size: 1.55rem;
	}

	.quick-assessment__action {
		width: 100%;

		justify-content: flex-start;
	}

}

@media (max-width: 1024px) {

	/* =====================================================
     WHY US
  ===================================================== */

	.why-us {
		padding: 6rem 2.5rem 7rem;
	}

	.why-us__inner {
		width: 100%;
	}

	.why-us__heading {
		margin-bottom: 3.5rem;
	}

	.why-us__title {
		font-size: clamp(3.8rem, 5.5vw, 5.4rem);

		white-space: normal;
	}

	.why-us__lead {
		font-size: 1.8rem;
	}

	.why-us__grid {
		grid-template-columns: 1fr;

		gap: 1.8rem;
	}

	.why-card--last {
		grid-column: auto;

		width: 100%;

		margin: 0;
	}

	.why-card {
		min-height: 17rem;
	}

	.why-card__content {
		min-height: 17rem;

		padding: 2.2rem 2.6rem;

		gap: 2.2rem;
	}

	.why-card__number {
		width: 7.5rem;
		height: 7.5rem;

		font-size: 3rem;
	}

	.why-card__title {
		font-size: 2.6rem;
	}

	.why-card__description {
		font-size: 1.7rem;
	}
}

/* =========================================================
   MOBILE
   600px以下
========================================================= */

@media (max-width: 600px) {
		/* =====================================================
     QUICK ASSESSMENT
  ===================================================== */

	.quick-assessment {
		position: relative;

		padding: 4.5rem 1.6rem 4rem;
	}

	/* スマホでは白フェードを強める */
	.quick-assessment::before {
		background: linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.98) 0%,
			rgba(255, 255, 255, 0.95) 55%,
			rgba(255, 255, 255, 0.76) 100%
		);
	}

	.quick-assessment__inner {
		width: 100%;

		min-height: auto;

		display: flex;
		flex-direction: column;

		gap: 2.4rem;
	}

	.quick-assessment__content {
		width: 100%;
	}

	/* -----------------------------------------
     EYEBROW
  ----------------------------------------- */

	.quick-assessment__eyebrow {
		margin-bottom: 1.2rem;

		font-size: 1.55rem;
		font-weight: 900;

		line-height: 1.55;

		text-align: left;
	}

	/* -----------------------------------------
     TITLE
  ----------------------------------------- */

	.quick-assessment__title {
		width: 100%;

		margin-bottom: 2.2rem;

		font-size: clamp(2.9rem, 8vw, 3.8rem);

		line-height: 1.35;

		letter-spacing: -0.03em;

		word-break: normal;

		overflow-wrap: normal;
	}

	.quick-assessment__title br {
		display: none;
	}

	.quick-assessment__title em {
		font-size: 1.2em;
	}

	/* -----------------------------------------
     BENEFITS
  ----------------------------------------- */

	.quick-assessment__benefits {
		width: 100%;

		display: grid;

		grid-template-columns: repeat(3, minmax(0, 1fr));

		gap: 0.5rem;
	}

	.quick-assessment__benefit {
		min-height: auto;

		padding: 0.8rem 0.35rem;

		display: flex;
		flex-direction: column;

		align-items: center;
		justify-content: center;

		gap: 0.5rem;

		border-left: none;

		text-align: center;

		font-size: 1.05rem;

		line-height: 1.4;
	}

	.quick-assessment__benefit:first-child {
		padding-left: 0.35rem;
	}

	.quick-assessment__benefit svg,
	.quick-assessment__benefit-icon {
		width: 2.7rem;
		height: 2.7rem;
	}

	.quick-assessment__benefit-icon {
		font-size: 1.3rem;
	}

	/* -----------------------------------------
     CTA
  ----------------------------------------- */

	.quick-assessment__action {
		width: 100%;

		display: block;
	}

}

@media (max-width: 600px) {

	/* =====================================================
     WHY US
  ===================================================== */

	.why-us {
		position: relative;

		padding: 5.8rem 1.6rem 6.5rem;

		overflow: hidden;
	}

	.why-us__inner {
		width: 100%;

		margin: 0 auto;
	}

	/* -----------------------------------------
     SECTION LABEL
  ----------------------------------------- */

	.why-us__en {
		margin-bottom: 1.4rem;

		gap: 1.4rem;

		font-size: 1.2rem;

		letter-spacing: 0.18em;
	}

	.why-us__en span {
		width: 3.8rem;

		height: 1px;
	}

	/* -----------------------------------------
     TITLE
  ----------------------------------------- */

	.why-us__heading {
		margin-bottom: 3rem;
	}

	.why-us__title {
		width: 100%;

		font-size: clamp(3rem, 8vw, 3.9rem);

		line-height: 1.28;

		letter-spacing: -0.035em;

		white-space: normal;

		text-align: center;
	}

	.why-us__title em {
		display: inline;

		font-size: 1.1em;
	}

	/* -----------------------------------------
     LEAD
  ----------------------------------------- */

	.why-us__lead {
		margin-top: 1.4rem;

		font-size: 1.45rem;

		font-weight: 600;

		line-height: 1.65;

		text-align: center;
	}

	/* -----------------------------------------
     GRID
  ----------------------------------------- */

	.why-us__grid {
		width: 100%;

		display: grid;

		grid-template-columns: 1fr;

		gap: 1.5rem;
	}

	/* PC用の5枚目指定を解除 */
	.why-card--last {
		grid-column: auto;

		width: 100%;

		margin: 0;
	}

	/* -----------------------------------------
     CARD
  ----------------------------------------- */

	.why-card {
		position: relative;

		width: 100%;

		min-height: 18rem;

		overflow: hidden;

		border-radius: 1rem;
	}

	/* -----------------------------------------
     IMAGE
  ----------------------------------------- */

	.why-card__image {
		position: absolute;

		inset: 0;

		width: 100%;
		height: 100%;
	}

	.why-card__image img {
		width: 100%;
		height: 100%;

		object-fit: cover;

		object-position: center center;
	}

	/* -----------------------------------------
     GRADIENT
  ----------------------------------------- */

	.why-card__overlay {
		position: absolute;

		inset: 0;

		z-index: 1;

		background: linear-gradient(
			90deg,
			rgba(255, 255, 255, 1) 0%,
			rgba(255, 255, 255, 0.99) 36%,
			rgba(255, 255, 255, 0.9) 58%,
			rgba(255, 255, 255, 0.48) 78%,
			rgba(255, 255, 255, 0.1) 100%
		);
	}

	/* -----------------------------------------
     CONTENT
  ----------------------------------------- */

	.why-card__content {
		position: relative;

		z-index: 2;

		width: 100%;

		min-height: 18rem;

		padding: 2rem 1.5rem;

		display: grid;

		grid-template-columns:
			6.6rem
			minmax(0, 1fr);

		align-items: center;

		gap: 1.5rem;
	}

	/* -----------------------------------------
     NUMBER
  ----------------------------------------- */

	.why-card__number {
		width: 6.6rem;
		height: 6.6rem;

		display: flex;

		align-items: center;
		justify-content: center;

		flex-shrink: 0;

		margin: 0;

		border-radius: 50%;

		font-size: 2.35rem;

		line-height: 1;
	}

	/* -----------------------------------------
     TEXT
  ----------------------------------------- */

	.why-card__text {
		min-width: 0;
	}

	.why-card__title {
		margin-bottom: 0.7rem;

		font-size: clamp(1.8rem, 4.5vw, 2.1rem);

		line-height: 1.4;

		letter-spacing: -0.025em;
	}

	.why-card__description {
		font-size: 1.25rem;

		line-height: 1.65;
	}

	.why-card__description br {
		display: none;
	}
}

/* At tablet phone widths, keep the WHY US cards as a compact text list. */
@media (max-width: 767px) {
	.why-us {
		padding-top: 4.8rem;
		padding-bottom: 4.8rem;
	}

	.why-us__heading {
		margin-bottom: 2rem;
	}

	.why-us__title .mobile-heading-break {
		display: block;
	}

	.why-us__title em {
		white-space: nowrap;
	}

	.why-us__grid {
		gap: 0;
	}

	.why-card,
	.why-card:hover {
		min-height: 0;
		border: 0;
		border-bottom: 1px solid #e4d2c1;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		transform: none;
	}

	.why-card:last-child {
		width: 100%;
	}

	.why-card__image,
	.why-card__overlay {
		display: none;
	}

	.why-card__content {
		min-height: 0;
		padding: 1.6rem 0;
		align-items: flex-start;
		gap: 1rem;
	}

	.why-card__number {
		width: 3.5rem;
		height: auto;
		background: none;
		box-shadow: none;
		color: var(--color-orange);
		font-size: 2.8rem;
		line-height: 1.2;
	}

	.why-card__title {
		font-size: 1.9rem;
		line-height: 1.5;
	}

	.why-card__description {
		font-size: 1.4rem;
		line-height: 1.8;
	}

	.why-card__description br {
		display: none;
	}
}

/* =========================================================
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	/* =====================================================
     QUICK ASSESSMENT
  ===================================================== */

	.quick-assessment {
		padding-left: 1.2rem;
		padding-right: 1.2rem;
	}

	.quick-assessment__eyebrow {
		font-size: 1.4rem;
	}

	.quick-assessment__title {
		font-size: clamp(2.6rem, 7.6vw, 3.3rem);
	}

	.quick-assessment__benefit {
		font-size: 0.95rem;
	}

}

@media (max-width: 390px) {

	/* =====================================================
     WHY US
  ===================================================== */

	.why-us {
		padding-left: 1.2rem;
		padding-right: 1.2rem;
		padding-top: 4.2rem;
		padding-bottom: 4.2rem;
	}

	.why-us__title {
		font-size: clamp(2.7rem, 7.5vw, 3.4rem);
	}

	.why-us__lead {
		font-size: 1.3rem;
	}

	.why-us__heading {
		margin-bottom: 1.6rem;
	}

	.why-card {
		min-height: 0;
	}

	.why-card__content {
		min-height: 0;

		grid-template-columns:
			3.5rem
			minmax(0, 1fr);

		gap: 1rem;

		padding: 1.4rem 0;
	}

	.why-card__number {
		width: 3.5rem;
		height: auto;

		font-size: 2rem;
	}

	.why-card__title {
		font-size: 1.7rem;
	}

	.why-card__description {
		font-size: 1.15rem;
	}
}
/* 画像6枚目　スマホ　レスポンシブ化ここまで */
/* 画像7枚目　スマホ　レスポンシブ化ここから */
/* =========================================================
   NEWS & PURCHASES
   RESPONSIVE
========================================================= */

/* =========================================================
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	.news-purchases {
		padding: 6.5rem 2.4rem 6rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.news-purchases__heading {
		margin-bottom: 3.6rem;
	}

	.news-purchases__en {
		margin-bottom: 1.4rem;

		gap: 2rem;

		font-size: 1.45rem;
	}

	.news-purchases__en span {
		width: 5rem;
	}

	.news-purchases__title {
		font-size: clamp(3.8rem, 5.8vw, 5.4rem);

		line-height: 1.24;

		white-space: normal;
	}

	.news-purchases__lead {
		margin-top: 1.2rem;

		font-size: 1.9rem;
	}

}

/* =========================================================
   MOBILE
   600px以下
========================================================= */

@media (max-width: 600px) {
	.news-purchases {
		padding: 5.5rem 1.6rem 5.5rem;
	}

	/* =====================================================
     BACKGROUND DECORATION
  ===================================================== */

	.news-purchases::before,
	.news-purchases::after {
		width: 20rem;
		height: 20rem;

		opacity: 0.45;
	}

	.news-purchases::before {
		top: -7rem;
		left: -8rem;
	}

	.news-purchases::after {
		right: -8rem;
		bottom: -7rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.news-purchases__heading {
		margin-bottom: 3rem;
	}

	.news-purchases__en {
		margin-bottom: 1.2rem;

		gap: 1.4rem;

		font-size: 1.2rem;

		letter-spacing: 0.16em;
	}

	.news-purchases__en span {
		width: 3.8rem;
		height: 1px;
	}

	.news-purchases__title {
		width: 100%;

		font-size: clamp(2.9rem, 8vw, 3.8rem);

		line-height: 1.3;

		letter-spacing: -0.03em;

		white-space: normal;
	}

	.news-purchases__title em {
		display: inline;
	}

	.news-purchases__lead {
		margin-top: 1.1rem;

		font-size: 1.4rem;

		line-height: 1.7;
	}

	.news-card__date {
		margin-right: 0;
	}
}

@media (max-width: 767px) {
	.news-purchases__list {
		width: 100%;
		max-height: 64rem;
	}

	.news-card {
		grid-template-columns: 8rem minmax(0, 1fr);
		align-items: start;
		gap: 1.4rem;
		padding: 2.2rem 0;
	}

	.news-card__image {
		height: 8rem;
	}

	.news-card__meta {
		gap: 0.6rem;
	}

	.news-card__date {
		width: 100%;
		font-size: 1.2rem;
	}

	.news-card__category,
	.news-card__status {
		font-size: 1rem;
		padding: 0.3rem 0.6rem;
	}

	.news-card__title {
		font-size: 1.6rem;
		line-height: 1.6;
	}

	.news-card__text {
		font-size: 1.2rem;
		line-height: 1.7;
	}
}

/* =========================================================
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	.news-purchases {
		padding-left: 1.2rem;
		padding-right: 1.2rem;
	}

	.news-purchases__title {
		font-size: clamp(2.6rem, 7.6vw, 3.3rem);
	}

	.news-purchases__lead {
		font-size: 1.3rem;
	}

}

/* 画像7枚目　スマホ　レスポンシブ化ここまで */
/* 画像8枚目　スマホ　レスポンシブ化ここから */
/* =========================================================
   PARTNERSHIP
   RESPONSIVE COMPLETE
========================================================= */

/* =========================================================
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	/* =====================================================
     SECTION
  ===================================================== */

	.partnership {
		padding: 6rem 2.4rem 6.5rem;
	}

	/* =====================================================
     BACKGROUND IMAGE
  ===================================================== */

	.partnership__visual {
		width: 62%;
		height: 42rem;
	}

	.partnership__visual::before {
		background: linear-gradient(
			90deg,
			#ffffff 0%,
			rgba(255, 255, 255, 0.96) 24%,
			rgba(255, 255, 255, 0.72) 48%,
			rgba(255, 255, 255, 0.18) 78%,
			rgba(255, 255, 255, 0) 100%
		);
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.partnership__heading {
		width: 72%;

		margin-bottom: 4rem;
	}

	.partnership__en {
		margin-bottom: 1.5rem;

		font-size: 1.45rem;
	}

	.partnership__en span {
		width: 8rem;
	}

	.partnership__title {
		font-size: clamp(3.8rem, 5.8vw, 5.4rem);

		line-height: 1.24;
	}

	.partnership__lead {
		font-size: 1.8rem;

		line-height: 1.7;
	}

	/* =====================================================
     STEPS
  ===================================================== */

	.partnership__steps {
		grid-template-columns: 1fr;

		gap: 1.8rem;
	}

	.partnership__arrow {
		display: none;
	}

	/* =====================================================
     CARD
  ===================================================== */

	.partnership-card {
		min-height: auto;

		padding: 3rem 3rem 3rem 11rem;

		text-align: left;

		display: grid;

		grid-template-columns:
			8rem
			minmax(0, 1fr);

		grid-template-areas:
			'icon title'
			'icon text';

		column-gap: 2.5rem;

		align-items: center;
	}

	.partnership-card__number {
		top: 1.8rem;
		left: 2rem;

		width: 6.8rem;
		height: 6.8rem;

		font-size: 2.7rem;
	}

	.partnership-card__icon {
		grid-area: icon;

		width: 7.5rem;
		height: 7.5rem;

		margin: 0;
	}

	.partnership-card__title {
		grid-area: title;

		margin-bottom: 0.8rem;

		font-size: 2.6rem;
	}

	.partnership-card__text {
		grid-area: text;

		font-size: 1.45rem;
	}

	/* =====================================================
     BOTTOM MESSAGE
  ===================================================== */

	.partnership__message {
		margin-top: 2.6rem;

		grid-template-columns: 1fr;

		gap: 1.5rem;

		padding: 2.5rem 3rem;
	}

	.partnership__message-title {
		padding-right: 0;
		padding-bottom: 1.5rem;

		border-right: none;

		border-bottom: 1px solid rgba(25, 40, 50, 0.22);

		font-size: 2.7rem;
	}

	.partnership__message-text {
		font-size: 1.5rem;
	}
}

/* =========================================================
   MOBILE
   600px以下
========================================================= */

@media (max-width: 600px) {
		/* =====================================================
     SECTION
  ===================================================== */

	.partnership {
		position: relative;

		padding: 5.5rem 0 5.5rem;

		overflow: hidden;
	}

	/* =====================================================
     BACKGROUND IMAGE
  ===================================================== */

	.partnership__visual {
		position: absolute;

		z-index: 0;

		top: 0;
		left: 0;

		width: 100%;

		/* 長すぎないように調整 */
		height: 43rem;

		background: url('../../images/partnership-bg.png') 63% center / cover no-repeat;
	}

	/* 背景写真を左＆下方向にフェード */
	.partnership__visual::before {
		content: '';

		position: absolute;
		inset: 0;

		background:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.99) 0%,
				rgba(255, 255, 255, 0.95) 28%,
				rgba(255, 255, 255, 0.7) 55%,
				rgba(255, 255, 255, 0.2) 82%,
				rgba(255, 255, 255, 0.04) 100%
			),
			linear-gradient(
				180deg,
				rgba(255, 255, 255, 0.02) 0%,
				rgba(255, 255, 255, 0.08) 48%,
				rgba(255, 255, 255, 0.78) 76%,
				#ffffff 100%
			);
	}

	/* =====================================================
     DECORATION
  ===================================================== */

	.partnership::before,
	.partnership::after {
		width: 20rem;
		height: 20rem;

		opacity: 0.35;
	}

	.partnership::before {
		top: -8rem;
		left: -10rem;
	}

	.partnership::after {
		right: -9rem;
		bottom: -8rem;
	}

	/* =====================================================
     INNER
  ===================================================== */

	.partnership__inner {
		position: relative;

		z-index: 2;

		width: 100%;

		padding: 0 1.6rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.partnership__heading {
		width: 100%;

		min-height: auto;

		margin: 0 0 5rem;

		display: flex;
		flex-direction: column;

		justify-content: flex-start;

		text-align: left;
	}

	/* =====================================================
     ENGLISH
  ===================================================== */

	.partnership__en {
		margin-bottom: 2rem;

		display: flex;
		align-items: center;

		gap: 1.4rem;

		color: var(--color-orange);

		font-size: 1.2rem;
		font-weight: 900;

		letter-spacing: 0.18em;
	}

	.partnership__en span {
		width: 4.5rem;
		height: 1px;

		background: var(--color-orange);
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.partnership__title {
		width: 100%;

		margin-bottom: 2rem;

		color: var(--color-navy);

		font-size: clamp(3rem, 8vw, 3.9rem);

		font-weight: 900;

		line-height: 1.3;

		letter-spacing: -0.04em;
	}

	.partnership__title br {
		display: none;
	}

	.partnership__title em {
		display: inline;

		color: var(--color-orange);

		font-size: 1.03em;

		font-style: normal;
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.partnership__lead {
		width: 100%;

		color: var(--color-navy);

		font-size: 1.4rem;
		font-weight: 600;

		line-height: 1.8;
	}

	.partnership__lead br {
		display: none;
	}

	.partnership__lead strong {
		color: var(--color-orange);

		font-weight: 900;
	}

	/* =====================================================
     STEPS
  ===================================================== */

	.partnership__steps {
		position: relative;

		z-index: 3;

		display: grid;

		grid-template-columns: 1fr;

		gap: 1.5rem;
	}

	.partnership__arrow {
		display: none;
	}

	/* =====================================================
     CARD
  ===================================================== */

	.partnership-card {
		position: relative;

		width: 100%;

		min-height: auto;

		padding: 2.6rem 2rem 2.6rem 9rem;

		display: block;

		text-align: left;

		background: rgba(255, 255, 255, 0.97);

		border-radius: 1rem;
	}

	/* =====================================================
     NUMBER
  ===================================================== */

	.partnership-card__number {
		position: absolute;

		top: 2.2rem;
		left: 1.6rem;

		width: 5.8rem;
		height: 5.8rem;

		display: flex;
		align-items: center;
		justify-content: center;

		margin: 0;

		color: #fff;

		background: linear-gradient(135deg, #ff7a00, #ff4300);

		border-radius: 50%;

		font-size: 2.15rem;
		font-weight: 900;
	}

	/* =====================================================
     ICON
  ===================================================== */

	.partnership-card__icon {
		width: 5.4rem;
		height: 5.4rem;

		margin: 0 0 1.2rem;
	}

	/* =====================================================
     CARD TITLE
  ===================================================== */

	.partnership-card__title {
		margin-bottom: 0.9rem;

		font-size: clamp(1.9rem, 5vw, 2.25rem);

		line-height: 1.4;
	}

	.partnership-card__title br {
		display: none;
	}

	/* =====================================================
     CARD TEXT
  ===================================================== */

	.partnership-card__text {
		font-size: 1.25rem;

		line-height: 1.75;
	}

	.partnership-card__text br {
		display: none;
	}

	/* =====================================================
     BOTTOM MESSAGE
  ===================================================== */

	.partnership__message {
		width: 100%;

		min-height: auto;

		margin-top: 2.4rem;

		padding: 2.2rem 1.6rem;

		display: block;

		background: rgba(255, 250, 245, 0.98);

		border-radius: 1rem;
	}

	/* =====================================================
     MESSAGE TITLE
     ★一行表示を維持
  ===================================================== */

	.partnership__message-title {
		position: relative;

		width: 100%;

		padding: 0.4rem 0 0.4rem 1.4rem;

		color: var(--color-navy);

		border-right: none;
		border-bottom: none;

		/* 前より少し大きく */
		font-size: clamp(1.85rem, 4.8vw, 2.4rem);

		font-weight: 900;

		line-height: 1.3;

		letter-spacing: -0.055em;

		white-space: nowrap;
	}

	.partnership__message-title::before {
		content: '';

		position: absolute;

		top: 0;
		bottom: 0;
		left: 0;

		width: 0.5rem;

		background: var(--color-orange);

		border-radius: 0.4rem;
	}

	.partnership__message-title em {
		color: var(--color-orange);

		font-style: normal;
	}

	/* =====================================================
     MESSAGE TEXT
  ===================================================== */

	.partnership__message-text {
		margin-top: 1.5rem;

		color: var(--color-navy);

		font-size: 1.25rem;
		font-weight: 600;

		line-height: 1.75;
	}

	.partnership__message-text br {
		display: none;
	}
}

/* =========================================================
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	/* =====================================================
     SECTION
  ===================================================== */

	.partnership {
		padding-top: 4.5rem;
	}

	/* =====================================================
     BACKGROUND
  ===================================================== */

	.partnership__visual {
		height: 41rem;

		background-position: 66% center;
	}

	/* =====================================================
     INNER
  ===================================================== */

	.partnership__inner {
		padding: 0 1.2rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.partnership__heading {
		min-height: auto;

		margin-bottom: 4.5rem;
	}

	.partnership__title {
		font-size: clamp(2.7rem, 7.6vw, 3.3rem);
	}

	.partnership__lead {
		font-size: 1.3rem;
	}

	/* =====================================================
     CARD
  ===================================================== */

	.partnership-card {
		padding: 2.2rem 1.4rem 2.2rem 7.8rem;
	}

	.partnership-card__number {
		left: 1.2rem;

		width: 5.2rem;
		height: 5.2rem;

		font-size: 1.9rem;
	}

	.partnership-card__icon {
		width: 4.8rem;
		height: 4.8rem;
	}

	.partnership-card__title {
		font-size: 1.75rem;
	}

	.partnership-card__text {
		font-size: 1.15rem;
	}

	/* =====================================================
     MESSAGE
  ===================================================== */

	.partnership__message {
		padding: 1.8rem 1.3rem;
	}

	.partnership__message-title {
		padding-left: 1.1rem;

		font-size: clamp(1.7rem, 4.55vw, 1.95rem);

		letter-spacing: -0.06em;

		white-space: nowrap;
	}

	.partnership__message-text {
		font-size: 1.15rem;
	}
}

@media (max-width: 767px) {
	.partnership__title br {
		display: block;
	}

	.partnership__title em {
		white-space: nowrap;
	}
}
/* 画像8枚目　スマホ　レスポンシブ化ここまで */
/* 画像9枚目　スマホ　レスポンシブ化ここから */
/* =========================================================
   FLOW
   TABLET RESPONSIVE
========================================================= */

@media (min-width: 1281px) and (max-width: 1600px) {
	.flow {
		padding-right: 2.4rem;
		padding-left: 2.4rem;
	}

	.flow__steps {
		grid-template-columns:
			minmax(0, 1fr)
			2rem
			minmax(0, 1fr)
			2rem
			minmax(0, 1fr)
			2rem
			minmax(0, 1fr)
			2rem
			minmax(0, 1fr);
		align-items: stretch;
		gap: 0.6rem;
	}

	.flow-card {
		display: flex;
		flex-direction: column;
		padding: 2rem 1.4rem 1.6rem;
	}

	.flow-card__title {
		font-size: 2.35rem;
	}

	.flow-card__text {
		min-height: 11rem;
		font-size: 1.55rem;
	}

	.flow-card__point {
		min-height: 9rem;
		margin-top: auto;
		padding: 1.2rem 0.9rem;
		gap: 0.8rem;
	}

	.flow-card__point svg,
	.flow-card__yen {
		width: 3.8rem;
		height: 3.8rem;
	}

	.flow-card__point p {
		font-size: 1.35rem;
	}
}

@media (max-width: 1280px) {
	.flow__steps {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: stretch;
		gap: 2rem;
	}

	.flow__arrow {
		display: none;
	}

	.flow-card {
		min-height: 46rem;
	}
}

@media (max-width: 900px) {
	.flow {
		padding-right: 2.4rem;
		padding-left: 2.4rem;
	}

	.flow__steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.6rem;
	}

	.flow-card {
		min-height: 44rem;
	}
}

@media (max-width: 1024px) {
	.flow__cta .assessment-cta-pair {
		width: 100%;
		margin: 0;
	}
}

@media (max-width: 767px) {
	.flow__title .mobile-heading-break {
		display: block;
	}

	.flow__title em {
		white-space: nowrap;
	}
}

/* =========================================================
   FLOW
   MOBILE RESPONSIVE COMPLETE
========================================================= */

/* =========================================================
   MOBILE
   767px以下
========================================================= */

@media (max-width: 767px) {
		/* =====================================================
     SECTION
  ===================================================== */

	.flow {
		position: relative;

		padding: 5.8rem 1.6rem 5.8rem;

		overflow: hidden;

		background: linear-gradient(180deg, #fffaf5 0%, #ffffff 38%, #ffffff 72%, #fff8f1 100%);
	}

	/* =====================================================
     BACKGROUND DECORATION
  ===================================================== */

	.flow::before,
	.flow::after {
		width: 20rem;
		height: 20rem;

		opacity: 0.4;
	}

	.flow::before {
		top: -8rem;
		left: -10rem;
	}

	.flow::after {
		right: -9rem;
		bottom: -8rem;
	}

	/* =====================================================
     INNER
  ===================================================== */

	.flow__inner {
		width: 100%;

		margin: 0 auto;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.flow__heading {
		margin-bottom: 3.5rem;

		text-align: center;
	}

	/* =====================================================
     ENGLISH TITLE
  ===================================================== */

	.flow__en {
		margin-bottom: 1.4rem;

		gap: 1.4rem;

		font-size: 1.2rem;

		letter-spacing: 0.18em;
	}

	.flow__en span {
		width: 3.8rem;
		height: 1px;
	}

	/* =====================================================
     MAIN TITLE
  ===================================================== */

	.flow__title {
		width: 100%;

		font-size: clamp(3rem, 8vw, 3.9rem);

		line-height: 1.28;

		letter-spacing: -0.035em;

		white-space: normal;
	}

	.flow__title em {
		display: inline;

		font-size: 1.02em;
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.flow__lead {
		margin-top: 1.4rem;

		font-size: 1.5rem;

		line-height: 1.7;
	}

	/* =====================================================
     STEPS
     5列 → 1列
  ===================================================== */

	.flow__steps {
		display: grid;

		grid-template-columns: 1fr;

		gap: 0;
	}

	/* =====================================================
     CARD
  ===================================================== */

	.flow-card {
		position: relative;

		width: 100%;

		min-height: auto;

		padding: 0 0 1.8rem;

		overflow: hidden;

		background: rgba(255, 255, 255, 0.98);

		border-radius: 1rem;

		box-shadow: 0 0.8rem 2rem rgba(70, 45, 25, 0.07);
	}

	/* PC hoverをスマホでは解除 */
	.flow-card:hover {
		transform: none;

		box-shadow: 0 0.8rem 2rem rgba(70, 45, 25, 0.07);
	}

	/* =====================================================
     CARD HEADER
  ===================================================== */

	.flow-card__step {
		position: absolute;

		z-index: 4;

		top: 0;
		left: 0;

		width: 8.2rem;
		height: 8.2rem;

		padding: 0.9rem 0 0 1.1rem;

		clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
	}

	.flow-card__step span {
		font-size: 1rem;
	}

	.flow-card__step strong {
		font-size: 2.8rem;
	}

	/* =====================================================
     CARD TITLE
  ===================================================== */

	.flow-card__title {
		min-height: 8.2rem;

		margin: 0;

		padding: 1.6rem 1.5rem 1.4rem 9.3rem;

		display: flex;
		align-items: center;

		color: var(--color-navy);

		font-size: clamp(2rem, 5.4vw, 2.4rem);

		line-height: 1.35;

		letter-spacing: -0.03em;
	}

	/* PC用の強制改行を解除 */
	.flow-card__title br {
		display: none;
	}

	.flow-card__title em {
		margin-left: 0.35em;

		font-style: normal;
	}

	/* =====================================================
     IMAGE
  ===================================================== */

	.flow-card__image {
		width: calc(100% - 2.4rem);

		height: 20rem;

		margin: 0 1.2rem 1.7rem;

		overflow: hidden;

		border-radius: 0.7rem;
	}

	.flow-card__image img {
		width: 100%;
		height: 100%;

		object-fit: cover;

		object-position: center center;
	}

	.flow-card:hover .flow-card__image img {
		transform: none;
	}

	/* =====================================================
     DESCRIPTION
     PC版2.1remからスマホ用に最適化
  ===================================================== */

	.flow-card__text {
		min-height: auto;

		margin: 0 1.6rem 1.6rem;

		color: var(--color-navy);

		font-size: 1.55rem;

		font-weight: 500;

		line-height: 1.65;
	}

	/* =====================================================
     POINT BOX
  ===================================================== */

	.flow-card__point {
		min-height: auto;

		margin: 0 1.2rem;

		padding: 1.4rem 1.5rem;

		display: flex;

		align-items: center;

		gap: 1.3rem;

		border-radius: 0.8rem;
	}

	.flow-card__point svg {
		width: 3.8rem;
		height: 3.8rem;

		flex-shrink: 0;
	}

	.flow-card__point p {
		font-size: 1.35rem;

		font-weight: 700;

		line-height: 1.55;
	}

	.flow-card__point p br {
		display: none;
	}

	/* =====================================================
     YEN ICON
  ===================================================== */

	.flow-card__yen {
		width: 3.8rem;
		height: 3.8rem;

		font-size: 1.7rem;
	}

	/* =====================================================
     ARROW
     横矢印 → 縦矢印
  ===================================================== */

	.flow__arrow {
		position: relative;

		width: 100%;
		height: 5rem;

		display: flex;
		align-items: center;
		justify-content: center;

		color: var(--color-orange);
	}

	.flow__arrow::before {
		content: none;
	}

	.flow__arrow svg {
		transform: rotate(90deg);
	}

	/* =====================================================
     BOTTOM CTA
  ===================================================== */

	.flow__cta {
		width: 100%;

		min-height: auto;

		margin-top: 3.2rem;

		display: flex;
		flex-direction: column;

		overflow: hidden;

		border-radius: 1rem;
	}

	.flow__cta .assessment-cta-pair {
		width: calc(100% - 2rem);
		margin: 0 1rem 1.2rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.8rem;
	}

	.flow__cta .assessment-cta-microcopy {
		margin-bottom: 0;
		font-size: 1.2rem;
	}

	.flow__cta .assessment-channel-button {
		min-height: 5.8rem;
		padding: 0.7rem 0.8rem;
		gap: 0.5rem;
		border-radius: 0.7rem;
		font-size: 1.15rem;
	}

	.flow__cta .assessment-channel-button__line-icon,
	.flow__cta .assessment-channel-button > svg:not(.assessment-channel-button__arrow-icon) {
		width: 2.5rem;
		height: 2.5rem;
	}

	.flow__cta .assessment-channel-button::after {
		font-size: 1.7rem;
	}

	/* =====================================================
     CTA TITLE
  ===================================================== */

	.flow__cta-title {
		position: relative;

		width: 100%;

		min-height: auto;

		padding: 2rem 1.8rem;

		display: block;

		color: #fff;

		font-size: clamp(2rem, 5.5vw, 2.5rem);

		line-height: 1.45;

		text-align: center;
	}

	/* PCの斜めカット解除 */
	.flow__cta-title::after {
		display: none;
	}

	.flow__cta-title br {
		display: none;
	}

	/* =====================================================
     CTA COPY
  ===================================================== */

	.flow__cta-copy {
		width: 100%;

		padding: 2rem 1.5rem;

		display: flex;
		flex-direction: column;

		align-items: center;

		gap: 0.6rem;

		text-align: center;
	}

	/* PC版で3remにした部分 */
	.flow__cta-copy strong {
		font-size: clamp(1.9rem, 5vw, 2.3rem);

		line-height: 1.45;
	}

	/* PC版1.95rem */
	.flow__cta-copy span {
		font-size: 1.45rem;

		line-height: 1.65;
	}

}

/* =========================================================
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	/* =====================================================
     SECTION
  ===================================================== */

	.flow {
		padding: 5rem 1.2rem 5.2rem;
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.flow__title {
		font-size: clamp(2.7rem, 7.6vw, 3.3rem);
	}

	.flow__lead {
		font-size: 1.35rem;
	}

	/* =====================================================
     STEP HEADER
  ===================================================== */

	.flow-card__step {
		width: 7.5rem;
		height: 7.5rem;
	}

	.flow-card__step strong {
		font-size: 2.5rem;
	}

	.flow-card__title {
		min-height: 7.5rem;

		padding: 1.4rem 1.2rem 1.2rem 8.4rem;

		font-size: 1.85rem;
	}

	/* =====================================================
     IMAGE
  ===================================================== */

	.flow-card__image {
		height: 18rem;
	}

	/* =====================================================
     TEXT
  ===================================================== */

	.flow-card__text {
		margin-left: 1.4rem;
		margin-right: 1.4rem;

		font-size: 1.4rem;
	}

	/* =====================================================
     POINT
  ===================================================== */

	.flow-card__point {
		padding: 1.2rem 1.3rem;
	}

	.flow-card__point svg {
		width: 3.4rem;
		height: 3.4rem;
	}

	.flow-card__point p {
		font-size: 1.2rem;
	}

	.flow-card__yen {
		width: 3.4rem;
		height: 3.4rem;

		font-size: 1.5rem;
	}

	/* =====================================================
     CTA
  ===================================================== */

	.flow__cta-title {
		font-size: 1.85rem;
	}

	.flow__cta-copy {
		padding: 1.7rem 1.2rem;
	}

	.flow__cta-copy strong {
		font-size: 1.8rem;
	}

	.flow__cta-copy span {
		font-size: 1.3rem;
	}

	.flow__cta .assessment-channel-button {
		font-size: 1.35rem;
	}

}

@media (max-width: 360px) {
	.flow__cta .assessment-cta-pair {
		grid-template-columns: 1fr;
	}
}

/* 画像9枚目　スマホ　レスポンシブ化ここまで */
/* 画像10枚目　スマホ　レスポンシブ化ここから */
/* =========================================================
   MESSAGE + REUSE & SUSTAINABILITY
   RESPONSIVE COMPLETE
========================================================= */

/* =========================================================
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	/* =====================================================
     MESSAGE
  ===================================================== */

	.message-section {
		min-height: auto;

		padding: 6rem 2.4rem 6.5rem;
	}

	.message-section__visual {
		width: 62%;
		height: 100%;
	}

	.message-section__visual::before {
		background: linear-gradient(
			90deg,
			#ffffff 0%,
			rgba(255, 255, 255, 0.97) 22%,
			rgba(255, 255, 255, 0.72) 46%,
			rgba(255, 255, 255, 0.18) 76%,
			rgba(255, 255, 255, 0) 100%
		);
	}

	.message-section__content {
		width: 68%;
	}

	.message-section__en {
		font-size: 1.45rem;
	}

	.message-section__en span {
		width: 8rem;
	}

	.message-section__title {
		font-size: clamp(3.8rem, 5.8vw, 5.4rem);

		line-height: 1.24;
	}

	.message-section__lead {
		font-size: 1.8rem;
	}

	.message-section__staff {
		width: min(62rem, 100%);

		grid-template-columns:
			5.5rem
			auto
			1fr;

		gap: 1.5rem;

		padding: 1.8rem 2rem;
	}

	.message-section__staff-name {
		font-size: 2.2rem;
	}

	.message-section__staff-text {
		font-size: 1.7rem;
	}

	/* =====================================================
     SUSTAINABILITY
  ===================================================== */

	.sustainability {
		padding: 5rem 2.4rem 5.5rem;
	}

	.sustainability__visual {
		width: 40%;
	}

	.sustainability__title {
		font-size: clamp(3.4rem, 5vw, 4.8rem);
	}

	.sustainability__lead {
		font-size: 1.7rem;
	}

	.sustainability-feature {
		grid-template-columns:
			7rem
			minmax(0, 1fr);

		gap: 1.5rem;

		padding: 1rem 2rem;
	}

	.sustainability-feature__icon {
		width: 6.8rem;
		height: 6.8rem;
	}

	.sustainability-feature__icon svg {
		width: 3.8rem;
		height: 3.8rem;
	}

	.sustainability-feature__title {
		font-size: 2.1rem;
	}

	.sustainability-feature__text {
		font-size: 1.6rem;
	}
}

@media (min-width: 601px) and (max-width: 1200px) {
	.sustainability-feature {
		grid-template-columns: minmax(0, 1fr);
		align-content: start;
		padding-inline: 1.5rem;
	}

	.sustainability-feature__title {
		font-size: 2rem;
	}
}

/* =========================================================
   MOBILE
   600px以下
========================================================= */

@media (max-width: 600px) {
	/* =====================================================
     MESSAGE
  ===================================================== */

	.message-section {
		position: relative;

		min-height: auto;

		padding: 5.5rem 0 5.5rem;

		overflow: hidden;

		background: linear-gradient(180deg, #fffaf5 0%, #ffffff 100%);
	}

	/* =====================================================
     MESSAGE BACKGROUND PHOTO
  ===================================================== */

	.message-section__visual {
		position: absolute;

		z-index: 0;

		top: 0;
		left: 0;
		right: auto;

		width: 100%;
		height: 46rem;

		background: url('../../images/message-staff.png') 66% center / cover no-repeat;
	}

	.message-section__visual::before {
		content: '';

		position: absolute;
		inset: 0;

		background:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.99) 0%,
				rgba(255, 255, 255, 0.95) 30%,
				rgba(255, 255, 255, 0.67) 58%,
				rgba(255, 255, 255, 0.18) 82%,
				rgba(255, 255, 255, 0.04) 100%
			),
			linear-gradient(
				180deg,
				rgba(255, 255, 255, 0.02) 0%,
				rgba(255, 255, 255, 0.08) 52%,
				rgba(255, 255, 255, 0.78) 78%,
				#ffffff 100%
			);
	}

	/* =====================================================
     MESSAGE DECORATION
  ===================================================== */

	.message-section::before {
		width: 20rem;
		height: 20rem;

		top: -8rem;
		left: -10rem;

		opacity: 0.35;
	}

	/* =====================================================
     MESSAGE INNER
  ===================================================== */

	.message-section__inner {
		width: 100%;

		padding: 0 1.6rem;
	}

	/* =====================================================
     MESSAGE CONTENT
  ===================================================== */

	.message-section__content {
		width: 100%;
	}

	.message-section__en {
		margin-bottom: 1.6rem;

		gap: 1.4rem;

		font-size: 1.2rem;

		letter-spacing: 0.18em;
	}

	.message-section__en span {
		width: 4.5rem;
		height: 1px;
	}

	/* =====================================================
     MESSAGE TITLE
  ===================================================== */

	.message-section__title {
		width: 100%;

		margin-bottom: 1.8rem;

		font-size: clamp(3rem, 8vw, 3.9rem);

		line-height: 1.28;

		letter-spacing: -0.04em;
	}

	.message-section__title em {
		display: inline;

		font-size: 1.02em;
	}

	/* =====================================================
     MESSAGE LEAD
  ===================================================== */

	.message-section__lead {
		width: 100%;

		font-size: 1.4rem;

		line-height: 1.8;
	}

	.message-section__lead br {
		display: none;
	}

	/* =====================================================
     STAFF BOX
  ===================================================== */

	.message-section__staff {
		width: 100%;

		min-height: auto;

		margin-top: 2.6rem;

		padding: 1.8rem 1.5rem;

		display: grid;

		grid-template-columns:
			5.2rem
			minmax(0, 1fr);

		grid-template-areas:
			'icon name'
			'text text';

		align-items: center;

		gap: 1rem 1.2rem;

		border-radius: 1rem;
	}

	.message-section__staff-icon {
		grid-area: icon;

		width: 4.8rem;
		height: 4.8rem;
	}

	.message-section__staff-name {
		grid-area: name;

		padding-right: 0;

		border-right: none;

		font-size: 2rem;

		line-height: 1.4;
	}

	.message-section__staff-text {
		grid-area: text;

		padding-top: 1rem;

		border-top: 1px solid rgba(25, 40, 50, 0.12);

		font-size: 1.45rem;

		line-height: 1.65;
	}

	.message-section__staff-text br {
		display: none;
	}

	/* =====================================================
     SUSTAINABILITY
  ===================================================== */

	.sustainability {
		position: relative;

		padding: 5.5rem 1.6rem 5.8rem;

		overflow: hidden;

		background: linear-gradient(180deg, #fffaf5 0%, #ffffff 44%, #fff9f2 100%);
	}

	/* =====================================================
     SUSTAINABILITY PHOTO
  ===================================================== */

	.sustainability__visual {
		position: absolute;

		z-index: 0;

		top: 0;
		left: 0;

		width: 100%;
		height: 34rem;

		background: url('../../images/sustainability-bg.png') 24% center / cover no-repeat;
	}

	.sustainability__visual::before {
		content: '';

		position: absolute;
		inset: 0;

		background:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.08) 0%,
				rgba(255, 255, 255, 0.34) 38%,
				rgba(255, 255, 255, 0.84) 72%,
				#ffffff 100%
			),
			linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.42) 54%, #ffffff 100%);
	}

	/* =====================================================
     INNER
  ===================================================== */

	.sustainability__inner {
		position: relative;

		z-index: 2;

		width: 100%;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.sustainability__heading {
		width: 100%;

		margin-bottom: 3.2rem;

		text-align: center;
	}

	.sustainability__en {
		margin-bottom: 1.3rem;

		gap: 1.2rem;

		font-size: 1.1rem;

		letter-spacing: 0.1em;
	}

	.sustainability__en span {
		width: 3.5rem;
		height: 1px;
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.sustainability__title {
		width: 100%;

		font-size: clamp(2.8rem, 7.6vw, 3.7rem);

		line-height: 1.3;

		letter-spacing: -0.035em;
	}

	.sustainability__title em {
		font-size: 1.04em;
	}

	.sustainability__title-mobile-break {
		display: block;
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.sustainability__lead {
		margin-top: 1.3rem;

		font-size: 1.4rem;

		line-height: 1.75;
	}

	.sustainability__lead br {
		display: none;
	}

	/* =====================================================
     FEATURES
  ===================================================== */

	.sustainability__features {
		width: 100%;

		margin-left: 0;

		display: grid;

		grid-template-columns: 1fr;

		gap: 1.4rem;
	}

	.sustainability-feature {
		min-height: auto;

		padding: 1.8rem 1.5rem;

		display: grid;

		grid-template-columns:
			6.2rem
			minmax(0, 1fr);

		align-items: center;

		gap: 1.5rem;

		background: rgba(255, 255, 255, 0.94);

		border: 1px solid rgba(235, 220, 205, 0.65);

		border-radius: 1rem;

		box-shadow: 0 0.6rem 1.8rem rgba(70, 45, 25, 0.05);
	}

	.sustainability-feature + .sustainability-feature {
		border-left: 1px solid rgba(235, 220, 205, 0.65);
	}

	/* =====================================================
     FEATURE ICON
  ===================================================== */

	.sustainability-feature__icon {
		width: 6.2rem;
		height: 6.2rem;

		margin: 0;

		border-radius: 50%;
	}

	.sustainability-feature__icon svg {
		width: 3.5rem;
		height: 3.5rem;
	}

	/* =====================================================
     FEATURE TITLE
  ===================================================== */

	.sustainability-feature__title {
		margin-bottom: 0.5rem;

		font-size: clamp(1.9rem, 5vw, 2.2rem);

		line-height: 1.4;
	}

	/* =====================================================
     FEATURE TEXT
     PC版1.85remを踏まえて小さくしすぎない
  ===================================================== */

	.sustainability-feature__text {
		font-size: 1.45rem;

		line-height: 1.65;
	}

	.sustainability-feature__text br {
		display: none;
	}
}

/* =========================================================
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	/* =====================================================
     MESSAGE
  ===================================================== */

	.message-section {
		padding-top: 4.8rem;
	}

	.message-section__visual {
		height: 43rem;

		background-position: 68% center;
	}

	.message-section__inner {
		padding: 0 1.2rem;
	}

	.message-section__title {
		font-size: clamp(2.7rem, 7.6vw, 3.3rem);
	}

	.message-section__lead {
		font-size: 1.3rem;
	}

	.message-section__staff {
		padding: 1.6rem 1.3rem;
	}

	.message-section__staff-icon {
		width: 4.4rem;
		height: 4.4rem;
	}

	.message-section__staff-name {
		font-size: 1.8rem;
	}

	.message-section__staff-text {
		font-size: 1.3rem;
	}

	/* =====================================================
     SUSTAINABILITY
  ===================================================== */

	.sustainability {
		padding: 5rem 1.2rem 5.2rem;
	}

	.sustainability__visual {
		height: 31rem;

		background-position: 22% center;
	}

	.sustainability__en {
		font-size: 1rem;
	}

	.sustainability__en span {
		width: 2.8rem;
	}

	.sustainability__title {
		font-size: clamp(2.55rem, 7.3vw, 3.2rem);
	}

	.sustainability__lead {
		font-size: 1.3rem;
	}

	.sustainability-feature {
		grid-template-columns:
			5.5rem
			minmax(0, 1fr);

		gap: 1.2rem;

		padding: 1.6rem 1.2rem;
	}

	.sustainability-feature__icon {
		width: 5.5rem;
		height: 5.5rem;
	}

	.sustainability-feature__icon svg {
		width: 3.1rem;
		height: 3.1rem;
	}

	.sustainability-feature__title {
		font-size: 1.75rem;
	}

	.sustainability-feature__text {
		font-size: 1.3rem;
	}
}

@media (max-width: 767px) {
	.message-section__title br {
		display: block;
	}

	.message-section__title em {
		white-space: nowrap;
	}
}
/* 画像10枚目　スマホ　レスポンシブ化ここまで */
/* 画像11枚目　スマホ　レスポンシブ化ここから */
/* =========================================================
   FAQ
   RESPONSIVE COMPLETE
   HTML構造完全対応版
========================================================= */

/* =========================================================
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	.faq {
		padding: 6rem 2.4rem 6.5rem;
	}

	/* =====================================================
     PHOTO
  ===================================================== */

	.faq__visual {
		top: 17rem;

		width: 34%;
		height: 54rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.faq__heading {
		margin-bottom: 3.5rem;
	}

	.faq__title {
		font-size: clamp(4rem, 5.5vw, 5.7rem);
	}

	.faq__lead {
		font-size: 1.8rem;
	}

	/* =====================================================
     LAYOUT
  ===================================================== */

	.faq__layout {
		grid-template-columns:
			minmax(0, 1fr)
			23rem;

		gap: 2rem;
	}

	/* =====================================================
     QUESTION
  ===================================================== */

	.faq-item__question {
		min-height: 9rem;

		grid-template-columns:
			5.8rem
			minmax(0, 1fr);

		gap: 1.5rem;

		padding: 1.5rem 6.5rem 1.5rem 1.8rem;
	}

	.faq-item__q {
		width: 5.5rem;
		height: 5.5rem;

		font-size: 2.6rem;
	}

	.faq-item__question-text {
		font-size: 2.2rem;
	}

	/* =====================================================
     ANSWER
  ===================================================== */

	.faq-item__answer {
		margin: 0 1.8rem 1.5rem 8.8rem;
	}

	.faq-item__answer p {
		font-size: 1.6rem;
	}

	.faq-item__a {
		font-size: 2.2rem;
	}

}

/* =========================================================
   MOBILE
   767px以下
========================================================= */

@media (max-width: 767px) {
		/* =====================================================
     SECTION
  ===================================================== */

	.faq {
		position: relative;

		padding: 5.5rem 0 5.8rem;

		overflow: hidden;

		background: linear-gradient(180deg, #fffaf4 0%, #ffffff 55%, #fff9f2 100%);
	}

	/* =====================================================
     BACKGROUND PHOTO
     女性写真は背景として上部に残す
  ===================================================== */

	.faq__visual {
		position: absolute;

		z-index: 0;

		top: 5.5rem;
		right: -8%;

		width: 54%;
		height: 32rem;

		background: url('../../images/faq-staff-v2.png') 72% center / cover no-repeat;

		opacity: 0.68;
	}

	.faq__visual::before {
		content: '';

		position: absolute;
		inset: 0;

		background: linear-gradient(
			90deg,
			#ffffff 0%,
			rgba(255, 255, 255, 0.92) 22%,
			rgba(255, 255, 255, 0.4) 56%,
			rgba(255, 255, 255, 0.08) 82%,
			rgba(255, 255, 255, 0) 100%
		);
	}

	/* =====================================================
     DECORATION
  ===================================================== */

	.faq::before,
	.faq::after {
		width: 20rem;
		height: 20rem;

		opacity: 0.35;
	}

	.faq::before {
		top: -8rem;
		left: -10rem;
	}

	.faq::after {
		right: -8rem;
		bottom: -8rem;
	}

	/* =====================================================
     INNER
  ===================================================== */

	.faq__inner {
		position: relative;

		z-index: 2;

		width: 100%;

		padding: 0 1.6rem;

		margin: 0 auto;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.faq__heading {
		width: 100%;

		margin-bottom: 4rem;

		text-align: center;
	}

	.faq__en {
		margin-bottom: 1.4rem;

		gap: 1.4rem;

		font-size: 1.2rem;

		letter-spacing: 0.18em;
	}

	.faq__en span {
		width: 4rem;
		height: 1px;
	}

	.faq__title {
		font-size: clamp(3rem, 8vw, 3.9rem);

		line-height: 1.25;

		letter-spacing: -0.035em;
	}

	.faq__lead {
		margin-top: 1.4rem;

		padding: 0 0.5rem;

		font-size: 1.4rem;

		line-height: 1.75;
	}

	.faq__lead br {
		display: none;
	}

	.faq__lead br.faq__lead-mobile-break {
		display: block;
	}

	/* =====================================================
     LAYOUT
     ★ここが今回の重要修正
  ===================================================== */

	.faq__layout {
		width: 100%;

		display: flex;

		flex-direction: column;

		gap: 2.4rem;
	}

	/* =====================================================
     FAQ LIST
  ===================================================== */

	.faq__list {
		width: 100%;

		display: grid;

		gap: 1.3rem;
	}

	/* =====================================================
     FAQ ITEM
  ===================================================== */

	.faq-item {
		width: 100%;

		overflow: hidden;

		border-radius: 1rem;
	}

	.faq-item:hover {
		transform: none;
	}

	/* =====================================================
     QUESTION
  ===================================================== */

	.faq-item__question {
		position: relative;

		width: 100%;

		min-height: 8rem;

		padding: 1.4rem 5.6rem 1.4rem 1.4rem;

		display: grid;

		grid-template-columns:
			5rem
			minmax(0, 1fr);

		align-items: center;

		gap: 1.3rem;
	}

	.faq-item__q {
		width: 5rem;
		height: 5rem;

		font-size: 2.3rem;
	}

	.faq-item__question-text {
		min-width: 0;

		font-size: clamp(1.75rem, 4.7vw, 2.05rem);

		line-height: 1.45;

		letter-spacing: -0.02em;
	}

	/* =====================================================
     TOGGLE
  ===================================================== */

	.faq-item__toggle {
		right: 1.2rem;

		width: 3.8rem;
		height: 3.8rem;
	}

	.faq-item__toggle::before,
	.faq-item__toggle::after {
		width: 1.3rem;
	}

	/* =====================================================
     ANSWER
  ===================================================== */

	.faq-item__answer {
		width: auto;

		margin: 0 1.3rem 1.4rem 7.7rem;

		padding: 1.2rem 1.4rem;

		display: flex;

		gap: 0.8rem;

		border-radius: 0.7rem;
	}

	.faq-item__a {
		font-size: 2rem;

		line-height: 1.55;
	}

	.faq-item__answer p {
		min-width: 0;

		font-size: 1.4rem;

		line-height: 1.7;
	}

}

/* =========================================================
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	.faq {
		padding: 5rem 0 5.2rem;
	}

	.faq__inner {
		padding: 0 1.2rem;
	}

	/* =====================================================
     PHOTO
  ===================================================== */

	.faq__visual {
		top: 5.5rem;
		right: -10%;

		width: 56%;
		height: 31rem;

		background-position: 72% center;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.faq__title {
		font-size: clamp(2.7rem, 7.6vw, 3.3rem);
	}

	.faq__lead {
		font-size: 1.3rem;
	}

	/* =====================================================
     QUESTION
  ===================================================== */

	.faq-item__question {
		min-height: 7.5rem;

		padding: 1.2rem 5rem 1.2rem 1.1rem;

		grid-template-columns:
			4.6rem
			minmax(0, 1fr);

		gap: 1rem;
	}

	.faq-item__q {
		width: 4.6rem;
		height: 4.6rem;

		font-size: 2rem;
	}

	.faq-item__question-text {
		font-size: 1.6rem;
	}

	.faq-item__toggle {
		right: 0.9rem;

		width: 3.5rem;
		height: 3.5rem;
	}

	/* =====================================================
     ANSWER
  ===================================================== */

	.faq-item__answer {
		margin: 0 1rem 1.2rem 6.7rem;

		padding: 1.1rem 1.2rem;
	}

	.faq-item__a {
		font-size: 1.8rem;
	}

	.faq-item__answer p {
		font-size: 1.25rem;
	}

}
/* 画像11枚目　スマホ　レスポンシブ化ここまで */
/* 画像12枚目　スマホ　レスポンシブ化ここから */
/* =========================================================
   COMPANY
   RESPONSIVE COMPLETE
========================================================= */

/* =========================================================
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	.company {
		padding: 6rem 2.4rem 6.5rem;
	}

	/* =====================================================
     INNER
  ===================================================== */

	.company__inner {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(0, 0.95fr);

		gap: 3.5rem;
	}

	/* =====================================================
     ENGLISH
  ===================================================== */

	.company__en {
		font-size: 1.45rem;

		gap: 1.5rem;
	}

	.company__en span {
		width: 5rem;
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.company__title {
		font-size: clamp(3.8rem, 5.5vw, 5.4rem);
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.company__lead {
		font-size: 1.9rem;
	}

	/* =====================================================
     TABLE
  ===================================================== */

	.company__row {
		grid-template-columns:
			15rem
			minmax(0, 1fr);
	}

	.company__row dt {
		font-size: 1.7rem;
	}

	.company__row dd {
		font-size: 1.6rem;
	}

	/* =====================================================
     CTA
  ===================================================== */

	.company__cta {
		min-height: 7.5rem;
	}

	.company__cta > span:first-child {
		font-size: 2.2rem;
	}
}

/* =========================================================
   MOBILE
   767px以下
========================================================= */

@media (max-width: 767px) {
	/* =====================================================
     SECTION
  ===================================================== */

	.company {
		position: relative;

		padding: 5.5rem 0 5.8rem;

		overflow: hidden;

		background: linear-gradient(180deg, #fffaf5 0%, #ffffff 48%, #fff8f1 100%);
	}

	/* =====================================================
     DECORATION
  ===================================================== */

	.company::before,
	.company::after {
		width: 20rem;
		height: 20rem;

		opacity: 0.35;
	}

	.company::before {
		top: -8rem;
		left: -10rem;
	}

	.company::after {
		right: -9rem;
		bottom: -8rem;
	}

	/* =====================================================
     INNER
  ===================================================== */

	.company__inner {
		width: 100%;

		padding: 0 1.6rem;

		display: flex;

		flex-direction: column;

		gap: 4rem;
	}

	/* =====================================================
     LEFT VISUAL
  ===================================================== */

	.company__visual {
		width: 100%;

		display: flex;

		flex-direction: column;

		gap: 1.6rem;
	}

	/* =====================================================
     CONTENT
  ===================================================== */

	.company__content {
		width: 100%;
	}

	/* =====================================================
     ENGLISH
  ===================================================== */

	.company__en {
		margin-bottom: 1.4rem;

		gap: 1.4rem;

		font-size: 1.2rem;

		letter-spacing: 0.18em;
	}

	.company__en span {
		width: 4rem;
		height: 1px;
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.company__title {
		margin-bottom: 1.7rem;

		font-size: clamp(3rem, 8vw, 3.9rem);

		line-height: 1.28;

		letter-spacing: -0.04em;
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.company__lead {
		margin-bottom: 2.6rem;

		font-size: 1.45rem;

		line-height: 1.75;
	}

	.company__lead br {
		display: none;
	}

	/* =====================================================
     TABLE
  ===================================================== */

	.company__table {
		margin-bottom: 2.6rem;
	}

	.company__row {
		min-height: auto;

		display: grid;

		grid-template-columns:
			10rem
			minmax(0, 1fr);
	}

	.company__row dt {
		min-height: 6.2rem;

		padding: 1.4rem 1.1rem;

		font-size: 1.4rem;

		line-height: 1.45;
	}

	.company__row dd {
		min-width: 0;

		padding: 1.4rem 1.3rem;

		font-size: 1.4rem;

		line-height: 1.55;
	}

	/* =====================================================
     CTA
  ===================================================== */

	.company__cta {
		width: 100%;

		min-height: 7rem;

		padding: 0 1.7rem;

		gap: 1.4rem;

		border-radius: 0.9rem;
	}

	.company__cta > span:first-child {
		font-size: clamp(1.9rem, 5vw, 2.2rem);
	}

	.company__cta-arrow {
		font-size: 2.4rem;
	}
}

/* =========================================================
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	/* =====================================================
     SECTION
  ===================================================== */

	.company {
		padding: 5rem 0 5.2rem;
	}

	.company__inner {
		padding: 0 1.2rem;
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.company__title {
		font-size: clamp(2.7rem, 7.6vw, 3.3rem);
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.company__lead {
		font-size: 1.3rem;
	}

	/* =====================================================
     TABLE
  ===================================================== */

	.company__row {
		grid-template-columns:
			8.5rem
			minmax(0, 1fr);
	}

	.company__row dt {
		padding: 1.2rem 0.8rem;

		font-size: 1.25rem;
	}

	.company__row dd {
		padding: 1.2rem 1rem;

		font-size: 1.25rem;
	}

	/* =====================================================
     CTA
  ===================================================== */

	.company__cta {
		min-height: 6.6rem;
	}

	.company__cta > span:first-child {
		font-size: 1.8rem;
	}
}
/* 画像12枚目　スマホ　レスポンシブ化ここまで */
/* 画像13枚目　スマホ　レスポンシブ化ここから */
/* =========================================================
   FINAL CTA + FOOTER
   RESPONSIVE COMPLETE
   最終版
========================================================= */

/* =========================================================
   TABLET
   1024px以下
========================================================= */

@media (max-width: 1024px) {
	/* =====================================================
     FINAL CTA
  ===================================================== */

	.final-cta {
		min-height: auto;

		padding: 6rem 2.4rem 5.5rem;
	}

	/* =====================================================
     BACKGROUND PHOTO
  ===================================================== */

	.final-cta__visual {
		width: 44%;
	}

	.final-cta__visual::before {
		background: linear-gradient(
			90deg,
			#ffffff 0%,
			rgba(255, 255, 255, 0.95) 20%,
			rgba(255, 255, 255, 0.62) 45%,
			rgba(255, 255, 255, 0.12) 76%,
			rgba(255, 255, 255, 0) 100%
		);
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.final-cta__heading {
		width: 86%;
	}

	.final-cta__en {
		font-size: 1.45rem;
	}

	.final-cta__en span {
		width: 6rem;
	}

	.final-cta__title {
		font-size: clamp(4rem, 5.7vw, 5.6rem);
	}

	.final-cta__lead {
		font-size: 1.8rem;
	}

	/* =====================================================
     BENEFITS
  ===================================================== */

	.final-cta__benefits {
		width: 82%;

		gap: 1.2rem;
	}

	.final-benefit {
		min-height: 12rem;

		padding: 1.5rem 0.8rem;
	}

	.final-benefit__icon {
		width: 5rem;
		height: 5rem;
	}

	.final-benefit__icon--yen strong {
		font-size: 4rem;
	}

	.final-benefit p {
		font-size: 1.7rem;
	}

	/* =====================================================
     ACTION
  ===================================================== */

	.final-cta__action {
		width: min(58rem, 76%);
	}

	.final-cta__note {
		font-size: 1.5rem;
	}

	/* =====================================================
     FOOTER
  ===================================================== */

	.site-footer {
		padding: 4rem 2.4rem 2.2rem;
	}

	.site-footer__main {
		grid-template-columns:
			minmax(0, 1.4fr)
			minmax(13rem, 0.7fr)
			minmax(13rem, 0.7fr)
			5rem;

		gap: 2.5rem;
	}

	.site-footer__service {
		font-size: 1.8rem;
	}

	.site-footer__message {
		font-size: 1.6rem;
	}

	.site-footer__nav {
		padding-left: 2.5rem;
	}

	.site-footer__nav a {
		font-size: 1.35rem;
	}
}

/* =========================================================
   MOBILE
   767px以下
========================================================= */

@media (max-width: 767px) {
		/* =====================================================
     FINAL CTA
  ===================================================== */

	.final-cta {
		position: relative;

		min-height: auto;

		padding: 5.5rem 0 5.5rem;

		overflow: hidden;

		background: linear-gradient(180deg, #fffaf5 0%, #ffffff 52%, #fff8f1 100%);
	}

	/* =====================================================
     BACKGROUND PHOTO
     男性を右へ逃がす
  ===================================================== */

	.final-cta__visual {
		position: absolute;

		z-index: 0;

		top: 9rem;
		right: -24%;

		width: 58%;
		height: 34rem;

		background: url('../../images/final-cta-staff-v2.png') 72% center / cover no-repeat;

		opacity: 0.55;
	}

	/* 左側と下側を白くフェード */
	.final-cta__visual::before {
		content: '';

		position: absolute;
		inset: 0;

		background:
			linear-gradient(
				90deg,
				#ffffff 0%,
				rgba(255, 255, 255, 0.99) 22%,
				rgba(255, 255, 255, 0.92) 45%,
				rgba(255, 255, 255, 0.55) 68%,
				rgba(255, 255, 255, 0.08) 100%
			),
			linear-gradient(
				180deg,
				rgba(255, 255, 255, 0.08) 0%,
				rgba(255, 255, 255, 0.15) 54%,
				rgba(255, 255, 255, 0.88) 82%,
				#ffffff 100%
			);
	}

	/* =====================================================
     DECORATION
  ===================================================== */

	.final-cta::before,
	.final-cta::after {
		width: 20rem;
		height: 20rem;

		opacity: 0.35;
	}

	.final-cta::before {
		top: -8rem;
		left: -10rem;
	}

	.final-cta::after {
		right: -8rem;
		bottom: -8rem;
	}

	/* =====================================================
     INNER
  ===================================================== */

	.final-cta__inner {
		position: relative;

		z-index: 2;

		width: 100%;

		padding: 0 1.6rem;
	}

	/* =====================================================
     HEADING
  ===================================================== */

	.final-cta__heading {
		width: 100%;

		margin: 0 auto 3rem;

		text-align: center;
	}

	.final-cta__en {
		margin-bottom: 1.6rem;

		gap: 1.3rem;

		font-size: 1.15rem;

		letter-spacing: 0.14em;
	}

	.final-cta__en span {
		width: 3.5rem;
		height: 1px;
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.final-cta__title {
		width: 92%;

		margin: 0 auto;

		font-size: clamp(2.9rem, 7.7vw, 3.7rem);

		line-height: 1.28;

		letter-spacing: -0.04em;
	}

	/* PCの強制改行解除 */
	.final-cta__title br {
		display: none;
	}

	.final-cta__title em {
		display: inline;

		font-size: 1.02em;
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.final-cta__lead {
		width: 88%;

		margin: 1.7rem auto 0;

		font-size: 1.4rem;

		line-height: 1.7;
	}

	.final-cta__lead-break {
		display: block;
	}

	/* =====================================================
     BENEFITS
     2×2
  ===================================================== */

	.final-cta__benefits {
		position: relative;

		z-index: 3;

		width: 100%;

		margin: 0 auto 2.4rem;

		display: grid;

		grid-template-columns: repeat(2, minmax(0, 1fr));

		gap: 1rem;
	}

	.final-benefit {
		min-height: 11rem;

		padding: 1.4rem 0.8rem;

		background: rgba(255, 255, 255, 0.94);

		backdrop-filter: blur(3px);

		-webkit-backdrop-filter: blur(3px);

		border-radius: 0.9rem;
	}

	.final-benefit__icon {
		width: 4.7rem;
		height: 4.7rem;

		margin-bottom: 0.6rem;
	}

	.final-benefit__icon--yen {
		height: 4.7rem;
	}

	.final-benefit__icon--yen span {
		font-size: 1.8rem;
	}

	.final-benefit__icon--yen strong {
		font-size: 3.6rem;
	}

	.final-benefit p {
		font-size: clamp(1.5rem, 4.1vw, 1.75rem);

		line-height: 1.4;
	}

	/* =====================================================
     ACTION
  ===================================================== */

	.final-cta__action {
		position: relative;

		z-index: 3;

		width: 100%;
	}

	/* =====================================================
     NOTE
  ===================================================== */

	.final-cta__note {
		margin-top: 1.5rem;

		padding: 0 0.5rem;

		font-size: 1.3rem;

		line-height: 1.7;
	}

	/* =========================================================
     FOOTER
  ========================================================= */

	.site-footer {
		padding: 4rem 0 2rem;

		background: linear-gradient(135deg, #18364b 0%, #102c40 42%, #0d2638 100%);
	}

	/* =====================================================
     FOOTER INNER
  ===================================================== */

	.site-footer__inner {
		width: 100%;

		padding: 0 1.6rem;
	}

	/* =====================================================
     FOOTER MAIN
  ===================================================== */

	.site-footer__main {
		display: grid;

		grid-template-columns: repeat(2, minmax(0, 1fr));

		align-items: start;

		gap: 3rem 1.5rem;

		padding-bottom: 3rem;
	}

	/* =====================================================
     BRAND
  ===================================================== */

	.site-footer__brand {
		grid-column: 1 / -1;

		padding-bottom: 2.5rem;

		border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	}

	.site-footer__brand-head {
		display: flex;

		align-items: center;

		gap: 1.5rem;
	}

	/* =====================================================
     LOGO
  ===================================================== */

	/* =====================================================
     SERVICE
  ===================================================== */

	.site-footer__service {
		font-size: 2rem;

		line-height: 1.45;
	}

	/* =====================================================
     COMPANY NAME
  ===================================================== */

	/* =====================================================
     FOOTER MESSAGE
  ===================================================== */

	.site-footer__message {
		margin-top: 1.6rem;

		font-size: 1.5rem;

		line-height: 1.6;
	}

	/* =====================================================
     FOOTER NAV
  ===================================================== */

	.site-footer__nav {
		position: relative;

		min-height: auto;

		padding: 0 0 0 1.4rem;

		display: flex;

		flex-direction: column;

		gap: 1.1rem;
	}

	.site-footer__nav::before {
		content: '';

		position: absolute;

		top: 0;
		bottom: 0;
		left: 0;

		width: 1px;

		background: rgba(255, 255, 255, 0.3);
	}

	.site-footer__nav a {
		font-size: 1.35rem;

		line-height: 1.5;
	}

	/* =====================================================
     PAGE TOP
  ===================================================== */

	.site-footer__pagetop {
		grid-column: 1 / -1;

		justify-self: end;

		width: 5rem;
		height: 5rem;

		margin-top: -0.5rem;
	}

	.site-footer__pagetop span {
		font-size: 1.8rem;
	}

	/* =====================================================
     COPYRIGHT
  ===================================================== */

	.site-footer__bottom {
		padding-top: 1.8rem;

		border-top: 1px solid rgba(255, 255, 255, 0.28);
	}

	.site-footer__bottom p {
		font-size: 1.1rem;

		line-height: 1.6;
	}
}

/* =========================================================
   VERY SMALL MOBILE
   390px以下
========================================================= */

@media (max-width: 390px) {
	/* =====================================================
     FINAL CTA
  ===================================================== */

	.final-cta {
		padding: 5rem 0 5rem;
	}

	/* =====================================================
     PHOTO
  ===================================================== */

	.final-cta__visual {
		right: -15%;

		width: 78%;
		height: 42rem;

		background-position: 84% center;

		opacity: 0.72;
	}

	/* =====================================================
     INNER
  ===================================================== */

	.final-cta__inner {
		padding: 0 1.2rem;
	}

	/* =====================================================
     TITLE
  ===================================================== */

	.final-cta__title {
		width: 94%;

		font-size: clamp(2.7rem, 7.4vw, 3.25rem);
	}

	/* =====================================================
     LEAD
  ===================================================== */

	.final-cta__lead {
		width: 92%;

		font-size: 1.3rem;
	}

	/* =====================================================
     BENEFITS
  ===================================================== */

	.final-cta__benefits {
		gap: 0.8rem;
	}

	.final-benefit {
		min-height: 10.5rem;

		padding: 1.2rem 0.5rem;
	}

	.final-benefit__icon {
		width: 4.2rem;
		height: 4.2rem;
	}

	.final-benefit__icon--yen {
		height: 4.2rem;
	}

	.final-benefit__icon--yen span {
		font-size: 1.6rem;
	}

	.final-benefit__icon--yen strong {
		font-size: 3.3rem;
	}

	.final-benefit p {
		font-size: 1.4rem;
	}

	.final-cta__note {
		font-size: 1.15rem;
	}

	/* =====================================================
     FOOTER
  ===================================================== */

	.site-footer__inner {
		padding: 0 1.2rem;
	}

	.site-footer__main {
		gap: 2.5rem 1rem;
	}

	.site-footer__service {
		font-size: 1.8rem;
	}

	.site-footer__message {
		font-size: 1.3rem;
	}

	.site-footer__nav {
		padding-left: 1.1rem;
	}

	.site-footer__nav a {
		font-size: 1.2rem;
	}

	.site-footer__pagetop {
		width: 4.6rem;
		height: 4.6rem;
	}

	.site-footer__bottom p {
		font-size: 1rem;
	}
}
/* 画像13枚目　スマホ　レスポンシブ化ここまで */

/* =========================================================
   CLIENT FEEDBACK / DETAILED CATEGORIES
========================================================= */

.fv__personal-welcome {
	display: block;
	width: fit-content;
	margin: -0.55rem 0 1.5rem;
	padding: 0.55rem 1.25rem;
	color: #fff;
	background: var(--color-orange);
	border-radius: 999px;
	font-size: 1.45rem;
	font-weight: 900;
	line-height: 1.35;
	letter-spacing: 0.03em;
	box-shadow: 0 0.5rem 1.2rem rgba(230, 92, 0, 0.16);
}

.stats__note {
	margin: 1.5rem auto 0;
	color: #667079;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.6;
	text-align: right;
}

.target__personal-welcome {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.5rem;
	padding: 0.65rem 1.7rem;
	color: #fff;
	background: var(--color-orange);
	border-radius: 999px;
	font-size: 1.65rem;
	font-weight: 900;
	line-height: 1.4;
	box-shadow: 0 0.6rem 1.4rem rgba(230, 92, 0, 0.16);
}

@media (max-width: 1024px) {
	.stats__note {
		text-align: center;
	}
}

@media (max-width: 600px) {
	.fv__personal-welcome {
		margin: -0.25rem 0 1.2rem;
		padding: 0.45rem 1rem;
		font-size: 1.2rem;
	}

	.stats__note {
		margin-top: 1.2rem;
		font-size: 1.1rem;
	}

	.target__personal-welcome {
		margin-top: 1.2rem;
		padding: 0.55rem 1.3rem;
		font-size: 1.35rem;
	}

}

/* Shared English section headings — based on TARGET. */
p.section-eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2.8rem;
	margin: 2.4rem 0 2.8rem;
	color: var(--color-orange);
	font-size: 1.7rem;
	font-weight: 900;
	line-height: 1.7;
	letter-spacing: 0.22em;
	text-align: center;
}
p.section-eyebrow > span {
	display: block;
	flex: 0 1 8rem;
	width: 8rem;
	min-width: 1.6rem;
	height: 2px;
	background: currentColor;
}
p.about__en.section-eyebrow,
p.partnership__en.section-eyebrow,
p.message-section__en.section-eyebrow,
p.company__en.section-eyebrow {
	justify-content: flex-start;
	text-align: left;
}

@media (max-width: 1024px) {
	p.section-eyebrow {
		gap: 2rem;
		font-size: 1.5rem;
	}
	p.section-eyebrow > span {
		flex-basis: 6rem;
		width: 6rem;
	}
}
@media (max-width: 767px) {
	p.section-eyebrow {
		gap: 1.4rem;
		margin: 1.6rem 0 2rem;
		font-size: 1.2rem;
		letter-spacing: 0.18em;
	}
	p.section-eyebrow > span {
		flex-basis: 3.8rem;
		width: 3.8rem;
		height: 1px;
	}
}

/* Align the note with the stats content, with breathing room below. */
.stats__note {
	width: min(var(--max-width), calc(100% - 70px));
	padding-bottom: 1.2rem;
}
@media (max-width: 600px) {
	.stats__note {
		width: calc(100% - 24px);
	}
}

/* BEGIN SOFT SECTION BACKGROUNDS — remove this block to restore backgrounds. */
.section-background-blend {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(to bottom, #fff 0%, rgba(255, 255, 255, 0.7) 30%, transparent 100%) top / 100% 72px no-repeat,
		linear-gradient(to top, #fff 0%, rgba(255, 255, 255, 0.7) 30%, transparent 100%) bottom / 100% 72px no-repeat;
}
@media (max-width: 1024px) {
	.section-background-blend {
		background-size: 100% 56px;
	}
}
@media (max-width: 600px) {
	.section-background-blend {
		background-size: 100% 40px;
	}
}
/* END SOFT SECTION BACKGROUNDS */

/* Supplied FV lettering images. */
.fv__personal-welcome.fv__personal-welcome--image {
	width: min(36rem, 100%);
	margin: -1.8rem 0 -0.8rem;
	padding: 0;
	background: none;
	border-radius: 0;
	box-shadow: none;
	line-height: 1;
}
.fv__heading.fv__heading--image {
	width: clamp(52rem, 43vw, 70rem);
	margin: 0 0 1.4rem;
	line-height: 1;
}
.fv__personal-welcome--image img,
.fv__heading--image img {
	display: block;
	width: 100%;
	height: auto;
}
@media (max-width: 1024px) {
	.fv__heading.fv__heading--image {
		width: min(64rem, 100%);
		margin: 0 auto 2rem;
	}
}
@media (max-width: 600px) {
	.fv__personal-welcome.fv__personal-welcome--image {
		width: min(34rem, 100%);
		margin: -1.1rem auto -0.5rem;
	}
	.fv__heading.fv__heading--image {
		width: 100%;
		margin-bottom: 2rem;
	}
}

/* Stats disclaimer sits outside the colored panel on the white page. */
.stats + .stats__note {
	margin-top: 0;
	padding-top: 1.2rem;
	padding-bottom: 1.2rem;
	background: #fff;
}

/* Compact FV for narrow phones, including 350px. */
@media (max-width: 390px) {
	.fv__content {
		padding: 18px 14px 8px;
	}
	.fv__badge {
		margin-bottom: 5px;
		padding: 6px 12px;
		font-size: 11px;
	}
	.fv__personal-welcome.fv__personal-welcome--image {
		width: 76%;
		max-width: 25rem;
		margin: -8px auto -5px;
	}
	.fv__catch {
		margin-bottom: 12px;
		padding: 9px 6px;
	}
	.fv__heading.fv__heading--image {
		margin-bottom: 10px;
	}
	.fv__tags {
		margin-bottom: 9px;
		gap: 6px;
	}
	.fv__tag {
		min-height: 36px;
		padding: 6px 3px;
	}
	.fv__cta {
		min-height: 58px;
		padding-inline: 12px;
		gap: 8px;
	}
	.fv__cta-icon {
		width: 24px;
		height: 24px;
	}
	.fv__cta-arrow {
		width: 22px;
		height: 22px;
	}
	.fv__visual {
		min-height: 0;
		height: 70vw;
		margin-top: 0;
	}
}

/* Mobile audience row and intentional heading breaks. */
.fv__audience-row {
	display: contents;
}
.mobile-heading-break {
	display: none;
}
@media (max-width: 767px) {
	.fv__audience-row {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		max-width: 46rem;
		gap: 7px;
		margin-bottom: 8px;
	}
	.fv__audience-row .fv__badge {
		flex: 0 0 auto;
		margin: 0;
		padding: 6px;
		font-size: clamp(9px, 2.65vw, 12px);
		border-width: 1px;
	}
	.fv__audience-row .fv__personal-welcome.fv__personal-welcome--image {
		flex: 1 1 0;
		min-width: 0;
		width: auto;
		max-width: 19rem;
		margin: 0;
	}
}

/* Mobile refinements to audience message, disclaimer and ABOUT. */
.stats + .stats__note {
	text-align: right;
	padding-top: 4px;
}
@media (max-width: 767px) {
	.fv__audience-row .fv__personal-welcome--image img {
		width: 88%;
		margin-inline: auto;
		transform: rotate(12deg);
	}
}

/* Slightly enlarge the first-view supporting copy for readability. */
.fv__personal-welcome.fv__personal-welcome--image {
	width: min(38rem, 100%);
}

.fv__catch {
	font-size: 1.9rem;
}

@media (max-width: 1300px) {
	.fv__catch {
		font-size: 1.65rem;
	}
}

@media (max-width: 600px) {
	.fv__personal-welcome.fv__personal-welcome--image {
		width: min(35.5rem, 100%);
	}

	.fv__catch {
		font-size: clamp(14.5px, 4.1vw, 18.5px);
	}
}

@media (max-width: 767px) {
	.fv__audience-row .fv__personal-welcome.fv__personal-welcome--image {
		max-width: 20rem;
	}

	.fv__audience-row .fv__personal-welcome--image img {
		width: 92%;
	}
}

@media (max-width: 390px) {
	.fv__personal-welcome.fv__personal-welcome--image {
		width: 79%;
		max-width: 26rem;
	}

	.fv__catch {
		font-size: 12.5px;
	}
}

/* =========================================================
   AWARDS
   ABOUTの実績紹介
========================================================= */
.awards {
	position: relative;
	padding: 6rem 3.5rem;
	background: linear-gradient(140deg, #fff6ec, #fff 35%, #fff 75%, #fff4e9);
}
.awards__inner {
	position: relative;
	z-index: 2;
	max-width: 1450px;
	margin: auto;
}
.awards__title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2.5rem;
	margin-bottom: 4rem;
	font-size: clamp(2.8rem, 3.3vw, 5rem);
	line-height: 1.4;
	color: var(--color-navy);
	text-align: center;
	font-weight: 900;
}
.awards__title::before,
.awards__title::after {
	display: none;
}
.awards__title-part {
	display: inline-block;
}
.awards em {
	color: var(--color-orange);
	font-style: normal;
}
.awards__layout {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 4rem;
	align-items: center;
}
.awards__photo {
	padding: 3.5rem;
	border: 1px solid #f2dcc6;
	background: white;
	border-radius: 10px;
	box-shadow: 0 8px 22px #49321d0a;
}
.awards__photo img {
	width: 100%;
	height: auto;
	border-radius: 4px;
}
.awards__copy h3 {
	font-size: clamp(3rem, 2vw, 4rem);
	line-height: 1.5;
	font-weight: 900;
}
.awards__lead {
	margin: 1.6rem 0 2.2rem;
	font-size: clamp(1.8rem, 1.55vw, 2.3rem);
	line-height: 1.65;
	font-weight: 700;
}
.awards__lead strong {
	color: var(--color-orange);
	font-size: 1.08em;
}
.awards__metrics {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	margin: 2.5rem 0 1.6rem;
	gap: 2rem;
}
.awards__metrics > div {
	position: relative;
	padding-left: 5rem;
}
.awards__metrics > div + div {
	border-left: 1px solid #f2c9a9;
	padding-left: 6.5rem;
}
.awards__metric-icon {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 3.6rem;
	height: 3.6rem;
}
.awards__metrics > div + div .awards__metric-icon {
	left: 2rem;
}
.awards__metrics dt {
	font-size: 2.5rem;
	font-weight: 700;
}
.awards__metrics dd {
	color: var(--color-orange);
	font-size: clamp(2.8rem, 2.8vw, 4.2rem);
	font-weight: 900;
	line-height: 1.4;
	white-space: nowrap;
}
.awards__metrics dd span {
	font-size: 0.5em;
}
.awards__note {
	font-size: 1.5rem;
	color: #62686d;
	line-height: 1.7;
	margin-top: 0.6rem;
}

@media (max-width: 1024px) {
	.awards {
		padding: 4.5rem 2.4rem;
	}
	.awards__layout {
		gap: 2rem;
	}
	.awards__photo {
		padding: 2rem;
	}
	.awards__metrics {
		gap: 1rem;
	}
	.awards__metrics dt {
		font-size: 1.15rem;
	}
}

@media (min-width: 601px) and (max-width: 1024px) {
	.awards__metrics > div {
		padding-left: 0;
		padding-top: 3.6rem;
	}
	.awards__metrics > div + div {
		padding-left: 1rem;
	}
	.awards__metric-icon {
		top: 0;
		transform: none;
		width: 2.8rem;
		height: 2.8rem;
	}
	.awards__metrics > div + div .awards__metric-icon {
		left: 1rem;
	}
}

@media (max-width: 767px) {
	.awards {
		padding: 4rem 1.4rem;
	}
	.awards__title {
		font-size: clamp(2.1rem, 6vw, 2.5rem);
		gap: 1.2rem;
		margin-bottom: 2.5rem;
	}
	.awards__layout {
		grid-template-columns: 1fr;
	}
	.awards__photo {
		max-width: 34rem;
		margin: auto;
		padding: 2.5rem;
	}
	.awards__copy h3 {
		font-size: 2rem;
	}
	.awards__lead {
		font-size: 1.6rem;
	}
	.awards__metrics {
		gap: 1rem;
	}
	.awards__metrics > div {
		padding-left: 2.7rem;
	}
	.awards__metrics > div + div {
		padding-left: 3.7rem;
	}
	.awards__metric-icon {
		width: 2.1rem;
		height: 2.8rem;
	}
	.awards__metrics > div + div .awards__metric-icon {
		left: 1rem;
	}
	.awards__metrics dt {
		font-size: 0.95rem;
	}
	.awards__metrics dd {
		font-size: clamp(2.2rem, 6.4vw, 3rem);
	}
	.awards__note {
		font-size: 1.1rem;
	}
}

/* Secondary company navigation, visually quieter than assessment CTAs. */
.company__cta {
	width: min(30rem, 100%);
	margin-left: auto;
	min-height: 5.2rem;
	padding: 1rem 2rem;
	color: var(--color-navy);
	background: #fff;
	border: 1px solid #cbd0d4;
	border-radius: 5px;
	box-shadow: none;
	gap: 1.5rem;
}
.company__cta > span:first-child {
	font-size: 1.6rem;
	font-weight: 700;
}
.company__cta-arrow {
	font-size: 2rem;
}
.company__cta:hover {
	background: #fff7ef;
	border-color: var(--color-orange);
	box-shadow: none;
	transform: none;
}
.company__cta:focus-visible {
	outline: 2px solid var(--color-orange);
	outline-offset: 3px;
}

/* COMPANY: replace the unavailable office photo with a factual profile card. */
.company-profile-card {
	min-height: 58rem;
	padding: 4.5rem 5.2rem 3.8rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid #e7e3df;
	border-radius: 1.8rem;
	box-shadow: 0 1.2rem 3.8rem rgba(31, 45, 58, 0.08);
}
.company-profile-card__icon {
	width: 14rem;
	height: 11rem;
	margin: 0 auto 2.3rem;
	color: var(--color-orange);
}
.company-profile-card__icon svg {
	width: 100%;
	height: 100%;
}
.company-profile-card__title {
	margin: 0 auto 2.2rem;
	padding-bottom: 1.2rem;
	color: var(--color-navy);
	font-size: 3rem;
	font-weight: 900;
	line-height: 1.3;
	text-align: center;
}
.company-profile-card__title::after {
	content: '';
	display: block;
	width: 7rem;
	height: 2px;
	margin: 1.6rem auto 0;
	background: var(--color-orange);
}
.company-profile-card__table {
	margin: 0;
	border-top: 1px solid rgba(25, 40, 50, 0.14);
}
.company-profile-card__row {
	min-height: 7.8rem;
	display: grid;
	grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1.55fr);
	align-items: center;
	border-bottom: 1px solid rgba(25, 40, 50, 0.14);
}
.company-profile-card__row dt,
.company-profile-card__row dd {
	margin: 0;
	padding: 1.6rem 1.8rem;
	color: var(--color-navy);
	font-size: 1.8rem;
	line-height: 1.65;
}
.company-profile-card__row dt {
	font-weight: 700;
}
.company-profile-card__row dd {
	min-height: 5rem;
	display: flex;
	align-items: center;
	border-left: 1px solid rgba(25, 40, 50, 0.16);
}
.company__cta {
	width: min(36rem, 100%);
	min-height: 6.4rem;
	margin-left: 0;
	padding: 1.2rem 2.4rem;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	border-radius: 0;
}
.company__cta > span:first-child {
	font-size: 1.9rem;
}
.company__cta-arrow {
	display: inline-flex;
	align-self: center;
	align-items: center;
	justify-content: center;
	font-size: 2.4rem;
	line-height: 1;
	transition: transform 0.22s ease;
}

@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
	.company__cta {
		transition: transform 0.22s ease, border-color 0.22s ease, background-color 0.22s ease, box-shadow 0.22s ease;
	}
	.company__cta:hover {
		transform: translateY(-2px);
		box-shadow: 0 0.9rem 2rem rgba(25, 40, 50, 0.12);
	}
	.company__cta:hover .company__cta-arrow {
		transform: translateX(0.45rem);
	}
}

@media (max-width: 1100px) {
	.company-profile-card {
		min-height: 48rem;
		padding: 3.5rem 3rem;
	}
	.company-profile-card__row {
		grid-template-columns: minmax(11rem, 0.75fr) minmax(0, 1.35fr);
	}
	.company-profile-card__row dt,
	.company-profile-card__row dd {
		padding: 1.4rem 1.2rem;
		font-size: 1.55rem;
	}
}
@media (max-width: 767px) {
	.company__inner {
		gap: 0;
	}
	.company__content {
		display: contents;
	}
	p.company__en.section-eyebrow {
		order: -2;
		width: 100%;
		margin: 0 0 0.6rem;
	}
	.company__title {
		order: -1;
		width: 100%;
		margin: 0 0 0.8rem;
	}
	.company__lead {
		order: 0;
		width: 100%;
		margin-bottom: 1.8rem;
	}
	.company__visual {
		order: 1;
	}
	.company__cta {
		order: 2;
		width: min(28rem, 100%);
		min-height: 5.2rem;
		margin: 1.6rem auto 0;
		padding: 0.9rem 1.6rem;
		display: inline-flex;
		align-items: center;
		gap: 1rem;
		justify-content: center;
	}
	.company__cta > span:first-child {
		font-size: 1.5rem;
	}
	.company__cta-arrow {
		font-size: 1.8rem;
	}
	.company-profile-card {
		min-height: 0;
		padding: 3rem 2rem 2.2rem;
		border-radius: 1.2rem;
	}
	.company-profile-card__icon {
		width: 10rem;
		height: 8rem;
		margin-bottom: 1.4rem;
	}
	.company-profile-card__title {
		margin-bottom: 1.4rem;
		font-size: 2.3rem;
	}
	.company-profile-card__title::after {
		margin-top: 1rem;
	}
	.company-profile-card__row {
		min-height: 0;
		grid-template-columns: 1fr;
		padding: 1.2rem 0;
	}
	.company-profile-card__row dt,
	.company-profile-card__row dd {
		min-height: 0;
		padding: 0.4rem 0.7rem;
		font-size: 1.45rem;
	}
	.company-profile-card__row dd {
		border-left: 0;
		font-weight: 600;
	}
}

@media (max-width: 767px) {
	.company__cta {
		margin-left: auto;
	}
}

/* =========================================================
   SHARED ASSESSMENT CTA PAIR
   LINE / FORM
========================================================= */
.assessment-cta-pair {
	width: min(104rem, 100%);
	margin-right: auto;
	margin-left: auto;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.4rem;
}

.assessment-cta-microcopy {
	grid-column: 1 / -1;
	margin: 0 0 -0.3rem;
	color: var(--color-navy);
	font-size: clamp(1.25rem, 1.15vw, 1.65rem);
	font-weight: 800;
	line-height: 1.5;
	letter-spacing: 0.04em;
	text-align: center;
}

.assessment-channel-button {
	min-width: 0;
	min-height: 8.5rem;
	padding: 1.2rem 2rem;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1.2rem;
	color: #fff;
	border-radius: 0.8rem;
	box-shadow: 0 1.2rem 2.8rem rgba(32, 37, 34, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.28);
	font-size: clamp(1.45rem, 1.35vw, 2.1rem);
	font-weight: 900;
	line-height: 1.4;
	text-align: center;
	white-space: nowrap;
	transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;
}

.assessment-channel-button--line {
	background: linear-gradient(135deg, #39ef86 0%, #06c755 43%, #008b35 100%);
}

.assessment-channel-button--form {
	background: linear-gradient(135deg, #ffaa00 0%, #ff5a00 43%, #f21b00 100%);
}

a.assessment-channel-button:hover {
	transform: translateY(-3px);
	filter: saturate(1.05) brightness(1.03);
	box-shadow: 0 1.5rem 3.2rem rgba(32, 37, 34, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.assessment-channel-button:focus-visible {
	outline: 3px solid #fff;
	outline-offset: -6px;
}

.assessment-channel-button__line-icon {
	width: 4rem;
	height: 4rem;
	padding: 0;
	flex: 0 0 4rem;
	object-fit: contain;
	background: transparent;
	border-radius: 0;
}

.assessment-channel-button > svg:not(.assessment-channel-button__arrow-icon),
.assessment-channel-button__form-icon {
	width: 3.8rem;
	height: 3.8rem;
	flex-shrink: 0;
}

.assessment-channel-button__arrow,
.assessment-channel-button__arrow-icon {
	display: none;
}

.assessment-channel-button::after {
	content: '→';
	width: auto;
	height: auto;
	justify-self: end;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1;
	transition: transform 0.22s ease;
}

a.assessment-channel-button:hover::after {
	transform: translateX(0.4rem);
}

.assessment-cta-pair--fv {
	width: min(64rem, 100%);
	margin-left: 0;
}

.quick-assessment__action .assessment-cta-pair {
	width: 100%;
	max-width: 70rem;
	margin-right: 0;
}

.target__cta-wrap .assessment-cta-pair {
	width: 100%;
}

.final-cta__action .assessment-cta-pair {
	width: 100%;
}

@media (min-width: 1025px) {
	.faq-item__q {
		justify-self: center;
		text-align: center;
	}

	.faq-item__answer {
		align-items: baseline;
	}

	.problems__cta-area .assessment-channel-button {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 1.1rem;
		padding-right: 6rem;
		padding-left: 6rem;
	}

	.problems__cta-area .assessment-channel-button::after {
		position: absolute;
		right: 2rem;
	}
}

@media (max-width: 1024px) {
	.assessment-channel-button {
		min-height: 7.5rem;
		padding: 1rem 1.4rem;
		gap: 0.9rem;
		font-size: clamp(1.25rem, 1.8vw, 1.7rem);
	}

}

@media (max-width: 600px) {
	.assessment-cta-pair {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.assessment-channel-button::after {
		display: none;
	}

	.assessment-channel-button {
		min-height: 6.4rem;
		font-size: 1.5rem;
	}

	.assessment-channel-button__line-icon {
		width: 4rem;
		height: 4rem;
	}

	.assessment-channel-button > svg:not(.assessment-channel-button__arrow-icon),
	.assessment-channel-button__form-icon {
		width: 3.2rem;
		height: 3.2rem;
	}

	.assessment-cta-pair--fv {
		margin-right: auto;
		margin-left: auto;
	}

}

/* Final mobile refinements for awards and TARGET. */
@media (max-width: 600px) {
	.assessment-cta-pair .assessment-channel-button {
		min-height: 6.4rem;
		padding: 0.8rem 1rem;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.4rem;
		font-size: 1.65rem;
		text-align: center;
	}

	.assessment-cta-pair .assessment-channel-button > span:not(.assessment-channel-button__arrow) {
		flex: 0 0 auto;
	}

	.assessment-cta-pair .assessment-channel-button__line-icon,
	.assessment-cta-pair .assessment-channel-button > svg:not(.assessment-channel-button__arrow-icon) {
		width: 2.5rem;
		height: 2.5rem;
	}

	.awards__title::before,
	.awards__title::after {
		display: none;
	}

	.target__cta-wrap .assessment-cta-pair {
		order: 2;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.7rem;
	}

	.target__cta-wrap .assessment-cta-microcopy {
		font-size: 1.1rem;
		line-height: 1.4;
	}

	.target__cta-wrap .assessment-channel-button {
		min-height: 5.8rem;
		padding: 0.5rem 0.55rem;
		grid-template-columns: clamp(2.1rem, 5.9vw, 2.3rem) minmax(0, 1fr) auto;
		gap: 0.4rem;
		border-radius: 0.7rem;
		font-size: clamp(1.05rem, 2.7vw, 1.1rem);
		line-height: 1.25;
		white-space: nowrap;
	}

	.target__cta-wrap .assessment-channel-button__line-icon,
	.target__cta-wrap .assessment-channel-button > svg:not(.assessment-channel-button__arrow-icon) {
		width: clamp(2.1rem, 5.9vw, 2.3rem);
		height: clamp(2.1rem, 5.9vw, 2.3rem);
	}

	.target__cta-wrap .assessment-channel-button::after {
		font-size: clamp(1.3rem, 3.85vw, 1.5rem);
	}

	.flow__cta .assessment-channel-button,
	.target__cta-wrap .assessment-channel-button {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.35rem;
		font-size: 1.3rem;
	}
}


@media (max-width: 360px) {
	.target__cta-wrap .assessment-channel-button {
		padding: 0.4rem 0.45rem;
		gap: 0.3rem;
		font-size: 1.2rem;
	}

	.target__cta-wrap .assessment-channel-button__line-icon,
	.target__cta-wrap .assessment-channel-button > svg:not(.assessment-channel-button__arrow-icon) {
		width: 2rem;
		height: 2rem;
	}

	.target__cta-wrap .assessment-channel-button::after {
		display: none;
	}
}

/* Final responsive audit: keep the tablet transition balanced and readable. */
@media (min-width: 601px) and (max-width: 1024px) {
	.problems__title-br {
		display: block;
	}

	.flow__cta {
		grid-template-columns: 1fr;
	}

	.flow__cta-title {
		justify-content: center;
		padding: 2rem 2.4rem;
		font-size: 2.5rem;
		text-align: center;
	}

	.flow__cta-title::after {
		display: none;
	}

	.flow__cta-copy {
		align-items: center;
		padding: 2rem 2.4rem 1.4rem;
		text-align: center;
	}

	.flow__cta-copy strong {
		font-size: 2.5rem;
	}

	.flow__cta-copy span {
		font-size: 1.7rem;
	}

	.flow__cta .assessment-cta-pair {
		width: calc(100% - 4rem);
		margin: 0 2rem 2rem;
	}

	.flow__cta .assessment-channel-button {
		font-size: 1.6rem;
	}
}

@media (min-width: 768px) and (max-width: 900px) {
	.flow__steps > .flow-card:last-of-type {
		grid-column: 1 / -1;
		width: calc((100% - 1.6rem) / 2);
		justify-self: center;
	}

	.company__title {
		font-size: 3.4rem;
		white-space: nowrap;
	}

	.final-cta__title {
		font-size: 3.8rem;
	}
}

/* Soften the large light areas between feature sections on mobile. */
@media (max-width: 767px) {
	.categories,
	.news-purchases,
	.flow {
		background: linear-gradient(
			180deg,
			#fff7ef 0%,
			#fffaf6 28%,
			#fff9f4 72%,
			#fff3e9 100%
		);
	}
}

/* Increase the FV catch copy one more step at the final review. */
.fv__catch {
	font-size: 2.05rem;
}

@media (max-width: 1300px) {
	.fv__catch {
		font-size: 1.78rem;
	}
}

@media (max-width: 600px) {
	.fv__catch {
		font-size: clamp(15.5px, 4.3vw, 20px);
	}
}

@media (max-width: 390px) {
	.fv__catch {
		font-size: 13px;
	}
}

/* Slightly enlarge the personal-welcome logo while keeping the FV contained. */
.fv__personal-welcome.fv__personal-welcome--image {
	width: min(40rem, 100%);
}

@media (max-width: 600px) {
	.fv__personal-welcome.fv__personal-welcome--image {
		width: min(37rem, 100%);
	}
}

@media (max-width: 767px) {
	.fv__audience-row .fv__personal-welcome.fv__personal-welcome--image {
		max-width: 21rem;
	}

	.fv__audience-row .fv__personal-welcome--image img {
		width: 94%;
	}
}

@media (max-width: 390px) {
	.fv__personal-welcome.fv__personal-welcome--image {
		width: 82%;
		max-width: 27rem;
	}
}

/* Final mobile fit: keep the header and key headings within the viewport. */
@media (max-width: 767px) {
	.header__service-name {
		max-width: 180px;
		font-size: clamp(12px, 3.2vw, 13.5px);
		letter-spacing: -0.02em;
	}
}

@media (max-width: 600px) {
	.fv__catch {
		padding-inline: 8px;
		font-size: clamp(12px, 3.2vw, 14px);
		letter-spacing: 0;
	}

	.problems__title {
		font-size: clamp(2.65rem, 7.6vw, 3.6rem);
	}

	.about__title {
		font-size: clamp(2.4rem, 6.4vw, 3.4rem);
	}

	.about__title strong {
		font-size: 1.2em;
	}

	.news-purchases__title {
		font-size: clamp(2.2rem, 6.2vw, 3.4rem);
		letter-spacing: -0.045em;
		white-space: nowrap;
	}
}

@media (max-width: 390px) {
	.header__service-name {
		max-width: 160px;
		font-size: 12px;
	}

	.fv__catch {
		padding-inline: 6px;
		font-size: 12px;
	}

	.problems__title {
		font-size: clamp(2.5rem, 7.2vw, 3.2rem);
	}

	.about__title {
		font-size: clamp(2.3rem, 6.2vw, 3.1rem);
	}

	.about__title strong {
		font-size: 1.18em;
	}

	.news-purchases__title {
		font-size: 2.2rem;
	}
}

/* Mobile heading refinements requested for the final responsive pass. */
.problems__title-mobile-break {
	display: none;
}

.popular-items__title em {
	color: var(--color-orange);
	font-style: normal;
}

@media (max-width: 600px) {
	.problems__title-mobile-break {
		display: block;
	}
}

/* Final first-view spacing adjustment for narrow screens. */
@media (max-width: 600px) {
	.fv__content {
		padding-top: 18px;
		padding-bottom: 8px;
	}

	.fv__visual {
		min-height: 0;
		height: 72vw;
		margin-top: 0;
	}
}

/* Increase the TARGET CTA supporting copy on mobile only. */
@media (max-width: 767px) {
	.target__cta-message strong,
	.target__cta-note strong {
		font-size: clamp(2.1rem, 5.8vw, 2.5rem);
	}

	.target__cta-message span,
	.target__cta-note span {
		font-size: clamp(1.62rem, 4.5vw, 1.95rem);
	}

	.about__lead-first-break {
		display: none;
	}

	.about-feature__title {
		font-size: clamp(1.62rem, 4.35vw, 1.78rem);
		letter-spacing: -0.065em;
		white-space: nowrap;
	}

	.problems__cta-note {
		font-size: clamp(1.3rem, 3.5vw, 1.45rem);
	}

	.awards__copy h3 {
		font-size: clamp(2.15rem, 5.65vw, 2.35rem);
		letter-spacing: -0.04em;
	}

	.news-purchases__title {
		font-size: clamp(2.1rem, 6.4vw, 2.8rem);
		letter-spacing: -0.06em;
		white-space: nowrap;
	}
}

@media (max-width: 390px) {
	.about-feature {
		padding-left: 7.5rem;
		padding-right: 0.7rem;
	}

	.about-feature__icon {
		left: 0.8rem;
		width: 6rem;
		height: 6rem;
	}
}

@media (max-width: 350px) {
	.about-feature {
		padding-left: 6.8rem;
		padding-right: 0.5rem;
	}

	.about-feature__icon {
		width: 5.4rem;
		height: 5.4rem;
	}

	.about-feature__title {
		font-size: clamp(1.35rem, 4.35vw, 1.52rem);
		letter-spacing: -0.085em;
	}
}

/* Mobile finishing adjustments: keep image cards flush and remove the
   desktop-only readability overlay from the PROBLEMS thumbnails. */
@media (max-width: 767px) {
	.problem-card__visual::after {
		content: none;
		display: none;
		background: none;
	}

	.problem-card__visual img {
		object-position: 82% center;
	}

	.target-card {
		min-height: 0;
	}
}

/* =========================================================
   MOBILE FIRST VIEW / COMPACT HORIZONTAL CTA
   Approved layout mockup, 2026-09-21
========================================================= */
@media (max-width: 600px) {
	/* Start the hero immediately below the mobile header. */
	.fv__content {
		padding: 8px 14px 10px;
	}

	/* Keep the audience badge and personal welcome mark compact. */
	.fv__audience-row {
		width: 100%;
		max-width: none;
		justify-content: space-between;
		gap: 4px;
		margin-bottom: 6px;
	}

	.fv__audience-row .fv__badge {
		padding: 6px 7px;
		font-size: clamp(9px, 2.55vw, 12px);
	}

	.fv__audience-row .fv__personal-welcome.fv__personal-welcome--image {
		flex: 0 1 42%;
		max-width: 17rem;
	}

	.fv__audience-row .fv__personal-welcome--image img {
		width: 88%;
		margin-left: auto;
		transform: rotate(8deg);
	}

	/* Preserve a small amount of breathing room around the black band. */
	.fv__catch {
		margin: 0 auto 16px;
		padding: 10px 8px;
	}

	.fv__heading.fv__heading--image {
		width: 96%;
		margin-bottom: 12px;
	}

	.fv__tags {
		gap: 6px;
		margin-bottom: 10px;
	}

	/* Display LINE and form CTAs in two equal columns. */
	.assessment-cta-pair--fv {
		width: 100%;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.assessment-cta-pair--fv .assessment-cta-microcopy {
		grid-column: 1 / -1;
		margin-bottom: 0;
		font-size: clamp(1.25rem, 3.6vw, 1.55rem);
	}

	.assessment-cta-pair--fv .assessment-channel-button {
		min-height: 5.8rem;
		padding: 0.6rem 0.45rem;
		gap: 0.35rem;
		border-radius: 0.8rem;
		font-size: clamp(1.15rem, 3.25vw, 1.45rem);
		line-height: 1.25;
		box-shadow: 0 0.8rem 1.8rem rgba(32, 37, 34, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.24);
	}

	.assessment-cta-pair--fv .assessment-channel-button__line-icon,
	.assessment-cta-pair--fv .assessment-channel-button > svg:not(.assessment-channel-button__arrow-icon) {
		width: 2.2rem;
		height: 2.2rem;
		flex: 0 0 2.2rem;
	}

	/* Let the product collage follow the CTA naturally without a tall gap. */
	.fv__visual {
		height: auto;
		min-height: 0;
		margin-top: 20px;
		overflow: visible;
	}

	.fv__products {
		position: relative;
		left: 50%;
		right: auto;
		bottom: auto;
		display: block;
		width: 108%;
		max-width: none;
		transform: translateX(-50%);
	}
}

@media (max-width: 360px) {
	.assessment-cta-pair--fv .assessment-channel-button {
		font-size: 1.1rem;
	}

	.assessment-cta-pair--fv .assessment-channel-button__line-icon,
	.assessment-cta-pair--fv .assessment-channel-button > svg:not(.assessment-channel-button__arrow-icon) {
		width: 1.9rem;
		height: 1.9rem;
		flex-basis: 1.9rem;
	}
}
