/* =========================================================
   Design Tokens
========================================================= */
:root {
	--color-header-bg-sp: #ffffff;
	--color-header-bg-pc: #f4f4f4;
	--color-cta-text: #ffffff;
	--color-cta-grad-start: #f03f3f;
	--color-cta-grad-end: #ff6666;

	--font-base: "Zen Kaku Gothic New", sans-serif;
	--font-cta-weight: 700;
	--font-cta-size-sp: 16px;
	--font-cta-size-pc: 20px;
	--line-height-cta-sp: 1.5;

	--header-padding-y-sp: 16px;
	--header-padding-x-sp: clamp(12px, 3.08vw, 24px);
	--header-padding-y-pc: 16px;
	--header-padding-x-pc: clamp(24px, 3.33vw, 48px);

	--logo-width-sp: 89px;
	--logo-height-sp: 26px;
	--logo-width-pc: 112px;
	--logo-height-pc: 36px;

	--cta-radius: 4px;
	--cta-padding-sp: 12px;
	--cta-width-pc: 200px;
	--cta-height-pc: 60px;

	--hero-bg: #f4f4f4;
	--hero-aspect-sp: 390 / 700;
	--hero-aspect-pc: 1440 / 608;
	--features-bg-start: #367fbe;
	--features-bg-end: #1c6abd;
	--features-panel-bg: #b4caeb;
	--features-card-bg: #f4f4f4;
	--features-highlight: #fffd8d;
	--features-blue: #106fd5;
	--cta-section-bg: #f4f4f4;
	--cta-panel-blue-start: #106fd5;
	--cta-panel-blue-end: #498cd5;
	--cta-badge-bg: #ffffff;
	--cta-badge-text: #0662c4;
	--cta-title-highlight: #fffd8d;
	--service-bg: #ffffff;
	--service-blue: #0662c4;
	--service-label-bg: #106fd5;
	--step-bg: #f4f4f4;
	--step-blue: #0662c4;
	--step-body: #333638;
	--terms-bg-start: #367fbe;
	--terms-bg-end: #1c6abd;
	--terms-panel-bg: #b4caeb;
	--terms-blue: #0662c4;
	--terms-card-bg: #ffffff;
	--voice-bg: #ffffff;
	--voice-blue: #0662c4;
	--voice-card-bg: #f4f4f4;
}

/* =========================================================
   Base / Reset
========================================================= */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	padding: 0;
	min-width: 0;
}

html {
	scroll-behavior: smooth;
}

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

body {
	font-family: var(--font-base);
	position: relative;
}

/* =========================================================
   Header
========================================================= */
.site-header {
	width: 100%;
	background: transparent;
	position: fixed;
	top: 0;
	z-index: 100;
}

