/*
 * KOP サービス詳細ページ共通 UI
 * 使用例: serviceDetail serviceAudit / serviceConsulting / serviceWebsite
 */
.serviceDetail {
	--sat-navy: #000048;
	--sat-teal: #176B87;
	--sat-teal-light: #eaf5f7;
	--sat-coral: #E66654;
	--sat-coral-dark: #B54434;
	--sat-border: #dfe7e9;
	--sat-muted: #f7f9fa;
	--sat-text-light: #667176;
	background: #fff;
	color: #333;
	font-size: 16px;
	line-height: 1.85;
}

/* Website: purpose-specific production services */
.serviceDetail .website-purpose-nav {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin-bottom: 6rem;
	background: var(--sat-border);
	border: 1px solid var(--sat-border);
}

.serviceDetail .website-purpose-nav a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 86px;
	padding: 1rem;
	background: #fff;
	color: var(--sat-navy);
	font-weight: 700;
	line-height: 1.45;
	text-align: center;
	text-decoration: none;
}

.serviceDetail .website-purpose-nav a::after {
	content: "↓";
	margin-left: .65rem;
	color: var(--sat-coral);
}

.serviceDetail .website-purpose-list {
	display: grid;
	gap: 5rem;
}

.serviceDetail .website-purpose-service {
	padding-top: 3rem;
	border-top: 1px solid var(--sat-border);
	scroll-margin-top: 110px;
}

.serviceDetail .website-purpose-heading {
	display: flex;
	align-items: center;
	gap: 1.25rem;
}

.serviceDetail .website-purpose-heading > span {
	color: var(--sat-coral);
	font-family: var(--font-en);
	font-size: 42px;
	font-weight: 700;
	line-height: 1;
}

