.mssp-shell {
	--mssp-ink: #17212b;
	--mssp-muted: #536273;
	--mssp-line: #d8e5ed;
	--mssp-surface: #fff;
	--mssp-cloud: #f4f9fd;
	--mssp-blue: #176ea8;
	box-sizing: border-box;
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(24px, 4vw, 52px) clamp(18px, 4vw, 48px);
	color: var(--mssp-ink);
	font-family: Pretendard, "Noto Sans KR", system-ui, sans-serif;
}

.mssp-shell *,
.mssp-shell *::before,
.mssp-shell *::after { box-sizing: inherit; }

.mssp-hero {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	align-items: center;
	gap: clamp(24px, 4vw, 52px);
}

.mssp-eyebrow {
	margin: 0 0 14px;
	color: var(--mssp-blue);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .04em;
}

.mssp-status {
	display: inline-flex;
	min-height: 28px;
	align-items: center;
	margin: 0 0 12px;
	padding: 4px 10px;
	border: 1px solid #b9d8ec;
	border-radius: 999px;
	background: #eef8ff;
	color: #185f8c;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .03em;
}

.mssp-copy h1 {
	max-width: 12em;
	margin: 0;
	font-size: clamp(2.1rem, 4vw, 3.5rem);
	font-weight: 570;
	line-height: 1.08;
	letter-spacing: -.045em;
	text-wrap: balance;
}

.mssp-lead {
	max-width: 38em;
	margin: 18px 0 0;
	color: var(--mssp-muted);
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	line-height: 1.7;
}

.mssp-notice {
	margin: 16px 0 0;
	padding: 14px 16px;
	border-left: 3px solid var(--mssp-blue);
	background: var(--mssp-cloud);
	color: #334155;
	font-size: .9375rem;
	line-height: 1.6;
}

.mssp-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.mssp-button {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	padding: 9px 20px;
	border: 1px solid transparent;
	border-radius: 8px;
	font-size: .9375rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.mssp-button-primary {
	background: #1675b8;
	box-shadow: 0 5px 12px rgba(22, 117, 184, .18);
	color: #fff;
}

.mssp-button-secondary {
	border-color: #bdd4e3;
	background: #fff;
	color: #24536f;
}

.mssp-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgba(22, 50, 70, .16);
}

.mssp-button:active {
	transform: translateY(1px);
	box-shadow: none;
}

.mssp-button:focus-visible {
	outline: 3px solid rgba(245, 132, 31, .42);
	outline-offset: 3px;
}

.mssp-media { min-width: 0; }
.mssp-picture { display: block; }
.mssp-picture img {
	display: block;
	width: 100%;
	max-width: 1280px;
	height: clamp(240px, 27vw, 360px);
	object-fit: cover;
	border-radius: 10px;
}

.mssp-media-fallback {
	display: grid;
	min-height: 320px;
	place-items: center;
	border: 1px dashed #a9bcc8;
	border-radius: 10px;
	background:
		linear-gradient(135deg, rgba(23, 110, 168, .05), rgba(255,255,255,.8)),
		var(--mssp-cloud);
	color: var(--mssp-muted);
}

.mssp-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin-top: clamp(40px, 7vw, 88px);
}

.mssp-card {
	min-width: 0;
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid var(--mssp-line);
	border-radius: 8px;
	background: var(--mssp-surface);
}

.mssp-card > span {
	color: var(--mssp-blue);
	font-size: .8125rem;
	font-weight: 600;
}

.mssp-card h2 {
	margin: 12px 0 8px;
	font-size: clamp(1.15rem, 2vw, 1.4rem);
	font-weight: 560;
	line-height: 1.35;
}

.mssp-card p {
	margin: 0;
	color: var(--mssp-muted);
	font-size: .9375rem;
	line-height: 1.65;
}

.mssp-patent {
	margin-top: 18px;
	padding: 18px 20px;
	border: 1px solid #d5e5ef;
	border-radius: 8px;
	background: #f7fbfe;
	color: var(--mssp-muted);
	font-size: .9rem;
	line-height: 1.65;
}

.mssp-patent strong {
	display: block;
	margin-bottom: 6px;
	color: var(--mssp-ink);
	font-size: .95rem;
}

.mssp-patent p {
	margin: 0;
}

