/* Service detail-page template and Services hub page grid. */

/* ---------- Service detail page ---------- */
.jmu-service-hero {
	box-sizing: border-box;
	margin-block-start: 0 !important;
	padding: clamp(var(--space-xl), 6vw, var(--space-3xl)) 40px;
	background-color: var(--bg-dark);
	color: var(--text-inverse);
	overflow: hidden;
	position: relative;
}

.jmu-service-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(105deg, color-mix(in srgb, var(--black) 82%, transparent) 0%, color-mix(in srgb, var(--black) 58%, transparent) 48%, color-mix(in srgb, var(--black) 18%, transparent) 100%);
	pointer-events: none;
}

.jmu-service-hero__image {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.jmu-service-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
	gap: clamp(var(--space-lg), 6vw, var(--space-3xl));
	align-items: center;
	width: min(100%, 1440px);
	margin: 0 auto;
	position: relative;
	z-index: 2;
}

.jmu-service-hero__copy {
	max-width: 700px;
}

.jmu-service-hero__eyebrow,
.jmu-service-body__eyebrow {
	margin: 0 0 var(--space-xs);
	color: color-mix(in srgb, var(--white) 78%, transparent);
	font-size: var(--text-xs);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	line-height: var(--line-height-normal);
	text-transform: uppercase;
}

.jmu-service-hero__copy h1 {
	max-width: 760px;
	margin: 0;
	color: var(--text-inverse);
	font-family: var(--font-display);
	font-size: clamp(2.75rem, 5.2vw, 5.65rem);
	font-weight: var(--font-weight-extrabold);
	letter-spacing: 0;
	line-height: 0.92;
	text-shadow: 0 2px 6px color-mix(in srgb, var(--black) 42%, transparent);
}

.jmu-service-hero__lead {
	max-width: 650px;
	margin: var(--space-md) 0 0;
	color: color-mix(in srgb, var(--white) 88%, transparent);
	font-size: var(--text-lg);
	line-height: var(--line-height-relaxed);
}

.jmu-service-hero__proof {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2xs);
	list-style: none;
	margin: var(--space-sm) 0 0;
	padding: 0;
}

.jmu-service-hero__proof li {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: var(--space-2xs) var(--space-sm);
	border: var(--border-width) solid color-mix(in srgb, var(--white) 42%, transparent);
	border-radius: var(--radius-full);
	background: color-mix(in srgb, var(--black) 32%, transparent);
	color: var(--text-inverse);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-semibold);
	backdrop-filter: blur(8px);
}

.jmu-service-hero__form-panel {
	box-sizing: border-box;
	width: 100%;
	padding: var(--space-md);
	border: var(--border-width) solid var(--border-color-muted);
	border-radius: var(--radius-xl);
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--bg-warm) 72%, var(--bg-surface)) 0%, var(--bg-surface) 58%);
	box-shadow: var(--shadow-xl);
	color: var(--text-main);
}

.jmu-service-hero__form-panel h2 {
	margin: 0;
	color: var(--text-strong);
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: var(--font-weight-extrabold);
	line-height: var(--line-height-tight);
}

.jmu-service-hero__form-note {
	margin: var(--space-3xs) 0 var(--space-xs);
	color: var(--text-muted);
	font-size: var(--text-xs);
	line-height: var(--line-height-normal);
}

.jmu-service-hero__form-panel .jmu-form-compact {
	padding-bottom: 0;
}

.jmu-service-hero__form-panel .jmu-form-compact .jmu-hero-field {
	margin-bottom: var(--space-2xs);
}

.jmu-service-hero__form-panel .jmu-form-compact label {
	margin-bottom: var(--space-3xs);
	font-size: var(--text-xs);
	letter-spacing: var(--letter-spacing-eyebrow);
}

.jmu-service-hero__form-panel .jmu-form-compact input:not([type="radio"]),
.jmu-service-hero__form-panel .jmu-form-compact select {
	height: 36px;
	padding-inline: var(--space-xs);
	font-size: var(--text-sm);
	line-height: 36px;
}

.jmu-service-hero__form-panel .jmu-form-compact input::placeholder {
	font-size: var(--text-sm);
}

.jmu-service-hero__form-panel .jmu-form-compact button[type="submit"] {
	height: 42px;
	font-size: var(--text-sm);
}