.serviceDetail .website-purpose-heading p {
	font-family: var(--font-en);
	font-size: 48px;
	font-weight: 700;
	line-height: 1.25;
	background: linear-gradient(to right, #ececec, #ada3a2);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	text-transform: uppercase;
}

.serviceDetail .website-purpose-heading h3 {
	margin: .25rem 0 0;
	color: var(--sat-navy);
	font-size: 24px;
	line-height: 1.4;
}

.serviceDetail .website-purpose-copy {
	font-size: 15px;
	margin-top: 3.5rem;
}

.serviceDetail .website-purpose-summary {
	margin: 1.5rem 0 2rem;
	padding: 1.5rem;
	background: var(--sat-muted);
}

.serviceDetail .website-purpose-types {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin: 0 0 0.75rem;
}

.serviceDetail .website-purpose-types h4 {
	flex: 0 0 auto;
	margin: 0;
	color: var(--sat-text-light);
	font-size: 12px;
	font-weight: 400;
}

.serviceDetail .website-purpose-types ul {
	display: flex;
	flex-wrap: wrap;
}

.serviceDetail .website-purpose-types li {
	color: var(--sat-navy);
	font-weight: 700;
	font-size: 13px;
	line-height: 1.4;
}

.serviceDetail .website-purpose-types li + li {
	border-left: 1px solid var(--sat-border);
	margin-left: 0.75rem;
	padding-left: 0.75rem;
}

.serviceDetail .website-purpose-service .worksArchive {
	margin-top: 1.5rem;
}

.serviceDetail .website-purpose-service .worksMeta {
	font-size: 12px;
}

.serviceDetail .website-purpose-meta {
	display: flex;
	align-items: flex-end;
	gap: 2rem;
	margin: 0;
}

.serviceDetail .website-purpose-meta dl {
	margin: 0;
}

.serviceDetail .website-purpose-meta dt {
	color: var(--sat-text-light);
	font-size: 12px;
}

.serviceDetail .website-purpose-meta dd {
	margin: .15rem 0 0;
	color: var(--sat-navy);
	font-weight: 700;
}

.serviceDetail .website-purpose-meta-action {
	margin-left: auto;
}

.serviceDetail .website-purpose-link {
	display: block;
	padding: .5rem 1.5rem;
	border-radius: 99em;
	background: var(--sat-navy);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.serviceDetail .website-related-services {
	margin-top: 5rem;
	padding: 1.5rem;
	background: var(--sat-muted);
}

.serviceDetail .website-related-services > p {
	margin-bottom: 1rem;
	color: var(--sat-navy);
	font-weight: 700;
	text-align: center;
	font-size: 16px;
	line-height: 1;
}

.serviceDetail .website-related-services ul {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.serviceDetail .website-related-services li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 1.25rem;
	background: #fff;
}

.serviceDetail .website-related-services li + li{
	border-left: 1px solid var(--sat-border);
}

.serviceDetail .website-related-services h3 {
	margin: 0 0 .5rem;
	color: var(--sat-navy);
	font-size: 21px;
	line-height: 1.35;
}

.serviceDetail .website-related-services li p {
	color: var(--sat-text-light);
	font-size: 13px;
	line-height: 1.7;
}

.serviceDetail .website-related-services li a {
	margin-top: auto;
	padding-top: 1rem;
	color: var(--sat-navy);
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
	align-self: flex-end;
}

.serviceDetail .sat-axis-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.serviceDetail .sat-axis-grid article {
	position: relative;
	background: transparent;
}

.serviceDetail .sat-axis-image {
	aspect-ratio: 2.5 / 1;
	overflow: hidden;
	background: var(--sat-border);
	border-radius: 12px;
}

.serviceDetail .sat-axis-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.serviceDetail .sat-axis-grid h4 {
	margin: 0.5rem 0;
	color: var(--sat-navy);
	font-size: 24px;
	line-height: 1.5;
}

.serviceDetail .sat-axis-grid p {
	color: var(--sat-text-light);
	font-size: 14px;
	line-height: 1.8;
}

.serviceDetail .sat-axis-grid p a {
	color: var(--sat-teal);
}

.serviceDetail .website-flow-duration {
	display: grid;
	grid-template-columns: repeat(6, minmax(175px, 1fr));
	gap: 0;
	overflow-x: auto;
	margin: 0 0 2rem;
	color: var(--sat-navy);
	border-radius: 99em;
}

.serviceDetail .website-flow-duration-segment {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	padding: .75rem;
	border-left: 1px solid #fff;
	background: var(--sat-teal-light);
	line-height: 1;
}

.serviceDetail .website-flow-duration-segment:first-of-type {
	border-left: 0;
}

.serviceDetail .website-flow-duration-segment strong {
	font-size: 14px;
	text-align: center;
}

.serviceDetail .website-flow-duration-segment.is-step-1-2 { grid-column: 1 / 3; }
.serviceDetail .website-flow-duration-segment.is-step-3 { grid-column: 3 / 4; }
.serviceDetail .website-flow-duration-segment.is-step-4-5 { grid-column: 4 / 6; }
.serviceDetail .website-flow-duration-segment.is-step-6 { grid-column: 6 / 7; background-color: #d9e7ff; }

.serviceDetail .website-flow-list {
	display: grid;
	grid-template-columns: repeat(6, minmax(175px, 1fr));
	gap: 0;
	overflow-x: auto;
	padding-bottom: .75rem;
}

.serviceDetail .website-flow-list > li {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 0 1rem;
	padding-left: 1rem;
	border-left: 1px solid var(--sat-border);
	background: transparent;
}

.serviceDetail .website-flow-list > li:first-child {
	border-left: 0;
	padding-left: 0;
	padding-right: 1rem;
}

.serviceDetail .website-flow-number {
	color: var(--sat-border);
	font-family: var(--font-en);
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
}

.serviceDetail .website-flow-list h3 {
	margin: .65rem 0 .5rem;
	color: var(--sat-navy);
	font-size: 22px;
}

.serviceDetail .website-flow-list > li > p {
	color: var(--sat-text-light);
	font-size: 13px;
	line-height: 1.75;
	margin-bottom: 1.5rem;
}

.serviceDetail .website-flow-related {
	margin-top: auto;
}

.serviceDetail .website-flow-related h4 {
	margin: 0 0 .4rem;
	color: var(--sat-navy);
	font-size: 11px;
	font-weight: 700;
}

.serviceDetail .website-flow-service {
	padding: .5em .75em;
	border-radius: 4px;
	background: var(--sat-navy);
	color: #fff;
	font-size: 12px;
	line-height: 1.35;
	text-decoration: none;
}

.serviceDetail .website-flow-service::after {
	content: none;
}

.serviceDetail .website-flow-services {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem 1rem;
	margin-top: 0;
}

.serviceDetail .website-flow-services .website-flow-service {
	margin-top: 0;
}

.serviceRenewal .sat-hero-title-main {
	font-size: clamp(40px, 4.2vw, 58px);
}

.serviceRenewal .sat-option-grid .renewal-option-other {
	border-color: var(--sat-coral);
}

@media (max-width: 700px) {
	.serviceDetail .website-purpose-nav {
		grid-template-columns: 1fr;
	}

	.serviceDetail .website-purpose-list {
		gap: 3rem;
	}

	.serviceDetail .website-purpose-summary {
		padding: 1.15rem;
	}

	.serviceDetail .website-purpose-heading > span {
		font-size: 34px;
	}

	.serviceDetail .website-purpose-heading {
		align-items: flex-start;
		flex-wrap: wrap;
		gap: .5rem 1rem;
	}

	.serviceDetail .website-purpose-heading p {
		width: 100%;
		font-size: clamp(28px, 11vw, 42px);
	}

	.serviceDetail .website-purpose-heading h3 {
		font-size: 21px;
	}

	.serviceDetail .website-purpose-types {
		align-items: flex-start;
		flex-direction: column;
		gap: .6rem;
	}

	.serviceDetail .website-purpose-meta {
		align-items: stretch;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 1rem;
	}

	.serviceDetail .website-purpose-meta-action {
		flex-basis: 100%;
		margin-left: 0;
	}

	.serviceDetail .website-purpose-link {
		box-sizing: border-box;
		width: 100%;
	}

	.serviceDetail .website-related-services ul {
		grid-template-columns: 1fr;
	}

	.serviceDetail .website-related-services li + li {
		border-top: 1px solid var(--sat-border);
		border-left: 0;
	}

	.serviceDetail .sat-axis-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.serviceDetail .website-flow-list {
		margin-right: -1.4rem;
		padding-right: 1.4rem;
	}

	.serviceDetail .website-flow-duration {
		margin-right: -1.4rem;
		padding-right: 1.4rem;
	}
}

.serviceDetail p {
	margin: 0;
	line-height: 1.9;
}

.serviceDetail p+p {
	margin-top: 1rem;
}

.serviceDetail a {
	color: inherit;
}

.serviceDetail .sat-section {
	margin: 0;
	padding: 6.5rem 0;
	scroll-margin-top: 110px;
}

.serviceDetail .sat-section.is-muted {
	background: var(--sat-muted);
}

.serviceDetail .sat-section.is-dark {
	background: var(--sat-navy);
	background-image: url(./images/bg_03.jpg);
	background-blend-mode: exclusion;
	background-size: cover;
	color: #fff;
}

.serviceDetail .sat-title {
	position: relative;
	margin: 0 0 2.5rem;
	color: var(--sat-navy);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: .03em;
	text-align: center;
}

.serviceDetail .sat-title::after {
	content: "";
	display: block;
	width: 1px;
	margin: 0.5em auto;
	height: 1.35em;
	background-color: var(--sat-border);
}

.serviceDetail .is-dark .sat-title {
	color: #fff;
}

.serviceDetail .sat-lead {
	margin: 0 0 2.5rem;
	text-align: center;
}

.serviceDetail .sat-grid-2,
.serviceDetail .sat-grid-3 {
	display: grid;
	gap: 1.4rem;
}

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

.serviceDetail .sat-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.serviceDetail .sat-card {
	padding: 1.8rem;
	border: 1px solid var(--sat-border);
	border-radius: 12px;
	background: #fff;
}

.serviceDetail .sat-card h4 {
	margin: 0 0 0.35rem;
	color: var(--sat-navy);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.35;
}

.serviceDetail .sat-checks {
	display: grid;
	gap: .7rem;
}

.serviceDetail .sat-checks li {
	position: relative;
	padding-left: 1.5em;
	line-height: 1.7;
}

.serviceDetail .sat-checks li::before {
	content: "";
	position: absolute;
	left: 0.3em;
	top: 0.5em;
	width: 0.5em;
	height: 0.5em;
	background-color: var(--sat-coral);
	border-radius: 99em;
	transform: translateY(25%);
}

.serviceDetail .sat-checks li.blue::before {
	background-color: var(--sat-teal);
}

.serviceDetail .sat-note {
	margin-top: 1.5rem;
	padding: 0.75rem 1.25rem;
	background: #e2e2e2;
	font-size: 13px;
}

.serviceDetail .sat-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	padding: 1rem 1.8rem;
	border-radius: 999px;
	background: var(--sat-coral);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 10px 24px rgba(181, 68, 52, .18);
}

.serviceDetail .sat-button::after {
	content: "→";
	margin-left: .75rem;
}

/* Hero */
.serviceDetail .sat-hero {
	position: relative;
	overflow: hidden;
	margin: 0;
	padding: 5.5rem 0;
	background: #FBFBFB;
}

.serviceDetail .sat-hero-layout {
	position: relative;
	display: grid;
	grid-template-columns: auto 45%;
	align-items: center;
	gap: 4rem;
}

.serviceDetail .sat-hero h1 {
	margin: 0 0 0.5rem;
	color: var(--sat-navy);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: .02em;
}

.serviceDetail .sat-hero-title-sub {
	display: block;
	font-size: 20px;
}

.serviceDetail .sat-hero-title-main {
	display: block;
	font-size: 58px;
}

.serviceDetail .sat-hero-title-main i {
	font-style: normal;
	margin-inline: -0.2em;
}

.serviceDetail .sat-hero-copy {
	margin: 0;
	color: var(--sat-teal);
	font-size: 18px;
	font-weight: 700;
}

.serviceDetail .sat-badges {
	display: flex;
	gap: 1rem;
	margin: 1rem 0 2rem;
}

.serviceDetail .sat-badges li {
	border-radius: 100%;
	font-size: 13px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	height: 8rem;
	flex-basis: 8rem;
	line-height: 1.35;
	background: #fff;
	border: 1px solid transparent;
	background-image: linear-gradient(#fff, #fff), linear-gradient(135deg, #7FB5FF, var(--sat-coral));
	background-origin: border-box;
	background-clip: padding-box, border-box;
	color: var(--sat-text-light);
}

.serviceDetail .sat-badges li span {
	font-family: var(--font-en);
	font-size: 1.5em;
	font-weight: 700;
	color: var(--sat-navy);
}

.serviceDetail .sat-hero-text {
	margin: 0;
	font-size: 15px;
}

.serviceDetail .sat-hero-image img {
	width: 100%;
	border-radius: 16px;
}

.serviceDetail .sat-hero-cta {
	color: var(--sat-coral);
	font-weight: 700;
}

/* Problems / features */
.serviceDetail .sat-problem-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.serviceDetail .sat-problem-grid li {
	position: relative;
	padding: 1.25rem;
	border-radius: 10px;
	background: #fff;
	font-weight: 700;
	text-align: center;
}

.serviceDetail .sat-problem-grid li b {
	color: var(--sat-coral);
}

.serviceDetail .sat-feature-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

.serviceDetail .sat-feature-card {
	display: grid;
	grid-template-columns: 34% 1fr;
	overflow: hidden;
	padding: 0;
	border: 1px solid var(--sat-border);
	border-radius: 14px;
	background: #fff;
}

.serviceDetail .sat-feature-image {
	overflow: hidden;
	border-right: 1px solid var(--sat-border);
	background: var(--sat-muted);
	position: relative;
}

.serviceDetail .sat-feature-image img {
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	object-fit: cover;
}

.serviceDetail .sat-feature-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 2rem 2.25rem;
}

.serviceDetail .sat-feature-content h3 {
	margin: 0 0 .5rem;
	color: var(--sat-navy);
	font-size: 24px;
}

.serviceDetail .sat-feature-content p {
	font-size: 14px;
}

/* SEO / AI performance */
.serviceDetail .sat-performance .sat-lead {
	color: #e4e8f4;
}

.serviceDetail .sat-performance-heading {
	margin: 0 0 0.5rem;
	color: #fff;
	font-size: 16px;
	font-weight: 400;
}

.serviceDetail .sat-performance-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .8rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.serviceDetail .sat-performance-list>li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.5rem;
	border-radius: 99em;
	background: #fff;
	color: var(--sat-navy);
	line-height: 1.35;
}

.serviceDetail .sat-performance-badges {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: .4rem;
	font-weight: 700;
}

.serviceDetail .sat-performance-badges b,
.serviceDetail .sat-performance-badges em {
	display: inline-block;
	padding: .25rem .55rem;
	border-radius: 999px;
	font-size: 12px;
	font-style: normal;
	line-height: 1.4;
}

.serviceDetail .sat-performance-badges b {
	background: var(--sat-coral);
	color: #fff;
}

.serviceDetail .sat-performance-badges em {
	background: var(--sat-teal-light);
	color: var(--sat-teal);
}

.serviceDetail .sat-performance-note {
	margin-top: 1.3rem;
	color: #cfd5ef;
	font-size: 12px;
	line-height: 1.8;
}

/* Plans */
.serviceDetail .sat-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 2.2rem;
	border: 2px solid var(--sat-border);
	border-radius: 16px;
	background: #fff;
}