.site-header__inner {
	width: 100%;
	max-width: 1920px;
	margin-inline: auto;
	padding: var(--header-padding-y-sp) var(--header-padding-x-sp);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.site-header__logo-link {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	flex-shrink: 0;
}

.site-header__logo {
	display: block;
	height: auto;
}

.site-header__logo--mobile {
	width: var(--logo-width-sp);
	max-width: 100%;
}

.site-header__logo--desktop {
	display: none;
}

.site-header__cta {
	min-width: 0;
	border-radius: var(--cta-radius);
	background: linear-gradient(
		265deg,
		var(--color-cta-grad-start) 0%,
		var(--color-cta-grad-end) 100%
	);
	color: var(--color-cta-text);
	text-decoration: none;
	font-size: var(--font-cta-size-sp);
	font-weight: var(--font-cta-weight);
	line-height: var(--line-height-cta-sp);
	text-align: center;
	padding: var(--cta-padding-sp);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	flex-shrink: 0;
}

/* =========================================================
   Button Interactions
========================================================= */
.site-header__cta,
.hero-sp__cta,
.hero-pc__cta,
.cta-section__button,
.terms-section__modal-trigger,
.terms-modal__close,
.consult-form__submit,
.consult-form-hubspot .hs_submit .actions .hs-button,
.consult-form-hubspot .hs_submit .actions input[type="submit"],
.consult-form-hubspot .hs-button.primary,
.consult-form-hubspot .hs-button {
	transform: translateY(0);
	transition:
		transform 220ms ease,
		filter 220ms ease,
		box-shadow 220ms ease;
}

.hero-sp__cta-arrow,
.hero-pc__cta-arrow,
.cta-section__button-arrow img {
	transition: transform 220ms ease;
}

@media (hover: hover) and (pointer: fine) {
	.site-header__cta:hover,
	.hero-sp__cta:hover,
	.hero-pc__cta:hover,
	.cta-section__button:hover,
	.terms-section__modal-trigger:hover,
	.terms-modal__close:hover,
	.consult-form__submit:hover,
	.consult-form-hubspot .hs_submit .actions .hs-button:hover,
	.consult-form-hubspot .hs_submit .actions input[type="submit"]:hover,
	.consult-form-hubspot .hs-button.primary:hover,
	.consult-form-hubspot .hs-button:hover {
		transform: translateY(-2px);
		filter: brightness(1.05);
	}

	.site-header__cta:active,
	.hero-sp__cta:active,
	.hero-pc__cta:active,
	.cta-section__button:active,
	.terms-section__modal-trigger:active,
	.terms-modal__close:active,
	.consult-form__submit:active,
	.consult-form-hubspot .hs_submit .actions .hs-button:active,
	.consult-form-hubspot .hs_submit .actions input[type="submit"]:active,
	.consult-form-hubspot .hs-button.primary:active,
	.consult-form-hubspot .hs-button:active {
		transform: translateY(0);
		filter: brightness(1);
	}

	.hero-sp__cta:hover .hero-sp__cta-arrow,
	.hero-pc__cta:hover .hero-pc__cta-arrow,
	.cta-section__button:hover .cta-section__button-arrow img {
		transform: translateX(4px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-header__cta,
	.hero-sp__cta,
	.hero-pc__cta,
	.cta-section__button,
	.terms-section__modal-trigger,
	.terms-modal__close,
	.consult-form__submit,
	.consult-form-hubspot .hs_submit .actions .hs-button,
	.consult-form-hubspot .hs_submit .actions input[type="submit"],
	.consult-form-hubspot .hs-button.primary,
	.consult-form-hubspot .hs-button,
	.hero-sp__cta-arrow,
	.hero-pc__cta-arrow,
	.cta-section__button-arrow img {
		transition: none;
	}
}

/* =========================================================
   Entrance Animations
========================================================= */
.reveal-item {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition:
		opacity 640ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 640ms cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--reveal-delay, 0ms);
	will-change: opacity, transform;
}

.reveal-item--left {
	transform: translate3d(-32px, 0, 0);
}

.reveal-item--right {
	transform: translate3d(32px, 0, 0);
}

.reveal-item--fade {
	transform: none;
}

.reveal-item--pop {
	transform: translate3d(0, 14px, 0) scale(0.94);
}

.reveal-item.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.reveal-item--fade.is-visible {
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.reveal-item,
	.reveal-item--left,
	.reveal-item--right,
	.reveal-item--fade,
	.reveal-item--pop {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* =========================================================
   Hero (SP/PC shared + SP default)
========================================================= */
.hero-sp,
.hero-pc {
	width: 100%;
	background: var(--hero-bg);
	overflow: hidden;
	padding-top: 60px;
}

.hero-pc {
	display: none;
}

.hero-sp__canvas {
	position: relative;
	width: 100%;
	aspect-ratio: 390 / 700;
	overflow: hidden;
}

.hero-sp__deco,
.hero-sp__illust,
.hero-sp__cap,
.hero-sp__laurel {
	display: block;
	max-width: none;
	height: auto;
}

.hero-sp__deco {
	position: absolute;
	width: 114.6154%;
	left: -12.0513%;
	top: 66.8571%;
}

.hero-sp__content {
	position: absolute;
	left: 2.3077%;
	top: 5.2857%;
	width: 84.359%;
	z-index: 2;
}

.hero-sp__lead,
.hero-sp__headline,
.hero-sp__service,
.hero-sp__stat-label,
.hero-sp__stat-value {
	margin: 0;
}

.hero-sp__lead {
	color: #333638;
	font-size: clamp(14px, 3.59vw, 22px);
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
}

.hero-sp__headline {
	margin-top: clamp(14px, 3.08vw, 24px);
	display: flex;
	align-items: flex-end;
	gap: clamp(2px, 0.5vw, 6px);
	position: relative;
	color: #333638;
	line-height: 1.2;
}

.hero-sp__headline-main {
	font-size: clamp(24px, 6.15vw, 38px);
	font-weight: 700;
	letter-spacing: 0.07em;
}

.hero-sp__headline-sub {
	font-size: clamp(16px, 4.1vw, 32px);
	font-weight: 700;
	letter-spacing: 0.07em;
}

.hero-sp__cap {
	width: clamp(29px, 7.44vw, 44px);
	position: absolute;
	left: clamp(220px, 68%, 360px);
	top: -0.65em;
}

.hero-sp__chips {
	margin-top: clamp(24px, 4.8vw, 34px);
	display: inline-flex;
	align-items: center;
	gap: clamp(6px, 1.54vw, 10px);
}

.hero-sp__chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: clamp(28px, 7.2vw, 42px);
	padding: clamp(4px, 1.03vw, 8px) clamp(8px, 2.05vw, 14px);
	background: #0662c4;
	color: #ffffff;
	font-family: "DIN Alternate", "Arial Narrow", sans-serif;
	font-size: clamp(18px, 4.62vw, 26px);
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
}

.hero-sp__cross {
	color: #0662c4;
	font-size: clamp(20px, 5.13vw, 30px);
	font-weight: 700;
	line-height: 1;
}

.hero-sp__service {
	margin-top: clamp(8px, 2.05vw, 12px);
	display: flex;
	align-items: flex-end;
	gap: clamp(4px, 1.03vw, 8px);
}

.hero-sp__service-main {
	position: relative;
	z-index: 1;
	color: #0662c4;
	font-size: clamp(40px, 10.26vw, 72px);
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1;
	text-wrap: nowrap;
}

.hero-sp__service-main::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.15em;
	height: 0.2em;
	background: #fffd8d;
	z-index: -1;
}

.hero-sp__service-sub {
	color: #333638;
	font-size: clamp(16px, 4.1vw, 32px);
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
	white-space: nowrap;
}

.hero-sp__stats {
	margin-top: clamp(28px, 7.2vw, 48px);
	display: flex;
	gap: clamp(8px, 2.05vw, 18px);
}

.hero-sp__stat {
	flex: 1;
	position: relative;
	text-align: center;
	padding-top: clamp(14px, 3.59vw, 22px);
}

.hero-sp__laurel {
	position: absolute;
	top: 0;
	left: 50%;
	width: clamp(120px, 35.77vw, 230px);
	transform: translateX(-50%);
}

.hero-sp__stat-label {
	position: relative;
	z-index: 1;
	color: #000000;
	font-size: clamp(12px, 3.6vw, 18px);
	font-weight: 700;
	line-height: 1.2;
}

.hero-sp__stat-value {
	position: relative;
	z-index: 1;
	margin-top: clamp(6px, 1.54vw, 10px);
	color: #333638;
	line-height: 1.2;
}

.hero-sp__stat-value strong {
	font-size: clamp(24px, 7.18vw, 42px);
	font-weight: 900;
}

.hero-sp__stat-value span {
	font-size: clamp(12px, 3.08vw, 16px);
	font-weight: 700;
}

.hero-sp__cta {
	margin-top: clamp(36px, 9.2vw, 56px);
	width: 100%;
	min-height: clamp(56px, 14.36vw, 74px);
	border-radius: 6px;
	background: linear-gradient(265deg, #f03f3f 0%, #ff6666 100%);
	box-shadow: 2px 8px 17.5px rgba(0, 0, 0, 0.25);
	color: #ffffff;
	text-decoration: none;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: clamp(10px, 2.56vw, 24px);
	font-size: clamp(18px, 4.62vw, 24px);
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
}

.hero-sp__cta-arrow {
	font-size: 1.2em;
	line-height: 1;
}

.hero-sp__illust {
	position: absolute;
	right: -15%;
	bottom: -7%;
	width: 101.9231%;
}

/* =========================================================
   Features (SP default)
========================================================= */
.features {
	width: 100%;
	background: linear-gradient(
		180deg,
		var(--features-bg-start) 0%,
		var(--features-bg-end) 100%
	);
	padding: 72px 12px;
}

.features__inner {
	width: min(100%, 1110px);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.features__text,
.features__head {
	display: flex;
	flex-direction: column;
}

.features__text {
	gap: 28px;
}

.features__head {
	gap: 28px;
	align-items: center;
}

.features__title,
.features__subtitle,
.features__description,
.features__card-label,
.features__card-copy {
	margin: 0;
}

.features__title {
	color: #ffffff;
	font-size: 24px;
	font-weight: 900;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.features__subtitle {
	color: #ffffff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.2;
	text-align: center;
	border-bottom: 6px solid var(--features-highlight);
	padding-bottom: 14px;
}

.features__description {
	color: #ffffff;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.features__cards {
	border-radius: 20px;
	background: var(--features-panel-bg);
	padding: 40px 20px;
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.features__card {
	border-radius: 20px;
	background: var(--features-card-bg);
	padding: 40px;
	display: flex;
	flex-direction: column;
	gap: 24px;
	position: relative;
}

.features__card-label {
	color: var(--features-blue);
	font-family: "Barlow Condensed", "Roboto", sans-serif;
	font-size: 48px;
	font-weight: 500;
	line-height: 1.5;
	position: absolute;
	top: -0.75em;
	left: -0.25em;
	z-index: 10;
}

.features__card-image {
	display: block;
	height: auto;
	align-self: center;
}

.features__card-image--pc {
	display: none;
}

.features__card--01 .features__card-image--sp {
	width: min(100%, 219px);
}

.features__card--02 .features__card-image--sp {
	width: min(100%, 275px);
}

.features__card-copy {
	color: var(--features-blue);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.features__card-copy-primary {
	font-size: 18px;
	font-weight: 700;
}

.features__card-copy-secondary {
	font-size: 16px;
	font-weight: 500;
}

/* =========================================================
   Strong Point (SP default)
========================================================= */
.strong-point {
	width: 100%;
	background: #f4f4f4;
	padding: 72px 12px;
	overflow-x: hidden;
	overflow-x: clip;
}

.strong-point__inner {
	width: min(100%, 1110px);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: 56px;
}

.strong-point__content,
.strong-point__title-group {
	display: flex;
	flex-direction: column;
}

.strong-point__content {
	gap: 32px;
}

.strong-point__title-group {
	gap: 28px;
}

.strong-point__title,
.strong-point__description {
	margin: 0;
}

.strong-point__title {
	color: #0662c4;
	font-size: 24px;
	font-weight: 900;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.strong-point__description {
	color: #333638;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.strong-point__stats,
.strong-point__illust {
	display: block;
	height: auto;
}

.strong-point__stats {
	align-self: center;
	width: min(100%, 366px);
}

.strong-point__illust {
	width: 100%;
}

.strong-point__stats--pc,
.strong-point__illust--pc {
	display: none;
}

/* =========================================================
   CTA Section (SP default)
========================================================= */
.cta-section {
	width: 100%;
	background: var(--cta-section-bg);
	padding: 0 12px 72px;
}

.cta-section__inner {
	width: min(100%, 1110px);
	margin-inline: auto;
}

.cta-section__panel {
	border-radius: 20px;
	background: linear-gradient(
		180deg,
		var(--cta-panel-blue-start) 0%,
		var(--cta-panel-blue-end) 100%
	);
	padding: 64px 24px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.cta-section__content,
.cta-section__heading,
.cta-section__cta-group {
	display: flex;
	flex-direction: column;
}

.cta-section__content {
	gap: 28px;
}

.cta-section__heading {
	gap: 16px;
	align-items: start;
}

.cta-section__badges {
	display: inline-flex;
	align-items: center;
}

.cta-section__badge {
	width: 64px;
	height: 64px;
	border-radius: 999px;
	background: var(--cta-badge-bg);
	color: var(--cta-badge-text);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 28px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
}

.cta-section__badge + .cta-section__badge {
	margin-left: -16px;
}

.cta-section__title,
.cta-section__lead {
	margin: 0;
}

.cta-section__title {
	color: #ffffff;
	font-size: 32px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
	border-bottom: 6px solid var(--cta-title-highlight);
	padding-bottom: 14px;
}

.cta-section__lead {
	color: #ffffff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.cta-section__cta-group {
	align-items: center;
	gap: 40px;
}

.cta-section__stats {
	display: block;
	width: min(100%, 341px);
	height: auto;
}

.cta-section__stats--pc {
	display: none;
}

.cta-section__button {
	width: 100%;
	min-height: 62px;
	border-radius: 6px;
	background: linear-gradient(265deg, #f03f3f 0%, #ff6666 100%);
	box-shadow: 2px 8px 17.5px rgba(0, 0, 0, 0.25);
	color: #ffffff;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 18px 10px;
	position: relative;
}

.cta-section__button-text {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
}

.cta-section__button-arrow {
	font-size: 1.2em;
	line-height: 1;
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
}
.cta-section__button-arrow img {
	width: 32px;
}

/* =========================================================
   Service Section (SP default)
========================================================= */
.service-section {
	width: 100%;
	background: var(--service-bg);
	padding: 72px 12px;
}

.service-section__inner {
	width: min(100%, 1280px);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: 80px;
}

.service-section__visual,
.service-section__intro,
.service-section__steps-wrap,
.service-section__steps,
.service-step,
.service-step__body {
	display: flex;
	flex-direction: column;
}

.service-section__visual {
	gap: 32px;
}

.service-section__intro {
	gap: 28px;
}

.service-section__label,
.service-section__title,
.service-section__lead,
.service-step__title,
.service-step__desc,
.service-section__note {
	margin: 0;
}

.service-section__label {
	width: fit-content;
	background: var(--service-label-bg);
	color: #ffffff;
	padding: 8px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
}

.service-section__title {
	color: var(--service-blue);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.service-section__lead {
	color: #000000;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.service-section__illust {
	display: block;
	width: 100%;
	height: auto;
}

.service-section__illust--pc {
	display: none;
}

.service-section__steps-wrap {
	gap: 40px;
}

.service-section__steps {
	gap: 32px;
}

.service-step {
	align-items: center;
	gap: 32px;
}

.service-step__image {
	display: block;
	width: 128px;
	height: auto;
	flex-shrink: 0;
}

.service-step__body {
	width: 100%;
	gap: 12px;
}

.service-step__title {
	color: #000000;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
}

.service-step__title-main,
.service-step__title-sub {
	font-weight: inherit;
	line-height: inherit;
}

.service-step__title-main {
	font-size: 18px;
}

.service-step__title-sub {
	font-size: 16px;
}

.service-step__desc {
	color: #000000;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
}

.service-step__arrow {
	display: block;
	width: 17px;
	height: 24px;
	align-self: center;
	flex-shrink: 0;
}

.service-section__note {
	color: #000000;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	text-align: center;
}

/* =========================================================
   Step Section (SP default)
========================================================= */
.step-section {
	width: 100%;
	background: var(--step-bg);
	padding: 72px 12px;
}

.step-section__inner {
	width: min(100%, 1312px);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.step-section__heading {
	width: min(100%, 366px);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
}

.step-section__heading-line {
	display: none;
}

.step-section__heading-copy {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	text-align: center;
}

.step-section__title,
.step-section__subtitle,
.step-card-pc__step,
.step-card-pc__label,
.step-card-pc__desc,
.step-card-sp__step,
.step-card-sp__label,
.step-card-sp__desc {
	margin: 0;
}

.step-section__title {
	color: var(--step-blue);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.step-section__subtitle {
	color: #000000;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.step-section__timeline--pc {
	display: none;
}

.step-section__timeline--sp {
	width: min(100%, 366px);
	margin-inline: auto;
	position: relative;
	isolation: isolate;
}

.step-section__timeline--sp::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 12px;
	width: 3px;
	background: var(--step-blue);
	z-index: 20;
	pointer-events: none;
}

.step-card-sp {
	position: relative;
	width: 100%;
	padding-left: 33px;
}

.step-card-sp::after {
	content: "";
	position: absolute;
	left: 12px;
	top: 50%;
	width: 7px;
	height: 31px;
	background: var(--step-bg);
	transform: translate(-50%, -50%);
	z-index: 30;
	pointer-events: none;
}

.step-card-sp::before {
	content: "";
	position: absolute;
	left: 13px;
	top: 50%;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: var(--step-blue);
	transform: translate(-50%, -50%);
	z-index: 40;
	pointer-events: none;
}

.step-card-sp__content {
	width: min(333px, 100%);
	position: relative;
	z-index: 10;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.step-card-sp + .step-card-sp {
	margin-top: 11px;
}

.step-card-sp__step {
	width: 100%;
	color: var(--step-blue);
	font-family: "DIN Alternate", "Arial Narrow", sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 8px;
}

.step-card-sp__step-label {
	font-size: 24px;
	line-height: 1.4;
}

.step-card-sp__step-number {
	font-size: 32px;
	line-height: 1.2;
}

.step-card-sp__image {
	display: block;
	height: auto;
}

.step-card-sp__image--01 {
	width: min(296px, 100%);
}

.step-card-sp__image--02 {
	width: min(342px, 100%);
	margin-left: -9px;
}

.step-card-sp__image--03 {
	width: min(357px, 100%);
	margin-left: -24px;
}

.step-card-sp__text {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.step-card-sp__label {
	width: 100%;
	color: var(--step-blue);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.4;
	text-align: center;
}

.step-card-sp__desc {
	width: 100%;
	color: var(--step-body);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.step-card-sp__next {
	width: 40px;
	height: 96px;
	position: relative;
}

.step-card-sp__next::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 40px;
	height: 86px;
	background: linear-gradient(180deg, #f4f4f4 0%, #5c9adc 25%, #106fd5 100%);
	clip-path: polygon(0 0, 100% 0, 100% 87%, 50% 100%, 0 87%);
	-webkit-clip-path: polygon(0 0, 100% 0, 100% 87%, 50% 100%, 0 87%);
}

.step-card-sp__next::after {
	content: none;
}

/* =========================================================
   Terms Section (SP default)
========================================================= */
.terms-section {
	width: 100%;
	background: linear-gradient(
		90deg,
		var(--terms-bg-start) 0%,
		var(--terms-bg-end) 100%
	);
	padding: 72px 12px;
	overflow-x: hidden;
	overflow-x: clip;
}

.terms-section__inner,
.terms-section__content,
.terms-section__heading {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.terms-section__inner {
	width: min(100%, 1110px);
	margin-inline: auto;
	gap: 40px;
}

.terms-section__content {
	width: 100%;
	gap: 40px;
}

.terms-section__heading {
	width: min(100%, 342px);
	gap: 16px;
	text-align: center;
}

.terms-section__label,
.terms-section__title,
.terms-section__lead,
.terms-section__item-text {
	margin: 0;
}

.terms-section__label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px;
	background: #ffffff;
	color: var(--terms-blue);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
}

.terms-section__title {
	color: #ffffff;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
}

.terms-section__lead {
	color: #ffffff;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.terms-section__title-break,
.terms-section__lead-break {
	display: inline;
}

.terms-section__actions {
	display: flex;
	justify-content: center;
	width: 100%;
}

.terms-section__modal-trigger {
	appearance: none;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(265deg, #f03f3f 0%, #ff6666 100%);
	box-shadow: 2px 8px 17.5px rgba(0, 0, 0, 0.25);
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-base);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.3;
	min-height: 54px;
	padding: 14px 28px;
	text-align: center;
}

.terms-section__modal-trigger:focus-visible,
.terms-modal__close:focus-visible {
	outline: 3px solid #ffffff;
	outline-offset: 3px;
}

.terms-section__messages {
	width: min(100%, 920px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.terms-section__message {
	margin: 0;
	color: #ffffff;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}

.terms-section__message--note {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

/* Safari fallback: keep Terms CTA/message styling stable even when cached styles race */
#terms .terms-section__modal-trigger {
	appearance: none;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(265deg, #f03f3f 0%, #ff6666 100%);
	box-shadow: 2px 8px 17.5px rgba(0, 0, 0, 0.25);
	color: #ffffff;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	min-height: 54px;
	padding: 14px 28px;
}

#terms .terms-section__message {
	color: #ffffff;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}

#terms .terms-section__message--note {
	color: #ffffff;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
}

.terms-section__panel {
	width: 100%;
	border-radius: 20px;
	background: var(--terms-panel-bg);
	padding: 32px 20px;
}

.terms-section__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

.terms-section__item {
	min-height: 69px;
	border: 4px solid var(--terms-blue);
	border-radius: 8px;
	background: var(--terms-card-bg);
	display: flex;
	align-items: center;
	gap: 24px;
	overflow: hidden;
}

.terms-section__icon {
	flex-shrink: 0;
	width: 69px;
	align-self: stretch;
	background: var(--terms-blue);
	position: relative;
}

.terms-section__icon::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	width: 37px;
	height: 27px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 41 31'%3E%3Cpath d='M2 12L16 29 39 2' fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 100% 100%;
	transform: translateY(-50%);
}

.terms-section__item-text {
	color: var(--terms-blue);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.3;
	flex: 1;
	padding: 6px 8px 6px 0;
}

.terms-modal[hidden] {
	display: none;
}

.terms-modal {
	position: fixed;
	inset: 0;
	z-index: 400;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px 12px;
}

.terms-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.65);
}

.terms-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(100%, 920px);
	max-height: min(90vh, 860px);
	display: flex;
	flex-direction: column;
	border-radius: 20px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
	opacity: 0;
	transform: translateY(12px);
	transition:
		opacity 220ms ease,
		transform 220ms ease;
}

.terms-modal.is-open .terms-modal__dialog {
	opacity: 1;
	transform: translateY(0);
}

.terms-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 16px 12px;
	background: linear-gradient(
		90deg,
		var(--terms-bg-start) 0%,
		var(--terms-bg-end) 100%
	);
}

.terms-modal__title {
	margin: 0;
	color: #ffffff;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.4;
}

.terms-modal__close {
	appearance: none;
	border: 0;
	background: rgba(255, 255, 255, 0.18);
	color: #ffffff;
	cursor: pointer;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 28px;
	line-height: 1;
}

.terms-modal__body {
	padding: 14px;
	overflow-y: auto;
	background: #eff4fb;
}

.terms-modal__content {
	background: #ffffff;
	border: 1px solid #d5e1f2;
	border-radius: 14px;
	padding: 16px 14px;
}

.terms-modal__conditions {
	margin: 0;
	padding-left: 1.7em;
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

.terms-modal__condition {
	color: #223246;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.75;
}

.terms-modal__condition::marker {
	color: var(--terms-blue);
	font-weight: 700;
}

.terms-modal__note {
	margin: 16px 2px 4px;
	color: var(--terms-blue);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.7;
}

body.is-terms-modal-open {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.terms-modal__dialog {
		transition: none;
	}
}

/* =========================================================
   Voice Section (SP default)
========================================================= */
.voice-section {
	width: 100%;
	background: var(--voice-bg);
	padding: 72px 16px;
}

.voice-section__inner {
	width: min(100%, 1110px);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
}

.voice-section__title,
.voice-card__name,
.voice-card__attribute,
.voice-card__quote {
	margin: 0;
}

.voice-section__title {
	width: 100%;
	color: var(--voice-blue);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
	text-align: center;
}

.voice-section__list {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.voice-card {
	border-radius: 20px;
	background: var(--voice-card-bg);
	padding: 32px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.voice-card__header {
	display: flex;
	align-items: center;
	gap: 20px;
}

.voice-card__avatar {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	flex-shrink: 0;
	display: block;
}

.voice-card__meta {
	display: flex;
	flex-direction: column;
}

.voice-card__name {
	color: var(--voice-blue);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.voice-card__attribute {
	color: var(--voice-blue);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.voice-card__quote {
	color: #000000;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.voice-card__quote-highlight {
	color: #0662c4;
	font-size: 18px;
	font-weight: 700;
}

/* =========================================================
   Consult Form Section (SP default)
========================================================= */
.consult-form-section {
	width: 100%;
	background: #f4f4f4;
	padding: 72px 12px;
}

.consult-form-section__inner {
	width: min(100%, 1110px);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
}

.consult-form-section__heading {
	width: min(100%, 366px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
}

.consult-form-section__title,
.consult-form-section__lead,
.consult-form__label,
.consult-form__note,
.consult-form__privacy-note {
	margin: 0;
}

.consult-form-section__title {
	width: 100%;
	color: #0662c4;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
	text-align: center;
}

.consult-form-section__lead {
	width: 100%;
	color: #000000;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.consult-form-card {
	width: min(100%, 366px);
	border: 4px solid #106fd5;
	border-radius: 20px;
	background: #eaf0f9;
	padding: 88px 16px;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.consult-form {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.consult-form__row {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.consult-form__field {
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.consult-form__label-row {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 10px;
}

.consult-form__label {
	color: #000000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.8;
}

.consult-form__label--large {
	font-size: 18px;
}

.consult-form__label--wide {
	flex: 1;
	min-width: 0;
}

.consult-form__field--choice .consult-form__label-row,
.consult-form__field--checkboxes .consult-form__label-row {
	align-items: flex-start;
}

.consult-form__field--choice .consult-form__required,
.consult-form__field--checkboxes .consult-form__required {
	margin-top: 4px;
}

.consult-form__required {
	width: 40px;
	height: 20px;
	border-radius: 1px;
	background: #f03f3f;
	color: #ffffff;
	font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.consult-form__input,
.consult-form__select {
	width: 100%;
	min-height: 45px;
	border: 1px solid #bababaff;
	border-radius: 4px;
	background: #ffffff;
	color: #999999;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
	padding: 8px 20px;
}

.consult-form__input::placeholder {
	color: #999999;
	opacity: 1;
}

.consult-form__select-wrap {
	width: 100%;
	position: relative;
}

.consult-form__select-wrap::after {
	content: "";
	position: absolute;
	right: 24px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-right: 1px solid #000000;
	border-bottom: 1px solid #000000;
	transform: translateY(-65%) rotate(45deg);
	pointer-events: none;
}

.consult-form__select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	cursor: pointer;
}

.consult-form__input:focus,
.consult-form__select:focus {
	outline: none;
	border-color: #106fd5;
}

.consult-form__choices,
.consult-form__checks {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.consult-form__choice,
.consult-form__check-row {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 5px;
	position: relative;
	cursor: pointer;
}

.consult-form__check-row {
	align-items: flex-start;
}

.consult-form__radio-input,
.consult-form__check-input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.consult-form__radio-mark {
	width: 24px;
	height: 24px;
	border: 1px solid #333638;
	border-radius: 999px;
	background: #ffffff;
	position: relative;
	flex-shrink: 0;
}

.consult-form__radio-input:checked + .consult-form__radio-mark::after {
	content: "";
	position: absolute;
	inset: 6px;
	border-radius: 999px;
	background: #333638;
}

.consult-form__check-mark {
	width: 22px;
	height: 22px;
	border: 1px solid #333638;
	border-radius: 2px;
	background: #ffffff;
	position: relative;
	flex-shrink: 0;
	margin-top: 3px;
}

.consult-form__check-input:checked + .consult-form__check-mark::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 2px;
	width: 6px;
	height: 12px;
	border-right: 2px solid #333638;
	border-bottom: 2px solid #333638;
	transform: rotate(40deg);
}

.consult-form__choice-label {
	color: #000000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
}

.consult-form__note {
	color: #000000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.8;
}

.consult-form__actions {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

.consult-form__privacy-note {
	color: #1571da;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
	text-align: center;
}

.consult-form-hubspot__legal-note {
	margin: 0;
	color: #000000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.6;
}

.consult-form-hubspot__legal-lead,
.consult-form-hubspot__legal-links {
	margin: 0;
}

.consult-form-hubspot__legal-links {
	padding: 14px 0 0;
	list-style: none;
}

.consult-form-hubspot__legal-links li:last-child {
	margin-top: 6px;
}

.consult-form-hubspot__legal-links li::before {
	content: "・";
	color: #1571da;
}

.consult-form-hubspot__legal-links a {
	color: #1571da;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.consult-form__submit {
	width: 100%;
	min-height: 62px;
	border: 0;
	border-radius: 6px;
	background: linear-gradient(265deg, #f03f3f 0%, #ff6666 100%);
	box-shadow: 2px 8px 17.5px rgba(0, 0, 0, 0.25);
	color: #ffffff;
	font-family: var(--font-base);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
	padding: 20px 12px;
	cursor: pointer;
}

.consult-form-card--hubspot {
	gap: 0;
}

.consult-form-hubspot {
	width: 100%;
}

.consult-form-hubspot .hbspt-form,
.consult-form-hubspot form {
	width: 100%;
}

.consult-form-hubspot form {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.consult-form-hubspot fieldset {
	max-width: none;
	margin: 0;
	padding: 0;
	border: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.consult-form-hubspot
	form
	> fieldset
	+ fieldset:has(> .hs-form-field:not([style*="display: none"])),
.consult-form-hubspot
	form
	> .hs-form-field
	+ fieldset:has(> .hs-form-field:not([style*="display: none"])),
.consult-form-hubspot
	form
	> .hs-richtext
	+ fieldset:has(> .hs-form-field:not([style*="display: none"])),
.consult-form-hubspot
	form
	> .hs-dependent-field
	+ fieldset:has(> .hs-form-field:not([style*="display: none"])),
.consult-form-hubspot
	form
	> fieldset:has(> .hs-form-field:not([style*="display: none"]))
	+ .hs-form-field,
.consult-form-hubspot
	form
	> fieldset:has(> .hs-form-field:not([style*="display: none"]))
	+ .hs-richtext,
.consult-form-hubspot
	form
	> fieldset:has(> .hs-form-field:not([style*="display: none"]))
	+ .hs-dependent-field,
.consult-form-hubspot form > .hs-form-field + .hs-form-field,
.consult-form-hubspot form > .hs-richtext + .hs-form-field,
.consult-form-hubspot form > .hs-form-field + .hs-richtext,
.consult-form-hubspot form > .hs-dependent-field + .hs-form-field,
.consult-form-hubspot form > .hs-form-field + .hs-dependent-field,
.consult-form-hubspot form > .hs-dependent-field + .hs-dependent-field {
	margin-top: 20px;
}

.consult-form-hubspot fieldset > .hs-form-field + .hs-form-field,
.consult-form-hubspot fieldset > .hs-richtext + .hs-form-field,
.consult-form-hubspot fieldset > .hs-form-field + .hs-richtext,
.consult-form-hubspot fieldset > .hs-dependent-field + .hs-form-field,
.consult-form-hubspot fieldset > .hs-form-field + .hs-dependent-field,
.consult-form-hubspot fieldset > .hs-dependent-field + .hs-dependent-field {
	margin-top: 20px;
}

.consult-form-hubspot .hs-form-field {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

/* HubSpot generated field that missed vertical spacing in production */
.consult-form-hubspot .hs_occupation.hs-form-field {
	margin-top: 20px !important;
}

.consult-form-hubspot .hs_occupation2.hs-form-field {
	margin-top: 20px !important;
}

.consult-form-hubspot .hs_othercompany_interviewed.hs-form-field {
	margin-top: 20px !important;
}

.consult-form-hubspot .hs-form-field[style*="display: none"] {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
}

.consult-form-hubspot fieldset[style*="display: none"] {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
}

.consult-form-hubspot
	form
	> fieldset:has(> .hs-form-field[style*="display: none"]:only-child) {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
}

.consult-form-hubspot form > [style*="display: none"] {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
}

.consult-form-hubspot .hs-form-field > label,
.consult-form-hubspot .hs-richtext,
.consult-form-hubspot .hs-field-desc {
	margin: 0;
	color: #000000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	line-height: 1.8;
}

.consult-form-hubspot .hs-form-field > label {
	font-weight: 700;
}

.consult-form-hubspot .hs-form-required {
	width: 40px;
	height: 20px;
	border-radius: 1px;
	background: #f03f3f;
	color: transparent;
	font-size: 0;
	line-height: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	vertical-align: middle;
	margin-left: 10px;
	position: relative;
	top: -1px;
}

.consult-form-hubspot .hs-form-required::after {
	content: "必須";
	color: #ffffff;
	font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 1;
}

.consult-form-hubspot .input {
	width: 100%;
}

.consult-form-hubspot
	input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
.consult-form-hubspot select,
.consult-form-hubspot textarea {
	width: 100%;
	min-width: 0;
	max-width: 100%;
	min-height: 45px;
	border: 1px solid #bababaff;
	border-radius: 4px;
	background: #ffffff;
	color: #000000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
	padding: 8px 20px;
	box-sizing: border-box;
}

.consult-form-hubspot input[type="date"] {
	-webkit-appearance: none;
	appearance: none;
}

.consult-form-hubspot
	input:not([type="radio"]):not([type="checkbox"]):not(
		[type="submit"]
	)::placeholder,
.consult-form-hubspot textarea::placeholder {
	color: #999999;
	opacity: 1;
}

.consult-form-hubspot textarea {
	min-height: 120px;
	resize: vertical;
}

.consult-form-hubspot select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	cursor: pointer;
	padding-right: 44px;
	background-image:
		linear-gradient(45deg, transparent 50%, #000000 50%),
		linear-gradient(135deg, #000000 50%, transparent 50%);
	background-position:
		calc(100% - 22px) calc(50% - 2px),
		calc(100% - 16px) calc(50% - 2px);
	background-size:
		6px 6px,
		6px 6px;
	background-repeat: no-repeat;
}

.consult-form-hubspot
	input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):focus,
.consult-form-hubspot select:focus,
.consult-form-hubspot textarea:focus {
	outline: none;
	border-color: #106fd5;
}

.consult-form-hubspot .inputs-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.consult-form-hubspot .inputs-list > li {
	margin: 0;
}

.consult-form-hubspot .inputs-list > li > label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	cursor: pointer;
}

.consult-form-hubspot input[type="radio"],
.consult-form-hubspot input[type="checkbox"] {
	margin: 4px 0 0;
	width: 20px;
	height: 20px;
	accent-color: #333638;
	flex-shrink: 0;
}

@media (max-width: 1023px) {
	.consult-form-hubspot input[type="radio"],
	.consult-form-hubspot input[type="checkbox"] {
		width: 24px;
		height: 24px;
		margin-top: 2px;
	}
}

.consult-form-hubspot .hs-error-msgs {
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
}

.consult-form-hubspot .hs-error-msgs label {
	margin: 0;
	color: #f03f3f;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
}

.consult-form-hubspot .hs_error_rollup {
	display: none;
}

.consult-form-hubspot .hs_submit .actions {
	margin: 20px 0 0;
}

.consult-form-hubspot .hs_submit input[type="submit"] {
	width: 100%;
	min-height: 62px;
	border: 0;
	border-radius: 6px;
	background: linear-gradient(265deg, #f03f3f 0%, #ff6666 100%);
	box-shadow: 2px 8px 17.5px rgba(0, 0, 0, 0.25);
	color: #ffffff;
	font-family: var(--font-base);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
	padding: 20px 12px;
	cursor: pointer;
	white-space: normal;
}

.consult-form-hubspot .hs_submit .actions .hs-button,
.consult-form-hubspot .hs_submit .actions input[type="submit"],
.consult-form-hubspot .hs-button.primary,
.consult-form-hubspot .hs-button {
	width: 100% !important;
	min-height: 62px !important;
	border: 0 !important;
	border-radius: 6px !important;
	background: linear-gradient(265deg, #f03f3f 0%, #ff6666 100%) !important;
	background-color: #f03f3f !important;
	box-shadow: 2px 8px 17.5px rgba(0, 0, 0, 0.25) !important;
	color: #ffffff !important;
	font-family: var(--font-base) !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em !important;
	line-height: 1.2 !important;
	padding: 20px 12px !important;
	white-space: normal !important;
	text-shadow: none !important;
}

.consult-form-hubspot .hs_submit .actions .hs-button:hover,
.consult-form-hubspot .hs_submit .actions input[type="submit"]:hover,
.consult-form-hubspot .hs-button.primary:hover,
.consult-form-hubspot .hs-button:hover {
	background: linear-gradient(265deg, #df3434 0%, #f05858 100%) !important;
	background-color: #df3434 !important;
}

.consult-form-hubspot .submitted-message {
	margin: 0;
	color: #000000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.8;
	text-align: center;
}

.consult-form-hubspot__loading,
.consult-form-hubspot__error {
	margin: 0;
	color: #000000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	line-height: 1.8;
	text-align: center;
}

.consult-form-hubspot__error {
	color: #f03f3f;
}

/* =========================================================
   Thanks Section (SP default)
========================================================= */
.thanks-page {
	background: #f4f4f4;
}

.thanks-section {
	width: 100%;
	background: #f4f4f4;
	padding: 72px 16px;
}

.thanks-section__inner {
	width: min(100%, 1110px);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 32px;
}

.thanks-section__logo-wrap {
	width: 100%;
	display: flex;
	justify-content: center;
}

.thanks-section__logo {
	display: block;
	width: min(132px, 100%);
	height: auto;
	margin-inline: auto;
}

.thanks-section__copy {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.thanks-section__title,
.thanks-section__lead {
	margin: 0;
	text-align: center;
}

.thanks-section__title {
	color: #0662c4;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
}

.thanks-section__lead {
	color: #000000;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
}

.thanks-section__title--pc,
.thanks-section__lead--pc {
	display: none;
}

/* =========================================================
   Footer (SP default)
========================================================= */
.site-footer {
	width: 100%;
	background: linear-gradient(90deg, #52a4d4 0%, #5778b1 100%);
}

.site-footer__canvas {
	width: 100%;
	max-width: 390px;
	margin-inline: auto;
	min-height: 551.6084px;
	position: relative;
	overflow: hidden;
}

.site-footer__card {
	width: min(310px, calc(100% - 80px));
	margin: 40px auto 0;
	border-radius: 20px;
	background: #f4f4f4;
	padding: 40px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	position: relative;
	z-index: 1;
}

.site-footer__top,
.site-footer__brand,
.site-footer__nav {
	display: flex;
	flex-direction: column;
}

.site-footer__top {
	gap: 40px;
}

.site-footer__brand {
	gap: 24px;
}

.site-footer__logo {
	display: block;
	height: auto;
}

.site-footer__logo--sp {
	width: 89px;
}

.site-footer__logo--pc {
	display: none;
}

.site-footer__address,
.site-footer__copyright {
	margin: 0;
	color: #333638;
}

.site-footer__address {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.5;
}

.site-footer__nav {
	gap: 14px;
}

.site-footer__link {
	color: #333638;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	text-decoration: none;
	width: fit-content;
}

.site-footer__legal-link {
	align-self: center;
	color: #333638;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.site-footer__copyright {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.8;
	text-align: center;
}

.site-footer__deco {
	position: absolute;
	z-index: 10;
	display: block;
	height: auto;
	pointer-events: none;
}

.site-footer__deco--pc {
	display: none;
}

.site-footer__deco--sp-01 {
	width: 8.2705%;
	left: 83.4111%;
	top: 90.0331%;
}

.site-footer__deco--sp-02 {
	width: 6.181%;
	left: 93.8462%;
	top: 87.6758%;
}

.site-footer__deco--sp-03 {
	width: 10.3868%;
	left: 70.5128%;
	top: 90.7753%;
}

.site-footer__deco--sp-04 {
	width: 7.9711%;
	left: 11.2821%;
	top: 90.7404%;
}

.site-footer__deco--sp-05 {
	width: 6.8076%;
	left: 21.2821%;
	top: 92.7346%;
}

.site-footer__deco--sp-06 {
	width: 11.5385%;
	left: -1.2821%;
	top: 86.5868%;
}

.site-footer__deco--pc-01 {
	width: 3.5044%;
	left: 4.5833%;
	top: 77.5724%;
}

.site-footer__deco--pc-02 {
	width: 3.295%;
	left: 93.1944%;
	top: 77.5724%;
}

.site-footer__deco--pc-03 {
	width: 2.9929%;
	left: 8.9583%;
	top: 77.5724%;
}

.site-footer__deco--pc-04 {
	width: 2.4626%;
	left: 97.5694%;
	top: 70.4686%;
}

.site-footer__deco--pc-05 {
	width: 4.087%;
	left: -0.3472%;
	top: 73.2008%;
}

.site-footer__deco--pc-06 {
	width: 4.1383%;
	left: 88.0556%;
	top: 79.2118%;
}

/* =========================================================
   PC Overrides (>= 768px)
========================================================= */
@media (min-width: 768px) {
	/* Header (PC) */
	.site-header {
		background: transparent;
		position: fixed;
		top: 0;
		z-index: 100;
	}

	.site-header__inner {
		padding: var(--header-padding-y-pc) var(--header-padding-x-pc);
	}

	.site-header__logo--mobile {
		display: none;
	}

	.site-header__logo--desktop {
		display: block;
		width: var(--logo-width-pc);
	}

	.site-header__cta {
		width: var(--cta-width-pc);
		height: var(--cta-height-pc);
		padding: 0;
		font-size: var(--font-cta-size-pc);
		line-height: 1;
		background: linear-gradient(
			230deg,
			var(--color-cta-grad-start) 0%,
			var(--color-cta-grad-end) 100%
		);
	}

	/* Hero (PC) */
	.hero-sp {
		display: none;
	}

	.hero-pc {
		display: block;
		overflow: hidden;
		position: relative;
		padding-top: 92px;
	}

	.hero-pc__canvas {
		position: relative;
		width: 100%;
		max-width: 1440px;
		min-height: 400px;
		margin-inline: auto;
		aspect-ratio: 1440 / 608;
		overflow: hidden;
	}

	.hero-pc__deco,
	.hero-pc__illust,
	.hero-pc__cap,
	.hero-pc__laurel {
		display: block;
		max-width: none;
		height: auto;
	}

	.hero-pc__deco {
		position: absolute;
		width: 100%;
		left: 0;
		bottom: 0;
	}

	.hero-pc__content {
		position: absolute;
		left: 7.5694%;
		top: 0;
		width: 47%;
		z-index: 2;
	}

	.hero-pc__lead,
	.hero-pc__headline,
	.hero-pc__service,
	.hero-pc__stat-label,
	.hero-pc__stat-value {
		margin: 0;
	}

	.hero-pc__lead {
		color: #333638;
		font-size: clamp(14px, 1.39vw, 20px);
		font-weight: 700;
		letter-spacing: 0.05em;
		line-height: 1.2;
	}

	.hero-pc__headline {
		margin-top: 12px;
		display: flex;
		align-items: flex-end;
		gap: clamp(2px, 0.28vw, 6px);
		position: relative;
		color: #333638;
		line-height: 1.2;
		width: max-content;
	}

	.hero-pc__headline-main {
		font-size: clamp(24px, 2.64vw, 38px);
		font-weight: 700;
		letter-spacing: 0.07em;
	}

	.hero-pc__headline-sub {
		font-size: clamp(16px, 2.22vw, 32px);
		font-weight: 700;
		letter-spacing: 0.07em;
	}

	.hero-pc__cap {
		width: clamp(36px, 4.55vw, 66px);
		position: absolute;
		right: clamp(-36px, -4.55vw, -66px);
		top: -1.75em;
	}

	.hero-pc__chips {
		margin-top: 28px;
		display: inline-flex;
		align-items: center;
		gap: clamp(6px, 0.42vw, 10px);
	}

	.hero-pc__chip {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: clamp(28px, 2.92vw, 42px);
		padding: 4px 8px;
		background: #0662c4;
		color: #ffffff;
		font-family: "DIN Alternate", "Arial Narrow", sans-serif;
		font-size: clamp(18px, 1.81vw, 26px);
		font-weight: 700;
		letter-spacing: 0.08em;
		line-height: 1;
	}

	.hero-pc__cross {
		color: #0662c4;
		font-size: clamp(20px, 2.08vw, 30px);
		font-weight: 700;
		line-height: 1;
	}

	.hero-pc__service {
		margin-top: clamp(8px, 0.83vw, 12px);
		display: flex;
		align-items: flex-end;
		gap: clamp(4px, 0.56vw, 8px);
	}

	.hero-pc__service-main {
		position: relative;
		z-index: 1;
		color: #0662c4;
		font-size: clamp(40px, 5vw, 72px);
		font-weight: 900;
		letter-spacing: -0.02em;
		line-height: 1;
	}

	.hero-pc__service-main::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0.05em;
		height: 0.2em;
		background: #fffd8d;
		z-index: -1;
	}

	.hero-pc__service-sub {
		color: #333638;
		font-size: clamp(16px, 2.22vw, 32px);
		font-weight: 700;
		letter-spacing: 0.05em;
		line-height: 1.2;
		white-space: nowrap;
	}

	.hero-pc__stats {
		max-width: clamp(280px, 32.64vw, 470px);
		margin-top: clamp(22px, 3.06vw, 44px);
		display: flex;
		gap: clamp(8px, 2.5vw, 36px);
	}

	.hero-pc__stat {
		flex: 1;
		min-width: 0;
		position: relative;
		text-align: center;
		padding-top: clamp(12px, 1.46vw, 21px);
		width: 40%;
	}

	.hero-pc__laurel {
		position: absolute;
		top: 0;
		left: 50%;
		width: 100%;
		transform: translateX(-50%);
	}

	.hero-pc__stat-label {
		position: relative;
		z-index: 1;
		color: #000000;
		font-size: clamp(12px, 1.11vw, 16px);
		font-weight: 700;
		line-height: 1.2;
	}

	.hero-pc__stat-value {
		position: relative;
		z-index: 1;
		margin-top: 4px;
		color: #333638;
		line-height: 1.2;
	}

	.hero-pc__stat-value strong {
		font-size: clamp(28px, 3.06vw, 44px);
		font-weight: 900;
	}

	.hero-pc__stat-value span {
		font-size: clamp(12px, 1.11vw, 16px);
		font-weight: 700;
	}

	.hero-pc__cta {
		margin-top: clamp(40px, 5.56vw, 70px);
		min-height: 74px;
		border-radius: 6px;
		background: linear-gradient(265deg, #f03f3f 0%, #ff6666 100%);
		box-shadow: 2px 8px 17.5px rgba(0, 0, 0, 0.25);
		color: #ffffff;
		text-decoration: none;
		display: inline-flex;
		justify-content: center;
		align-items: center;
		gap: 24px;
		padding: 24px 32px;
		font-size: clamp(18px, 1.67vw, 24px);
		font-weight: 700;
		letter-spacing: 0.05em;
		line-height: 1.2;
	}

	.hero-pc__cta-arrow {
		font-size: 1.4em;
		line-height: 1;
	}

	.hero-pc__illust {
		position: absolute;
		left: 57.75%;
		bottom: 0%;
		width: 42.8472%;
	}

	/* Features (PC) */
	.features {
		padding: 88px clamp(24px, 4.44vw, 64px);
	}

	.features__inner {
		gap: 56px;
	}

	.features__head {
		gap: 48px;
	}

	.features__title {
		font-size: clamp(32px, 3.33vw, 48px);
	}

	.features__subtitle {
		font-size: clamp(16px, 1.67vw, 24px);
		letter-spacing: 0.05em;
	}

	.features__description {
		width: min(100%, 1060px);
		margin-inline: auto;
	}

	.features__cards {
		flex-direction: row;
		gap: clamp(32px, 4.17vw, 60px);
		padding: 64px clamp(24px, 3.89vw, 56px) 56px;
	}

	.features__card {
		position: relative;
		flex: 1;
		min-width: 0;
		justify-content: space-between;
	}

	.features__card-label {
		font-size: clamp(42px, 3.89vw, 56px);
		position: absolute;
		top: -0.75em;
		left: -0.25em;
	}

	.features__card-image--sp {
		display: none;
	}

	.features__card-image--pc {
		display: block;
	}

	.features__card--01 .features__card-image--pc {
		width: 100%;
		height: auto;
		max-height: 300px;
		object-fit: contain;
	}

	.features__card--02 .features__card-image--pc {
		width: 100%;
		height: auto;
		max-height: 300px;
		object-fit: contain;
	}

	.features__card-copy {
		font-size: 22px;
		font-weight: 500;
	}

	.features__card-copy-primary {
		font-size: 24px;
		font-weight: 700;
	}

	.features__card-copy-secondary {
		font-size: 22px;
		font-weight: 500;
	}

	/* Strong Point (PC) */
	.strong-point {
		padding: 88px clamp(24px, 4.44vw, 64px);
	}

	.strong-point__inner {
		flex-direction: row;
		align-items: center;
		gap: clamp(40px, 5.56vw, 80px);
	}

	.strong-point__content {
		flex: 1;
		min-width: 0;
		max-width: 509px;
	}

	.strong-point__title-group {
		gap: 16px;
	}

	.strong-point__title {
		font-size: clamp(32px, 3.33vw, 48px);
		font-weight: 700;
		text-align: left;
	}

	.strong-point__description {
		text-align: left;
	}

	.strong-point__stats {
		width: 100%;
		max-width: 509px;
	}

	.strong-point__illust {
		flex: 1;
		min-width: 0;
		max-width: 521px;
	}

	.strong-point__stats--sp,
	.strong-point__illust--sp {
		display: none;
	}

	.strong-point__stats--pc,
	.strong-point__illust--pc {
		display: block;
	}

	/* CTA Section (PC) */
	.cta-section {
		padding: 0 clamp(24px, 4.44vw, 64px) 88px;
	}

	.cta-section__panel {
		padding: clamp(40px, 5.56vw, 80px);
		flex-direction: row;
		justify-content: center;
		align-items: flex-end;
		gap: clamp(40px, 5.56vw, 80px);
	}

	.cta-section__content {
		flex: 1;
		min-width: 0;
		height: 100%;
		gap: 32px;
	}

	.cta-section__heading {
		align-items: flex-start;
	}

	.cta-section__badge {
		width: 80px;
		height: 80px;
		font-size: 40px;
	}

	.cta-section__title {
		font-size: clamp(32px, 3.33vw, 48px);
	}

	.cta-section__cta-group {
		width: clamp(280px, 30vw, 367px);
		align-items: center;
		justify-content: flex-end;
		flex-shrink: 0;
	}

	.cta-section__stats--sp {
		display: none;
	}

	.cta-section__stats--pc {
		display: block;
		width: min(100%, 362px);
	}

	.cta-section__button {
		width: 100%;
		min-height: 87px;
		gap: 24px;
		padding: 20px 12px;
	}

	.cta-section__button-text {
		font-size: 24px;
	}

	.cta-section__button-arrow {
		font-size: 2.2em;
	}

	/* Service Section (PC) */
	.service-section {
		padding: 88px clamp(24px, 4.44vw, 64px);
	}

	.service-section__inner {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
		gap: clamp(40px, 5.56vw, 80px);
	}

	.service-section__visual {
		flex: 0 1 clamp(360px, 40vw, 532px);
		min-width: 0;
		gap: clamp(48px, 9vw, 131px);
	}

	.service-section__intro {
		gap: 32px;
	}

	.service-section__label {
		font-size: 28px;
	}

	.service-section__title {
		font-size: 40px;
		letter-spacing: 0.05em;
	}

	.service-section__lead {
		max-width: 418px;
	}

	.service-section__illust--sp {
		display: none;
	}

	.service-section__illust--pc {
		display: block;
		width: min(100%, 515px);
	}

	.service-section__steps-wrap {
		flex: 1;
		min-width: 0;
		gap: 12px;
	}

	.service-section__steps {
		gap: 12px;
	}

	.service-step {
		flex-direction: row;
		align-items: center;
		gap: 32px;
	}

	.service-step__body {
		flex: 1;
		min-width: 0;
	}

	.service-step__title {
		font-size: 24px;
	}

	.service-step__title-main {
		font-size: 24px;
	}

	.service-step__title-sub {
		font-size: 18px;
	}

	.service-section__note {
		font-size: 16px;
		text-align: right;
	}

	/* Step Section (PC) */
	.step-section {
		padding: 88px clamp(24px, 4.44vw, 64px);
	}

	.step-section__inner {
		gap: 60px;
	}

	.step-section__heading {
		width: 100%;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: 40px;
	}

	.step-section__heading-copy {
		width: 455px;
		flex-shrink: 0;
	}

	.step-section__title {
		font-size: clamp(32px, 3.33vw, 48px);
	}

	.step-section__heading-line {
		display: block;
		height: 40px;
		background-repeat: no-repeat;
		background-size: 100% 100%;
		margin-top: 0;
	}

	.step-section__heading-line--left {
		flex: 1 1 auto;
		max-width: 277.5px;
		border-radius: 4px;
		background-image: linear-gradient(
			90deg,
			#106fd5 0%,
			#5c9adc 75%,
			#f4f4f4 100%
		);
	}

	.step-section__heading-line--right {
		flex: 0 0 297.5px;
		height: 40px;
		background-image: linear-gradient(
			90deg,
			#f4f4f4 0%,
			#5c9adc 25%,
			#106fd5 100%
		);
		clip-path: polygon(
			0 0,
			calc(100% - 19.5px) 0,
			100% 50%,
			calc(100% - 19.5px) 100%,
			0 100%
		);
	}

	.step-section__timeline--sp {
		display: none;
	}

	.step-section__timeline--pc {
		width: min(100%, 1312px);
		margin-inline: auto;
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: 0;
		align-items: start;
	}

	.step-card-pc {
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 16px;
	}

	.step-card-pc__image {
		display: block;
		height: 256px;
		width: auto;
	}

	.step-card-pc__image--01 {
		max-width: min(296px, 100%);
	}

	.step-card-pc__image--02 {
		max-width: min(342px, 100%);
	}

	.step-card-pc__image--03 {
		max-width: min(357px, 100%);
	}

	.step-card-pc__step {
		width: 100%;
		color: var(--step-blue);
		font-family: "DIN Alternate", "Arial Narrow", sans-serif;
		font-size: 24px;
		font-weight: 700;
		line-height: 1.4;
		text-align: center;
		display: flex;
		align-items: baseline;
		justify-content: center;
		gap: 8px;
	}

	.step-card-pc__step-label {
		font-size: 24px;
		line-height: 1.4;
	}

	.step-card-pc__step-number {
		font-size: 32px;
		line-height: 1.2;
	}

	.step-card-pc__progress {
		width: 100%;
		min-height: 15px;
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.step-card-pc__progress::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 50%;
		height: 3px;
		background: linear-gradient(
			to right,
			var(--step-blue) 0,
			var(--step-blue) calc(50% - 16px),
			transparent calc(50% - 16px),
			transparent calc(50% + 16px),
			var(--step-blue) calc(50% + 16px),
			var(--step-blue) 100%
		);
		transform: translateY(-50%);
	}

	.step-card-pc__line {
		display: none;
	}

	.step-card-pc__dot {
		width: 15px;
		height: 15px;
		border-radius: 50%;
		background: var(--step-blue);
		flex-shrink: 0;
		position: relative;
		z-index: 1;
	}

	.step-card-pc__text {
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 8px;
		padding: 0 32px;
	}

	.step-card-pc__label {
		width: 100%;
		color: var(--step-blue);
		font-size: 20px;
		font-weight: 700;
		letter-spacing: 0.05em;
		line-height: 1.4;
		text-align: center;
	}

	.step-card-pc__desc {
		color: var(--step-body);
		font-size: 16px;
		font-weight: 500;
		letter-spacing: 0.05em;
		line-height: 1.5;
		text-align: center;
	}

	.step-card-pc__text--01 .step-card-pc__desc {
		max-width: 391px;
	}

	.step-card-pc__text--02 .step-card-pc__desc {
		max-width: 362px;
	}

	.step-card-pc__text--03 .step-card-pc__desc {
		max-width: 387px;
	}

	/* Terms Section (PC) */
	.terms-section {
		padding: 88px clamp(24px, 4.44vw, 64px);
	}

	.terms-section__inner {
		gap: 24px;
	}

	.terms-section__content {
		max-width: 1110px;
		gap: 56px;
	}

	.terms-section__heading {
		width: 100%;
	}

	.terms-section__label {
		font-size: 28px;
	}

	.terms-section__title {
		font-size: clamp(32px, 3.33vw, 48px);
	}

	.terms-section__title-break,
	.terms-section__lead-break {
		display: none;
	}

	.terms-section__actions {
		width: auto;
		margin-inline: auto;
	}

	.terms-section__modal-trigger {
		font-size: 20px;
		min-height: 66px;
		padding: 18px 40px;
	}

	.terms-section__messages {
		gap: 20px;
	}

	.terms-section__message {
		font-size: clamp(28px, 2.83vw, 32px);
	}

	.terms-section__message--note {
		font-size: 16px;
		font-weight: 500;
		letter-spacing: 0.05em;
		line-height: 1.5;
	}

	.terms-section__panel {
		padding: 48px;
	}

	.terms-section__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 48px;
		row-gap: 24px;
	}

	.terms-section__item-text {
		font-size: 20px;
		letter-spacing: 0.05em;
		padding-right: 8px;
	}

	.terms-modal {
		padding: 24px;
	}

	.terms-modal__header {
		padding: 20px 24px 14px;
	}

	.terms-modal__title {
		font-size: 28px;
	}

	.terms-modal__close {
		width: 44px;
		height: 44px;
		font-size: 32px;
	}

	.terms-modal__body {
		padding: 24px;
	}

	.terms-modal__content {
		padding: 24px 26px;
		border-radius: 16px;
	}

	.terms-modal__conditions {
		gap: 14px;
	}

	.terms-modal__condition {
		font-size: 17px;
		line-height: 1.8;
	}

	.terms-modal__note {
		font-size: 16px;
		line-height: 1.7;
	}

	/* Voice Section (PC) */
	.voice-section {
		padding: 88px clamp(24px, 4.44vw, 64px);
	}

	.voice-section__inner {
		gap: 64px;
	}

	.voice-section__title {
		font-size: clamp(32px, 3.33vw, 48px);
	}

	.voice-section__list {
		display: flex;
		flex-direction: row;
		gap: clamp(32px, 5.56vw, 80px);
	}

	.voice-card {
		flex: 1;
		min-width: 0;
	}

	.voice-card__quote {
		font-size: 18px;
	}

	.voice-card__quote-highlight {
		font-size: 22px;
	}

	/* Consult Form Section (PC) */
	.consult-form-section {
		padding: 112px clamp(24px, 4.44vw, 64px);
	}

	.consult-form-section__inner {
		gap: 80px;
	}

	.consult-form-section__heading {
		width: min(100%, 1110px);
		gap: 16px;
	}

	.consult-form-section__title {
		font-size: clamp(32px, 3.33vw, 48px);
		letter-spacing: 0.05em;
	}

	.consult-form-card {
		width: min(100%, 996px);
		padding: clamp(40px, 6.11vw, 88px);
		gap: 60px;
	}

	.consult-form {
		width: min(100%, 820px);
		margin-inline: auto;
	}

	.consult-form__row--split {
		flex-direction: row;
	}

	.consult-form__row--split .consult-form__field {
		flex: 1;
	}

	.consult-form__actions {
		width: min(100%, 820px);
		margin-inline: auto;
	}

	.consult-form__privacy-note {
		text-align: center;
	}

	.consult-form__submit {
		width: auto;
		min-height: 74px;
		padding: 26px 20px;
	}

	.consult-form-hubspot form {
		width: min(100%, 820px);
		margin-inline: auto;
	}

	.consult-form-hubspot .form-columns-2 {
		flex-direction: row;
	}

	.consult-form-hubspot .form-columns-2 .hs-form-field {
		flex: 1;
	}

	.consult-form-hubspot .form-columns-2 .hs-form-field + .hs-form-field {
		margin-top: 0;
		margin-left: 20px;
	}

	.consult-form-hubspot .hs_submit .actions {
		text-align: center;
	}

	.consult-form-hubspot .hs_submit input[type="submit"] {
		width: auto;
		min-height: 74px;
		padding: 26px 20px;
	}

	.consult-form-hubspot .hs_submit .actions .hs-button,
	.consult-form-hubspot .hs_submit .actions input[type="submit"],
	.consult-form-hubspot .hs-button.primary,
	.consult-form-hubspot .hs-button {
		width: auto !important;
		min-height: 74px !important;
		padding: 26px 20px !important;
	}

	/* Thanks Section (PC) */
	.thanks-section {
		padding: 112px clamp(24px, 4.44vw, 64px);
	}

	.thanks-section__inner {
		gap: 40px;
	}

	.thanks-section__logo {
		width: 168px;
	}

	.thanks-section__copy {
		gap: 24px;
	}

	.thanks-section__title {
		font-size: 32px;
		letter-spacing: 0.05em;
	}

	.thanks-section__lead {
		font-size: 18px;
	}

	.thanks-section__title--sp,
	.thanks-section__lead--sp {
		display: none;
	}

	.thanks-section__title--pc,
	.thanks-section__lead--pc {
		display: block;
	}

	/* Footer (PC) */
	.site-footer__canvas {
		max-width: 1440px;
		min-height: 366px;
	}

	.site-footer__card {
		width: calc(100% - 80px);
	}

	.site-footer__top {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
		gap: 32px;
	}

	.site-footer__brand {
		width: 395px;
	}

	.site-footer__logo--sp {
		display: none;
	}

	.site-footer__logo--pc {
		display: block;
		width: 112px;
	}

	.site-footer__nav {
		flex-direction: row;
		gap: 24px;
		align-items: center;
		justify-content: flex-end;
		flex-wrap: wrap;
	}

	.site-footer__legal-link {
		align-self: flex-end;
	}

	.site-footer__deco--sp {
		display: none;
	}

	.site-footer__deco--pc {
		display: block;
	}
}

/* =========================================================
   Tablet Overrides (768px – 1023px)
   Keep SP-like column layouts for sections that need more
   horizontal space, while retaining PC header/hero/typography.
========================================================= */
@media (min-width: 768px) and (max-width: 1023px) {
	/* --- Strong Point: keep column layout --- */
	.strong-point__inner {
		flex-direction: column;
		align-items: center;
		gap: 56px;
	}

	.strong-point__content {
		flex: none;
		max-width: 100%;
	}

	.strong-point__title {
		text-align: center;
	}

	.strong-point__description {
		text-align: left;
	}

	.strong-point__stats--pc,
	.strong-point__illust--pc {
		display: none;
	}

	.strong-point__stats--sp,
	.strong-point__illust--sp {
		display: block;
	}

	.strong-point__stats {
		width: min(100%, 500px);
		align-self: center;
	}

	.strong-point__illust {
		width: 100%;
		max-width: 100%;
	}

	/* --- CTA Section: keep column layout --- */
	.cta-section__panel {
		flex-direction: column;
		padding: 64px 24px;
		gap: 32px;
	}

	.cta-section__content {
		width: 100%;
		flex: none;
	}

	.cta-section__heading {
		align-items: center;
	}

	.cta-section__title,
	.cta-section__lead {
		text-align: center;
	}

	.cta-section__cta-group {
		width: 100%;
		flex-shrink: initial;
		align-items: center;
	}

	.cta-section__stats--pc {
		display: none;
	}

	.cta-section__stats--sp {
		display: block;
		width: min(100%, 400px);
	}

	/* --- Service Section: keep column layout --- */
	.service-section__inner {
		flex-direction: column;
		gap: 60px;
	}

	.service-section__visual {
		flex: none;
		gap: 32px;
	}

	.service-section__illust--pc {
		display: none;
	}

	.service-section__illust--sp {
		display: block;
	}

	.service-section__steps-wrap {
		flex: none;
		gap: 40px;
	}

	.service-section__steps {
		gap: 32px;
	}

	.service-step {
		flex-direction: column;
		align-items: center;
		gap: 32px;
	}

	.service-section__note {
		text-align: center;
	}

	/* --- Step Section: keep SP timeline --- */
	.step-section__timeline--sp {
		display: block;
	}

	.step-section__timeline--pc {
		display: none;
	}

	.step-section__heading-line {
		display: none;
	}

	.step-section__heading {
		width: min(100%, 640px);
	}

	.step-section__timeline--sp {
		width: min(100%, 720px);
	}

	.step-card-sp__content {
		width: min(100%, 680px);
	}

	/* --- Voice Section: keep column layout --- */
	.voice-section__list {
		flex-direction: column;
		gap: 40px;
	}

	.voice-card:first-child {
		flex: none;
	}

	/* --- Footer: fluid canvas --- */
	.site-footer__canvas {
		max-width: 100%;
	}

	.site-footer__brand {
		width: auto;
		flex: 1;
		min-width: 0;
	}
}

.pc-break {
	display: none;
}

@media screen and (min-width: 1024px) {
	.pc-break {
		display: inline;
	}
}