.jmu-service-hero__privacy-note {
	margin: var(--space-3xs) 0 0;
	color: var(--text-muted);
	font-size: var(--text-xs);
	line-height: var(--line-height-normal);
	text-align: center;
}

.jmu-service-hero__form-panel .jmu-hero-field textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 58px;
	padding: var(--space-2xs) var(--space-xs);
	border: var(--border-width) solid var(--border-color-muted);
	border-radius: var(--radius-md);
	background: var(--bg-base);
	color: var(--text-main);
	font: inherit;
	resize: vertical;
}

.jmu-service-hero__form-panel .jmu-hero-field textarea:focus {
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 18%, transparent);
	outline: none;
}

.jmu-service-content-section {
	box-sizing: border-box;
	margin-block-start: 0 !important;
	padding: clamp(var(--space-xl), 6vw, var(--space-2xl)) 40px;
	background:
		linear-gradient(180deg, var(--bg-base) 0%, var(--bg-warm) 28%, var(--bg-base) 72%);
}

.jmu-service-main {
	width: 100%;
	max-width: 1440px;
	margin-right: auto;
	margin-left: auto;
}

.jmu-service-main > *:first-child {
	margin-top: 0;
}

.jmu-service-main h2 {
	margin: 0 0 var(--space-sm);
	color: var(--text-strong);
	font-family: var(--font-display);
	font-size: clamp(2rem, 4vw, 4.25rem);
	font-weight: var(--font-weight-extrabold);
	letter-spacing: 0;
	line-height: 0.98;
}

.jmu-service-main h3 {
	margin: 0 0 var(--space-2xs);
	color: var(--text-strong);
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-snug);
}

.jmu-service-main p,
.jmu-service-main li {
	color: var(--text-main);
	font-size: var(--text-md);
	line-height: var(--line-height-relaxed);
}

.jmu-service-main p {
	margin: 0;
}

.jmu-service-main a {
	color: var(--color-primary);
	text-decoration: underline;
	text-underline-offset: 4px;
	transition: color var(--duration-normal) var(--ease-default);
}

.jmu-service-main a:hover,
.jmu-service-main a:focus-visible {
	color: var(--color-primary-hover);
}

.jmu-service-main a:focus-visible {
	border-radius: var(--radius-sm);
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}

.jmu-service-body {
	display: grid;
	gap: var(--space-xl);
}

.jmu-service-body__intro {
	display: grid;
	gap: var(--space-sm);
	padding-bottom: var(--space-xl);
	border-bottom: var(--border-width) solid var(--border-color-muted);
}

.jmu-service-body__lead {
	max-width: 760px;
	font-size: var(--text-lg) !important;
	color: var(--text-muted) !important;
}

.jmu-service-body__split {
	display: grid;
	grid-template-columns: minmax(0, 0.86fr) minmax(260px, 0.5fr);
	gap: var(--space-lg);
	align-items: start;
}

.jmu-service-body__panel {
	padding: var(--space-lg);
	border: var(--border-width) solid var(--border-color-muted);
	border-radius: var(--radius-md);
	background: var(--bg-muted);
}

.jmu-service-body__list,
.jmu-service-body__checklist,
.jmu-service-body__steps {
	display: grid;
	gap: var(--space-sm);
	margin: var(--space-md) 0 0;
	padding: 0;
	list-style: none;
}

.jmu-service-body__list li,
.jmu-service-body__checklist li {
	position: relative;
	padding-left: var(--space-lg);
}

.jmu-service-body__list li::before,
.jmu-service-body__checklist li::before {
	content: "";
	position: absolute;
	top: 0.72em;
	left: 0;
	width: 10px;
	height: 10px;
	border-radius: var(--radius-full);
	background: var(--color-primary);
}

.jmu-service-body__steps {
	counter-reset: service-step;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.jmu-service-body__steps li {
	counter-increment: service-step;
	padding: var(--space-md);
	border: var(--border-width) solid var(--border-color-muted);
	border-radius: var(--radius-md);
	background: var(--bg-surface);
	box-shadow: var(--shadow-sm);
}

.jmu-service-body__steps li::before {
	content: counter(service-step);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	margin-bottom: var(--space-sm);
	border-radius: var(--radius-full);
	background: var(--color-primary);
	color: var(--text-inverse);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-bold);
}