.serviceDetail .sat-plan.is-recommended {
	border-color: var(--sat-coral);
}

.serviceDetail .sat-plan-badge {
	position: absolute;
	top: -15px;
	right: 18px;
	padding: .35rem .9rem;
	border-radius: 999px;
	background: var(--sat-coral);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
}

.serviceDetail .sat-plan-role {
	margin-bottom: .5rem;
	color: var(--sat-teal);
	font-weight: 700;
}

.serviceDetail .sat-plan h3 {
	margin: 0;
	color: var(--sat-navy);
	font-size: 26px;
	line-height: 1.45;
}

.serviceDetail .sat-price {
	margin: 1.2rem 0 1.5rem !important;
	color: var(--sat-navy);
	font-weight: 700;
	border-bottom: 1px solid var(--sat-border);
	padding-bottom: 1.5rem;
}

.serviceDetail .sat-price b {
	font-family: var(--font-en);
	font-size: 3em;
	line-height: 1;
	margin-right: 2px;
}

.serviceDetail .sat-price span {
	font-size: 0.75em;
}

.serviceDetail .sat-plan .sat-checks {
	margin-bottom: 1.5rem;
}

.serviceDetail .sat-plan-features {
	display: grid;
	gap: 1.2rem;
	margin-bottom: 1.5rem;
}