.mssp-patent small {
	display: block;
	margin-top: 8px;
	color: #536273;
	font-size: 14px;
	line-height: 1.55;
}

.mssp-about-sections {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: 18px;
	margin-top: 18px;
}

.mssp-profile,
.mssp-service-map {
	padding: clamp(24px, 3vw, 34px);
	border: 1px solid var(--mssp-line);
	border-radius: 10px;
	background: var(--mssp-surface);
}

.mssp-section-kicker {
	margin: 0 0 8px;
	color: var(--mssp-blue);
	font-size: .75rem;
	font-weight: 650;
	letter-spacing: .08em;
}

.mssp-profile h2,
.mssp-service-map h2 {
	margin: 0 0 18px;
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	font-weight: 570;
	letter-spacing: -.025em;
}

.mssp-profile dl {
	margin: 0;
}

.mssp-profile-row {
	display: grid;
	grid-template-columns: 108px minmax(0, 1fr);
	gap: 14px;
	padding: 10px 0;
	border-top: 1px solid #e7eef3;
	font-size: .9rem;
	line-height: 1.55;
}

.mssp-profile-row dt {
	color: #6a7987;
}

.mssp-profile-row dd {
	margin: 0;
	color: var(--mssp-ink);
}

.mssp-profile-row a {
	color: #176ea8;
	text-decoration: none;
}

.mssp-service-map > p:not(.mssp-section-kicker) {
	margin: -6px 0 18px;
	color: var(--mssp-muted);
	font-size: .9rem;
	line-height: 1.65;
}

.mssp-service-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.mssp-service-link {
	position: relative;
	display: grid;
	min-width: 0;
	min-height: 132px;
	align-content: start;
	padding: 18px 42px 18px 18px;
	border: 1px solid #d8e7f0;
	border-radius: 8px;
	background: #f8fbfd;
	color: var(--mssp-ink);
	text-decoration: none;
	transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.mssp-service-link strong {
	font-size: .95rem;
	font-weight: 600;
}

.mssp-service-link span {
	margin-top: 8px;
	color: var(--mssp-muted);
	font-size: .8125rem;
	line-height: 1.55;
}

.mssp-service-link b {
	position: absolute;
	top: 18px;
	right: 16px;
	color: var(--mssp-blue);
	font-size: 1.1rem;
}

.mssp-service-link:hover {
	transform: translateY(-1px);
	border-color: #a9cde4;
	box-shadow: 0 10px 24px rgba(30, 80, 110, .1);
}

/* Draft review pages use the MOONGSOONG service layout, not the theme blog shell. */
:is(.page-id-19, .page-id-1758, .page-id-1761, .page-id-1763, .page-id-1765, .page-id-1767) .wd-page-title,
:is(.page-id-19, .page-id-1758, .page-id-1761, .page-id-1763, .page-id-1765, .page-id-1767) .sidebar-container {
	display: none;
}

:is(.page-id-19, .page-id-1758, .page-id-1761, .page-id-1763, .page-id-1765, .page-id-1767) #main-content {
	display: block;
	width: 100% !important;
	max-width: none;
	margin: 0 !important;
	padding-inline: 0;
}

:is(.page-id-19, .page-id-1758, .page-id-1761, .page-id-1763, .page-id-1765, .page-id-1767) .site-content {
	width: 100%;
	max-width: none;
}

:is(.page-id-19, .page-id-1758, .page-id-1761, .page-id-1763, .page-id-1765, .page-id-1767) .entry-content {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

@media (max-width: 900px) {
	.mssp-hero { grid-template-columns: 1fr; }
	.mssp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mssp-about-sections { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
	.mssp-shell { padding: 22px 18px 72px; }
	.mssp-copy h1 { font-size: clamp(1.9rem, 9.5vw, 2.55rem); line-height: 1.12; }
	.mssp-lead { margin-top: 14px; line-height: 1.6; }
	.mssp-picture img { height: 220px; }
	.mssp-media-fallback { min-height: 280px; }
	.mssp-grid { grid-template-columns: 1fr; }
	.mssp-service-links { grid-template-columns: 1fr; }
	.mssp-profile-row { grid-template-columns: 1fr; gap: 2px; }
}

@media (prefers-reduced-motion: reduce) {
	.mssp-shell *, .mssp-shell *::before, .mssp-shell *::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}