.jmu-service-body__steps strong,
.jmu-service-body__checklist strong {
	display: block;
	margin-bottom: var(--space-3xs);
	color: var(--text-strong);
	font-size: var(--text-base);
	line-height: var(--line-height-snug);
}

.jmu-service-scope-section {
	max-width: 760px;
}

.jmu-service-roadmap-section {
	display: grid;
	gap: var(--space-md);
}

.jmu-service-roadmap {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-sm);
	margin: var(--space-lg) 0 0;
	padding: 0;
	list-style: none;
	counter-reset: service-roadmap;
}

.jmu-service-roadmap::before {
	content: none;
}

.jmu-service-roadmap li {
	position: relative;
	display: grid;
	min-height: 220px;
	gap: var(--space-xs);
	align-content: end;
	margin: 0;
	padding: clamp(var(--space-md), 3vw, var(--space-xl));
	overflow: hidden;
	border: var(--border-width) solid color-mix(in srgb, var(--border-color-muted) 72%, transparent);
	border-radius: var(--radius-xl);
	background:
		linear-gradient(145deg, color-mix(in srgb, var(--bg-surface) 82%, transparent), color-mix(in srgb, var(--bg-warm) 86%, transparent)),
		var(--bg-surface);
	box-shadow: var(--shadow-sm);
	counter-increment: service-roadmap;
}

.jmu-service-roadmap li::before {
	content: counter(service-roadmap);
	position: absolute;
	top: calc(var(--space-xs) * -1);
	right: var(--space-sm);
	color: color-mix(in srgb, var(--color-primary) 13%, transparent);
	font-family: var(--font-display);
	font-size: clamp(5.5rem, 12vw, 9rem);
	font-weight: var(--font-weight-black);
	line-height: 0.8;
}

.jmu-service-roadmap__label,
.jmu-service-roadmap strong,
.jmu-service-roadmap p {
	position: relative;
	z-index: var(--z-base);
}

.jmu-service-roadmap__label {
	display: block;
	margin-bottom: var(--space-3xs);
	color: var(--color-primary);
	font-size: var(--text-xs);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	line-height: var(--line-height-normal);
	text-transform: uppercase;
}

.jmu-service-roadmap strong {
	display: block;
	margin-bottom: var(--space-3xs);
	color: var(--text-strong);
	font-family: var(--font-display);
	font-size: clamp(var(--text-xl), 2.4vw, var(--text-3xl));
	font-weight: var(--font-weight-extrabold);
	line-height: var(--line-height-snug);
}

.jmu-service-roadmap p {
	max-width: 720px;
	color: var(--text-muted);
}

.jmu-service-outcome-section {
	display: grid;
	gap: var(--space-sm);
}

.jmu-service-outcome-section > p:not(.jmu-service-body__eyebrow) {
	max-width: 760px;
	color: var(--text-muted);
}

.jmu-service-outcome-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--border-width);
	margin: var(--space-lg) 0 0;
	padding: 0;
	overflow: hidden;
	border: var(--border-width) solid color-mix(in srgb, var(--white) 14%, transparent);
	border-radius: var(--radius-xl);
	background: color-mix(in srgb, var(--white) 16%, transparent);
	box-shadow: var(--shadow-lg);
	list-style: none;
	counter-reset: service-outcome;
}

.jmu-service-outcome-grid li {
	position: relative;
	display: grid;
	gap: var(--space-2xs);
	align-content: start;
	margin: 0;
	min-height: 190px;
	padding: clamp(var(--space-md), 3vw, var(--space-xl));
	border: 0;
	background: var(--bg-dark);
	box-shadow: none;
	counter-increment: service-outcome;
}

.jmu-service-outcome-grid li::before {
	content: "0" counter(service-outcome);
	position: absolute;
	right: var(--space-md);
	bottom: var(--space-sm);
	color: color-mix(in srgb, var(--white) 10%, transparent);
	font-family: var(--font-display);
	font-size: clamp(var(--text-4xl), 6vw, 5.5rem);
	font-weight: var(--font-weight-black);
	line-height: 1;
}

.jmu-service-outcome-grid strong {
	position: relative;
	z-index: var(--z-base);
	color: var(--text-inverse);
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: var(--font-weight-extrabold);
	line-height: var(--line-height-snug);
}

.jmu-service-outcome-grid span {
	position: relative;
	z-index: var(--z-base);
	color: color-mix(in srgb, var(--white) 82%, transparent);
	font-size: var(--text-sm);
	line-height: var(--line-height-normal);
}