.serviceDetail .sat-plan-feature h4 {
	margin: 0 0 .7rem;
	color: var(--sat-teal);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.5;
}

.serviceDetail .sat-plan-features .sat-checks {
	display: flex;
	flex-direction: column;
	gap: .55rem;
	margin-bottom: 0;
}

.serviceDetail .sat-plan-foot {
	margin-top: auto;
	padding-top: 1.2rem;
	border-top: 1px solid var(--sat-border);
	font-size: 14px;
}

/* Accordion */
.serviceDetail .sat-details-list {
	display: grid;
	gap: .85rem;
}

.serviceDetail .sat-details {
	border: 1px solid var(--sat-border);
	border-radius: 10px;
	background: #fff;
}

.serviceDetail .sat-details summary {
	display: flex;
	gap: 1rem;
	align-items: baseline;
	padding: 1.2rem;
	color: var(--sat-navy);
	font-size: 18px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
	line-height: 1.5;
}

.serviceDetail .sat-details summary::before {
	content: "Q";
	background-color: var(--sat-teal);
	font-family: var(--font-en);
	flex-basis: 1.5em;
	flex-shrink: 0;
	line-height: 1.5;
	color: #fff;
	border-radius: 100%;
	text-align: center;
}

.serviceDetail .sat-details summary::-webkit-details-marker {
	display: none;
}

.serviceDetail .sat-details summary::after {
	content: "+";
	color: var(--sat-teal);
	font-size: 1em;
	flex-shrink: 0;
	margin-left: auto;
	transform: scale(1.35);
}

.serviceDetail .sat-details[open] summary::after {
	content: "−";
}

.serviceDetail .sat-details-body {
	padding: 0 1.3rem 1.3rem;
}

.serviceDetail .sat-details-body p {
	font-size: 15px;
}

.serviceDetail .sat-details-body a {
	color: var(--sat-teal);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: .2em;
}

.serviceDetail .sat-details-body .sat-checks {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Diagnosis inventory */
.serviceDetail .sat-plan-details {
	margin-top: 3.5rem;
}

.serviceDetail .sat-related-cta {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: .65rem 2rem;
	align-items: center;
	margin-top: 2.5rem;
	padding: 2rem 2.25rem;
	border: 1px solid var(--sat-navy);
	border-radius: 12px;
	background-color: #fff;
}

.serviceDetail .sat-related-cta h3,
.serviceDetail .sat-related-cta p {
	grid-column: 1;
	margin: 0;
}

.serviceDetail .sat-related-cta h3 {
	color: var(--sat-navy);
	font-size: 22px;
	line-height: 1.5;
}

.serviceDetail .sat-related-cta p {
	max-width: 760px;
	font-size: 14px;
	line-height: 1.8;
}

.serviceDetail .sat-related-cta-button {
	grid-column: 2;
	grid-row: 1 / 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .65rem;
	min-width: 245px;
	padding: 1rem 1.4rem;
	border-radius: 999px;
	background: var(--sat-teal);
	color: #fff;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
}

.serviceDetail .sat-related-cta-button:hover {
	opacity: .82;
}

.serviceDetail .sat-plan-legend {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem 1.5rem;
	margin: 0 0 1rem;
	font-size: 13px;
}

.serviceDetail .sat-plan-legend li {
	line-height: 1.6;
}

.serviceDetail .sat-plan-details-title {
	margin: 0 0 1.5rem;
	color: var(--sat-navy);
	font-size: 26px;
	font-weight: 900;
	line-height: 1.5;
}

.serviceDetail .sat-diagnosis-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
}

.serviceDetail .sat-diagnosis-block {
	display: flex;
	gap: 1rem;
	min-width: 0;
	flex-direction: column;
	padding: 1.75rem;
	border-radius: 10px;
	background: #fff;
}

.serviceDetail .sat-diagnosis-block > h3 {
	margin: 0;
	color: var(--sat-navy);
	font-size: 20px;
	line-height: 1.5;
}

.serviceDetail .sat-diagnosis-group {
	border-top: 1px solid #e7edef;
	padding-top: 1rem;
}

.serviceDetail .sat-diagnosis-group h4 {
	margin: 0 0 .7rem;
	color: var(--sat-navy);
	font-size: 16px;
	line-height: 1.5;
}

.serviceDetail .sat-diagnosis-group .sat-checks {
	display: flex;
	flex-direction: column;
	gap: .55rem;
	font-size: 13px;
}

.serviceDetail .sat-diagnosis-group .sat-checks li {
	line-height: 1.55;
}

/* Results / features */
.serviceDetail .sat-result-num {
	display: block;
	font-family: var(--font-en);
	font-size: 48px;
	line-height: 1;
	font-weight: 700;
	color: var(--sat-coral);
}

/* Profile */
.serviceDetail .sat-profile {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	gap: 3rem;
	align-items: start;
}

.serviceDetail .sat-profile-photo img {
	width: 100%;
	border-radius: 12px;
}

.serviceDetail .sat-profile-name {
	margin: 1rem 0 1.4rem !important;
	color: var(--sat-navy);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.5;
	text-align: center;
}

.serviceDetail .sat-profile-name span {
	display: block;
	font-size: 0.65em;
}

.serviceDetail .sat-profile-stats {
	display: grid;
	gap: .7rem;
}

/* S */
.serviceDetail .sat-profile-stats li {
	padding: 1.25rem;
	border-radius: 12px;
	background: #fff;
	text-align: center;
	border: 1px solid var(--sat-border);
}

.serviceDetail .sat-profile-stats b {
	display: block;
	color: var(--sat-navy);
	font-size: 1.05rem;
	line-height: 1.2;
}

.serviceDetail .sat-profile-stats span {
	margin-right: 0.08em;
	color: var(--sat-coral);
	font-family: var(--font-en);
	font-size: 2em;
	font-weight: 700;
	line-height: 1;
}

.serviceDetail .sat-profile .topicTitle {
	margin-bottom: 1rem;
}

.serviceDetail .sat-quote {
	margin: 1.6rem 0;
	padding: 1.5rem;
	border-radius: 10px;
	background: var(--sat-teal-light);
}

.serviceDetail .sat-quote h3 {
	margin: 0 0 .7rem;
	color: var(--sat-navy);
	font-size: 21px;
}

.serviceDetail .sat-profile-table {
	width: 100%;
	margin-top: 1.5rem;
}

.serviceDetail .sat-profile-table th,
.serviceDetail .sat-profile-table td {
	padding: 1rem;
	border: 1px solid var(--sat-border);
	text-align: left;
	vertical-align: top;
}

.serviceDetail .sat-profile-table th {
	width: 130px;
	background: #f2f7f8;
	color: var(--sat-navy);
	letter-spacing: 0.1em;
	font-size: 14px;
	font-weight: 400;
}

/* Flow */
.serviceDetail .sat-flow {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.2rem;
	counter-reset: sat-flow;
}

.serviceDetail .sat-flow>li {
	position: relative;
	display: grid;
	grid-template-columns: 74px minmax(0, 1fr);
	column-gap: 1.4rem;
	padding: 1.7rem 2rem;
	border: 1px solid var(--sat-border);
	border-radius: 12px;
	background: #fff;
	counter-increment: sat-flow;
}

.serviceDetail .sat-flow>li::before {
	content: "0" counter(sat-flow);
	grid-column: 1;
	grid-row: 1 / span 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: var(--sat-muted);
	color: var(--sat-teal);
	font-family: var(--font-en);
	font-size: 32px;
	font-weight: 700;
}

.serviceDetail .sat-flow>li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 60px;
	bottom: -1.25rem;
	width: 2px;
	height: 1.25rem;
	background: var(--sat-border);
}

.serviceDetail .sat-flow>li>h3 {
	grid-column: 2;
	margin: 0 0 .45rem;
	color: var(--sat-navy);
	font-size: 20px;
}

.serviceDetail .sat-flow>li>p {
	grid-column: 2;
}

/* CTA */
.serviceDetail .sat-cta {
	text-align: center;
}