.jmu-service-proof-section {
	display: grid;
	gap: var(--space-md);
	margin-top: var(--space-2xl);
	padding-top: var(--space-2xl);
	border-top: var(--border-width) solid color-mix(in srgb, var(--border-color-muted) 62%, transparent);
}

.jmu-service-proof-section--gallery {
	margin-top: 0;
	padding: clamp(var(--space-md), 4vw, var(--space-2xl));
	border: 0;
	border-radius: var(--radius-xl);
	background:
		linear-gradient(135deg, var(--bg-warm) 0%, var(--bg-surface) 46%, var(--bg-muted) 100%);
	box-shadow: inset 0 0 0 var(--border-width) color-mix(in srgb, var(--border-color-muted) 62%, transparent);
}

.jmu-service-proof-section__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
	gap: clamp(var(--space-lg), 5vw, var(--space-2xl));
	align-items: end;
}

.jmu-service-proof-section__copy {
	display: grid;
	gap: var(--space-sm);
	max-width: 880px;
}

.jmu-service-proof-section__intro {
	max-width: 760px;
	color: var(--text-muted) !important;
}

.jmu-service-proof-section__notes {
	display: grid;
	gap: var(--space-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}

.jmu-service-proof-section__notes li {
	display: grid;
	grid-template-columns: 12px minmax(0, 1fr);
	gap: var(--space-2xs) var(--space-sm);
	align-items: start;
	padding-block: var(--space-xs);
	border-top: var(--border-width) solid color-mix(in srgb, var(--color-primary) 18%, transparent);
	color: var(--text-muted);
	font-size: var(--text-sm);
	line-height: var(--line-height-normal);
}

.jmu-service-proof-section__notes li::before {
	content: "";
	width: 12px;
	height: 12px;
	margin-top: 0.4em;
	border-radius: var(--radius-full);
	background: var(--color-primary);
}

.jmu-service-proof-section__notes strong,
.jmu-service-proof-section__notes span {
	grid-column: 2;
}

.jmu-service-proof-section__notes strong {
	color: var(--text-strong);
	font-size: var(--text-base);
	line-height: var(--line-height-snug);
}

.jmu-service-proof-section--gallery .jmu-service-gallery {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-flow: dense;
	gap: var(--space-md);
	max-width: none;
	margin: var(--space-lg) 0 0;
}

.jmu-service-proof-section--gallery .jmu-service-gallery .item {
	grid-column: span 3;
	display: block;
	aspect-ratio: 4 / 3;
	margin: 0;
	border: var(--border-width) solid color-mix(in srgb, var(--border-color-muted) 72%, transparent);
	border-radius: var(--radius-md);
	background: var(--bg-surface);
	box-shadow: var(--shadow-md);
	overflow: hidden;
}

.jmu-service-proof-section--gallery .jmu-service-gallery .item:first-child {
	grid-column: 1 / span 6;
	grid-row: 1 / span 3;
	aspect-ratio: auto;
	min-height: clamp(380px, 38vw, 620px);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg);
}

.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(2),
.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(3),
.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(4),
.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(5) {
	grid-column: span 3;
	aspect-ratio: 1 / 1;
}

.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(6) {
	grid-column: span 6;
	aspect-ratio: 2 / 1;
}

.jmu-service-proof-section--gallery .jmu-service-gallery .item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--duration-slow) var(--ease-out);
}

.jmu-service-proof-section--gallery .jmu-service-gallery .item:hover img {
	transform: scale(1.025);
}

.jmu-service-proof-section--gallery .jmu-service-gallery .item figcaption {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.jmu-service-review-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-md);
	margin-top: var(--space-md);
}

.jmu-service-review-card {
	position: relative;
	display: grid;
	gap: var(--space-xs);
	align-content: start;
	min-height: 260px;
	padding: clamp(var(--space-md), 3vw, var(--space-lg));
	overflow: hidden;
	border: var(--border-width) solid color-mix(in srgb, var(--border-color-muted) 70%, transparent);
	border-radius: var(--radius-xl);
	background: var(--bg-surface);
	box-shadow: var(--shadow-md);
}

.jmu-service-review-card__mark {
	position: absolute;
	top: calc(var(--space-md) * -1);
	right: var(--space-md);
	color: color-mix(in srgb, var(--color-primary) 12%, transparent);
	font-family: var(--font-display);
	font-size: 8rem;
	font-weight: var(--font-weight-bold);
	line-height: 1;
}

.jmu-service-review-card__stars {
	position: relative;
	z-index: var(--z-base);
	color: var(--color-rating-star);
	font-size: var(--text-lg);
	font-weight: var(--font-weight-bold);
	letter-spacing: 0;
	line-height: 1;
}

.jmu-service-review-card p {
	position: relative;
	z-index: var(--z-base);
	color: var(--text-main);
	font-size: var(--text-base);
	line-height: var(--line-height-relaxed);
}

.jmu-service-review-card footer {
	position: relative;
	z-index: var(--z-base);
	display: flex;
	gap: var(--space-xs);
	align-items: center;
	margin-top: auto;
	color: var(--text-muted);
	font-size: var(--text-xs);
	line-height: var(--line-height-normal);
}

.jmu-service-review-card__avatar {
	display: inline-grid;
	flex: 0 0 auto;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: var(--radius-full);
	background: var(--bg-warm-strong);
	color: var(--color-primary);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-extrabold);
}

.jmu-service-review-card__person {
	display: grid;
	gap: var(--space-3xs);
}

.jmu-service-review-card strong {
	color: var(--text-strong);
	font-size: var(--text-sm);
}

.jmu-service-questions {
	box-sizing: border-box;
	margin-top: var(--space-xl);
	padding: clamp(var(--space-xl), 6vw, var(--space-3xl)) clamp(var(--space-md), 5vw, var(--space-2xl));
	border-radius: var(--radius-xl);
	background:
		linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 4%, transparent) 0 1px, transparent 1px 100%),
		linear-gradient(0deg, color-mix(in srgb, var(--color-primary) 3%, transparent) 0 1px, transparent 1px 100%),
		linear-gradient(135deg, var(--bg-warm) 0%, var(--bg-surface) 58%, var(--bg-warm-strong) 100%);
	background-size: 48px 48px, 48px 48px, auto;
	box-shadow: var(--shadow-md);
}

.jmu-service-questions__inner {
	display: grid;
	grid-template-columns: minmax(260px, 0.42fr) minmax(0, 1fr);
	gap: var(--space-lg);
	align-items: start;
}

.jmu-service-questions__header {
	grid-column: 1 / -1;
	display: grid;
	gap: var(--space-sm);
	max-width: 860px;
}

.jmu-service-questions__header .jmu-service-body__eyebrow {
	color: var(--color-primary) !important;
}

.jmu-service-questions__header h2 {
	max-width: 760px;
	margin: 0;
	color: var(--text-strong);
	font-size: clamp(var(--text-3xl), 4vw, var(--text-5xl));
	line-height: 0.98;
}

.jmu-service-questions__header p:not(.jmu-service-body__eyebrow) {
	max-width: 640px;
	color: var(--text-muted);
	font-size: var(--text-md);
	line-height: var(--line-height-relaxed);
}

.jmu-service-questions__path {
	display: grid;
	gap: var(--space-md);
	padding: var(--space-lg);
	border: var(--border-width) solid color-mix(in srgb, var(--color-primary) 16%, transparent);
	border-radius: var(--radius-lg);
	background: var(--bg-surface);
	box-shadow: var(--shadow-sm);
}

.jmu-service-questions__path h3 {
	margin: 0;
	color: var(--text-strong);
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: var(--font-weight-extrabold);
	line-height: var(--line-height-tight);
}

.jmu-service-questions__path ol {
	display: grid;
	gap: var(--space-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}

.jmu-service-questions__path li {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: var(--space-xs);
	align-items: center;
	color: var(--text-muted);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-snug);
}

.jmu-service-questions__path span {
	display: inline-grid;
	width: 32px;
	height: 32px;
	place-items: center;
	border-radius: var(--radius-full);
	background: var(--bg-warm);
	color: var(--color-primary);
	font-size: var(--text-xs);
	font-weight: var(--font-weight-extrabold);
}

.jmu-service-questions__feature {
	display: grid;
	gap: var(--space-sm);
	padding: var(--space-lg);
	border: var(--border-width) solid color-mix(in srgb, var(--color-primary) 18%, transparent);
	border-radius: var(--radius-lg);
	background: var(--bg-dark);
	color: var(--text-inverse);
	box-shadow: var(--shadow-lg);
}