.serviceDetail .sat-cta .sat-title {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.serviceDetail .sat-cta .sat-title::after {
	left: 50%;
	transform: translateX(-50%);
}

.serviceDetail .sat-cta p {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.serviceDetail .sat-cta .sat-button {
	margin-top: 1.8rem;
}

@media screen and (max-width: 1024px) {
	.serviceDetail .website-related-services ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.serviceDetail .website-related-services li:nth-child(odd) {
		border-left: 0;
	}

	.serviceDetail .website-related-services li:nth-child(n+3) {
		border-top: 1px solid var(--sat-border);
	}

	.serviceDetail .website-flow-duration {
		display: none;
	}

	.serviceDetail .website-flow-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		overflow-x: visible;
	}

	.serviceDetail .website-flow-duration-segment.is-step-1-2 {
		grid-column: 1 / 3;
	}

	.serviceDetail .website-flow-duration-segment.is-step-3 {
		grid-column: 3 / 4;
	}

	.serviceDetail .website-flow-duration-segment.is-step-4-5 {
		grid-column: 1 / 3;
	}

	.serviceDetail .website-flow-duration-segment.is-step-6 {
		grid-column: 3 / 4;
	}

	.serviceDetail .website-flow-list > li:nth-child(4) {
		border-left: 0;
	}

	.serviceDetail .website-flow-list > li:nth-child(n+4) {
		margin-top: 2.5rem;
	}

	.serviceDetail .sat-hero-layout {
		grid-template-columns: minmax(0, 1fr) 40%;
		gap: 2.5rem;
	}

	.serviceDetail .sat-hero-title-main {
		font-size: 48px;
	}

	.serviceDetail .sat-diagnosis-block {
		padding: 1.4rem;
	}
}

@media screen and (max-width: 768px) {
	.serviceDetail .website-purpose-types ul {
		gap: .5rem;
	}

	.serviceDetail .website-purpose-types li,
	.serviceDetail .website-purpose-types li + li {
		margin-left: 0;
		padding: .45rem .65rem;
		border: 1px solid var(--sat-border);
		border-radius: 4px;
	}

	.serviceDetail .website-related-services ul,
	.serviceDetail .website-flow-duration,
	.serviceDetail .website-flow-list {
		grid-template-columns: 1fr;
	}

	.serviceDetail .website-related-services li + li {
		border-top: 1px solid var(--sat-border);
		border-left: 0;
	}

	.serviceDetail .website-flow-duration {
		gap: .4rem;
		margin-right: 0;
		padding-right: 0;
		border-radius: 0;
	}

	.serviceDetail .website-flow-list {
		margin-right: 0;
		padding-right: 0;
	}

	.serviceDetail .website-flow-duration-segment.is-step-1-2,
	.serviceDetail .website-flow-duration-segment.is-step-3,
	.serviceDetail .website-flow-duration-segment.is-step-4-5,
	.serviceDetail .website-flow-duration-segment.is-step-6 {
		grid-column: 1;
		border-left: 0;
		border-radius: 999px;
	}

	.serviceDetail .website-flow-list > li,
	.serviceDetail .website-flow-list > li:first-child,
	.serviceDetail .website-flow-list > li:nth-child(4) {
		padding: 1.5rem 0;
		border-top: 1px solid var(--sat-border);
		border-left: 0;
	}

	.serviceDetail .website-flow-list > li:first-child {
		padding-top: 0;
		border-top: 0;
	}

	.serviceDetail .website-flow-list > li:nth-child(n+4) {
		margin-top: 0;
	}

	.serviceDetail .sat-section {
		padding: 4.5rem 0;
	}

	.serviceDetail .sat-title {
		font-size: 26px;
	}

	.serviceDetail .sat-hero {
		padding: 4rem 0;
	}

	.serviceDetail .sat-hero-layout,
	.serviceDetail .sat-profile {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.serviceDetail .sat-hero-title-sub {
		font-size: 21px;
	}

	.serviceDetail .sat-hero-title-main {
		font-size: clamp(40px, 8vw, 48px);
	}

	.serviceDetail .sat-hero-image {
		max-width: 520px;
		margin: 0 auto;
	}

	.serviceDetail .sat-grid-2 {
		grid-template-columns: 1fr;
	}

	.serviceDetail .sat-grid-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.serviceDetail .sat-problem-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.serviceDetail .sat-feature-card {
		grid-template-columns: 38% 1fr;
	}

	.serviceDetail .sat-feature-content {
		padding: 1.6rem 1.7rem;
	}

	.serviceDetail .sat-feature-content h3 {
		font-size: 20px;
	}

	.serviceDetail .sat-performance-list {
		grid-template-columns: 1fr;
	}

	.serviceDetail .sat-diagnosis-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.serviceDetail .sat-profile-photo {
		max-width: 320px;
		margin: auto;
	}

	.serviceDetail .sat-details summary {
		font-size: 17px;
	}

	.serviceDetail .sat-related-cta {
		grid-template-columns: 1fr;
		padding: 1.6rem;
	}

	.serviceDetail .sat-related-cta h3,
	.serviceDetail .sat-related-cta p,
	.serviceDetail .sat-related-cta-button {
		grid-column: 1;
		grid-row: auto;
	}

	.serviceDetail .sat-related-cta-button {
		width: 100%;
		min-width: 0;
		margin-top: .35rem;
	}
	.serviceDetail .website-purpose-nav a {
		min-height: 72px;
		font-size: 13px;
	}
}

@media screen and (max-width: 516px) {
	.serviceDetail {
		font-size: 15px;
	}

	.serviceDetail .sat-section {
		padding: 3.8rem 0;
	}

	.serviceDetail .sat-title {
		margin-bottom: 2rem;
		font-size: 23px;
	}

	.serviceDetail .sat-lead {
		font-size: 15px;
		text-align: left;
	}

	.serviceDetail .sat-hero {
		padding: 3rem 0;
	}

	.serviceDetail .sat-hero-title-sub {
		font-size: 17px;
	}

	.serviceDetail .sat-hero-title-main {
		font-size: 40px;
	}

	.serviceDetail .sat-hero-copy {
		font-size: 18px;
	}

	.serviceDetail .sat-badges {
		gap: .45rem;
		justify-content: center;
	}

	.serviceDetail .sat-badges li {
		flex: 0 1 6rem;
		width: 6rem;
		height: 6rem;
		font-size: 11px;
	}

	.serviceDetail .sat-grid-2,
	.serviceDetail .sat-grid-3 {
		grid-template-columns: 1fr;
	}

	.serviceDetail .sat-problem-grid {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}

	.serviceDetail .sat-problem-grid li {
		padding: 1em 0.5em;
		font-size: 13px;
	}

	.serviceDetail .sat-feature-card {
		grid-template-columns: 1fr;
	}

	.serviceDetail .sat-feature-image {
		border: 0;
		aspect-ratio: 2 / 1;
	}

	.serviceDetail .sat-feature-content {
		padding: 1.4rem;
	}

	.serviceDetail .sat-performance-list>li {
		padding: .9rem;
	}

	.serviceDetail .sat-card,
	.serviceDetail .sat-plan {
		padding: 1.4rem;
	}

	.serviceDetail .sat-plan h3 {
		font-size: 23px;
	}

	.serviceDetail .sat-price b {
		font-size: 40px;
	}

	.serviceDetail .sat-button {
		box-sizing: border-box;
		min-width: 0;
		width: 100%;
	}

	.serviceDetail .sat-diagnosis-list {
		gap: 1rem;
	}

	.serviceDetail .sat-diagnosis-block > h3 {
		font-size: 18px;
		line-height: 1.55;
	}

	.serviceDetail .sat-diagnosis-block {
		padding: 1rem;
	}

	.serviceDetail .sat-diagnosis-block > .sat-checks,
	.serviceDetail .sat-details-body .sat-checks {
		grid-template-columns: 1fr;
	}

	.serviceDetail .sat-plan-details {
		margin-top: 2.5rem;
	}

	.serviceDetail .sat-plan-details-title {
		margin-bottom: 1.1rem;
		font-size: 22px;
	}

	.serviceDetail .sat-diagnosis-list {
		grid-template-columns: 1fr;
	}

	.serviceDetail .sat-profile-photo {
		max-width: 240px;
	}

	.serviceDetail .sat-profile-table th,
	.serviceDetail .sat-profile-table td {
		padding: .8rem;
	}

	.serviceDetail .sat-details summary {
		padding: 1rem;
		font-size: 15px;
	}

	.serviceDetail .sat-details-body {
		padding: 0 1rem 1rem;
	}

	.serviceDetail .sat-flow>li {
		grid-template-columns: 48px minmax(0, 1fr);
		column-gap: .8rem;
		padding: 1.2rem 1rem;
	}

	.serviceDetail .sat-flow>li::before {
		width: 42px;
		height: 42px;
		font-size: 15px;
	}

	.serviceDetail .sat-flow>li:not(:last-child)::after {
		left: 36px;
	}

	.serviceDetail .sat-flow>li>h3 {
		font-size: 18px;
	}

	.serviceDetail .sat-profile-table,
	.serviceDetail .sat-profile-table tbody,
	.serviceDetail .sat-profile-table tr,
	.serviceDetail .sat-profile-table th,
	.serviceDetail .sat-profile-table td {
		box-sizing: border-box;
		display: block;
		width: 100%;
	}
}


/* Web集客顧問固有のコンポーネント */

.serviceDetail .sat-price small {
	margin-right: .5rem;
	font-size: 13px;
	font-weight: 700;
}

.serviceDetail .consulting-case-list {
	display: grid;
	gap: 1.5rem;
}

.serviceDetail .consulting-case {
	padding: 0;
	overflow: hidden;
}

.serviceDetail .consulting-case-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	padding: 1.8rem 2rem;
	border-bottom: 1px solid var(--sat-border);
	background: var(--sat-muted);
}

.serviceDetail .consulting-case-heading h3 {
	margin: .25rem 0 0;
	font-size: 25px;
}

.serviceDetail .consulting-case-heading > p {
	max-width: 480px;
	font-size: 14px;
	text-align: right;
}

.serviceDetail .consulting-case-category {
	background: var(--sat-teal);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	font-family: var(--font-en);
	padding: 0.35em 0.75em;
	border-radius: 4px;
	display: block;
	width: fit-content;
	line-height: 1;
}

.serviceDetail .consulting-case-body {
	padding: 2rem;
}

.serviceDetail .consulting-case-metrics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	border: 1px solid var(--sat-coral);
	border-radius: 8px;
}