.jmu-service-questions__feature span {
	width: max-content;
	padding: var(--space-3xs) var(--space-xs);
	border: var(--border-width) solid color-mix(in srgb, var(--white) 20%, transparent);
	border-radius: var(--radius-full);
	color: color-mix(in srgb, var(--white) 78%, transparent);
	font-size: var(--text-xs);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	text-transform: uppercase;
}

.jmu-service-questions__feature h3 {
	margin: 0;
	color: var(--text-inverse);
	font-size: clamp(var(--text-2xl), 3vw, var(--text-4xl));
	line-height: var(--line-height-tight);
}

.jmu-service-questions__feature p {
	color: color-mix(in srgb, var(--white) 84%, transparent);
	font-size: var(--text-md);
}

.jmu-service-questions__list {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-sm);
}

.jmu-service-question-group {
	display: grid;
	align-content: start;
	gap: var(--space-xs);
	padding: var(--space-md);
	border: var(--border-width) solid var(--border-color-muted);
	border-radius: var(--radius-md);
	background: color-mix(in srgb, var(--bg-surface) 86%, transparent);
	box-shadow: var(--shadow-sm);
}

.jmu-service-question-group h3 {
	margin: 0;
	color: var(--text-muted);
	font-family: var(--font-sans);
	font-size: var(--text-xs);
	font-weight: var(--font-weight-extrabold);
	letter-spacing: var(--letter-spacing-eyebrow);
	line-height: var(--line-height-normal);
	text-transform: uppercase;
}

.jmu-service-question-group details {
	border-top: var(--border-width) solid var(--border-color-muted);
}

.jmu-service-question-group summary {
	position: relative;
	display: block;
	min-height: 48px;
	padding: var(--space-xs) var(--space-xl) var(--space-xs) 0;
	color: var(--text-strong);
	cursor: pointer;
	font-size: var(--text-base);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-snug);
	list-style: none;
}

.jmu-service-question-group summary::-webkit-details-marker {
	display: none;
}

.jmu-service-question-group summary::after {
	content: "\002B";
	position: absolute;
	top: 50%;
	right: 0;
	display: grid;
	width: 28px;
	height: 28px;
	place-items: center;
	border-radius: var(--radius-full);
	background: var(--bg-warm);
	color: var(--color-primary);
	font-size: var(--text-xl);
	font-weight: var(--font-weight-bold);
	line-height: 1;
	transform: translateY(-50%);
	transition:
		background var(--duration-normal) var(--ease-default),
		color var(--duration-normal) var(--ease-default),
		transform var(--duration-normal) var(--ease-default);
}

.jmu-service-question-group details[open] summary {
	color: var(--color-primary);
}

.jmu-service-question-group details[open] summary::after {
	content: "\2212";
	background: var(--color-primary);
	color: var(--text-inverse);
}

.jmu-service-question-group summary:focus-visible {
	border-radius: var(--radius-sm);
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}

.jmu-service-question-group details > div {
	padding: 0 var(--space-sm) var(--space-sm) 0;
	color: var(--text-muted);
}

.jmu-service-question-group details > div p {
	margin: 0;
	font-size: var(--text-sm);
	line-height: var(--line-height-relaxed);
}

.jmu-service-more {
	display: grid;
	gap: var(--space-lg);
	margin-top: var(--space-xl);
	padding: clamp(var(--space-lg), 4vw, var(--space-2xl));
	border: var(--border-width) solid color-mix(in srgb, var(--border-color-muted) 72%, transparent);
	border-radius: var(--radius-xl);
	background:
		linear-gradient(135deg, var(--bg-surface) 0%, var(--bg-warm) 58%, var(--bg-muted) 100%);
	box-shadow: var(--shadow-md);
}

.jmu-service-more__header {
	display: grid;
	gap: var(--space-sm);
	max-width: 780px;
}

.jmu-service-more__heading {
	margin: 0 !important;
	color: var(--text-strong);
	font-size: clamp(var(--text-3xl), 3.4vw, var(--text-4xl)) !important;
	line-height: var(--line-height-tight) !important;
}

.jmu-service-more__intro {
	max-width: 660px;
	color: var(--text-muted) !important;
	font-size: var(--text-md);
	line-height: var(--line-height-relaxed);
}

.jmu-service-more__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-md);
	margin: 0;
	padding: 0;
	list-style: none;
}

.jmu-service-more__item {
	margin: 0;
}

.jmu-service-more-card {
	display: grid;
	height: 100%;
	overflow: hidden;
	border: var(--border-width) solid var(--border-color-muted);
	border-radius: var(--radius-lg);
	background: var(--bg-surface);
	color: var(--text-main);
	text-decoration: none !important;
	box-shadow: var(--shadow-sm);
	transition:
		border-color var(--duration-normal) var(--ease-default),
		box-shadow var(--duration-normal) var(--ease-default),
		transform var(--duration-normal) var(--ease-default);
}

.jmu-service-more-card:hover,
.jmu-service-more-card:focus-visible {
	border-color: color-mix(in srgb, var(--color-primary) 42%, var(--border-color-muted));
	box-shadow: var(--shadow-lg);
	transform: translateY(-3px);
}

.jmu-service-more-card:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 4px;
}

.jmu-service-more-card__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--bg-muted);
}

.jmu-service-more-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--duration-slow) var(--ease-out);
}

.jmu-service-more-card:hover .jmu-service-more-card__media img,
.jmu-service-more-card:focus-visible .jmu-service-more-card__media img {
	transform: scale(1.03);
}

.jmu-service-more-card__body {
	display: grid;
	gap: var(--space-2xs);
	align-content: start;
	padding: var(--space-md);
}

.jmu-service-more-card__category {
	width: max-content;
	max-width: 100%;
	padding: var(--space-3xs) var(--space-xs);
	border-radius: var(--radius-full);
	background: var(--bg-warm);
	color: var(--color-primary);
	font-size: var(--text-xs);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	line-height: var(--line-height-normal);
	text-transform: uppercase;
}

.jmu-service-more-card__title {
	color: var(--text-strong);
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: var(--font-weight-extrabold);
	line-height: var(--line-height-snug);
}

.jmu-service-more-card__copy {
	color: var(--text-muted);
	font-size: var(--text-sm);
	line-height: var(--line-height-relaxed);
}

.jmu-service-more-card__cta {
	display: inline-flex;
	gap: var(--space-2xs);
	align-items: center;
	margin-top: var(--space-xs);
	color: var(--color-primary);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-extrabold);
	line-height: var(--line-height-normal);
}

.jmu-service-more-card__cta span {
	transition: transform var(--duration-normal) var(--ease-default);
}

.jmu-service-more-card:hover .jmu-service-more-card__cta span,
.jmu-service-more-card:focus-visible .jmu-service-more-card__cta span {
	transform: translateX(3px);
}

.jmu-service-cta {
	display: grid;
	justify-items: start;
	gap: var(--space-sm);
	margin-top: var(--space-xl);
	padding: clamp(var(--space-lg), 4vw, var(--space-xl));
	border-radius: var(--radius-xl);
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 96%, var(--black)) 0%, var(--color-primary-hover) 100%);
	color: var(--text-inverse);
	box-shadow: var(--shadow-lg);
}

.jmu-service-cta .jmu-service-body__eyebrow,
.jmu-service-cta h2,
.jmu-service-cta p {
	color: var(--text-inverse) !important;
}

.jmu-service-cta h2 {
	margin-bottom: 0;
}

.jmu-service-cta p {
	max-width: 680px;
}

.jmu-service-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin-top: 0;
}

.jmu-service-cta__actions .jmu-btn {
	border: var(--border-width) solid var(--text-inverse);
	background: var(--text-inverse);
	color: var(--color-primary);
	text-decoration: none;
}

.jmu-service-cta__actions .jmu-btn:hover,
.jmu-service-cta__actions .jmu-btn:focus-visible {
	background: var(--bg-soft);
	color: var(--color-primary-hover);
}

.jmu-service-cta__actions .jmu-btn-outline {
	border-color: color-mix(in srgb, var(--white) 62%, transparent);
	background: transparent;
	color: var(--text-inverse);
}

.jmu-service-cta__actions .jmu-btn-outline:hover,
.jmu-service-cta__actions .jmu-btn-outline:focus-visible {
	border-color: var(--text-inverse);
	background: color-mix(in srgb, var(--white) 12%, transparent);
	color: var(--text-inverse);
}

.jmu-service-cta__actions .jmu-btn:focus-visible {
	outline: 2px solid var(--text-inverse);
	outline-offset: 3px;
}

.jmu-service-body__eyebrow {
	color: var(--color-primary);
}