.serviceDetail .consulting-case-metric:nth-child(n+2)::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.5rem;
	bottom: 1.5rem;
	width: 1px;
	background-color: var(--sat-border);
}

.serviceDetail .consulting-case-metric {
	padding: 1.3rem 1.4rem;
	text-align: center;
	position: relative;
}

.serviceDetail .consulting-case-metric > span {
	display: block;
	font-size: 13px;
	font-weight: 700;
}

.serviceDetail .consulting-case-metric > small {
	display: block;
	color: var(--sat-text-light);
	font-size: 12px;
}

.serviceDetail .consulting-case-metric strong {
	display: block;
	color: var(--sat-navy);
	font-size: 20px;
	line-height: 1.35;
}

.serviceDetail .consulting-case-metric strong b {
	font-family: var(--font-en);
	color: var(--sat-coral);
	font-size: 2em;
}

.serviceDetail .consulting-case-detail {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: 2rem;
	align-items: center;
	margin-top: 2rem;
}

.serviceDetail .consulting-case-bars {
	display: grid;
	gap: 1rem;
	padding: 1.5rem;
	border-radius: 10px;
	background: var(--sat-muted);
}

.serviceDetail .consulting-case-bars > div {
	display: grid;
	grid-template-columns: 4em 1fr 5.5em;
	gap: .8rem;
	align-items: center;
	font-size: 13px;
}

.serviceDetail .consulting-case-bars i {
	display: block;
	width: var(--bar-size);
	height: 18px;
	border-radius: 999px;
	background: #b8c8cd;
}