/* ---------- Services hub page ---------- */
.jmu-services-grid {
	list-style: none;
	margin: var(--space-lg) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--space-md);
}
.jmu-services-grid__item { margin: 0; }
.jmu-services-grid__link {
	display: block;
	height: 100%;
	padding: var(--space-md) 26px;
	background: var(--bg-surface);
	border: var(--border-width) solid var(--border-color);
	border-left: var(--border-width-lg) solid var(--color-primary);
	color: inherit;
	text-decoration: none;
	transition: box-shadow var(--duration-normal) var(--ease-default),
		transform var(--duration-normal) var(--ease-default),
		border-color var(--duration-normal) var(--ease-default);
}
.jmu-services-grid__link:hover,
.jmu-services-grid__link:focus-visible {
	box-shadow: var(--shadow-md);
	transform: translateY(-2px);
	border-left-color: var(--color-primary-hover);
}
.jmu-services-grid__link:focus-visible {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 60%, transparent), var(--shadow-md);
	outline: none;
}
.jmu-services-grid__title {
	margin: 0 0 var(--space-2xs);
	font-family: var(--font-display);
	font-size: var(--text-lg);
	font-weight: var(--font-weight-semibold);
	color: var(--color-primary);
}
.jmu-services-grid__copy {
	margin: 0;
	font-size: var(--text-base);
	line-height: var(--line-height-normal);
	color: var(--text-body);
}
@media (max-width: 1024px) {
	.jmu-service-hero__inner,
	.jmu-service-body__split,
	.jmu-service-body__steps {
		grid-template-columns: 1fr;
	}
	.jmu-service-outcome-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.jmu-service-proof-section__head {
		grid-template-columns: 1fr;
		gap: var(--space-lg);
	}
	.jmu-service-roadmap {
		grid-template-columns: 1fr;
	}
	.jmu-service-review-grid,
	.jmu-service-more__grid,
	.jmu-service-proof-section--gallery .jmu-service-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.jmu-service-proof-section--gallery .jmu-service-gallery .item,
	.jmu-service-proof-section--gallery .jmu-service-gallery .item:first-child,
	.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(2),
	.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(3),
	.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(4),
	.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(5),
	.jmu-service-proof-section--gallery .jmu-service-gallery .item:nth-child(6) {
		grid-column: auto;
		grid-row: auto;
		min-height: 0;
		aspect-ratio: 4 / 3;
	}
	.jmu-service-questions__inner,
	.jmu-service-questions__list {
		grid-template-columns: 1fr;
	}
	.jmu-service-questions__list {
		grid-column: 1;
	}
}

@media (max-width: 720px) {
	.jmu-service-hero,
	.jmu-service-content-section {
		padding-left: var(--space-sm);
		padding-right: var(--space-sm);
	}
	.jmu-service-hero__copy h1 {
		font-size: var(--text-3xl);
		line-height: var(--line-height-tight);
	}
	.jmu-service-review-grid,
	.jmu-service-more__grid,
	.jmu-service-proof-section--gallery .jmu-service-gallery,
	.jmu-service-outcome-grid {
		grid-template-columns: 1fr;
	}
	.jmu-service-roadmap li {
		min-height: 190px;
		gap: var(--space-sm);
	}
	.jmu-service-roadmap li::before {
		font-size: 5rem;
	}
	.jmu-service-questions {
		padding: var(--space-md);
	}
	.jmu-service-questions__feature,
	.jmu-service-questions__path,
	.jmu-service-question-group {
		padding: var(--space-sm);
	}
	.jmu-service-cta {
		padding: var(--space-md);
	}
	.jmu-service-more {
		padding: var(--space-md);
	}
	.jmu-service-cta__actions {
		width: 100%;
	}
	.jmu-service-cta__actions .jmu-btn {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.jmu-service-more-card,
	.jmu-service-more-card__media img,
	.jmu-service-more-card__cta span {
		transition: none;
	}

	.jmu-service-more-card:hover,
	.jmu-service-more-card:focus-visible,
	.jmu-service-more-card:hover .jmu-service-more-card__media img,
	.jmu-service-more-card:focus-visible .jmu-service-more-card__media img,
	.jmu-service-more-card:hover .jmu-service-more-card__cta span,
	.jmu-service-more-card:focus-visible .jmu-service-more-card__cta span {
		transform: none;
	}
}