.serviceDetail .consulting-case-bars > div:last-child i {
	background: linear-gradient(90deg, var(--sat-teal), #2588a3);
}

.serviceDetail .consulting-case-bars b {
	color: var(--sat-navy);
	text-align: right;
	white-space: nowrap;
}

.serviceDetail .consulting-case-months {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: .5rem;
	padding: 1.5rem;
	border-radius: 10px;
	background: var(--sat-muted);
}

.serviceDetail .consulting-case-months-label {
	grid-column: 1 / -1;
	margin: 0 0 .25rem;
	color: var(--sat-navy);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .04em;
}

.serviceDetail .consulting-case-months > div {
	padding: .8rem .3rem;
	border-radius: 7px;
	background: #fff;
	text-align: center;
}

.serviceDetail .consulting-case-months span,
.serviceDetail .consulting-case-months b {
	display: block;
}

.serviceDetail .consulting-case-months span {
	color: var(--sat-text-light);
	font-size: 11px;
}

.serviceDetail .consulting-case-months b {
	color: var(--sat-navy);
	font-size: 15px;
}

.serviceDetail .consulting-case-months .is-strong {
	background: var(--sat-coral);
}

.serviceDetail .consulting-case-months .is-strong span,
.serviceDetail .consulting-case-months .is-strong b {
	color: #fff;
}

.serviceDetail .consulting-plan-etc {
	color: var(--sat-text-light);
	font-size: 13px;
	margin-left: 0.5rem;
}

.serviceDetail .consulting-cycle-lead {
	max-width: 880px;
	margin-right: auto;
	margin-left: auto;
}

.serviceDetail .consulting-phase-grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.serviceDetail .consulting-phase-card {
	position: relative;
	padding: 1.8rem;
	border: 1px solid var(--sat-teal);
	border-radius: 6px;
	background: #fff;
}

.serviceDetail .consulting-phase-card:nth-of-type(1) {
	grid-column: 1;
	grid-row: 1;
	border-top-left-radius: 64px;
}

.serviceDetail .consulting-phase-card:nth-of-type(2) {
	grid-column: 2;
	grid-row: 1;
	border-top-right-radius: 64px;
}

.serviceDetail .consulting-phase-card:nth-of-type(3) {
	grid-column: 2;
	grid-row: 2;
	border-bottom-right-radius: 64px;
}

.serviceDetail .consulting-phase-card:nth-of-type(4) {
	grid-column: 1;
	grid-row: 2;
	border-bottom-left-radius: 64px;
}

.serviceDetail .consulting-phase-card::after {
	content: "";
	position: absolute;
	display: block;
	width: 0;
	height: 0;
	background: none;
	border-top: 16px solid transparent;
	border-bottom: 16px solid transparent;
	border-left: 14px solid var(--sat-teal);
}

.serviceDetail .consulting-phase-card:nth-of-type(1)::after {
	top: 50%;
	right: -.5rem;
	transform: translate(50%, -50%);
}

.serviceDetail .consulting-phase-card:nth-of-type(2)::after {
	right: 50%;
	bottom: -.5rem;
	transform: translate(50%, 50%) rotate(90deg);
}

.serviceDetail .consulting-phase-card:nth-of-type(3)::after {
	top: 50%;
	left: -.5rem;
	transform: translate(-50%, -50%) rotate(180deg);
}

.serviceDetail .consulting-phase-card:nth-of-type(4)::after {
	top: -.5rem;
	left: 50%;
	transform: translate(-50%, -50%) rotate(-90deg);
}

.serviceDetail .consulting-phase-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.serviceDetail .consulting-phase-head span {
	color: var(--sat-teal);
	font-family: var(--font-en);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.serviceDetail .consulting-phase-head span i {
	font-style: normal;
	font-size: 2em;
	letter-spacing: 0;
}

.serviceDetail .consulting-phase-head b {
	padding: .25rem .75rem;
	border-radius: 999px;
	background: var(--sat-teal-light);
	color: var(--sat-teal);
	font-size: 13px;
}

.serviceDetail .consulting-phase-card h3 {
	margin: 0 0 .7rem;
	color: var(--sat-navy);
	font-size: 24px;
	line-height: 1.55;
}

.serviceDetail .consulting-phase-card > p {
	font-size: 14px;
}

.serviceDetail .consulting-phase-card .sat-checks {
	margin-top: 1.2rem;
	padding-top: 1.2rem;
	border-top: 1px solid var(--sat-border);
	font-size: 13px;
}

.serviceDetail .consulting-cycle-center {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 3;
	width: 100px;
	height: 100px;
	place-content: center;
	border-radius: 100%;
	background: var(--sat-teal);
	color: #fff;
	text-align: center;
	transform: translate(-50%, -50%);
}

.serviceDetail .consulting-cycle-center strong {
	line-height: 1.35;
	display: block;
}

.serviceDetail .consulting-effect-box {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
	gap: 2rem;
	margin-top: 2rem;
	padding: 2rem;
	border: 1px solid var(--sat-border);
	border-radius: 12px;
	background: var(--sat-muted);
}

.serviceDetail .consulting-effect-copy > span {
	display: block;
	margin-bottom: .35rem;
	color: var(--sat-teal);
	font-family: var(--font-en);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.serviceDetail .consulting-effect-copy h3,
.serviceDetail .consulting-effect-reason h4 {
	margin: 0 0 .7rem;
	color: var(--sat-navy);
}

.serviceDetail .consulting-effect-copy h3 {
	font-size: 22px;
}

.serviceDetail .consulting-effect-copy strong {
	color: var(--sat-coral-dark);
}

.serviceDetail .consulting-effect-reason {
	padding-left: 2rem;
	border-left: 1px solid var(--sat-border);
}

.serviceDetail .consulting-effect-reason h4 {
	font-size: 17px;
}

.serviceDetail .consulting-effect-reason .sat-checks {
	font-size: 13px;
}

.serviceDetail .sat-group-title {
	margin: 1.5rem 0 1rem;
	color: var(--sat-navy);
	font-size: 20px;
	font-weight: 900;
}

.serviceDetail .sat-grid-3.sat-option-grid {
	gap: 0.5rem;
}

.serviceDetail .sat-option-grid .sat-card {
	display: flex;
	flex-direction: column;
	border-radius: 8px;
	padding: 1.25rem;
}

.serviceDetail .sat-option-grid .sat-card p {
	font-size: 14px;
	color: var(--sat-text-light);
}

.serviceDetail .sat-option-grid .sat-card > b {
	margin-top: auto;
	padding-top: 0.5em;
	font-weight: 400;
	font-family: var(--font-en);
	text-align: right;
	line-height: 1;
}

.serviceDetail .sat-option-grid .sat-card > b a {
	text-decoration: underline;
}

@media (max-width: 1000px) {
	.serviceDetail .consulting-case-detail {
		grid-template-columns: 1fr;
	}

	.serviceDetail .consulting-case-heading {
		display: block;
		padding: 1.4rem;
	}

	.serviceDetail .consulting-case-heading > p {
		margin-top: .6rem;
		text-align: left;
	}

}

@media (max-width: 700px) {
	.serviceDetail .sat-option-grid .sat-card {
		min-height: 0;
	}

	.serviceDetail .consulting-case-body {
		padding: 1.4rem;
	}

	.serviceDetail .consulting-case-metrics {
		grid-template-columns: 1fr;
	}

	.serviceDetail .consulting-case-metric:nth-child(n+2) {
		border-top: 1px solid var(--sat-border);
	}

	.serviceDetail .consulting-case-metric:nth-child(n+2)::before {
		display: none;
	}

	.serviceDetail .consulting-case-detail {
		gap: 1.4rem;
	}

	.serviceDetail .consulting-case-months {
		grid-template-columns: repeat(5, minmax(58px, 1fr));
		overflow-x: auto;
		padding: 1rem;
	}

	.serviceDetail .consulting-effect-box {
		grid-template-columns: 1fr;
	}

	.serviceDetail .consulting-phase-grid {
		grid-template-columns: 1fr;
		gap: 1.8rem;
	}

	.serviceDetail .consulting-cycle-center {
		display: none;
	}

	.serviceDetail .consulting-phase-card {
		min-height: 0;
		border-radius: 10px;
	}

	.serviceDetail .consulting-phase-card:nth-of-type(1) {
		grid-column: 1;
		grid-row: 2;
		border-radius: 10px;
	}

	.serviceDetail .consulting-phase-card:nth-of-type(2) {
		grid-column: 1;
		grid-row: 3;
		border-radius: 10px;
	}

	.serviceDetail .consulting-phase-card:nth-of-type(3) {
		grid-column: 1;
		grid-row: 4;
		border-radius: 10px;
	}

	.serviceDetail .consulting-phase-card:nth-of-type(4) {
		grid-column: 1;
		grid-row: 5;
		border-radius: 10px;
	}

	.serviceDetail .consulting-phase-card:nth-of-type(n)::after {
		top: auto;
		right: 50%;
		bottom: -.9rem;
		left: auto;
		transform: translate(50%, 50%) rotate(90deg);
	}

	.serviceDetail .consulting-phase-card:nth-of-type(4)::after {
		display: none;
	}

	.serviceDetail .consulting-effect-box {
		gap: 1.4rem;
		padding: 1.4rem;
	}

	.serviceDetail .consulting-effect-reason {
		padding-top: 1.4rem;
		padding-left: 0;
		border-top: 1px solid var(--sat-border);
		border-left: 0;
	}
}
